├── .gitignore ├── .gitpod.Dockerfile ├── .gitpod.yml ├── Cargo.lock ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── README.md ├── assets ├── enemy_a_01.png ├── explo_a_sheet.png ├── laser_a_01.png ├── laser_b_01.png ├── player_a_01.png └── player_b_01.png ├── rust-toolchain ├── rustfmt.toml └── src ├── components.rs ├── enemy ├── formation.rs └── mod.rs ├── main.rs └── player.rs /.gitignore: -------------------------------------------------------------------------------- 1 | .* 2 | !.gitignore 3 | !.gitpod.yml 4 | !.gitpod.Dockerfile 5 | 6 | target/ 7 | -------------------------------------------------------------------------------- /.gitpod.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM gitpod/workspace-full 2 | 3 | USER root 4 | 5 | RUN bash -cl "rustup toolchain install nightly" -------------------------------------------------------------------------------- /.gitpod.yml: -------------------------------------------------------------------------------- 1 | image: 2 | file: .gitpod.Dockerfile 3 | 4 | 5 | tasks: 6 | - name: Initial Config 7 | init: sudo apt-get update && sudo apt-get install libasound2-dev && sudo apt-get install libudev-dev 8 | command: cargo build && rustup target install wasm32-unknown-unknown 9 | 10 | - name: Browser Config 11 | init: rustup target install wasm32-unknown-unknown && cargo install wasm-server-runner 12 | command: export CARGO_TARGET_WASM32_UNKNOWN_UNKNOWN_RUNNER=wasm-server-runner && cargo run --target wasm32-unknown-unknown 13 | 14 | 15 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 4 4 | 5 | [[package]] 6 | name = "accesskit" 7 | version = "0.17.1" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "d3d3b8f9bae46a948369bc4a03e815d4ed6d616bd00de4051133a5019dc31c5a" 10 | 11 | [[package]] 12 | name = "accesskit_consumer" 13 | version = "0.26.0" 14 | source = "registry+https://github.com/rust-lang/crates.io-index" 15 | checksum = "f47983a1084940ba9a39c077a8c63e55c619388be5476ac04c804cfbd1e63459" 16 | dependencies = [ 17 | "accesskit", 18 | "hashbrown 0.15.2", 19 | "immutable-chunkmap", 20 | ] 21 | 22 | [[package]] 23 | name = "accesskit_macos" 24 | version = "0.18.1" 25 | source = "registry+https://github.com/rust-lang/crates.io-index" 26 | checksum = "7329821f3bd1101e03a7d2e03bd339e3ac0dc64c70b4c9f9ae1949e3ba8dece1" 27 | dependencies = [ 28 | "accesskit", 29 | "accesskit_consumer", 30 | "hashbrown 0.15.2", 31 | "objc2", 32 | "objc2-app-kit", 33 | "objc2-foundation", 34 | ] 35 | 36 | [[package]] 37 | name = "accesskit_windows" 38 | version = "0.24.1" 39 | source = "registry+https://github.com/rust-lang/crates.io-index" 40 | checksum = "24fcd5d23d70670992b823e735e859374d694a3d12bfd8dd32bd3bd8bedb5d81" 41 | dependencies = [ 42 | "accesskit", 43 | "accesskit_consumer", 44 | "hashbrown 0.15.2", 45 | "paste", 46 | "static_assertions", 47 | "windows 0.58.0", 48 | "windows-core 0.58.0", 49 | ] 50 | 51 | [[package]] 52 | name = "accesskit_winit" 53 | version = "0.23.1" 54 | source = "registry+https://github.com/rust-lang/crates.io-index" 55 | checksum = "6a6a48dad5530b6deb9fc7a52cc6c3bf72cdd9eb8157ac9d32d69f2427a5e879" 56 | dependencies = [ 57 | "accesskit", 58 | "accesskit_macos", 59 | "accesskit_windows", 60 | "raw-window-handle", 61 | "winit", 62 | ] 63 | 64 | [[package]] 65 | name = "adler2" 66 | version = "2.0.0" 67 | source = "registry+https://github.com/rust-lang/crates.io-index" 68 | checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" 69 | 70 | [[package]] 71 | name = "ahash" 72 | version = "0.8.11" 73 | source = "registry+https://github.com/rust-lang/crates.io-index" 74 | checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" 75 | dependencies = [ 76 | "cfg-if", 77 | "const-random", 78 | "getrandom", 79 | "once_cell", 80 | "version_check", 81 | "zerocopy", 82 | ] 83 | 84 | [[package]] 85 | name = "aho-corasick" 86 | version = "1.1.3" 87 | source = "registry+https://github.com/rust-lang/crates.io-index" 88 | checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" 89 | dependencies = [ 90 | "memchr", 91 | ] 92 | 93 | [[package]] 94 | name = "allocator-api2" 95 | version = "0.2.20" 96 | source = "registry+https://github.com/rust-lang/crates.io-index" 97 | checksum = "45862d1c77f2228b9e10bc609d5bc203d86ebc9b87ad8d5d5167a6c9abf739d9" 98 | 99 | [[package]] 100 | name = "alsa" 101 | version = "0.9.1" 102 | source = "registry+https://github.com/rust-lang/crates.io-index" 103 | checksum = "ed7572b7ba83a31e20d1b48970ee402d2e3e0537dcfe0a3ff4d6eb7508617d43" 104 | dependencies = [ 105 | "alsa-sys", 106 | "bitflags 2.6.0", 107 | "cfg-if", 108 | "libc", 109 | ] 110 | 111 | [[package]] 112 | name = "alsa-sys" 113 | version = "0.3.1" 114 | source = "registry+https://github.com/rust-lang/crates.io-index" 115 | checksum = "db8fee663d06c4e303404ef5f40488a53e062f89ba8bfed81f42325aafad1527" 116 | dependencies = [ 117 | "libc", 118 | "pkg-config", 119 | ] 120 | 121 | [[package]] 122 | name = "android-activity" 123 | version = "0.6.0" 124 | source = "registry+https://github.com/rust-lang/crates.io-index" 125 | checksum = "ef6978589202a00cd7e118380c448a08b6ed394c3a8df3a430d0898e3a42d046" 126 | dependencies = [ 127 | "android-properties", 128 | "bitflags 2.6.0", 129 | "cc", 130 | "cesu8", 131 | "jni", 132 | "jni-sys", 133 | "libc", 134 | "log", 135 | "ndk 0.9.0", 136 | "ndk-context", 137 | "ndk-sys 0.6.0+11769913", 138 | "num_enum", 139 | "thiserror", 140 | ] 141 | 142 | [[package]] 143 | name = "android-properties" 144 | version = "0.2.2" 145 | source = "registry+https://github.com/rust-lang/crates.io-index" 146 | checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04" 147 | 148 | [[package]] 149 | name = "android_log-sys" 150 | version = "0.3.1" 151 | source = "registry+https://github.com/rust-lang/crates.io-index" 152 | checksum = "5ecc8056bf6ab9892dcd53216c83d1597487d7dacac16c8df6b877d127df9937" 153 | 154 | [[package]] 155 | name = "android_system_properties" 156 | version = "0.1.5" 157 | source = "registry+https://github.com/rust-lang/crates.io-index" 158 | checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 159 | dependencies = [ 160 | "libc", 161 | ] 162 | 163 | [[package]] 164 | name = "approx" 165 | version = "0.5.1" 166 | source = "registry+https://github.com/rust-lang/crates.io-index" 167 | checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" 168 | dependencies = [ 169 | "num-traits", 170 | ] 171 | 172 | [[package]] 173 | name = "arrayref" 174 | version = "0.3.9" 175 | source = "registry+https://github.com/rust-lang/crates.io-index" 176 | checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" 177 | 178 | [[package]] 179 | name = "arrayvec" 180 | version = "0.7.6" 181 | source = "registry+https://github.com/rust-lang/crates.io-index" 182 | checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" 183 | 184 | [[package]] 185 | name = "as-raw-xcb-connection" 186 | version = "1.0.1" 187 | source = "registry+https://github.com/rust-lang/crates.io-index" 188 | checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b" 189 | 190 | [[package]] 191 | name = "ash" 192 | version = "0.38.0+1.3.281" 193 | source = "registry+https://github.com/rust-lang/crates.io-index" 194 | checksum = "0bb44936d800fea8f016d7f2311c6a4f97aebd5dc86f09906139ec848cf3a46f" 195 | dependencies = [ 196 | "libloading", 197 | ] 198 | 199 | [[package]] 200 | name = "assert_type_match" 201 | version = "0.1.1" 202 | source = "registry+https://github.com/rust-lang/crates.io-index" 203 | checksum = "f548ad2c4031f2902e3edc1f29c29e835829437de49562d8eb5dc5584d3a1043" 204 | dependencies = [ 205 | "proc-macro2", 206 | "quote", 207 | "syn", 208 | ] 209 | 210 | [[package]] 211 | name = "async-broadcast" 212 | version = "0.5.1" 213 | source = "registry+https://github.com/rust-lang/crates.io-index" 214 | checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b" 215 | dependencies = [ 216 | "event-listener 2.5.3", 217 | "futures-core", 218 | ] 219 | 220 | [[package]] 221 | name = "async-channel" 222 | version = "2.3.1" 223 | source = "registry+https://github.com/rust-lang/crates.io-index" 224 | checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" 225 | dependencies = [ 226 | "concurrent-queue", 227 | "event-listener-strategy", 228 | "futures-core", 229 | "pin-project-lite", 230 | ] 231 | 232 | [[package]] 233 | name = "async-executor" 234 | version = "1.13.1" 235 | source = "registry+https://github.com/rust-lang/crates.io-index" 236 | checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec" 237 | dependencies = [ 238 | "async-task", 239 | "concurrent-queue", 240 | "fastrand", 241 | "futures-lite", 242 | "slab", 243 | ] 244 | 245 | [[package]] 246 | name = "async-fs" 247 | version = "2.1.2" 248 | source = "registry+https://github.com/rust-lang/crates.io-index" 249 | checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a" 250 | dependencies = [ 251 | "async-lock", 252 | "blocking", 253 | "futures-lite", 254 | ] 255 | 256 | [[package]] 257 | name = "async-lock" 258 | version = "3.4.0" 259 | source = "registry+https://github.com/rust-lang/crates.io-index" 260 | checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" 261 | dependencies = [ 262 | "event-listener 5.3.1", 263 | "event-listener-strategy", 264 | "pin-project-lite", 265 | ] 266 | 267 | [[package]] 268 | name = "async-task" 269 | version = "4.7.1" 270 | source = "registry+https://github.com/rust-lang/crates.io-index" 271 | checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" 272 | 273 | [[package]] 274 | name = "atomic-waker" 275 | version = "1.1.2" 276 | source = "registry+https://github.com/rust-lang/crates.io-index" 277 | checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" 278 | 279 | [[package]] 280 | name = "atomicow" 281 | version = "1.0.0" 282 | source = "registry+https://github.com/rust-lang/crates.io-index" 283 | checksum = "467163b50876d3a4a44da5f4dbd417537e522fc059ede8d518d57941cfb3d745" 284 | 285 | [[package]] 286 | name = "autocfg" 287 | version = "1.4.0" 288 | source = "registry+https://github.com/rust-lang/crates.io-index" 289 | checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" 290 | 291 | [[package]] 292 | name = "base64" 293 | version = "0.21.7" 294 | source = "registry+https://github.com/rust-lang/crates.io-index" 295 | checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" 296 | 297 | [[package]] 298 | name = "base64" 299 | version = "0.22.1" 300 | source = "registry+https://github.com/rust-lang/crates.io-index" 301 | checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 302 | 303 | [[package]] 304 | name = "bevy" 305 | version = "0.15.0" 306 | source = "registry+https://github.com/rust-lang/crates.io-index" 307 | checksum = "b6a01cd51a5cd310e4e7aa6e1560b1aabf29efc6a095a01e6daa8bf0a19f1fea" 308 | dependencies = [ 309 | "bevy_internal", 310 | ] 311 | 312 | [[package]] 313 | name = "bevy_a11y" 314 | version = "0.15.0" 315 | source = "registry+https://github.com/rust-lang/crates.io-index" 316 | checksum = "82c66b5bc82a2660a5663d85b3354ddb72c8ab2c443989333cbea146f39a4e9a" 317 | dependencies = [ 318 | "accesskit", 319 | "bevy_app", 320 | "bevy_derive", 321 | "bevy_ecs", 322 | "bevy_reflect", 323 | ] 324 | 325 | [[package]] 326 | name = "bevy_animation" 327 | version = "0.15.0" 328 | source = "registry+https://github.com/rust-lang/crates.io-index" 329 | checksum = "ee48f3fc65f583e5e320e38874053e20e7a71205a62aaace5d607446781bd742" 330 | dependencies = [ 331 | "bevy_app", 332 | "bevy_asset", 333 | "bevy_color", 334 | "bevy_core", 335 | "bevy_derive", 336 | "bevy_ecs", 337 | "bevy_hierarchy", 338 | "bevy_log", 339 | "bevy_math", 340 | "bevy_reflect", 341 | "bevy_render", 342 | "bevy_time", 343 | "bevy_transform", 344 | "bevy_utils", 345 | "blake3", 346 | "derive_more", 347 | "downcast-rs", 348 | "either", 349 | "petgraph", 350 | "ron", 351 | "serde", 352 | "smallvec", 353 | "thread_local", 354 | "uuid", 355 | ] 356 | 357 | [[package]] 358 | name = "bevy_app" 359 | version = "0.15.0" 360 | source = "registry+https://github.com/rust-lang/crates.io-index" 361 | checksum = "652574e4c10efcfa70f98036709dd5b67e5cb8d46c58087ef48c2ac6b62df9da" 362 | dependencies = [ 363 | "bevy_derive", 364 | "bevy_ecs", 365 | "bevy_reflect", 366 | "bevy_tasks", 367 | "bevy_utils", 368 | "console_error_panic_hook", 369 | "ctrlc", 370 | "derive_more", 371 | "downcast-rs", 372 | "wasm-bindgen", 373 | "web-sys", 374 | ] 375 | 376 | [[package]] 377 | name = "bevy_asset" 378 | version = "0.15.0" 379 | source = "registry+https://github.com/rust-lang/crates.io-index" 380 | checksum = "4d7d501eda01be6d500d843a06d9b9800c3f0fffaae3c29d17d9e4e172c28d37" 381 | dependencies = [ 382 | "async-broadcast", 383 | "async-fs", 384 | "async-lock", 385 | "atomicow", 386 | "bevy_app", 387 | "bevy_asset_macros", 388 | "bevy_ecs", 389 | "bevy_reflect", 390 | "bevy_tasks", 391 | "bevy_utils", 392 | "bevy_window", 393 | "bitflags 2.6.0", 394 | "blake3", 395 | "crossbeam-channel", 396 | "derive_more", 397 | "disqualified", 398 | "downcast-rs", 399 | "either", 400 | "futures-io", 401 | "futures-lite", 402 | "js-sys", 403 | "notify-debouncer-full", 404 | "parking_lot", 405 | "ron", 406 | "serde", 407 | "stackfuture", 408 | "uuid", 409 | "wasm-bindgen", 410 | "wasm-bindgen-futures", 411 | "web-sys", 412 | ] 413 | 414 | [[package]] 415 | name = "bevy_asset_macros" 416 | version = "0.15.0" 417 | source = "registry+https://github.com/rust-lang/crates.io-index" 418 | checksum = "7474b77fc27db11ec03d49ca04f1a7471f369dc373fd5e091a12ad7ab533d8c8" 419 | dependencies = [ 420 | "bevy_macro_utils", 421 | "proc-macro2", 422 | "quote", 423 | "syn", 424 | ] 425 | 426 | [[package]] 427 | name = "bevy_audio" 428 | version = "0.15.0" 429 | source = "registry+https://github.com/rust-lang/crates.io-index" 430 | checksum = "20e378c4005d9c47b7ebaf637a6a197e3953463615516ab709ba8b0c3c215c2e" 431 | dependencies = [ 432 | "bevy_app", 433 | "bevy_asset", 434 | "bevy_derive", 435 | "bevy_ecs", 436 | "bevy_hierarchy", 437 | "bevy_math", 438 | "bevy_reflect", 439 | "bevy_transform", 440 | "bevy_utils", 441 | "cpal", 442 | "rodio", 443 | ] 444 | 445 | [[package]] 446 | name = "bevy_color" 447 | version = "0.15.1" 448 | source = "registry+https://github.com/rust-lang/crates.io-index" 449 | checksum = "87bccacba27db37375eb97ffc86e91a7d95db3f5faa6a834fa7306db02cde327" 450 | dependencies = [ 451 | "bevy_math", 452 | "bevy_reflect", 453 | "bytemuck", 454 | "derive_more", 455 | "encase", 456 | "serde", 457 | "wgpu-types", 458 | ] 459 | 460 | [[package]] 461 | name = "bevy_core" 462 | version = "0.15.0" 463 | source = "registry+https://github.com/rust-lang/crates.io-index" 464 | checksum = "ecccf7be33330f58d4c7033b212a25c414d388e3a8d55b61331346da5dbabf22" 465 | dependencies = [ 466 | "bevy_app", 467 | "bevy_ecs", 468 | "bevy_reflect", 469 | "bevy_tasks", 470 | "bevy_utils", 471 | "uuid", 472 | ] 473 | 474 | [[package]] 475 | name = "bevy_core_pipeline" 476 | version = "0.15.0" 477 | source = "registry+https://github.com/rust-lang/crates.io-index" 478 | checksum = "8a3fb9f84fa60c2006d4a15e039c3d08d4d10599441b9175907341a77a69d627" 479 | dependencies = [ 480 | "bevy_app", 481 | "bevy_asset", 482 | "bevy_color", 483 | "bevy_core", 484 | "bevy_derive", 485 | "bevy_ecs", 486 | "bevy_image", 487 | "bevy_math", 488 | "bevy_reflect", 489 | "bevy_render", 490 | "bevy_transform", 491 | "bevy_utils", 492 | "bevy_window", 493 | "bitflags 2.6.0", 494 | "derive_more", 495 | "nonmax", 496 | "radsort", 497 | "serde", 498 | "smallvec", 499 | ] 500 | 501 | [[package]] 502 | name = "bevy_derive" 503 | version = "0.15.0" 504 | source = "registry+https://github.com/rust-lang/crates.io-index" 505 | checksum = "e141b7eda52a23bb88740b37a291e26394524cb9ee3b034c7014669671fc2bb5" 506 | dependencies = [ 507 | "bevy_macro_utils", 508 | "quote", 509 | "syn", 510 | ] 511 | 512 | [[package]] 513 | name = "bevy_diagnostic" 514 | version = "0.15.0" 515 | source = "registry+https://github.com/rust-lang/crates.io-index" 516 | checksum = "fa97748337405089edfb2857f7608f21bcc648a7ad272c9209808aad252ed542" 517 | dependencies = [ 518 | "bevy_app", 519 | "bevy_core", 520 | "bevy_ecs", 521 | "bevy_tasks", 522 | "bevy_time", 523 | "bevy_utils", 524 | "const-fnv1a-hash", 525 | "sysinfo", 526 | ] 527 | 528 | [[package]] 529 | name = "bevy_ecs" 530 | version = "0.15.0" 531 | source = "registry+https://github.com/rust-lang/crates.io-index" 532 | checksum = "cb4c4b60d2a712c6d5cbe610bac7ecf0838fc56a095fd5b15f30230873e84f15" 533 | dependencies = [ 534 | "arrayvec", 535 | "bevy_ecs_macros", 536 | "bevy_ptr", 537 | "bevy_reflect", 538 | "bevy_tasks", 539 | "bevy_utils", 540 | "bitflags 2.6.0", 541 | "concurrent-queue", 542 | "derive_more", 543 | "disqualified", 544 | "fixedbitset 0.5.7", 545 | "nonmax", 546 | "petgraph", 547 | "serde", 548 | "smallvec", 549 | ] 550 | 551 | [[package]] 552 | name = "bevy_ecs_macros" 553 | version = "0.15.0" 554 | source = "registry+https://github.com/rust-lang/crates.io-index" 555 | checksum = "cb4296b3254b8bd29769f6a4512731b2e6c4b163343ca18b72316927315b6096" 556 | dependencies = [ 557 | "bevy_macro_utils", 558 | "proc-macro2", 559 | "quote", 560 | "syn", 561 | ] 562 | 563 | [[package]] 564 | name = "bevy_encase_derive" 565 | version = "0.15.0" 566 | source = "registry+https://github.com/rust-lang/crates.io-index" 567 | checksum = "bfe562b883fb652acde84cb6bb01cbc9f23c377e411f1484467ecfdd3a3d234e" 568 | dependencies = [ 569 | "bevy_macro_utils", 570 | "encase_derive_impl", 571 | ] 572 | 573 | [[package]] 574 | name = "bevy_gilrs" 575 | version = "0.15.0" 576 | source = "registry+https://github.com/rust-lang/crates.io-index" 577 | checksum = "adc3a5f9e872133d7f5c2fab82e17781c19ed0b98f371362a23ed972bb538d20" 578 | dependencies = [ 579 | "bevy_app", 580 | "bevy_ecs", 581 | "bevy_input", 582 | "bevy_time", 583 | "bevy_utils", 584 | "derive_more", 585 | "gilrs", 586 | ] 587 | 588 | [[package]] 589 | name = "bevy_gizmos" 590 | version = "0.15.0" 591 | source = "registry+https://github.com/rust-lang/crates.io-index" 592 | checksum = "e1c82341f6a3517efeeeef2fe68135ac3a91b11b6e369fc1a07f6e9a4b462b57" 593 | dependencies = [ 594 | "bevy_app", 595 | "bevy_asset", 596 | "bevy_color", 597 | "bevy_core_pipeline", 598 | "bevy_ecs", 599 | "bevy_gizmos_macros", 600 | "bevy_image", 601 | "bevy_math", 602 | "bevy_pbr", 603 | "bevy_reflect", 604 | "bevy_render", 605 | "bevy_sprite", 606 | "bevy_time", 607 | "bevy_transform", 608 | "bevy_utils", 609 | "bytemuck", 610 | ] 611 | 612 | [[package]] 613 | name = "bevy_gizmos_macros" 614 | version = "0.15.0" 615 | source = "registry+https://github.com/rust-lang/crates.io-index" 616 | checksum = "9454ac9f0a2141900ef9f3482af9333e490d5546bbea3cab63a777447d35beed" 617 | dependencies = [ 618 | "bevy_macro_utils", 619 | "proc-macro2", 620 | "quote", 621 | "syn", 622 | ] 623 | 624 | [[package]] 625 | name = "bevy_gltf" 626 | version = "0.15.0" 627 | source = "registry+https://github.com/rust-lang/crates.io-index" 628 | checksum = "b21ed694796a001a5cf63de9ddc62fc017302b0e2998a361ef1126880ec93555" 629 | dependencies = [ 630 | "base64 0.22.1", 631 | "bevy_animation", 632 | "bevy_app", 633 | "bevy_asset", 634 | "bevy_color", 635 | "bevy_core", 636 | "bevy_core_pipeline", 637 | "bevy_ecs", 638 | "bevy_hierarchy", 639 | "bevy_image", 640 | "bevy_math", 641 | "bevy_pbr", 642 | "bevy_reflect", 643 | "bevy_render", 644 | "bevy_scene", 645 | "bevy_tasks", 646 | "bevy_transform", 647 | "bevy_utils", 648 | "derive_more", 649 | "gltf", 650 | "percent-encoding", 651 | "serde", 652 | "serde_json", 653 | "smallvec", 654 | ] 655 | 656 | [[package]] 657 | name = "bevy_hierarchy" 658 | version = "0.15.0" 659 | source = "registry+https://github.com/rust-lang/crates.io-index" 660 | checksum = "6fe0b538beea7edbf30a6062242b99e67ff3bfa716566aacf91d5b5e027f02a2" 661 | dependencies = [ 662 | "bevy_app", 663 | "bevy_core", 664 | "bevy_ecs", 665 | "bevy_reflect", 666 | "bevy_utils", 667 | "disqualified", 668 | "smallvec", 669 | ] 670 | 671 | [[package]] 672 | name = "bevy_image" 673 | version = "0.15.0" 674 | source = "registry+https://github.com/rust-lang/crates.io-index" 675 | checksum = "db46fa6a2f9e20435f3231710abbb136d2cc0a376f3f8e6ecfe071e286f5a246" 676 | dependencies = [ 677 | "bevy_asset", 678 | "bevy_color", 679 | "bevy_math", 680 | "bevy_reflect", 681 | "bevy_utils", 682 | "bitflags 2.6.0", 683 | "bytemuck", 684 | "derive_more", 685 | "futures-lite", 686 | "image", 687 | "ktx2", 688 | "ruzstd", 689 | "serde", 690 | "wgpu", 691 | ] 692 | 693 | [[package]] 694 | name = "bevy_input" 695 | version = "0.15.0" 696 | source = "registry+https://github.com/rust-lang/crates.io-index" 697 | checksum = "46b4ea60095d1a1851e40cb12481ad3d5d234e14376d6b73142a85586c266b74" 698 | dependencies = [ 699 | "bevy_app", 700 | "bevy_core", 701 | "bevy_ecs", 702 | "bevy_math", 703 | "bevy_reflect", 704 | "bevy_utils", 705 | "derive_more", 706 | "smol_str", 707 | ] 708 | 709 | [[package]] 710 | name = "bevy_internal" 711 | version = "0.15.0" 712 | source = "registry+https://github.com/rust-lang/crates.io-index" 713 | checksum = "d4237e6e9b03902321032f00f931f18a4a211093bd9a7cf81276a0228a2a4417" 714 | dependencies = [ 715 | "bevy_a11y", 716 | "bevy_animation", 717 | "bevy_app", 718 | "bevy_asset", 719 | "bevy_audio", 720 | "bevy_color", 721 | "bevy_core", 722 | "bevy_core_pipeline", 723 | "bevy_derive", 724 | "bevy_diagnostic", 725 | "bevy_ecs", 726 | "bevy_gilrs", 727 | "bevy_gizmos", 728 | "bevy_gltf", 729 | "bevy_hierarchy", 730 | "bevy_image", 731 | "bevy_input", 732 | "bevy_log", 733 | "bevy_math", 734 | "bevy_pbr", 735 | "bevy_picking", 736 | "bevy_ptr", 737 | "bevy_reflect", 738 | "bevy_render", 739 | "bevy_scene", 740 | "bevy_sprite", 741 | "bevy_state", 742 | "bevy_tasks", 743 | "bevy_text", 744 | "bevy_time", 745 | "bevy_transform", 746 | "bevy_ui", 747 | "bevy_utils", 748 | "bevy_window", 749 | "bevy_winit", 750 | ] 751 | 752 | [[package]] 753 | name = "bevy_log" 754 | version = "0.15.0" 755 | source = "registry+https://github.com/rust-lang/crates.io-index" 756 | checksum = "1a0bdb42b00ac3752f0d6f531fbda8abf313603157a7b3163da8529412119a0a" 757 | dependencies = [ 758 | "android_log-sys", 759 | "bevy_app", 760 | "bevy_ecs", 761 | "bevy_utils", 762 | "tracing-log", 763 | "tracing-oslog", 764 | "tracing-subscriber", 765 | "tracing-wasm", 766 | ] 767 | 768 | [[package]] 769 | name = "bevy_macro_utils" 770 | version = "0.15.0" 771 | source = "registry+https://github.com/rust-lang/crates.io-index" 772 | checksum = "3954dbb56a66a6c09c783e767f6ceca0dc0492c22e536e2aeaefb5545eac33c6" 773 | dependencies = [ 774 | "proc-macro2", 775 | "quote", 776 | "syn", 777 | "toml_edit", 778 | ] 779 | 780 | [[package]] 781 | name = "bevy_math" 782 | version = "0.15.0" 783 | source = "registry+https://github.com/rust-lang/crates.io-index" 784 | checksum = "9ae26f952598e293acac783d947b21af1809673cbeba25d76b969a56f287160b" 785 | dependencies = [ 786 | "bevy_reflect", 787 | "derive_more", 788 | "glam", 789 | "itertools", 790 | "rand", 791 | "rand_distr", 792 | "serde", 793 | "smallvec", 794 | ] 795 | 796 | [[package]] 797 | name = "bevy_mesh" 798 | version = "0.15.0" 799 | source = "registry+https://github.com/rust-lang/crates.io-index" 800 | checksum = "9c324d45ca0043a4696d7324b569de65be17066ed3a97dd42205bc28693d20b5" 801 | dependencies = [ 802 | "bevy_asset", 803 | "bevy_derive", 804 | "bevy_ecs", 805 | "bevy_image", 806 | "bevy_math", 807 | "bevy_mikktspace", 808 | "bevy_reflect", 809 | "bevy_transform", 810 | "bevy_utils", 811 | "bitflags 2.6.0", 812 | "bytemuck", 813 | "derive_more", 814 | "hexasphere", 815 | "serde", 816 | "wgpu", 817 | ] 818 | 819 | [[package]] 820 | name = "bevy_mikktspace" 821 | version = "0.15.0" 822 | source = "registry+https://github.com/rust-lang/crates.io-index" 823 | checksum = "da5ea3ad25d74ea36ea45418ad799f135d046db35c322b9704c4a8934eb65ce9" 824 | dependencies = [ 825 | "glam", 826 | ] 827 | 828 | [[package]] 829 | name = "bevy_pbr" 830 | version = "0.15.0" 831 | source = "registry+https://github.com/rust-lang/crates.io-index" 832 | checksum = "01b3bd8e646ddd3f27743b712957d2990d7361eb21044accc47c4f66711bf2cb" 833 | dependencies = [ 834 | "bevy_app", 835 | "bevy_asset", 836 | "bevy_color", 837 | "bevy_core_pipeline", 838 | "bevy_derive", 839 | "bevy_ecs", 840 | "bevy_image", 841 | "bevy_math", 842 | "bevy_reflect", 843 | "bevy_render", 844 | "bevy_transform", 845 | "bevy_utils", 846 | "bevy_window", 847 | "bitflags 2.6.0", 848 | "bytemuck", 849 | "derive_more", 850 | "fixedbitset 0.5.7", 851 | "nonmax", 852 | "radsort", 853 | "smallvec", 854 | "static_assertions", 855 | ] 856 | 857 | [[package]] 858 | name = "bevy_picking" 859 | version = "0.15.0" 860 | source = "registry+https://github.com/rust-lang/crates.io-index" 861 | checksum = "97a137ed706574dc4a01cac527eb2c44a0b0e477d5bce3afc892a9ee95ee0078" 862 | dependencies = [ 863 | "bevy_app", 864 | "bevy_asset", 865 | "bevy_derive", 866 | "bevy_ecs", 867 | "bevy_hierarchy", 868 | "bevy_input", 869 | "bevy_math", 870 | "bevy_mesh", 871 | "bevy_reflect", 872 | "bevy_render", 873 | "bevy_time", 874 | "bevy_transform", 875 | "bevy_utils", 876 | "bevy_window", 877 | "crossbeam-channel", 878 | "uuid", 879 | ] 880 | 881 | [[package]] 882 | name = "bevy_ptr" 883 | version = "0.15.0" 884 | source = "registry+https://github.com/rust-lang/crates.io-index" 885 | checksum = "2af9e30b40fb3f0a80a658419f670f2de1e743efcaca1952c43cdcc923287944" 886 | 887 | [[package]] 888 | name = "bevy_reflect" 889 | version = "0.15.0" 890 | source = "registry+https://github.com/rust-lang/crates.io-index" 891 | checksum = "52a37e2ae5ed62df4a0e3f958076effe280b39bc81fe878587350897a89332a2" 892 | dependencies = [ 893 | "assert_type_match", 894 | "bevy_ptr", 895 | "bevy_reflect_derive", 896 | "bevy_utils", 897 | "derive_more", 898 | "disqualified", 899 | "downcast-rs", 900 | "erased-serde", 901 | "glam", 902 | "petgraph", 903 | "serde", 904 | "smallvec", 905 | "smol_str", 906 | "uuid", 907 | ] 908 | 909 | [[package]] 910 | name = "bevy_reflect_derive" 911 | version = "0.15.0" 912 | source = "registry+https://github.com/rust-lang/crates.io-index" 913 | checksum = "94c683fc68c75fc26f90bb1e529590095380d7cec66f6610dbe6b93d9fd26f94" 914 | dependencies = [ 915 | "bevy_macro_utils", 916 | "proc-macro2", 917 | "quote", 918 | "syn", 919 | "uuid", 920 | ] 921 | 922 | [[package]] 923 | name = "bevy_render" 924 | version = "0.15.0" 925 | source = "registry+https://github.com/rust-lang/crates.io-index" 926 | checksum = "d188f392edf4edcae53dfda07f3ec618a7a704183ec3f2e8504657a9fb940c8a" 927 | dependencies = [ 928 | "async-channel", 929 | "bevy_app", 930 | "bevy_asset", 931 | "bevy_color", 932 | "bevy_core", 933 | "bevy_derive", 934 | "bevy_diagnostic", 935 | "bevy_ecs", 936 | "bevy_encase_derive", 937 | "bevy_hierarchy", 938 | "bevy_image", 939 | "bevy_math", 940 | "bevy_mesh", 941 | "bevy_reflect", 942 | "bevy_render_macros", 943 | "bevy_tasks", 944 | "bevy_time", 945 | "bevy_transform", 946 | "bevy_utils", 947 | "bevy_window", 948 | "bytemuck", 949 | "codespan-reporting", 950 | "derive_more", 951 | "downcast-rs", 952 | "encase", 953 | "futures-lite", 954 | "image", 955 | "js-sys", 956 | "ktx2", 957 | "naga", 958 | "naga_oil", 959 | "nonmax", 960 | "offset-allocator", 961 | "send_wrapper", 962 | "serde", 963 | "smallvec", 964 | "wasm-bindgen", 965 | "web-sys", 966 | "wgpu", 967 | ] 968 | 969 | [[package]] 970 | name = "bevy_render_macros" 971 | version = "0.15.0" 972 | source = "registry+https://github.com/rust-lang/crates.io-index" 973 | checksum = "4ab37ee2945f93e9ba8daf91cd968b4cba9c677ac51d349dd8512a107a9a5d92" 974 | dependencies = [ 975 | "bevy_macro_utils", 976 | "proc-macro2", 977 | "quote", 978 | "syn", 979 | ] 980 | 981 | [[package]] 982 | name = "bevy_scene" 983 | version = "0.15.0" 984 | source = "registry+https://github.com/rust-lang/crates.io-index" 985 | checksum = "0e883fd3c6d6e7761f1fe662e79bc7bdc7e917e73e7bfc434b1d16d2a5852119" 986 | dependencies = [ 987 | "bevy_app", 988 | "bevy_asset", 989 | "bevy_derive", 990 | "bevy_ecs", 991 | "bevy_hierarchy", 992 | "bevy_reflect", 993 | "bevy_render", 994 | "bevy_transform", 995 | "bevy_utils", 996 | "derive_more", 997 | "serde", 998 | "uuid", 999 | ] 1000 | 1001 | [[package]] 1002 | name = "bevy_sprite" 1003 | version = "0.15.0" 1004 | source = "registry+https://github.com/rust-lang/crates.io-index" 1005 | checksum = "e975abc3f3f3432d6ad86ae32de804e96d7faf59d27f32b065b5ddc1e73ed7e1" 1006 | dependencies = [ 1007 | "bevy_app", 1008 | "bevy_asset", 1009 | "bevy_color", 1010 | "bevy_core_pipeline", 1011 | "bevy_derive", 1012 | "bevy_ecs", 1013 | "bevy_image", 1014 | "bevy_math", 1015 | "bevy_picking", 1016 | "bevy_reflect", 1017 | "bevy_render", 1018 | "bevy_transform", 1019 | "bevy_utils", 1020 | "bevy_window", 1021 | "bitflags 2.6.0", 1022 | "bytemuck", 1023 | "derive_more", 1024 | "fixedbitset 0.5.7", 1025 | "guillotiere", 1026 | "nonmax", 1027 | "radsort", 1028 | "rectangle-pack", 1029 | ] 1030 | 1031 | [[package]] 1032 | name = "bevy_state" 1033 | version = "0.15.0" 1034 | source = "registry+https://github.com/rust-lang/crates.io-index" 1035 | checksum = "036ec832197eae51b8a842220d2df03591dff75b4566dcf0f81153bbcb2b593b" 1036 | dependencies = [ 1037 | "bevy_app", 1038 | "bevy_ecs", 1039 | "bevy_hierarchy", 1040 | "bevy_reflect", 1041 | "bevy_state_macros", 1042 | "bevy_utils", 1043 | ] 1044 | 1045 | [[package]] 1046 | name = "bevy_state_macros" 1047 | version = "0.15.0" 1048 | source = "registry+https://github.com/rust-lang/crates.io-index" 1049 | checksum = "2828eb6762af9eccfebb5e4a0e56dbc4bd07bf3192083fa3e8525cfdb3e95add" 1050 | dependencies = [ 1051 | "bevy_macro_utils", 1052 | "proc-macro2", 1053 | "quote", 1054 | "syn", 1055 | ] 1056 | 1057 | [[package]] 1058 | name = "bevy_tasks" 1059 | version = "0.15.0" 1060 | source = "registry+https://github.com/rust-lang/crates.io-index" 1061 | checksum = "5171c605b462b4e3249e01986505e62e3933aa27642a9f793c841814fcbbfb4f" 1062 | dependencies = [ 1063 | "async-channel", 1064 | "async-executor", 1065 | "concurrent-queue", 1066 | "futures-channel", 1067 | "futures-lite", 1068 | "pin-project", 1069 | "wasm-bindgen-futures", 1070 | ] 1071 | 1072 | [[package]] 1073 | name = "bevy_text" 1074 | version = "0.15.0" 1075 | source = "registry+https://github.com/rust-lang/crates.io-index" 1076 | checksum = "4fb000b2abad9f82f7a137fac7e0e3d2c6488cbf8dd9ddbb68f9a6b7e7af8d84" 1077 | dependencies = [ 1078 | "bevy_app", 1079 | "bevy_asset", 1080 | "bevy_color", 1081 | "bevy_derive", 1082 | "bevy_ecs", 1083 | "bevy_hierarchy", 1084 | "bevy_image", 1085 | "bevy_math", 1086 | "bevy_reflect", 1087 | "bevy_render", 1088 | "bevy_sprite", 1089 | "bevy_transform", 1090 | "bevy_utils", 1091 | "bevy_window", 1092 | "cosmic-text", 1093 | "derive_more", 1094 | "serde", 1095 | "smallvec", 1096 | "sys-locale", 1097 | "unicode-bidi", 1098 | ] 1099 | 1100 | [[package]] 1101 | name = "bevy_time" 1102 | version = "0.15.0" 1103 | source = "registry+https://github.com/rust-lang/crates.io-index" 1104 | checksum = "291b6993b899c04554fc034ebb9e0d7fde9cb9b2fb58dcd912bfa6247abdedbb" 1105 | dependencies = [ 1106 | "bevy_app", 1107 | "bevy_ecs", 1108 | "bevy_reflect", 1109 | "bevy_utils", 1110 | "crossbeam-channel", 1111 | ] 1112 | 1113 | [[package]] 1114 | name = "bevy_transform" 1115 | version = "0.15.0" 1116 | source = "registry+https://github.com/rust-lang/crates.io-index" 1117 | checksum = "dc35665624d0c728107ab0920d5ad2d352362b906a8c376eaf375ec9c751faf4" 1118 | dependencies = [ 1119 | "bevy_app", 1120 | "bevy_ecs", 1121 | "bevy_hierarchy", 1122 | "bevy_math", 1123 | "bevy_reflect", 1124 | "derive_more", 1125 | ] 1126 | 1127 | [[package]] 1128 | name = "bevy_ui" 1129 | version = "0.15.0" 1130 | source = "registry+https://github.com/rust-lang/crates.io-index" 1131 | checksum = "43da3326aa592d6f6326e31893901bf17cd6957ded4e0ea02bc54652e5624b7f" 1132 | dependencies = [ 1133 | "accesskit", 1134 | "bevy_a11y", 1135 | "bevy_app", 1136 | "bevy_asset", 1137 | "bevy_color", 1138 | "bevy_core_pipeline", 1139 | "bevy_derive", 1140 | "bevy_ecs", 1141 | "bevy_hierarchy", 1142 | "bevy_image", 1143 | "bevy_input", 1144 | "bevy_math", 1145 | "bevy_picking", 1146 | "bevy_reflect", 1147 | "bevy_render", 1148 | "bevy_sprite", 1149 | "bevy_text", 1150 | "bevy_transform", 1151 | "bevy_utils", 1152 | "bevy_window", 1153 | "bytemuck", 1154 | "derive_more", 1155 | "nonmax", 1156 | "smallvec", 1157 | "taffy", 1158 | ] 1159 | 1160 | [[package]] 1161 | name = "bevy_utils" 1162 | version = "0.15.0" 1163 | source = "registry+https://github.com/rust-lang/crates.io-index" 1164 | checksum = "a0a48bad33c385a7818b7683a16c8b5c6930eded05cd3f176264fc1f5acea473" 1165 | dependencies = [ 1166 | "ahash", 1167 | "bevy_utils_proc_macros", 1168 | "getrandom", 1169 | "hashbrown 0.14.5", 1170 | "thread_local", 1171 | "tracing", 1172 | "web-time", 1173 | ] 1174 | 1175 | [[package]] 1176 | name = "bevy_utils_proc_macros" 1177 | version = "0.15.0" 1178 | source = "registry+https://github.com/rust-lang/crates.io-index" 1179 | checksum = "3dfd8d4a525b8f04f85863e45ccad3e922d4c11ed4a8d54f7f62a40bf83fb90f" 1180 | dependencies = [ 1181 | "proc-macro2", 1182 | "quote", 1183 | "syn", 1184 | ] 1185 | 1186 | [[package]] 1187 | name = "bevy_window" 1188 | version = "0.15.0" 1189 | source = "registry+https://github.com/rust-lang/crates.io-index" 1190 | checksum = "05f3520279aae65935d6a84443202c154ead3abebf8dae906d095665162de358" 1191 | dependencies = [ 1192 | "android-activity", 1193 | "bevy_a11y", 1194 | "bevy_app", 1195 | "bevy_ecs", 1196 | "bevy_input", 1197 | "bevy_math", 1198 | "bevy_reflect", 1199 | "bevy_utils", 1200 | "raw-window-handle", 1201 | "smol_str", 1202 | ] 1203 | 1204 | [[package]] 1205 | name = "bevy_winit" 1206 | version = "0.15.0" 1207 | source = "registry+https://github.com/rust-lang/crates.io-index" 1208 | checksum = "581bb2249a82285707e0977a9a1c79a2248ede587fcb289708faa03a82ebfa7f" 1209 | dependencies = [ 1210 | "accesskit", 1211 | "accesskit_winit", 1212 | "approx", 1213 | "bevy_a11y", 1214 | "bevy_app", 1215 | "bevy_asset", 1216 | "bevy_derive", 1217 | "bevy_ecs", 1218 | "bevy_hierarchy", 1219 | "bevy_image", 1220 | "bevy_input", 1221 | "bevy_log", 1222 | "bevy_math", 1223 | "bevy_reflect", 1224 | "bevy_tasks", 1225 | "bevy_utils", 1226 | "bevy_window", 1227 | "bytemuck", 1228 | "cfg-if", 1229 | "crossbeam-channel", 1230 | "raw-window-handle", 1231 | "wasm-bindgen", 1232 | "web-sys", 1233 | "wgpu-types", 1234 | "winit", 1235 | ] 1236 | 1237 | [[package]] 1238 | name = "bindgen" 1239 | version = "0.70.1" 1240 | source = "registry+https://github.com/rust-lang/crates.io-index" 1241 | checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" 1242 | dependencies = [ 1243 | "bitflags 2.6.0", 1244 | "cexpr", 1245 | "clang-sys", 1246 | "itertools", 1247 | "log", 1248 | "prettyplease", 1249 | "proc-macro2", 1250 | "quote", 1251 | "regex", 1252 | "rustc-hash", 1253 | "shlex", 1254 | "syn", 1255 | ] 1256 | 1257 | [[package]] 1258 | name = "bit-set" 1259 | version = "0.5.3" 1260 | source = "registry+https://github.com/rust-lang/crates.io-index" 1261 | checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" 1262 | dependencies = [ 1263 | "bit-vec 0.6.3", 1264 | ] 1265 | 1266 | [[package]] 1267 | name = "bit-set" 1268 | version = "0.8.0" 1269 | source = "registry+https://github.com/rust-lang/crates.io-index" 1270 | checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" 1271 | dependencies = [ 1272 | "bit-vec 0.8.0", 1273 | ] 1274 | 1275 | [[package]] 1276 | name = "bit-vec" 1277 | version = "0.6.3" 1278 | source = "registry+https://github.com/rust-lang/crates.io-index" 1279 | checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" 1280 | 1281 | [[package]] 1282 | name = "bit-vec" 1283 | version = "0.8.0" 1284 | source = "registry+https://github.com/rust-lang/crates.io-index" 1285 | checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" 1286 | 1287 | [[package]] 1288 | name = "bitflags" 1289 | version = "1.3.2" 1290 | source = "registry+https://github.com/rust-lang/crates.io-index" 1291 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 1292 | 1293 | [[package]] 1294 | name = "bitflags" 1295 | version = "2.6.0" 1296 | source = "registry+https://github.com/rust-lang/crates.io-index" 1297 | checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" 1298 | dependencies = [ 1299 | "serde", 1300 | ] 1301 | 1302 | [[package]] 1303 | name = "blake3" 1304 | version = "1.5.5" 1305 | source = "registry+https://github.com/rust-lang/crates.io-index" 1306 | checksum = "b8ee0c1824c4dea5b5f81736aff91bae041d2c07ee1192bec91054e10e3e601e" 1307 | dependencies = [ 1308 | "arrayref", 1309 | "arrayvec", 1310 | "cc", 1311 | "cfg-if", 1312 | "constant_time_eq", 1313 | ] 1314 | 1315 | [[package]] 1316 | name = "block" 1317 | version = "0.1.6" 1318 | source = "registry+https://github.com/rust-lang/crates.io-index" 1319 | checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" 1320 | 1321 | [[package]] 1322 | name = "block2" 1323 | version = "0.5.1" 1324 | source = "registry+https://github.com/rust-lang/crates.io-index" 1325 | checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" 1326 | dependencies = [ 1327 | "objc2", 1328 | ] 1329 | 1330 | [[package]] 1331 | name = "blocking" 1332 | version = "1.6.1" 1333 | source = "registry+https://github.com/rust-lang/crates.io-index" 1334 | checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" 1335 | dependencies = [ 1336 | "async-channel", 1337 | "async-task", 1338 | "futures-io", 1339 | "futures-lite", 1340 | "piper", 1341 | ] 1342 | 1343 | [[package]] 1344 | name = "bumpalo" 1345 | version = "3.16.0" 1346 | source = "registry+https://github.com/rust-lang/crates.io-index" 1347 | checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" 1348 | 1349 | [[package]] 1350 | name = "bytemuck" 1351 | version = "1.20.0" 1352 | source = "registry+https://github.com/rust-lang/crates.io-index" 1353 | checksum = "8b37c88a63ffd85d15b406896cc343916d7cf57838a847b3a6f2ca5d39a5695a" 1354 | dependencies = [ 1355 | "bytemuck_derive", 1356 | ] 1357 | 1358 | [[package]] 1359 | name = "bytemuck_derive" 1360 | version = "1.8.0" 1361 | source = "registry+https://github.com/rust-lang/crates.io-index" 1362 | checksum = "bcfcc3cd946cb52f0bbfdbbcfa2f4e24f75ebb6c0e1002f7c25904fada18b9ec" 1363 | dependencies = [ 1364 | "proc-macro2", 1365 | "quote", 1366 | "syn", 1367 | ] 1368 | 1369 | [[package]] 1370 | name = "byteorder" 1371 | version = "1.5.0" 1372 | source = "registry+https://github.com/rust-lang/crates.io-index" 1373 | checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 1374 | 1375 | [[package]] 1376 | name = "byteorder-lite" 1377 | version = "0.1.0" 1378 | source = "registry+https://github.com/rust-lang/crates.io-index" 1379 | checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" 1380 | 1381 | [[package]] 1382 | name = "bytes" 1383 | version = "1.9.0" 1384 | source = "registry+https://github.com/rust-lang/crates.io-index" 1385 | checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" 1386 | 1387 | [[package]] 1388 | name = "calloop" 1389 | version = "0.13.0" 1390 | source = "registry+https://github.com/rust-lang/crates.io-index" 1391 | checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec" 1392 | dependencies = [ 1393 | "bitflags 2.6.0", 1394 | "log", 1395 | "polling", 1396 | "rustix", 1397 | "slab", 1398 | "thiserror", 1399 | ] 1400 | 1401 | [[package]] 1402 | name = "cc" 1403 | version = "1.2.2" 1404 | source = "registry+https://github.com/rust-lang/crates.io-index" 1405 | checksum = "f34d93e62b03caf570cccc334cbc6c2fceca82f39211051345108adcba3eebdc" 1406 | dependencies = [ 1407 | "jobserver", 1408 | "libc", 1409 | "shlex", 1410 | ] 1411 | 1412 | [[package]] 1413 | name = "cesu8" 1414 | version = "1.1.0" 1415 | source = "registry+https://github.com/rust-lang/crates.io-index" 1416 | checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" 1417 | 1418 | [[package]] 1419 | name = "cexpr" 1420 | version = "0.6.0" 1421 | source = "registry+https://github.com/rust-lang/crates.io-index" 1422 | checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" 1423 | dependencies = [ 1424 | "nom", 1425 | ] 1426 | 1427 | [[package]] 1428 | name = "cfg-if" 1429 | version = "1.0.0" 1430 | source = "registry+https://github.com/rust-lang/crates.io-index" 1431 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 1432 | 1433 | [[package]] 1434 | name = "cfg_aliases" 1435 | version = "0.1.1" 1436 | source = "registry+https://github.com/rust-lang/crates.io-index" 1437 | checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" 1438 | 1439 | [[package]] 1440 | name = "cfg_aliases" 1441 | version = "0.2.1" 1442 | source = "registry+https://github.com/rust-lang/crates.io-index" 1443 | checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" 1444 | 1445 | [[package]] 1446 | name = "clang-sys" 1447 | version = "1.8.1" 1448 | source = "registry+https://github.com/rust-lang/crates.io-index" 1449 | checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" 1450 | dependencies = [ 1451 | "glob", 1452 | "libc", 1453 | "libloading", 1454 | ] 1455 | 1456 | [[package]] 1457 | name = "codespan-reporting" 1458 | version = "0.11.1" 1459 | source = "registry+https://github.com/rust-lang/crates.io-index" 1460 | checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" 1461 | dependencies = [ 1462 | "termcolor", 1463 | "unicode-width", 1464 | ] 1465 | 1466 | [[package]] 1467 | name = "combine" 1468 | version = "4.6.7" 1469 | source = "registry+https://github.com/rust-lang/crates.io-index" 1470 | checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" 1471 | dependencies = [ 1472 | "bytes", 1473 | "memchr", 1474 | ] 1475 | 1476 | [[package]] 1477 | name = "concurrent-queue" 1478 | version = "2.5.0" 1479 | source = "registry+https://github.com/rust-lang/crates.io-index" 1480 | checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" 1481 | dependencies = [ 1482 | "crossbeam-utils", 1483 | ] 1484 | 1485 | [[package]] 1486 | name = "console_error_panic_hook" 1487 | version = "0.1.7" 1488 | source = "registry+https://github.com/rust-lang/crates.io-index" 1489 | checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" 1490 | dependencies = [ 1491 | "cfg-if", 1492 | "wasm-bindgen", 1493 | ] 1494 | 1495 | [[package]] 1496 | name = "const-fnv1a-hash" 1497 | version = "1.1.0" 1498 | source = "registry+https://github.com/rust-lang/crates.io-index" 1499 | checksum = "32b13ea120a812beba79e34316b3942a857c86ec1593cb34f27bb28272ce2cca" 1500 | 1501 | [[package]] 1502 | name = "const-random" 1503 | version = "0.1.18" 1504 | source = "registry+https://github.com/rust-lang/crates.io-index" 1505 | checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" 1506 | dependencies = [ 1507 | "const-random-macro", 1508 | ] 1509 | 1510 | [[package]] 1511 | name = "const-random-macro" 1512 | version = "0.1.16" 1513 | source = "registry+https://github.com/rust-lang/crates.io-index" 1514 | checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" 1515 | dependencies = [ 1516 | "getrandom", 1517 | "once_cell", 1518 | "tiny-keccak", 1519 | ] 1520 | 1521 | [[package]] 1522 | name = "const_panic" 1523 | version = "0.2.10" 1524 | source = "registry+https://github.com/rust-lang/crates.io-index" 1525 | checksum = "013b6c2c3a14d678f38cd23994b02da3a1a1b6a5d1eedddfe63a5a5f11b13a81" 1526 | 1527 | [[package]] 1528 | name = "const_soft_float" 1529 | version = "0.1.4" 1530 | source = "registry+https://github.com/rust-lang/crates.io-index" 1531 | checksum = "87ca1caa64ef4ed453e68bb3db612e51cf1b2f5b871337f0fcab1c8f87cc3dff" 1532 | 1533 | [[package]] 1534 | name = "constant_time_eq" 1535 | version = "0.3.1" 1536 | source = "registry+https://github.com/rust-lang/crates.io-index" 1537 | checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" 1538 | 1539 | [[package]] 1540 | name = "constgebra" 1541 | version = "0.1.4" 1542 | source = "registry+https://github.com/rust-lang/crates.io-index" 1543 | checksum = "e1aaf9b65849a68662ac6c0810c8893a765c960b907dd7cfab9c4a50bf764fbc" 1544 | dependencies = [ 1545 | "const_soft_float", 1546 | ] 1547 | 1548 | [[package]] 1549 | name = "core-foundation" 1550 | version = "0.9.4" 1551 | source = "registry+https://github.com/rust-lang/crates.io-index" 1552 | checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" 1553 | dependencies = [ 1554 | "core-foundation-sys", 1555 | "libc", 1556 | ] 1557 | 1558 | [[package]] 1559 | name = "core-foundation" 1560 | version = "0.10.0" 1561 | source = "registry+https://github.com/rust-lang/crates.io-index" 1562 | checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" 1563 | dependencies = [ 1564 | "core-foundation-sys", 1565 | "libc", 1566 | ] 1567 | 1568 | [[package]] 1569 | name = "core-foundation-sys" 1570 | version = "0.8.7" 1571 | source = "registry+https://github.com/rust-lang/crates.io-index" 1572 | checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 1573 | 1574 | [[package]] 1575 | name = "core-graphics" 1576 | version = "0.23.2" 1577 | source = "registry+https://github.com/rust-lang/crates.io-index" 1578 | checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" 1579 | dependencies = [ 1580 | "bitflags 1.3.2", 1581 | "core-foundation 0.9.4", 1582 | "core-graphics-types", 1583 | "foreign-types", 1584 | "libc", 1585 | ] 1586 | 1587 | [[package]] 1588 | name = "core-graphics-types" 1589 | version = "0.1.3" 1590 | source = "registry+https://github.com/rust-lang/crates.io-index" 1591 | checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" 1592 | dependencies = [ 1593 | "bitflags 1.3.2", 1594 | "core-foundation 0.9.4", 1595 | "libc", 1596 | ] 1597 | 1598 | [[package]] 1599 | name = "coreaudio-rs" 1600 | version = "0.11.3" 1601 | source = "registry+https://github.com/rust-lang/crates.io-index" 1602 | checksum = "321077172d79c662f64f5071a03120748d5bb652f5231570141be24cfcd2bace" 1603 | dependencies = [ 1604 | "bitflags 1.3.2", 1605 | "core-foundation-sys", 1606 | "coreaudio-sys", 1607 | ] 1608 | 1609 | [[package]] 1610 | name = "coreaudio-sys" 1611 | version = "0.2.16" 1612 | source = "registry+https://github.com/rust-lang/crates.io-index" 1613 | checksum = "2ce857aa0b77d77287acc1ac3e37a05a8c95a2af3647d23b15f263bdaeb7562b" 1614 | dependencies = [ 1615 | "bindgen", 1616 | ] 1617 | 1618 | [[package]] 1619 | name = "cosmic-text" 1620 | version = "0.12.1" 1621 | source = "registry+https://github.com/rust-lang/crates.io-index" 1622 | checksum = "59fd57d82eb4bfe7ffa9b1cec0c05e2fd378155b47f255a67983cb4afe0e80c2" 1623 | dependencies = [ 1624 | "bitflags 2.6.0", 1625 | "fontdb", 1626 | "log", 1627 | "rangemap", 1628 | "rayon", 1629 | "rustc-hash", 1630 | "rustybuzz", 1631 | "self_cell", 1632 | "swash", 1633 | "sys-locale", 1634 | "ttf-parser 0.21.1", 1635 | "unicode-bidi", 1636 | "unicode-linebreak", 1637 | "unicode-script", 1638 | "unicode-segmentation", 1639 | ] 1640 | 1641 | [[package]] 1642 | name = "cpal" 1643 | version = "0.15.3" 1644 | source = "registry+https://github.com/rust-lang/crates.io-index" 1645 | checksum = "873dab07c8f743075e57f524c583985fbaf745602acbe916a01539364369a779" 1646 | dependencies = [ 1647 | "alsa", 1648 | "core-foundation-sys", 1649 | "coreaudio-rs", 1650 | "dasp_sample", 1651 | "jni", 1652 | "js-sys", 1653 | "libc", 1654 | "mach2", 1655 | "ndk 0.8.0", 1656 | "ndk-context", 1657 | "oboe", 1658 | "wasm-bindgen", 1659 | "wasm-bindgen-futures", 1660 | "web-sys", 1661 | "windows 0.54.0", 1662 | ] 1663 | 1664 | [[package]] 1665 | name = "crc32fast" 1666 | version = "1.4.2" 1667 | source = "registry+https://github.com/rust-lang/crates.io-index" 1668 | checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" 1669 | dependencies = [ 1670 | "cfg-if", 1671 | ] 1672 | 1673 | [[package]] 1674 | name = "crossbeam-channel" 1675 | version = "0.5.13" 1676 | source = "registry+https://github.com/rust-lang/crates.io-index" 1677 | checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" 1678 | dependencies = [ 1679 | "crossbeam-utils", 1680 | ] 1681 | 1682 | [[package]] 1683 | name = "crossbeam-deque" 1684 | version = "0.8.5" 1685 | source = "registry+https://github.com/rust-lang/crates.io-index" 1686 | checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" 1687 | dependencies = [ 1688 | "crossbeam-epoch", 1689 | "crossbeam-utils", 1690 | ] 1691 | 1692 | [[package]] 1693 | name = "crossbeam-epoch" 1694 | version = "0.9.18" 1695 | source = "registry+https://github.com/rust-lang/crates.io-index" 1696 | checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" 1697 | dependencies = [ 1698 | "crossbeam-utils", 1699 | ] 1700 | 1701 | [[package]] 1702 | name = "crossbeam-utils" 1703 | version = "0.8.20" 1704 | source = "registry+https://github.com/rust-lang/crates.io-index" 1705 | checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" 1706 | 1707 | [[package]] 1708 | name = "crunchy" 1709 | version = "0.2.2" 1710 | source = "registry+https://github.com/rust-lang/crates.io-index" 1711 | checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" 1712 | 1713 | [[package]] 1714 | name = "ctrlc" 1715 | version = "3.4.5" 1716 | source = "registry+https://github.com/rust-lang/crates.io-index" 1717 | checksum = "90eeab0aa92f3f9b4e87f258c72b139c207d251f9cbc1080a0086b86a8870dd3" 1718 | dependencies = [ 1719 | "nix", 1720 | "windows-sys 0.59.0", 1721 | ] 1722 | 1723 | [[package]] 1724 | name = "cursor-icon" 1725 | version = "1.1.0" 1726 | source = "registry+https://github.com/rust-lang/crates.io-index" 1727 | checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991" 1728 | 1729 | [[package]] 1730 | name = "dasp_sample" 1731 | version = "0.11.0" 1732 | source = "registry+https://github.com/rust-lang/crates.io-index" 1733 | checksum = "0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f" 1734 | 1735 | [[package]] 1736 | name = "data-encoding" 1737 | version = "2.6.0" 1738 | source = "registry+https://github.com/rust-lang/crates.io-index" 1739 | checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" 1740 | 1741 | [[package]] 1742 | name = "derive_more" 1743 | version = "1.0.0" 1744 | source = "registry+https://github.com/rust-lang/crates.io-index" 1745 | checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" 1746 | dependencies = [ 1747 | "derive_more-impl", 1748 | ] 1749 | 1750 | [[package]] 1751 | name = "derive_more-impl" 1752 | version = "1.0.0" 1753 | source = "registry+https://github.com/rust-lang/crates.io-index" 1754 | checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" 1755 | dependencies = [ 1756 | "proc-macro2", 1757 | "quote", 1758 | "syn", 1759 | "unicode-xid", 1760 | ] 1761 | 1762 | [[package]] 1763 | name = "dispatch" 1764 | version = "0.2.0" 1765 | source = "registry+https://github.com/rust-lang/crates.io-index" 1766 | checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" 1767 | 1768 | [[package]] 1769 | name = "disqualified" 1770 | version = "1.0.0" 1771 | source = "registry+https://github.com/rust-lang/crates.io-index" 1772 | checksum = "c9c272297e804878a2a4b707cfcfc6d2328b5bb936944613b4fdf2b9269afdfd" 1773 | 1774 | [[package]] 1775 | name = "dlib" 1776 | version = "0.5.2" 1777 | source = "registry+https://github.com/rust-lang/crates.io-index" 1778 | checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" 1779 | dependencies = [ 1780 | "libloading", 1781 | ] 1782 | 1783 | [[package]] 1784 | name = "document-features" 1785 | version = "0.2.10" 1786 | source = "registry+https://github.com/rust-lang/crates.io-index" 1787 | checksum = "cb6969eaabd2421f8a2775cfd2471a2b634372b4a25d41e3bd647b79912850a0" 1788 | dependencies = [ 1789 | "litrs", 1790 | ] 1791 | 1792 | [[package]] 1793 | name = "downcast-rs" 1794 | version = "1.2.1" 1795 | source = "registry+https://github.com/rust-lang/crates.io-index" 1796 | checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" 1797 | 1798 | [[package]] 1799 | name = "dpi" 1800 | version = "0.1.1" 1801 | source = "registry+https://github.com/rust-lang/crates.io-index" 1802 | checksum = "f25c0e292a7ca6d6498557ff1df68f32c99850012b6ea401cf8daf771f22ff53" 1803 | 1804 | [[package]] 1805 | name = "either" 1806 | version = "1.13.0" 1807 | source = "registry+https://github.com/rust-lang/crates.io-index" 1808 | checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" 1809 | 1810 | [[package]] 1811 | name = "encase" 1812 | version = "0.10.0" 1813 | source = "registry+https://github.com/rust-lang/crates.io-index" 1814 | checksum = "b0a05902cf601ed11d564128448097b98ebe3c6574bd7b6a653a3d56d54aa020" 1815 | dependencies = [ 1816 | "const_panic", 1817 | "encase_derive", 1818 | "glam", 1819 | "thiserror", 1820 | ] 1821 | 1822 | [[package]] 1823 | name = "encase_derive" 1824 | version = "0.10.0" 1825 | source = "registry+https://github.com/rust-lang/crates.io-index" 1826 | checksum = "181d475b694e2dd56ae919ce7699d344d1fd259292d590c723a50d1189a2ea85" 1827 | dependencies = [ 1828 | "encase_derive_impl", 1829 | ] 1830 | 1831 | [[package]] 1832 | name = "encase_derive_impl" 1833 | version = "0.10.0" 1834 | source = "registry+https://github.com/rust-lang/crates.io-index" 1835 | checksum = "f97b51c5cc57ef7c5f7a0c57c250251c49ee4c28f819f87ac32f4aceabc36792" 1836 | dependencies = [ 1837 | "proc-macro2", 1838 | "quote", 1839 | "syn", 1840 | ] 1841 | 1842 | [[package]] 1843 | name = "equivalent" 1844 | version = "1.0.1" 1845 | source = "registry+https://github.com/rust-lang/crates.io-index" 1846 | checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" 1847 | 1848 | [[package]] 1849 | name = "erased-serde" 1850 | version = "0.4.5" 1851 | source = "registry+https://github.com/rust-lang/crates.io-index" 1852 | checksum = "24e2389d65ab4fab27dc2a5de7b191e1f6617d1f1c8855c0dc569c94a4cbb18d" 1853 | dependencies = [ 1854 | "serde", 1855 | "typeid", 1856 | ] 1857 | 1858 | [[package]] 1859 | name = "errno" 1860 | version = "0.3.10" 1861 | source = "registry+https://github.com/rust-lang/crates.io-index" 1862 | checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" 1863 | dependencies = [ 1864 | "libc", 1865 | "windows-sys 0.59.0", 1866 | ] 1867 | 1868 | [[package]] 1869 | name = "euclid" 1870 | version = "0.22.11" 1871 | source = "registry+https://github.com/rust-lang/crates.io-index" 1872 | checksum = "ad9cdb4b747e485a12abb0e6566612956c7a1bafa3bdb8d682c5b6d403589e48" 1873 | dependencies = [ 1874 | "num-traits", 1875 | ] 1876 | 1877 | [[package]] 1878 | name = "event-listener" 1879 | version = "2.5.3" 1880 | source = "registry+https://github.com/rust-lang/crates.io-index" 1881 | checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" 1882 | 1883 | [[package]] 1884 | name = "event-listener" 1885 | version = "5.3.1" 1886 | source = "registry+https://github.com/rust-lang/crates.io-index" 1887 | checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" 1888 | dependencies = [ 1889 | "concurrent-queue", 1890 | "parking", 1891 | "pin-project-lite", 1892 | ] 1893 | 1894 | [[package]] 1895 | name = "event-listener-strategy" 1896 | version = "0.5.2" 1897 | source = "registry+https://github.com/rust-lang/crates.io-index" 1898 | checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" 1899 | dependencies = [ 1900 | "event-listener 5.3.1", 1901 | "pin-project-lite", 1902 | ] 1903 | 1904 | [[package]] 1905 | name = "fastrand" 1906 | version = "2.2.0" 1907 | source = "registry+https://github.com/rust-lang/crates.io-index" 1908 | checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4" 1909 | 1910 | [[package]] 1911 | name = "fdeflate" 1912 | version = "0.3.6" 1913 | source = "registry+https://github.com/rust-lang/crates.io-index" 1914 | checksum = "07c6f4c64c1d33a3111c4466f7365ebdcc37c5bd1ea0d62aae2e3d722aacbedb" 1915 | dependencies = [ 1916 | "simd-adler32", 1917 | ] 1918 | 1919 | [[package]] 1920 | name = "file-id" 1921 | version = "0.2.2" 1922 | source = "registry+https://github.com/rust-lang/crates.io-index" 1923 | checksum = "6bc904b9bbefcadbd8e3a9fb0d464a9b979de6324c03b3c663e8994f46a5be36" 1924 | dependencies = [ 1925 | "windows-sys 0.52.0", 1926 | ] 1927 | 1928 | [[package]] 1929 | name = "filetime" 1930 | version = "0.2.25" 1931 | source = "registry+https://github.com/rust-lang/crates.io-index" 1932 | checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" 1933 | dependencies = [ 1934 | "cfg-if", 1935 | "libc", 1936 | "libredox", 1937 | "windows-sys 0.59.0", 1938 | ] 1939 | 1940 | [[package]] 1941 | name = "fixedbitset" 1942 | version = "0.4.2" 1943 | source = "registry+https://github.com/rust-lang/crates.io-index" 1944 | checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" 1945 | 1946 | [[package]] 1947 | name = "fixedbitset" 1948 | version = "0.5.7" 1949 | source = "registry+https://github.com/rust-lang/crates.io-index" 1950 | checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" 1951 | 1952 | [[package]] 1953 | name = "flate2" 1954 | version = "1.0.35" 1955 | source = "registry+https://github.com/rust-lang/crates.io-index" 1956 | checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" 1957 | dependencies = [ 1958 | "crc32fast", 1959 | "miniz_oxide", 1960 | ] 1961 | 1962 | [[package]] 1963 | name = "fnv" 1964 | version = "1.0.7" 1965 | source = "registry+https://github.com/rust-lang/crates.io-index" 1966 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 1967 | 1968 | [[package]] 1969 | name = "foldhash" 1970 | version = "0.1.3" 1971 | source = "registry+https://github.com/rust-lang/crates.io-index" 1972 | checksum = "f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2" 1973 | 1974 | [[package]] 1975 | name = "font-types" 1976 | version = "0.7.3" 1977 | source = "registry+https://github.com/rust-lang/crates.io-index" 1978 | checksum = "b3971f9a5ca983419cdc386941ba3b9e1feba01a0ab888adf78739feb2798492" 1979 | dependencies = [ 1980 | "bytemuck", 1981 | ] 1982 | 1983 | [[package]] 1984 | name = "fontconfig-parser" 1985 | version = "0.5.7" 1986 | source = "registry+https://github.com/rust-lang/crates.io-index" 1987 | checksum = "c1fcfcd44ca6e90c921fee9fa665d530b21ef1327a4c1a6c5250ea44b776ada7" 1988 | dependencies = [ 1989 | "roxmltree", 1990 | ] 1991 | 1992 | [[package]] 1993 | name = "fontdb" 1994 | version = "0.16.2" 1995 | source = "registry+https://github.com/rust-lang/crates.io-index" 1996 | checksum = "b0299020c3ef3f60f526a4f64ab4a3d4ce116b1acbf24cdd22da0068e5d81dc3" 1997 | dependencies = [ 1998 | "fontconfig-parser", 1999 | "log", 2000 | "memmap2", 2001 | "slotmap", 2002 | "tinyvec", 2003 | "ttf-parser 0.20.0", 2004 | ] 2005 | 2006 | [[package]] 2007 | name = "foreign-types" 2008 | version = "0.5.0" 2009 | source = "registry+https://github.com/rust-lang/crates.io-index" 2010 | checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" 2011 | dependencies = [ 2012 | "foreign-types-macros", 2013 | "foreign-types-shared", 2014 | ] 2015 | 2016 | [[package]] 2017 | name = "foreign-types-macros" 2018 | version = "0.2.3" 2019 | source = "registry+https://github.com/rust-lang/crates.io-index" 2020 | checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" 2021 | dependencies = [ 2022 | "proc-macro2", 2023 | "quote", 2024 | "syn", 2025 | ] 2026 | 2027 | [[package]] 2028 | name = "foreign-types-shared" 2029 | version = "0.3.1" 2030 | source = "registry+https://github.com/rust-lang/crates.io-index" 2031 | checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" 2032 | 2033 | [[package]] 2034 | name = "fsevent-sys" 2035 | version = "4.1.0" 2036 | source = "registry+https://github.com/rust-lang/crates.io-index" 2037 | checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2" 2038 | dependencies = [ 2039 | "libc", 2040 | ] 2041 | 2042 | [[package]] 2043 | name = "futures-channel" 2044 | version = "0.3.31" 2045 | source = "registry+https://github.com/rust-lang/crates.io-index" 2046 | checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" 2047 | dependencies = [ 2048 | "futures-core", 2049 | ] 2050 | 2051 | [[package]] 2052 | name = "futures-core" 2053 | version = "0.3.31" 2054 | source = "registry+https://github.com/rust-lang/crates.io-index" 2055 | checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" 2056 | 2057 | [[package]] 2058 | name = "futures-io" 2059 | version = "0.3.31" 2060 | source = "registry+https://github.com/rust-lang/crates.io-index" 2061 | checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" 2062 | 2063 | [[package]] 2064 | name = "futures-lite" 2065 | version = "2.5.0" 2066 | source = "registry+https://github.com/rust-lang/crates.io-index" 2067 | checksum = "cef40d21ae2c515b51041df9ed313ed21e572df340ea58a922a0aefe7e8891a1" 2068 | dependencies = [ 2069 | "fastrand", 2070 | "futures-core", 2071 | "futures-io", 2072 | "parking", 2073 | "pin-project-lite", 2074 | ] 2075 | 2076 | [[package]] 2077 | name = "gethostname" 2078 | version = "0.4.3" 2079 | source = "registry+https://github.com/rust-lang/crates.io-index" 2080 | checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818" 2081 | dependencies = [ 2082 | "libc", 2083 | "windows-targets 0.48.5", 2084 | ] 2085 | 2086 | [[package]] 2087 | name = "getrandom" 2088 | version = "0.2.15" 2089 | source = "registry+https://github.com/rust-lang/crates.io-index" 2090 | checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" 2091 | dependencies = [ 2092 | "cfg-if", 2093 | "js-sys", 2094 | "libc", 2095 | "wasi", 2096 | "wasm-bindgen", 2097 | ] 2098 | 2099 | [[package]] 2100 | name = "gilrs" 2101 | version = "0.11.0" 2102 | source = "registry+https://github.com/rust-lang/crates.io-index" 2103 | checksum = "bbb2c998745a3c1ac90f64f4f7b3a54219fd3612d7705e7798212935641ed18f" 2104 | dependencies = [ 2105 | "fnv", 2106 | "gilrs-core", 2107 | "log", 2108 | "uuid", 2109 | "vec_map", 2110 | ] 2111 | 2112 | [[package]] 2113 | name = "gilrs-core" 2114 | version = "0.6.0" 2115 | source = "registry+https://github.com/rust-lang/crates.io-index" 2116 | checksum = "495af945e45efd6386227613cd9fb7bd7c43d3c095040e30c5304c489e6abed5" 2117 | dependencies = [ 2118 | "core-foundation 0.10.0", 2119 | "inotify 0.11.0", 2120 | "io-kit-sys", 2121 | "js-sys", 2122 | "libc", 2123 | "libudev-sys", 2124 | "log", 2125 | "nix", 2126 | "uuid", 2127 | "vec_map", 2128 | "wasm-bindgen", 2129 | "web-sys", 2130 | "windows 0.58.0", 2131 | ] 2132 | 2133 | [[package]] 2134 | name = "gl_generator" 2135 | version = "0.14.0" 2136 | source = "registry+https://github.com/rust-lang/crates.io-index" 2137 | checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d" 2138 | dependencies = [ 2139 | "khronos_api", 2140 | "log", 2141 | "xml-rs", 2142 | ] 2143 | 2144 | [[package]] 2145 | name = "glam" 2146 | version = "0.29.2" 2147 | source = "registry+https://github.com/rust-lang/crates.io-index" 2148 | checksum = "dc46dd3ec48fdd8e693a98d2b8bafae273a2d54c1de02a2a7e3d57d501f39677" 2149 | dependencies = [ 2150 | "bytemuck", 2151 | "rand", 2152 | "serde", 2153 | ] 2154 | 2155 | [[package]] 2156 | name = "glob" 2157 | version = "0.3.1" 2158 | source = "registry+https://github.com/rust-lang/crates.io-index" 2159 | checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" 2160 | 2161 | [[package]] 2162 | name = "glow" 2163 | version = "0.14.2" 2164 | source = "registry+https://github.com/rust-lang/crates.io-index" 2165 | checksum = "d51fa363f025f5c111e03f13eda21162faeacb6911fe8caa0c0349f9cf0c4483" 2166 | dependencies = [ 2167 | "js-sys", 2168 | "slotmap", 2169 | "wasm-bindgen", 2170 | "web-sys", 2171 | ] 2172 | 2173 | [[package]] 2174 | name = "gltf" 2175 | version = "1.4.1" 2176 | source = "registry+https://github.com/rust-lang/crates.io-index" 2177 | checksum = "e3ce1918195723ce6ac74e80542c5a96a40c2b26162c1957a5cd70799b8cacf7" 2178 | dependencies = [ 2179 | "byteorder", 2180 | "gltf-json", 2181 | "lazy_static", 2182 | "serde_json", 2183 | ] 2184 | 2185 | [[package]] 2186 | name = "gltf-derive" 2187 | version = "1.4.1" 2188 | source = "registry+https://github.com/rust-lang/crates.io-index" 2189 | checksum = "14070e711538afba5d6c807edb74bcb84e5dbb9211a3bf5dea0dfab5b24f4c51" 2190 | dependencies = [ 2191 | "inflections", 2192 | "proc-macro2", 2193 | "quote", 2194 | "syn", 2195 | ] 2196 | 2197 | [[package]] 2198 | name = "gltf-json" 2199 | version = "1.4.1" 2200 | source = "registry+https://github.com/rust-lang/crates.io-index" 2201 | checksum = "e6176f9d60a7eab0a877e8e96548605dedbde9190a7ae1e80bbcc1c9af03ab14" 2202 | dependencies = [ 2203 | "gltf-derive", 2204 | "serde", 2205 | "serde_derive", 2206 | "serde_json", 2207 | ] 2208 | 2209 | [[package]] 2210 | name = "glutin_wgl_sys" 2211 | version = "0.6.0" 2212 | source = "registry+https://github.com/rust-lang/crates.io-index" 2213 | checksum = "0a4e1951bbd9434a81aa496fe59ccc2235af3820d27b85f9314e279609211e2c" 2214 | dependencies = [ 2215 | "gl_generator", 2216 | ] 2217 | 2218 | [[package]] 2219 | name = "gpu-alloc" 2220 | version = "0.6.0" 2221 | source = "registry+https://github.com/rust-lang/crates.io-index" 2222 | checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171" 2223 | dependencies = [ 2224 | "bitflags 2.6.0", 2225 | "gpu-alloc-types", 2226 | ] 2227 | 2228 | [[package]] 2229 | name = "gpu-alloc-types" 2230 | version = "0.3.0" 2231 | source = "registry+https://github.com/rust-lang/crates.io-index" 2232 | checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4" 2233 | dependencies = [ 2234 | "bitflags 2.6.0", 2235 | ] 2236 | 2237 | [[package]] 2238 | name = "gpu-allocator" 2239 | version = "0.27.0" 2240 | source = "registry+https://github.com/rust-lang/crates.io-index" 2241 | checksum = "c151a2a5ef800297b4e79efa4f4bec035c5f51d5ae587287c9b952bdf734cacd" 2242 | dependencies = [ 2243 | "log", 2244 | "presser", 2245 | "thiserror", 2246 | "windows 0.58.0", 2247 | ] 2248 | 2249 | [[package]] 2250 | name = "gpu-descriptor" 2251 | version = "0.3.0" 2252 | source = "registry+https://github.com/rust-lang/crates.io-index" 2253 | checksum = "9c08c1f623a8d0b722b8b99f821eb0ba672a1618f0d3b16ddbee1cedd2dd8557" 2254 | dependencies = [ 2255 | "bitflags 2.6.0", 2256 | "gpu-descriptor-types", 2257 | "hashbrown 0.14.5", 2258 | ] 2259 | 2260 | [[package]] 2261 | name = "gpu-descriptor-types" 2262 | version = "0.2.0" 2263 | source = "registry+https://github.com/rust-lang/crates.io-index" 2264 | checksum = "fdf242682df893b86f33a73828fb09ca4b2d3bb6cc95249707fc684d27484b91" 2265 | dependencies = [ 2266 | "bitflags 2.6.0", 2267 | ] 2268 | 2269 | [[package]] 2270 | name = "grid" 2271 | version = "0.14.0" 2272 | source = "registry+https://github.com/rust-lang/crates.io-index" 2273 | checksum = "be136d9dacc2a13cc70bb6c8f902b414fb2641f8db1314637c6b7933411a8f82" 2274 | 2275 | [[package]] 2276 | name = "guillotiere" 2277 | version = "0.6.2" 2278 | source = "registry+https://github.com/rust-lang/crates.io-index" 2279 | checksum = "b62d5865c036cb1393e23c50693df631d3f5d7bcca4c04fe4cc0fd592e74a782" 2280 | dependencies = [ 2281 | "euclid", 2282 | "svg_fmt", 2283 | ] 2284 | 2285 | [[package]] 2286 | name = "hashbrown" 2287 | version = "0.14.5" 2288 | source = "registry+https://github.com/rust-lang/crates.io-index" 2289 | checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" 2290 | dependencies = [ 2291 | "ahash", 2292 | "allocator-api2", 2293 | "serde", 2294 | ] 2295 | 2296 | [[package]] 2297 | name = "hashbrown" 2298 | version = "0.15.2" 2299 | source = "registry+https://github.com/rust-lang/crates.io-index" 2300 | checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" 2301 | dependencies = [ 2302 | "foldhash", 2303 | ] 2304 | 2305 | [[package]] 2306 | name = "hermit-abi" 2307 | version = "0.4.0" 2308 | source = "registry+https://github.com/rust-lang/crates.io-index" 2309 | checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" 2310 | 2311 | [[package]] 2312 | name = "hexasphere" 2313 | version = "15.0.0" 2314 | source = "registry+https://github.com/rust-lang/crates.io-index" 2315 | checksum = "741ab88b8cc670443da777c3daab02cebf5a3caccfc04e3c052f55c94d1643fe" 2316 | dependencies = [ 2317 | "constgebra", 2318 | "glam", 2319 | ] 2320 | 2321 | [[package]] 2322 | name = "hexf-parse" 2323 | version = "0.2.1" 2324 | source = "registry+https://github.com/rust-lang/crates.io-index" 2325 | checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" 2326 | 2327 | [[package]] 2328 | name = "image" 2329 | version = "0.25.5" 2330 | source = "registry+https://github.com/rust-lang/crates.io-index" 2331 | checksum = "cd6f44aed642f18953a158afeb30206f4d50da59fbc66ecb53c66488de73563b" 2332 | dependencies = [ 2333 | "bytemuck", 2334 | "byteorder-lite", 2335 | "num-traits", 2336 | "png", 2337 | ] 2338 | 2339 | [[package]] 2340 | name = "immutable-chunkmap" 2341 | version = "2.0.6" 2342 | source = "registry+https://github.com/rust-lang/crates.io-index" 2343 | checksum = "12f97096f508d54f8f8ab8957862eee2ccd628847b6217af1a335e1c44dee578" 2344 | dependencies = [ 2345 | "arrayvec", 2346 | ] 2347 | 2348 | [[package]] 2349 | name = "indexmap" 2350 | version = "2.6.0" 2351 | source = "registry+https://github.com/rust-lang/crates.io-index" 2352 | checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" 2353 | dependencies = [ 2354 | "equivalent", 2355 | "hashbrown 0.15.2", 2356 | ] 2357 | 2358 | [[package]] 2359 | name = "inflections" 2360 | version = "1.1.1" 2361 | source = "registry+https://github.com/rust-lang/crates.io-index" 2362 | checksum = "a257582fdcde896fd96463bf2d40eefea0580021c0712a0e2b028b60b47a837a" 2363 | 2364 | [[package]] 2365 | name = "inotify" 2366 | version = "0.10.2" 2367 | source = "registry+https://github.com/rust-lang/crates.io-index" 2368 | checksum = "fdd168d97690d0b8c412d6b6c10360277f4d7ee495c5d0d5d5fe0854923255cc" 2369 | dependencies = [ 2370 | "bitflags 1.3.2", 2371 | "inotify-sys", 2372 | "libc", 2373 | ] 2374 | 2375 | [[package]] 2376 | name = "inotify" 2377 | version = "0.11.0" 2378 | source = "registry+https://github.com/rust-lang/crates.io-index" 2379 | checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3" 2380 | dependencies = [ 2381 | "bitflags 2.6.0", 2382 | "inotify-sys", 2383 | "libc", 2384 | ] 2385 | 2386 | [[package]] 2387 | name = "inotify-sys" 2388 | version = "0.1.5" 2389 | source = "registry+https://github.com/rust-lang/crates.io-index" 2390 | checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" 2391 | dependencies = [ 2392 | "libc", 2393 | ] 2394 | 2395 | [[package]] 2396 | name = "instant" 2397 | version = "0.1.13" 2398 | source = "registry+https://github.com/rust-lang/crates.io-index" 2399 | checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" 2400 | dependencies = [ 2401 | "cfg-if", 2402 | ] 2403 | 2404 | [[package]] 2405 | name = "invaders" 2406 | version = "0.3.0" 2407 | dependencies = [ 2408 | "bevy", 2409 | "rand", 2410 | ] 2411 | 2412 | [[package]] 2413 | name = "io-kit-sys" 2414 | version = "0.4.1" 2415 | source = "registry+https://github.com/rust-lang/crates.io-index" 2416 | checksum = "617ee6cf8e3f66f3b4ea67a4058564628cde41901316e19f559e14c7c72c5e7b" 2417 | dependencies = [ 2418 | "core-foundation-sys", 2419 | "mach2", 2420 | ] 2421 | 2422 | [[package]] 2423 | name = "itertools" 2424 | version = "0.13.0" 2425 | source = "registry+https://github.com/rust-lang/crates.io-index" 2426 | checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" 2427 | dependencies = [ 2428 | "either", 2429 | ] 2430 | 2431 | [[package]] 2432 | name = "itoa" 2433 | version = "1.0.14" 2434 | source = "registry+https://github.com/rust-lang/crates.io-index" 2435 | checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" 2436 | 2437 | [[package]] 2438 | name = "jni" 2439 | version = "0.21.1" 2440 | source = "registry+https://github.com/rust-lang/crates.io-index" 2441 | checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" 2442 | dependencies = [ 2443 | "cesu8", 2444 | "cfg-if", 2445 | "combine", 2446 | "jni-sys", 2447 | "log", 2448 | "thiserror", 2449 | "walkdir", 2450 | "windows-sys 0.45.0", 2451 | ] 2452 | 2453 | [[package]] 2454 | name = "jni-sys" 2455 | version = "0.3.0" 2456 | source = "registry+https://github.com/rust-lang/crates.io-index" 2457 | checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" 2458 | 2459 | [[package]] 2460 | name = "jobserver" 2461 | version = "0.1.32" 2462 | source = "registry+https://github.com/rust-lang/crates.io-index" 2463 | checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" 2464 | dependencies = [ 2465 | "libc", 2466 | ] 2467 | 2468 | [[package]] 2469 | name = "js-sys" 2470 | version = "0.3.73" 2471 | source = "registry+https://github.com/rust-lang/crates.io-index" 2472 | checksum = "fb15147158e79fd8b8afd0252522769c4f48725460b37338544d8379d94fc8f9" 2473 | dependencies = [ 2474 | "wasm-bindgen", 2475 | ] 2476 | 2477 | [[package]] 2478 | name = "khronos-egl" 2479 | version = "6.0.0" 2480 | source = "registry+https://github.com/rust-lang/crates.io-index" 2481 | checksum = "6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76" 2482 | dependencies = [ 2483 | "libc", 2484 | "libloading", 2485 | "pkg-config", 2486 | ] 2487 | 2488 | [[package]] 2489 | name = "khronos_api" 2490 | version = "3.1.0" 2491 | source = "registry+https://github.com/rust-lang/crates.io-index" 2492 | checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" 2493 | 2494 | [[package]] 2495 | name = "kqueue" 2496 | version = "1.0.8" 2497 | source = "registry+https://github.com/rust-lang/crates.io-index" 2498 | checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c" 2499 | dependencies = [ 2500 | "kqueue-sys", 2501 | "libc", 2502 | ] 2503 | 2504 | [[package]] 2505 | name = "kqueue-sys" 2506 | version = "1.0.4" 2507 | source = "registry+https://github.com/rust-lang/crates.io-index" 2508 | checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" 2509 | dependencies = [ 2510 | "bitflags 1.3.2", 2511 | "libc", 2512 | ] 2513 | 2514 | [[package]] 2515 | name = "ktx2" 2516 | version = "0.3.0" 2517 | source = "registry+https://github.com/rust-lang/crates.io-index" 2518 | checksum = "87d65e08a9ec02e409d27a0139eaa6b9756b4d81fe7cde71f6941a83730ce838" 2519 | dependencies = [ 2520 | "bitflags 1.3.2", 2521 | ] 2522 | 2523 | [[package]] 2524 | name = "lazy_static" 2525 | version = "1.5.0" 2526 | source = "registry+https://github.com/rust-lang/crates.io-index" 2527 | checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 2528 | 2529 | [[package]] 2530 | name = "lewton" 2531 | version = "0.10.2" 2532 | source = "registry+https://github.com/rust-lang/crates.io-index" 2533 | checksum = "777b48df9aaab155475a83a7df3070395ea1ac6902f5cd062b8f2b028075c030" 2534 | dependencies = [ 2535 | "byteorder", 2536 | "ogg", 2537 | "tinyvec", 2538 | ] 2539 | 2540 | [[package]] 2541 | name = "libc" 2542 | version = "0.2.167" 2543 | source = "registry+https://github.com/rust-lang/crates.io-index" 2544 | checksum = "09d6582e104315a817dff97f75133544b2e094ee22447d2acf4a74e189ba06fc" 2545 | 2546 | [[package]] 2547 | name = "libloading" 2548 | version = "0.8.6" 2549 | source = "registry+https://github.com/rust-lang/crates.io-index" 2550 | checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" 2551 | dependencies = [ 2552 | "cfg-if", 2553 | "windows-targets 0.52.6", 2554 | ] 2555 | 2556 | [[package]] 2557 | name = "libm" 2558 | version = "0.2.11" 2559 | source = "registry+https://github.com/rust-lang/crates.io-index" 2560 | checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" 2561 | 2562 | [[package]] 2563 | name = "libredox" 2564 | version = "0.1.3" 2565 | source = "registry+https://github.com/rust-lang/crates.io-index" 2566 | checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" 2567 | dependencies = [ 2568 | "bitflags 2.6.0", 2569 | "libc", 2570 | "redox_syscall 0.5.7", 2571 | ] 2572 | 2573 | [[package]] 2574 | name = "libudev-sys" 2575 | version = "0.1.4" 2576 | source = "registry+https://github.com/rust-lang/crates.io-index" 2577 | checksum = "3c8469b4a23b962c1396b9b451dda50ef5b283e8dd309d69033475fa9b334324" 2578 | dependencies = [ 2579 | "libc", 2580 | "pkg-config", 2581 | ] 2582 | 2583 | [[package]] 2584 | name = "linux-raw-sys" 2585 | version = "0.4.14" 2586 | source = "registry+https://github.com/rust-lang/crates.io-index" 2587 | checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" 2588 | 2589 | [[package]] 2590 | name = "litrs" 2591 | version = "0.4.1" 2592 | source = "registry+https://github.com/rust-lang/crates.io-index" 2593 | checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5" 2594 | 2595 | [[package]] 2596 | name = "lock_api" 2597 | version = "0.4.12" 2598 | source = "registry+https://github.com/rust-lang/crates.io-index" 2599 | checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" 2600 | dependencies = [ 2601 | "autocfg", 2602 | "scopeguard", 2603 | ] 2604 | 2605 | [[package]] 2606 | name = "log" 2607 | version = "0.4.22" 2608 | source = "registry+https://github.com/rust-lang/crates.io-index" 2609 | checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" 2610 | 2611 | [[package]] 2612 | name = "mach2" 2613 | version = "0.4.2" 2614 | source = "registry+https://github.com/rust-lang/crates.io-index" 2615 | checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709" 2616 | dependencies = [ 2617 | "libc", 2618 | ] 2619 | 2620 | [[package]] 2621 | name = "malloc_buf" 2622 | version = "0.0.6" 2623 | source = "registry+https://github.com/rust-lang/crates.io-index" 2624 | checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" 2625 | dependencies = [ 2626 | "libc", 2627 | ] 2628 | 2629 | [[package]] 2630 | name = "matchers" 2631 | version = "0.1.0" 2632 | source = "registry+https://github.com/rust-lang/crates.io-index" 2633 | checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" 2634 | dependencies = [ 2635 | "regex-automata 0.1.10", 2636 | ] 2637 | 2638 | [[package]] 2639 | name = "memchr" 2640 | version = "2.7.4" 2641 | source = "registry+https://github.com/rust-lang/crates.io-index" 2642 | checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" 2643 | 2644 | [[package]] 2645 | name = "memmap2" 2646 | version = "0.9.5" 2647 | source = "registry+https://github.com/rust-lang/crates.io-index" 2648 | checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" 2649 | dependencies = [ 2650 | "libc", 2651 | ] 2652 | 2653 | [[package]] 2654 | name = "metal" 2655 | version = "0.29.0" 2656 | source = "registry+https://github.com/rust-lang/crates.io-index" 2657 | checksum = "7ecfd3296f8c56b7c1f6fbac3c71cefa9d78ce009850c45000015f206dc7fa21" 2658 | dependencies = [ 2659 | "bitflags 2.6.0", 2660 | "block", 2661 | "core-graphics-types", 2662 | "foreign-types", 2663 | "log", 2664 | "objc", 2665 | "paste", 2666 | ] 2667 | 2668 | [[package]] 2669 | name = "minimal-lexical" 2670 | version = "0.2.1" 2671 | source = "registry+https://github.com/rust-lang/crates.io-index" 2672 | checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" 2673 | 2674 | [[package]] 2675 | name = "miniz_oxide" 2676 | version = "0.8.0" 2677 | source = "registry+https://github.com/rust-lang/crates.io-index" 2678 | checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" 2679 | dependencies = [ 2680 | "adler2", 2681 | "simd-adler32", 2682 | ] 2683 | 2684 | [[package]] 2685 | name = "mio" 2686 | version = "1.0.3" 2687 | source = "registry+https://github.com/rust-lang/crates.io-index" 2688 | checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" 2689 | dependencies = [ 2690 | "libc", 2691 | "log", 2692 | "wasi", 2693 | "windows-sys 0.52.0", 2694 | ] 2695 | 2696 | [[package]] 2697 | name = "naga" 2698 | version = "23.0.0" 2699 | source = "registry+https://github.com/rust-lang/crates.io-index" 2700 | checksum = "3d5941e45a15b53aad4375eedf02033adb7a28931eedc31117faffa52e6a857e" 2701 | dependencies = [ 2702 | "arrayvec", 2703 | "bit-set 0.8.0", 2704 | "bitflags 2.6.0", 2705 | "cfg_aliases 0.1.1", 2706 | "codespan-reporting", 2707 | "hexf-parse", 2708 | "indexmap", 2709 | "log", 2710 | "pp-rs", 2711 | "rustc-hash", 2712 | "spirv", 2713 | "termcolor", 2714 | "thiserror", 2715 | "unicode-xid", 2716 | ] 2717 | 2718 | [[package]] 2719 | name = "naga_oil" 2720 | version = "0.16.0" 2721 | source = "registry+https://github.com/rust-lang/crates.io-index" 2722 | checksum = "31ea1f080bb359927cd5404d0af1e5e6758f4f2d82ecfbebb0a0c434764e40f1" 2723 | dependencies = [ 2724 | "bit-set 0.5.3", 2725 | "codespan-reporting", 2726 | "data-encoding", 2727 | "indexmap", 2728 | "naga", 2729 | "once_cell", 2730 | "regex", 2731 | "regex-syntax 0.8.5", 2732 | "rustc-hash", 2733 | "thiserror", 2734 | "tracing", 2735 | "unicode-ident", 2736 | ] 2737 | 2738 | [[package]] 2739 | name = "ndk" 2740 | version = "0.8.0" 2741 | source = "registry+https://github.com/rust-lang/crates.io-index" 2742 | checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7" 2743 | dependencies = [ 2744 | "bitflags 2.6.0", 2745 | "jni-sys", 2746 | "log", 2747 | "ndk-sys 0.5.0+25.2.9519653", 2748 | "num_enum", 2749 | "thiserror", 2750 | ] 2751 | 2752 | [[package]] 2753 | name = "ndk" 2754 | version = "0.9.0" 2755 | source = "registry+https://github.com/rust-lang/crates.io-index" 2756 | checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" 2757 | dependencies = [ 2758 | "bitflags 2.6.0", 2759 | "jni-sys", 2760 | "log", 2761 | "ndk-sys 0.6.0+11769913", 2762 | "num_enum", 2763 | "raw-window-handle", 2764 | "thiserror", 2765 | ] 2766 | 2767 | [[package]] 2768 | name = "ndk-context" 2769 | version = "0.1.1" 2770 | source = "registry+https://github.com/rust-lang/crates.io-index" 2771 | checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" 2772 | 2773 | [[package]] 2774 | name = "ndk-sys" 2775 | version = "0.5.0+25.2.9519653" 2776 | source = "registry+https://github.com/rust-lang/crates.io-index" 2777 | checksum = "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691" 2778 | dependencies = [ 2779 | "jni-sys", 2780 | ] 2781 | 2782 | [[package]] 2783 | name = "ndk-sys" 2784 | version = "0.6.0+11769913" 2785 | source = "registry+https://github.com/rust-lang/crates.io-index" 2786 | checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" 2787 | dependencies = [ 2788 | "jni-sys", 2789 | ] 2790 | 2791 | [[package]] 2792 | name = "nix" 2793 | version = "0.29.0" 2794 | source = "registry+https://github.com/rust-lang/crates.io-index" 2795 | checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" 2796 | dependencies = [ 2797 | "bitflags 2.6.0", 2798 | "cfg-if", 2799 | "cfg_aliases 0.2.1", 2800 | "libc", 2801 | ] 2802 | 2803 | [[package]] 2804 | name = "nom" 2805 | version = "7.1.3" 2806 | source = "registry+https://github.com/rust-lang/crates.io-index" 2807 | checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" 2808 | dependencies = [ 2809 | "memchr", 2810 | "minimal-lexical", 2811 | ] 2812 | 2813 | [[package]] 2814 | name = "nonmax" 2815 | version = "0.5.5" 2816 | source = "registry+https://github.com/rust-lang/crates.io-index" 2817 | checksum = "610a5acd306ec67f907abe5567859a3c693fb9886eb1f012ab8f2a47bef3db51" 2818 | 2819 | [[package]] 2820 | name = "notify" 2821 | version = "7.0.0" 2822 | source = "registry+https://github.com/rust-lang/crates.io-index" 2823 | checksum = "c533b4c39709f9ba5005d8002048266593c1cfaf3c5f0739d5b8ab0c6c504009" 2824 | dependencies = [ 2825 | "bitflags 2.6.0", 2826 | "filetime", 2827 | "fsevent-sys", 2828 | "inotify 0.10.2", 2829 | "kqueue", 2830 | "libc", 2831 | "log", 2832 | "mio", 2833 | "notify-types", 2834 | "walkdir", 2835 | "windows-sys 0.52.0", 2836 | ] 2837 | 2838 | [[package]] 2839 | name = "notify-debouncer-full" 2840 | version = "0.4.0" 2841 | source = "registry+https://github.com/rust-lang/crates.io-index" 2842 | checksum = "9dcf855483228259b2353f89e99df35fc639b2b2510d1166e4858e3f67ec1afb" 2843 | dependencies = [ 2844 | "file-id", 2845 | "log", 2846 | "notify", 2847 | "notify-types", 2848 | "walkdir", 2849 | ] 2850 | 2851 | [[package]] 2852 | name = "notify-types" 2853 | version = "1.0.0" 2854 | source = "registry+https://github.com/rust-lang/crates.io-index" 2855 | checksum = "7393c226621f817964ffb3dc5704f9509e107a8b024b489cc2c1b217378785df" 2856 | dependencies = [ 2857 | "instant", 2858 | ] 2859 | 2860 | [[package]] 2861 | name = "ntapi" 2862 | version = "0.4.1" 2863 | source = "registry+https://github.com/rust-lang/crates.io-index" 2864 | checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" 2865 | dependencies = [ 2866 | "winapi", 2867 | ] 2868 | 2869 | [[package]] 2870 | name = "nu-ansi-term" 2871 | version = "0.46.0" 2872 | source = "registry+https://github.com/rust-lang/crates.io-index" 2873 | checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" 2874 | dependencies = [ 2875 | "overload", 2876 | "winapi", 2877 | ] 2878 | 2879 | [[package]] 2880 | name = "num-derive" 2881 | version = "0.4.2" 2882 | source = "registry+https://github.com/rust-lang/crates.io-index" 2883 | checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" 2884 | dependencies = [ 2885 | "proc-macro2", 2886 | "quote", 2887 | "syn", 2888 | ] 2889 | 2890 | [[package]] 2891 | name = "num-traits" 2892 | version = "0.2.19" 2893 | source = "registry+https://github.com/rust-lang/crates.io-index" 2894 | checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 2895 | dependencies = [ 2896 | "autocfg", 2897 | "libm", 2898 | ] 2899 | 2900 | [[package]] 2901 | name = "num_enum" 2902 | version = "0.7.3" 2903 | source = "registry+https://github.com/rust-lang/crates.io-index" 2904 | checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" 2905 | dependencies = [ 2906 | "num_enum_derive", 2907 | ] 2908 | 2909 | [[package]] 2910 | name = "num_enum_derive" 2911 | version = "0.7.3" 2912 | source = "registry+https://github.com/rust-lang/crates.io-index" 2913 | checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" 2914 | dependencies = [ 2915 | "proc-macro-crate", 2916 | "proc-macro2", 2917 | "quote", 2918 | "syn", 2919 | ] 2920 | 2921 | [[package]] 2922 | name = "objc" 2923 | version = "0.2.7" 2924 | source = "registry+https://github.com/rust-lang/crates.io-index" 2925 | checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" 2926 | dependencies = [ 2927 | "malloc_buf", 2928 | ] 2929 | 2930 | [[package]] 2931 | name = "objc-sys" 2932 | version = "0.3.5" 2933 | source = "registry+https://github.com/rust-lang/crates.io-index" 2934 | checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310" 2935 | 2936 | [[package]] 2937 | name = "objc2" 2938 | version = "0.5.2" 2939 | source = "registry+https://github.com/rust-lang/crates.io-index" 2940 | checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804" 2941 | dependencies = [ 2942 | "objc-sys", 2943 | "objc2-encode", 2944 | ] 2945 | 2946 | [[package]] 2947 | name = "objc2-app-kit" 2948 | version = "0.2.2" 2949 | source = "registry+https://github.com/rust-lang/crates.io-index" 2950 | checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" 2951 | dependencies = [ 2952 | "bitflags 2.6.0", 2953 | "block2", 2954 | "libc", 2955 | "objc2", 2956 | "objc2-core-data", 2957 | "objc2-core-image", 2958 | "objc2-foundation", 2959 | "objc2-quartz-core", 2960 | ] 2961 | 2962 | [[package]] 2963 | name = "objc2-cloud-kit" 2964 | version = "0.2.2" 2965 | source = "registry+https://github.com/rust-lang/crates.io-index" 2966 | checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" 2967 | dependencies = [ 2968 | "bitflags 2.6.0", 2969 | "block2", 2970 | "objc2", 2971 | "objc2-core-location", 2972 | "objc2-foundation", 2973 | ] 2974 | 2975 | [[package]] 2976 | name = "objc2-contacts" 2977 | version = "0.2.2" 2978 | source = "registry+https://github.com/rust-lang/crates.io-index" 2979 | checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889" 2980 | dependencies = [ 2981 | "block2", 2982 | "objc2", 2983 | "objc2-foundation", 2984 | ] 2985 | 2986 | [[package]] 2987 | name = "objc2-core-data" 2988 | version = "0.2.2" 2989 | source = "registry+https://github.com/rust-lang/crates.io-index" 2990 | checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" 2991 | dependencies = [ 2992 | "bitflags 2.6.0", 2993 | "block2", 2994 | "objc2", 2995 | "objc2-foundation", 2996 | ] 2997 | 2998 | [[package]] 2999 | name = "objc2-core-image" 3000 | version = "0.2.2" 3001 | source = "registry+https://github.com/rust-lang/crates.io-index" 3002 | checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80" 3003 | dependencies = [ 3004 | "block2", 3005 | "objc2", 3006 | "objc2-foundation", 3007 | "objc2-metal", 3008 | ] 3009 | 3010 | [[package]] 3011 | name = "objc2-core-location" 3012 | version = "0.2.2" 3013 | source = "registry+https://github.com/rust-lang/crates.io-index" 3014 | checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781" 3015 | dependencies = [ 3016 | "block2", 3017 | "objc2", 3018 | "objc2-contacts", 3019 | "objc2-foundation", 3020 | ] 3021 | 3022 | [[package]] 3023 | name = "objc2-encode" 3024 | version = "4.0.3" 3025 | source = "registry+https://github.com/rust-lang/crates.io-index" 3026 | checksum = "7891e71393cd1f227313c9379a26a584ff3d7e6e7159e988851f0934c993f0f8" 3027 | 3028 | [[package]] 3029 | name = "objc2-foundation" 3030 | version = "0.2.2" 3031 | source = "registry+https://github.com/rust-lang/crates.io-index" 3032 | checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" 3033 | dependencies = [ 3034 | "bitflags 2.6.0", 3035 | "block2", 3036 | "dispatch", 3037 | "libc", 3038 | "objc2", 3039 | ] 3040 | 3041 | [[package]] 3042 | name = "objc2-link-presentation" 3043 | version = "0.2.2" 3044 | source = "registry+https://github.com/rust-lang/crates.io-index" 3045 | checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398" 3046 | dependencies = [ 3047 | "block2", 3048 | "objc2", 3049 | "objc2-app-kit", 3050 | "objc2-foundation", 3051 | ] 3052 | 3053 | [[package]] 3054 | name = "objc2-metal" 3055 | version = "0.2.2" 3056 | source = "registry+https://github.com/rust-lang/crates.io-index" 3057 | checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" 3058 | dependencies = [ 3059 | "bitflags 2.6.0", 3060 | "block2", 3061 | "objc2", 3062 | "objc2-foundation", 3063 | ] 3064 | 3065 | [[package]] 3066 | name = "objc2-quartz-core" 3067 | version = "0.2.2" 3068 | source = "registry+https://github.com/rust-lang/crates.io-index" 3069 | checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" 3070 | dependencies = [ 3071 | "bitflags 2.6.0", 3072 | "block2", 3073 | "objc2", 3074 | "objc2-foundation", 3075 | "objc2-metal", 3076 | ] 3077 | 3078 | [[package]] 3079 | name = "objc2-symbols" 3080 | version = "0.2.2" 3081 | source = "registry+https://github.com/rust-lang/crates.io-index" 3082 | checksum = "0a684efe3dec1b305badae1a28f6555f6ddd3bb2c2267896782858d5a78404dc" 3083 | dependencies = [ 3084 | "objc2", 3085 | "objc2-foundation", 3086 | ] 3087 | 3088 | [[package]] 3089 | name = "objc2-ui-kit" 3090 | version = "0.2.2" 3091 | source = "registry+https://github.com/rust-lang/crates.io-index" 3092 | checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" 3093 | dependencies = [ 3094 | "bitflags 2.6.0", 3095 | "block2", 3096 | "objc2", 3097 | "objc2-cloud-kit", 3098 | "objc2-core-data", 3099 | "objc2-core-image", 3100 | "objc2-core-location", 3101 | "objc2-foundation", 3102 | "objc2-link-presentation", 3103 | "objc2-quartz-core", 3104 | "objc2-symbols", 3105 | "objc2-uniform-type-identifiers", 3106 | "objc2-user-notifications", 3107 | ] 3108 | 3109 | [[package]] 3110 | name = "objc2-uniform-type-identifiers" 3111 | version = "0.2.2" 3112 | source = "registry+https://github.com/rust-lang/crates.io-index" 3113 | checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe" 3114 | dependencies = [ 3115 | "block2", 3116 | "objc2", 3117 | "objc2-foundation", 3118 | ] 3119 | 3120 | [[package]] 3121 | name = "objc2-user-notifications" 3122 | version = "0.2.2" 3123 | source = "registry+https://github.com/rust-lang/crates.io-index" 3124 | checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" 3125 | dependencies = [ 3126 | "bitflags 2.6.0", 3127 | "block2", 3128 | "objc2", 3129 | "objc2-core-location", 3130 | "objc2-foundation", 3131 | ] 3132 | 3133 | [[package]] 3134 | name = "oboe" 3135 | version = "0.6.1" 3136 | source = "registry+https://github.com/rust-lang/crates.io-index" 3137 | checksum = "e8b61bebd49e5d43f5f8cc7ee2891c16e0f41ec7954d36bcb6c14c5e0de867fb" 3138 | dependencies = [ 3139 | "jni", 3140 | "ndk 0.8.0", 3141 | "ndk-context", 3142 | "num-derive", 3143 | "num-traits", 3144 | "oboe-sys", 3145 | ] 3146 | 3147 | [[package]] 3148 | name = "oboe-sys" 3149 | version = "0.6.1" 3150 | source = "registry+https://github.com/rust-lang/crates.io-index" 3151 | checksum = "6c8bb09a4a2b1d668170cfe0a7d5bc103f8999fb316c98099b6a9939c9f2e79d" 3152 | dependencies = [ 3153 | "cc", 3154 | ] 3155 | 3156 | [[package]] 3157 | name = "offset-allocator" 3158 | version = "0.2.0" 3159 | source = "registry+https://github.com/rust-lang/crates.io-index" 3160 | checksum = "e234d535da3521eb95106f40f0b73483d80bfb3aacf27c40d7e2b72f1a3e00a2" 3161 | dependencies = [ 3162 | "log", 3163 | "nonmax", 3164 | ] 3165 | 3166 | [[package]] 3167 | name = "ogg" 3168 | version = "0.8.0" 3169 | source = "registry+https://github.com/rust-lang/crates.io-index" 3170 | checksum = "6951b4e8bf21c8193da321bcce9c9dd2e13c858fe078bf9054a288b419ae5d6e" 3171 | dependencies = [ 3172 | "byteorder", 3173 | ] 3174 | 3175 | [[package]] 3176 | name = "once_cell" 3177 | version = "1.20.2" 3178 | source = "registry+https://github.com/rust-lang/crates.io-index" 3179 | checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" 3180 | 3181 | [[package]] 3182 | name = "orbclient" 3183 | version = "0.3.48" 3184 | source = "registry+https://github.com/rust-lang/crates.io-index" 3185 | checksum = "ba0b26cec2e24f08ed8bb31519a9333140a6599b867dac464bb150bdb796fd43" 3186 | dependencies = [ 3187 | "libredox", 3188 | ] 3189 | 3190 | [[package]] 3191 | name = "overload" 3192 | version = "0.1.1" 3193 | source = "registry+https://github.com/rust-lang/crates.io-index" 3194 | checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" 3195 | 3196 | [[package]] 3197 | name = "parking" 3198 | version = "2.2.1" 3199 | source = "registry+https://github.com/rust-lang/crates.io-index" 3200 | checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" 3201 | 3202 | [[package]] 3203 | name = "parking_lot" 3204 | version = "0.12.3" 3205 | source = "registry+https://github.com/rust-lang/crates.io-index" 3206 | checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" 3207 | dependencies = [ 3208 | "lock_api", 3209 | "parking_lot_core", 3210 | ] 3211 | 3212 | [[package]] 3213 | name = "parking_lot_core" 3214 | version = "0.9.10" 3215 | source = "registry+https://github.com/rust-lang/crates.io-index" 3216 | checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" 3217 | dependencies = [ 3218 | "cfg-if", 3219 | "libc", 3220 | "redox_syscall 0.5.7", 3221 | "smallvec", 3222 | "windows-targets 0.52.6", 3223 | ] 3224 | 3225 | [[package]] 3226 | name = "paste" 3227 | version = "1.0.15" 3228 | source = "registry+https://github.com/rust-lang/crates.io-index" 3229 | checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" 3230 | 3231 | [[package]] 3232 | name = "percent-encoding" 3233 | version = "2.3.1" 3234 | source = "registry+https://github.com/rust-lang/crates.io-index" 3235 | checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 3236 | 3237 | [[package]] 3238 | name = "petgraph" 3239 | version = "0.6.5" 3240 | source = "registry+https://github.com/rust-lang/crates.io-index" 3241 | checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" 3242 | dependencies = [ 3243 | "fixedbitset 0.4.2", 3244 | "indexmap", 3245 | "serde", 3246 | "serde_derive", 3247 | ] 3248 | 3249 | [[package]] 3250 | name = "pin-project" 3251 | version = "1.1.7" 3252 | source = "registry+https://github.com/rust-lang/crates.io-index" 3253 | checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95" 3254 | dependencies = [ 3255 | "pin-project-internal", 3256 | ] 3257 | 3258 | [[package]] 3259 | name = "pin-project-internal" 3260 | version = "1.1.7" 3261 | source = "registry+https://github.com/rust-lang/crates.io-index" 3262 | checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" 3263 | dependencies = [ 3264 | "proc-macro2", 3265 | "quote", 3266 | "syn", 3267 | ] 3268 | 3269 | [[package]] 3270 | name = "pin-project-lite" 3271 | version = "0.2.15" 3272 | source = "registry+https://github.com/rust-lang/crates.io-index" 3273 | checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" 3274 | 3275 | [[package]] 3276 | name = "piper" 3277 | version = "0.2.4" 3278 | source = "registry+https://github.com/rust-lang/crates.io-index" 3279 | checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" 3280 | dependencies = [ 3281 | "atomic-waker", 3282 | "fastrand", 3283 | "futures-io", 3284 | ] 3285 | 3286 | [[package]] 3287 | name = "pkg-config" 3288 | version = "0.3.31" 3289 | source = "registry+https://github.com/rust-lang/crates.io-index" 3290 | checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" 3291 | 3292 | [[package]] 3293 | name = "png" 3294 | version = "0.17.14" 3295 | source = "registry+https://github.com/rust-lang/crates.io-index" 3296 | checksum = "52f9d46a34a05a6a57566bc2bfae066ef07585a6e3fa30fbbdff5936380623f0" 3297 | dependencies = [ 3298 | "bitflags 1.3.2", 3299 | "crc32fast", 3300 | "fdeflate", 3301 | "flate2", 3302 | "miniz_oxide", 3303 | ] 3304 | 3305 | [[package]] 3306 | name = "polling" 3307 | version = "3.7.4" 3308 | source = "registry+https://github.com/rust-lang/crates.io-index" 3309 | checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" 3310 | dependencies = [ 3311 | "cfg-if", 3312 | "concurrent-queue", 3313 | "hermit-abi", 3314 | "pin-project-lite", 3315 | "rustix", 3316 | "tracing", 3317 | "windows-sys 0.59.0", 3318 | ] 3319 | 3320 | [[package]] 3321 | name = "pp-rs" 3322 | version = "0.2.1" 3323 | source = "registry+https://github.com/rust-lang/crates.io-index" 3324 | checksum = "bb458bb7f6e250e6eb79d5026badc10a3ebb8f9a15d1fff0f13d17c71f4d6dee" 3325 | dependencies = [ 3326 | "unicode-xid", 3327 | ] 3328 | 3329 | [[package]] 3330 | name = "ppv-lite86" 3331 | version = "0.2.20" 3332 | source = "registry+https://github.com/rust-lang/crates.io-index" 3333 | checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" 3334 | dependencies = [ 3335 | "zerocopy", 3336 | ] 3337 | 3338 | [[package]] 3339 | name = "presser" 3340 | version = "0.3.1" 3341 | source = "registry+https://github.com/rust-lang/crates.io-index" 3342 | checksum = "e8cf8e6a8aa66ce33f63993ffc4ea4271eb5b0530a9002db8455ea6050c77bfa" 3343 | 3344 | [[package]] 3345 | name = "prettyplease" 3346 | version = "0.2.25" 3347 | source = "registry+https://github.com/rust-lang/crates.io-index" 3348 | checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" 3349 | dependencies = [ 3350 | "proc-macro2", 3351 | "syn", 3352 | ] 3353 | 3354 | [[package]] 3355 | name = "proc-macro-crate" 3356 | version = "3.2.0" 3357 | source = "registry+https://github.com/rust-lang/crates.io-index" 3358 | checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" 3359 | dependencies = [ 3360 | "toml_edit", 3361 | ] 3362 | 3363 | [[package]] 3364 | name = "proc-macro2" 3365 | version = "1.0.92" 3366 | source = "registry+https://github.com/rust-lang/crates.io-index" 3367 | checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" 3368 | dependencies = [ 3369 | "unicode-ident", 3370 | ] 3371 | 3372 | [[package]] 3373 | name = "profiling" 3374 | version = "1.0.16" 3375 | source = "registry+https://github.com/rust-lang/crates.io-index" 3376 | checksum = "afbdc74edc00b6f6a218ca6a5364d6226a259d4b8ea1af4a0ea063f27e179f4d" 3377 | 3378 | [[package]] 3379 | name = "quote" 3380 | version = "1.0.37" 3381 | source = "registry+https://github.com/rust-lang/crates.io-index" 3382 | checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" 3383 | dependencies = [ 3384 | "proc-macro2", 3385 | ] 3386 | 3387 | [[package]] 3388 | name = "radsort" 3389 | version = "0.1.1" 3390 | source = "registry+https://github.com/rust-lang/crates.io-index" 3391 | checksum = "019b4b213425016d7d84a153c4c73afb0946fbb4840e4eece7ba8848b9d6da22" 3392 | 3393 | [[package]] 3394 | name = "rand" 3395 | version = "0.8.5" 3396 | source = "registry+https://github.com/rust-lang/crates.io-index" 3397 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 3398 | dependencies = [ 3399 | "libc", 3400 | "rand_chacha", 3401 | "rand_core", 3402 | ] 3403 | 3404 | [[package]] 3405 | name = "rand_chacha" 3406 | version = "0.3.1" 3407 | source = "registry+https://github.com/rust-lang/crates.io-index" 3408 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 3409 | dependencies = [ 3410 | "ppv-lite86", 3411 | "rand_core", 3412 | ] 3413 | 3414 | [[package]] 3415 | name = "rand_core" 3416 | version = "0.6.4" 3417 | source = "registry+https://github.com/rust-lang/crates.io-index" 3418 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 3419 | dependencies = [ 3420 | "getrandom", 3421 | ] 3422 | 3423 | [[package]] 3424 | name = "rand_distr" 3425 | version = "0.4.3" 3426 | source = "registry+https://github.com/rust-lang/crates.io-index" 3427 | checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" 3428 | dependencies = [ 3429 | "num-traits", 3430 | "rand", 3431 | ] 3432 | 3433 | [[package]] 3434 | name = "range-alloc" 3435 | version = "0.1.3" 3436 | source = "registry+https://github.com/rust-lang/crates.io-index" 3437 | checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab" 3438 | 3439 | [[package]] 3440 | name = "rangemap" 3441 | version = "1.5.1" 3442 | source = "registry+https://github.com/rust-lang/crates.io-index" 3443 | checksum = "f60fcc7d6849342eff22c4350c8b9a989ee8ceabc4b481253e8946b9fe83d684" 3444 | 3445 | [[package]] 3446 | name = "raw-window-handle" 3447 | version = "0.6.2" 3448 | source = "registry+https://github.com/rust-lang/crates.io-index" 3449 | checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" 3450 | 3451 | [[package]] 3452 | name = "rayon" 3453 | version = "1.10.0" 3454 | source = "registry+https://github.com/rust-lang/crates.io-index" 3455 | checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" 3456 | dependencies = [ 3457 | "either", 3458 | "rayon-core", 3459 | ] 3460 | 3461 | [[package]] 3462 | name = "rayon-core" 3463 | version = "1.12.1" 3464 | source = "registry+https://github.com/rust-lang/crates.io-index" 3465 | checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" 3466 | dependencies = [ 3467 | "crossbeam-deque", 3468 | "crossbeam-utils", 3469 | ] 3470 | 3471 | [[package]] 3472 | name = "read-fonts" 3473 | version = "0.22.5" 3474 | source = "registry+https://github.com/rust-lang/crates.io-index" 3475 | checksum = "4a04b892cb6f91951f144c33321843790c8574c825aafdb16d815fd7183b5229" 3476 | dependencies = [ 3477 | "bytemuck", 3478 | "font-types", 3479 | ] 3480 | 3481 | [[package]] 3482 | name = "rectangle-pack" 3483 | version = "0.4.2" 3484 | source = "registry+https://github.com/rust-lang/crates.io-index" 3485 | checksum = "a0d463f2884048e7153449a55166f91028d5b0ea53c79377099ce4e8cf0cf9bb" 3486 | 3487 | [[package]] 3488 | name = "redox_syscall" 3489 | version = "0.4.1" 3490 | source = "registry+https://github.com/rust-lang/crates.io-index" 3491 | checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" 3492 | dependencies = [ 3493 | "bitflags 1.3.2", 3494 | ] 3495 | 3496 | [[package]] 3497 | name = "redox_syscall" 3498 | version = "0.5.7" 3499 | source = "registry+https://github.com/rust-lang/crates.io-index" 3500 | checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" 3501 | dependencies = [ 3502 | "bitflags 2.6.0", 3503 | ] 3504 | 3505 | [[package]] 3506 | name = "regex" 3507 | version = "1.11.1" 3508 | source = "registry+https://github.com/rust-lang/crates.io-index" 3509 | checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" 3510 | dependencies = [ 3511 | "aho-corasick", 3512 | "memchr", 3513 | "regex-automata 0.4.9", 3514 | "regex-syntax 0.8.5", 3515 | ] 3516 | 3517 | [[package]] 3518 | name = "regex-automata" 3519 | version = "0.1.10" 3520 | source = "registry+https://github.com/rust-lang/crates.io-index" 3521 | checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" 3522 | dependencies = [ 3523 | "regex-syntax 0.6.29", 3524 | ] 3525 | 3526 | [[package]] 3527 | name = "regex-automata" 3528 | version = "0.4.9" 3529 | source = "registry+https://github.com/rust-lang/crates.io-index" 3530 | checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" 3531 | dependencies = [ 3532 | "aho-corasick", 3533 | "memchr", 3534 | "regex-syntax 0.8.5", 3535 | ] 3536 | 3537 | [[package]] 3538 | name = "regex-syntax" 3539 | version = "0.6.29" 3540 | source = "registry+https://github.com/rust-lang/crates.io-index" 3541 | checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" 3542 | 3543 | [[package]] 3544 | name = "regex-syntax" 3545 | version = "0.8.5" 3546 | source = "registry+https://github.com/rust-lang/crates.io-index" 3547 | checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" 3548 | 3549 | [[package]] 3550 | name = "renderdoc-sys" 3551 | version = "1.1.0" 3552 | source = "registry+https://github.com/rust-lang/crates.io-index" 3553 | checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832" 3554 | 3555 | [[package]] 3556 | name = "rodio" 3557 | version = "0.19.0" 3558 | source = "registry+https://github.com/rust-lang/crates.io-index" 3559 | checksum = "6006a627c1a38d37f3d3a85c6575418cfe34a5392d60a686d0071e1c8d427acb" 3560 | dependencies = [ 3561 | "cpal", 3562 | "lewton", 3563 | "thiserror", 3564 | ] 3565 | 3566 | [[package]] 3567 | name = "ron" 3568 | version = "0.8.1" 3569 | source = "registry+https://github.com/rust-lang/crates.io-index" 3570 | checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" 3571 | dependencies = [ 3572 | "base64 0.21.7", 3573 | "bitflags 2.6.0", 3574 | "serde", 3575 | "serde_derive", 3576 | ] 3577 | 3578 | [[package]] 3579 | name = "roxmltree" 3580 | version = "0.20.0" 3581 | source = "registry+https://github.com/rust-lang/crates.io-index" 3582 | checksum = "6c20b6793b5c2fa6553b250154b78d6d0db37e72700ae35fad9387a46f487c97" 3583 | 3584 | [[package]] 3585 | name = "rustc-hash" 3586 | version = "1.1.0" 3587 | source = "registry+https://github.com/rust-lang/crates.io-index" 3588 | checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" 3589 | 3590 | [[package]] 3591 | name = "rustix" 3592 | version = "0.38.41" 3593 | source = "registry+https://github.com/rust-lang/crates.io-index" 3594 | checksum = "d7f649912bc1495e167a6edee79151c84b1bad49748cb4f1f1167f459f6224f6" 3595 | dependencies = [ 3596 | "bitflags 2.6.0", 3597 | "errno", 3598 | "libc", 3599 | "linux-raw-sys", 3600 | "windows-sys 0.52.0", 3601 | ] 3602 | 3603 | [[package]] 3604 | name = "rustybuzz" 3605 | version = "0.14.1" 3606 | source = "registry+https://github.com/rust-lang/crates.io-index" 3607 | checksum = "cfb9cf8877777222e4a3bc7eb247e398b56baba500c38c1c46842431adc8b55c" 3608 | dependencies = [ 3609 | "bitflags 2.6.0", 3610 | "bytemuck", 3611 | "libm", 3612 | "smallvec", 3613 | "ttf-parser 0.21.1", 3614 | "unicode-bidi-mirroring", 3615 | "unicode-ccc", 3616 | "unicode-properties", 3617 | "unicode-script", 3618 | ] 3619 | 3620 | [[package]] 3621 | name = "ruzstd" 3622 | version = "0.7.3" 3623 | source = "registry+https://github.com/rust-lang/crates.io-index" 3624 | checksum = "fad02996bfc73da3e301efe90b1837be9ed8f4a462b6ed410aa35d00381de89f" 3625 | dependencies = [ 3626 | "twox-hash", 3627 | ] 3628 | 3629 | [[package]] 3630 | name = "ryu" 3631 | version = "1.0.18" 3632 | source = "registry+https://github.com/rust-lang/crates.io-index" 3633 | checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" 3634 | 3635 | [[package]] 3636 | name = "same-file" 3637 | version = "1.0.6" 3638 | source = "registry+https://github.com/rust-lang/crates.io-index" 3639 | checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 3640 | dependencies = [ 3641 | "winapi-util", 3642 | ] 3643 | 3644 | [[package]] 3645 | name = "scopeguard" 3646 | version = "1.2.0" 3647 | source = "registry+https://github.com/rust-lang/crates.io-index" 3648 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 3649 | 3650 | [[package]] 3651 | name = "self_cell" 3652 | version = "1.0.4" 3653 | source = "registry+https://github.com/rust-lang/crates.io-index" 3654 | checksum = "d369a96f978623eb3dc28807c4852d6cc617fed53da5d3c400feff1ef34a714a" 3655 | 3656 | [[package]] 3657 | name = "send_wrapper" 3658 | version = "0.6.0" 3659 | source = "registry+https://github.com/rust-lang/crates.io-index" 3660 | checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" 3661 | 3662 | [[package]] 3663 | name = "serde" 3664 | version = "1.0.215" 3665 | source = "registry+https://github.com/rust-lang/crates.io-index" 3666 | checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" 3667 | dependencies = [ 3668 | "serde_derive", 3669 | ] 3670 | 3671 | [[package]] 3672 | name = "serde_derive" 3673 | version = "1.0.215" 3674 | source = "registry+https://github.com/rust-lang/crates.io-index" 3675 | checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" 3676 | dependencies = [ 3677 | "proc-macro2", 3678 | "quote", 3679 | "syn", 3680 | ] 3681 | 3682 | [[package]] 3683 | name = "serde_json" 3684 | version = "1.0.133" 3685 | source = "registry+https://github.com/rust-lang/crates.io-index" 3686 | checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377" 3687 | dependencies = [ 3688 | "itoa", 3689 | "memchr", 3690 | "ryu", 3691 | "serde", 3692 | ] 3693 | 3694 | [[package]] 3695 | name = "sharded-slab" 3696 | version = "0.1.7" 3697 | source = "registry+https://github.com/rust-lang/crates.io-index" 3698 | checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" 3699 | dependencies = [ 3700 | "lazy_static", 3701 | ] 3702 | 3703 | [[package]] 3704 | name = "shlex" 3705 | version = "1.3.0" 3706 | source = "registry+https://github.com/rust-lang/crates.io-index" 3707 | checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 3708 | 3709 | [[package]] 3710 | name = "simd-adler32" 3711 | version = "0.3.7" 3712 | source = "registry+https://github.com/rust-lang/crates.io-index" 3713 | checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" 3714 | 3715 | [[package]] 3716 | name = "skrifa" 3717 | version = "0.22.3" 3718 | source = "registry+https://github.com/rust-lang/crates.io-index" 3719 | checksum = "8e1c44ad1f6c5bdd4eefed8326711b7dbda9ea45dfd36068c427d332aa382cbe" 3720 | dependencies = [ 3721 | "bytemuck", 3722 | "read-fonts", 3723 | ] 3724 | 3725 | [[package]] 3726 | name = "slab" 3727 | version = "0.4.9" 3728 | source = "registry+https://github.com/rust-lang/crates.io-index" 3729 | checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" 3730 | dependencies = [ 3731 | "autocfg", 3732 | ] 3733 | 3734 | [[package]] 3735 | name = "slotmap" 3736 | version = "1.0.7" 3737 | source = "registry+https://github.com/rust-lang/crates.io-index" 3738 | checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" 3739 | dependencies = [ 3740 | "version_check", 3741 | ] 3742 | 3743 | [[package]] 3744 | name = "smallvec" 3745 | version = "1.13.2" 3746 | source = "registry+https://github.com/rust-lang/crates.io-index" 3747 | checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" 3748 | 3749 | [[package]] 3750 | name = "smol_str" 3751 | version = "0.2.2" 3752 | source = "registry+https://github.com/rust-lang/crates.io-index" 3753 | checksum = "dd538fb6910ac1099850255cf94a94df6551fbdd602454387d0adb2d1ca6dead" 3754 | dependencies = [ 3755 | "serde", 3756 | ] 3757 | 3758 | [[package]] 3759 | name = "spirv" 3760 | version = "0.3.0+sdk-1.3.268.0" 3761 | source = "registry+https://github.com/rust-lang/crates.io-index" 3762 | checksum = "eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844" 3763 | dependencies = [ 3764 | "bitflags 2.6.0", 3765 | ] 3766 | 3767 | [[package]] 3768 | name = "stackfuture" 3769 | version = "0.3.0" 3770 | source = "registry+https://github.com/rust-lang/crates.io-index" 3771 | checksum = "6eae92052b72ef70dafa16eddbabffc77e5ca3574be2f7bc1127b36f0a7ad7f2" 3772 | 3773 | [[package]] 3774 | name = "static_assertions" 3775 | version = "1.1.0" 3776 | source = "registry+https://github.com/rust-lang/crates.io-index" 3777 | checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 3778 | 3779 | [[package]] 3780 | name = "svg_fmt" 3781 | version = "0.4.4" 3782 | source = "registry+https://github.com/rust-lang/crates.io-index" 3783 | checksum = "ce5d813d71d82c4cbc1742135004e4a79fd870214c155443451c139c9470a0aa" 3784 | 3785 | [[package]] 3786 | name = "swash" 3787 | version = "0.1.19" 3788 | source = "registry+https://github.com/rust-lang/crates.io-index" 3789 | checksum = "cbd59f3f359ddd2c95af4758c18270eddd9c730dde98598023cdabff472c2ca2" 3790 | dependencies = [ 3791 | "skrifa", 3792 | "yazi", 3793 | "zeno", 3794 | ] 3795 | 3796 | [[package]] 3797 | name = "syn" 3798 | version = "2.0.90" 3799 | source = "registry+https://github.com/rust-lang/crates.io-index" 3800 | checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" 3801 | dependencies = [ 3802 | "proc-macro2", 3803 | "quote", 3804 | "unicode-ident", 3805 | ] 3806 | 3807 | [[package]] 3808 | name = "sys-locale" 3809 | version = "0.3.2" 3810 | source = "registry+https://github.com/rust-lang/crates.io-index" 3811 | checksum = "8eab9a99a024a169fe8a903cf9d4a3b3601109bcc13bd9e3c6fff259138626c4" 3812 | dependencies = [ 3813 | "libc", 3814 | ] 3815 | 3816 | [[package]] 3817 | name = "sysinfo" 3818 | version = "0.32.1" 3819 | source = "registry+https://github.com/rust-lang/crates.io-index" 3820 | checksum = "4c33cd241af0f2e9e3b5c32163b873b29956890b5342e6745b917ce9d490f4af" 3821 | dependencies = [ 3822 | "core-foundation-sys", 3823 | "libc", 3824 | "memchr", 3825 | "ntapi", 3826 | "windows 0.57.0", 3827 | ] 3828 | 3829 | [[package]] 3830 | name = "taffy" 3831 | version = "0.5.2" 3832 | source = "registry+https://github.com/rust-lang/crates.io-index" 3833 | checksum = "9cb893bff0f80ae17d3a57e030622a967b8dbc90e38284d9b4b1442e23873c94" 3834 | dependencies = [ 3835 | "arrayvec", 3836 | "grid", 3837 | "num-traits", 3838 | "serde", 3839 | "slotmap", 3840 | ] 3841 | 3842 | [[package]] 3843 | name = "termcolor" 3844 | version = "1.4.1" 3845 | source = "registry+https://github.com/rust-lang/crates.io-index" 3846 | checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" 3847 | dependencies = [ 3848 | "winapi-util", 3849 | ] 3850 | 3851 | [[package]] 3852 | name = "thiserror" 3853 | version = "1.0.69" 3854 | source = "registry+https://github.com/rust-lang/crates.io-index" 3855 | checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" 3856 | dependencies = [ 3857 | "thiserror-impl", 3858 | ] 3859 | 3860 | [[package]] 3861 | name = "thiserror-impl" 3862 | version = "1.0.69" 3863 | source = "registry+https://github.com/rust-lang/crates.io-index" 3864 | checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" 3865 | dependencies = [ 3866 | "proc-macro2", 3867 | "quote", 3868 | "syn", 3869 | ] 3870 | 3871 | [[package]] 3872 | name = "thread_local" 3873 | version = "1.1.8" 3874 | source = "registry+https://github.com/rust-lang/crates.io-index" 3875 | checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" 3876 | dependencies = [ 3877 | "cfg-if", 3878 | "once_cell", 3879 | ] 3880 | 3881 | [[package]] 3882 | name = "tiny-keccak" 3883 | version = "2.0.2" 3884 | source = "registry+https://github.com/rust-lang/crates.io-index" 3885 | checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" 3886 | dependencies = [ 3887 | "crunchy", 3888 | ] 3889 | 3890 | [[package]] 3891 | name = "tinyvec" 3892 | version = "1.8.0" 3893 | source = "registry+https://github.com/rust-lang/crates.io-index" 3894 | checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" 3895 | dependencies = [ 3896 | "tinyvec_macros", 3897 | ] 3898 | 3899 | [[package]] 3900 | name = "tinyvec_macros" 3901 | version = "0.1.1" 3902 | source = "registry+https://github.com/rust-lang/crates.io-index" 3903 | checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 3904 | 3905 | [[package]] 3906 | name = "toml_datetime" 3907 | version = "0.6.8" 3908 | source = "registry+https://github.com/rust-lang/crates.io-index" 3909 | checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" 3910 | 3911 | [[package]] 3912 | name = "toml_edit" 3913 | version = "0.22.22" 3914 | source = "registry+https://github.com/rust-lang/crates.io-index" 3915 | checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" 3916 | dependencies = [ 3917 | "indexmap", 3918 | "toml_datetime", 3919 | "winnow", 3920 | ] 3921 | 3922 | [[package]] 3923 | name = "tracing" 3924 | version = "0.1.41" 3925 | source = "registry+https://github.com/rust-lang/crates.io-index" 3926 | checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" 3927 | dependencies = [ 3928 | "pin-project-lite", 3929 | "tracing-attributes", 3930 | "tracing-core", 3931 | ] 3932 | 3933 | [[package]] 3934 | name = "tracing-attributes" 3935 | version = "0.1.28" 3936 | source = "registry+https://github.com/rust-lang/crates.io-index" 3937 | checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" 3938 | dependencies = [ 3939 | "proc-macro2", 3940 | "quote", 3941 | "syn", 3942 | ] 3943 | 3944 | [[package]] 3945 | name = "tracing-core" 3946 | version = "0.1.33" 3947 | source = "registry+https://github.com/rust-lang/crates.io-index" 3948 | checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" 3949 | dependencies = [ 3950 | "once_cell", 3951 | "valuable", 3952 | ] 3953 | 3954 | [[package]] 3955 | name = "tracing-log" 3956 | version = "0.2.0" 3957 | source = "registry+https://github.com/rust-lang/crates.io-index" 3958 | checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" 3959 | dependencies = [ 3960 | "log", 3961 | "once_cell", 3962 | "tracing-core", 3963 | ] 3964 | 3965 | [[package]] 3966 | name = "tracing-oslog" 3967 | version = "0.2.0" 3968 | source = "registry+https://github.com/rust-lang/crates.io-index" 3969 | checksum = "528bdd1f0e27b5dd9a4ededf154e824b0532731e4af73bb531de46276e0aab1e" 3970 | dependencies = [ 3971 | "bindgen", 3972 | "cc", 3973 | "cfg-if", 3974 | "once_cell", 3975 | "parking_lot", 3976 | "tracing-core", 3977 | "tracing-subscriber", 3978 | ] 3979 | 3980 | [[package]] 3981 | name = "tracing-subscriber" 3982 | version = "0.3.19" 3983 | source = "registry+https://github.com/rust-lang/crates.io-index" 3984 | checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" 3985 | dependencies = [ 3986 | "matchers", 3987 | "nu-ansi-term", 3988 | "once_cell", 3989 | "regex", 3990 | "sharded-slab", 3991 | "smallvec", 3992 | "thread_local", 3993 | "tracing", 3994 | "tracing-core", 3995 | "tracing-log", 3996 | ] 3997 | 3998 | [[package]] 3999 | name = "tracing-wasm" 4000 | version = "0.2.1" 4001 | source = "registry+https://github.com/rust-lang/crates.io-index" 4002 | checksum = "4575c663a174420fa2d78f4108ff68f65bf2fbb7dd89f33749b6e826b3626e07" 4003 | dependencies = [ 4004 | "tracing", 4005 | "tracing-subscriber", 4006 | "wasm-bindgen", 4007 | ] 4008 | 4009 | [[package]] 4010 | name = "ttf-parser" 4011 | version = "0.20.0" 4012 | source = "registry+https://github.com/rust-lang/crates.io-index" 4013 | checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4" 4014 | 4015 | [[package]] 4016 | name = "ttf-parser" 4017 | version = "0.21.1" 4018 | source = "registry+https://github.com/rust-lang/crates.io-index" 4019 | checksum = "2c591d83f69777866b9126b24c6dd9a18351f177e49d625920d19f989fd31cf8" 4020 | 4021 | [[package]] 4022 | name = "twox-hash" 4023 | version = "1.6.3" 4024 | source = "registry+https://github.com/rust-lang/crates.io-index" 4025 | checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" 4026 | dependencies = [ 4027 | "cfg-if", 4028 | "static_assertions", 4029 | ] 4030 | 4031 | [[package]] 4032 | name = "typeid" 4033 | version = "1.0.2" 4034 | source = "registry+https://github.com/rust-lang/crates.io-index" 4035 | checksum = "0e13db2e0ccd5e14a544e8a246ba2312cd25223f616442d7f2cb0e3db614236e" 4036 | 4037 | [[package]] 4038 | name = "unicode-bidi" 4039 | version = "0.3.17" 4040 | source = "registry+https://github.com/rust-lang/crates.io-index" 4041 | checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" 4042 | 4043 | [[package]] 4044 | name = "unicode-bidi-mirroring" 4045 | version = "0.2.0" 4046 | source = "registry+https://github.com/rust-lang/crates.io-index" 4047 | checksum = "23cb788ffebc92c5948d0e997106233eeb1d8b9512f93f41651f52b6c5f5af86" 4048 | 4049 | [[package]] 4050 | name = "unicode-ccc" 4051 | version = "0.2.0" 4052 | source = "registry+https://github.com/rust-lang/crates.io-index" 4053 | checksum = "1df77b101bcc4ea3d78dafc5ad7e4f58ceffe0b2b16bf446aeb50b6cb4157656" 4054 | 4055 | [[package]] 4056 | name = "unicode-ident" 4057 | version = "1.0.14" 4058 | source = "registry+https://github.com/rust-lang/crates.io-index" 4059 | checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" 4060 | 4061 | [[package]] 4062 | name = "unicode-linebreak" 4063 | version = "0.1.5" 4064 | source = "registry+https://github.com/rust-lang/crates.io-index" 4065 | checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" 4066 | 4067 | [[package]] 4068 | name = "unicode-properties" 4069 | version = "0.1.3" 4070 | source = "registry+https://github.com/rust-lang/crates.io-index" 4071 | checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" 4072 | 4073 | [[package]] 4074 | name = "unicode-script" 4075 | version = "0.5.7" 4076 | source = "registry+https://github.com/rust-lang/crates.io-index" 4077 | checksum = "9fb421b350c9aff471779e262955939f565ec18b86c15364e6bdf0d662ca7c1f" 4078 | 4079 | [[package]] 4080 | name = "unicode-segmentation" 4081 | version = "1.12.0" 4082 | source = "registry+https://github.com/rust-lang/crates.io-index" 4083 | checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" 4084 | 4085 | [[package]] 4086 | name = "unicode-width" 4087 | version = "0.1.14" 4088 | source = "registry+https://github.com/rust-lang/crates.io-index" 4089 | checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" 4090 | 4091 | [[package]] 4092 | name = "unicode-xid" 4093 | version = "0.2.6" 4094 | source = "registry+https://github.com/rust-lang/crates.io-index" 4095 | checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" 4096 | 4097 | [[package]] 4098 | name = "uuid" 4099 | version = "1.11.0" 4100 | source = "registry+https://github.com/rust-lang/crates.io-index" 4101 | checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" 4102 | dependencies = [ 4103 | "getrandom", 4104 | "serde", 4105 | ] 4106 | 4107 | [[package]] 4108 | name = "valuable" 4109 | version = "0.1.0" 4110 | source = "registry+https://github.com/rust-lang/crates.io-index" 4111 | checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" 4112 | 4113 | [[package]] 4114 | name = "vec_map" 4115 | version = "0.8.2" 4116 | source = "registry+https://github.com/rust-lang/crates.io-index" 4117 | checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" 4118 | 4119 | [[package]] 4120 | name = "version_check" 4121 | version = "0.9.5" 4122 | source = "registry+https://github.com/rust-lang/crates.io-index" 4123 | checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 4124 | 4125 | [[package]] 4126 | name = "walkdir" 4127 | version = "2.5.0" 4128 | source = "registry+https://github.com/rust-lang/crates.io-index" 4129 | checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" 4130 | dependencies = [ 4131 | "same-file", 4132 | "winapi-util", 4133 | ] 4134 | 4135 | [[package]] 4136 | name = "wasi" 4137 | version = "0.11.0+wasi-snapshot-preview1" 4138 | source = "registry+https://github.com/rust-lang/crates.io-index" 4139 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 4140 | 4141 | [[package]] 4142 | name = "wasm-bindgen" 4143 | version = "0.2.96" 4144 | source = "registry+https://github.com/rust-lang/crates.io-index" 4145 | checksum = "21d3b25c3ea1126a2ad5f4f9068483c2af1e64168f847abe863a526b8dbfe00b" 4146 | dependencies = [ 4147 | "cfg-if", 4148 | "once_cell", 4149 | "wasm-bindgen-macro", 4150 | ] 4151 | 4152 | [[package]] 4153 | name = "wasm-bindgen-backend" 4154 | version = "0.2.96" 4155 | source = "registry+https://github.com/rust-lang/crates.io-index" 4156 | checksum = "52857d4c32e496dc6537646b5b117081e71fd2ff06de792e3577a150627db283" 4157 | dependencies = [ 4158 | "bumpalo", 4159 | "log", 4160 | "once_cell", 4161 | "proc-macro2", 4162 | "quote", 4163 | "syn", 4164 | "wasm-bindgen-shared", 4165 | ] 4166 | 4167 | [[package]] 4168 | name = "wasm-bindgen-futures" 4169 | version = "0.4.46" 4170 | source = "registry+https://github.com/rust-lang/crates.io-index" 4171 | checksum = "951fe82312ed48443ac78b66fa43eded9999f738f6022e67aead7b708659e49a" 4172 | dependencies = [ 4173 | "cfg-if", 4174 | "js-sys", 4175 | "once_cell", 4176 | "wasm-bindgen", 4177 | "web-sys", 4178 | ] 4179 | 4180 | [[package]] 4181 | name = "wasm-bindgen-macro" 4182 | version = "0.2.96" 4183 | source = "registry+https://github.com/rust-lang/crates.io-index" 4184 | checksum = "920b0ffe069571ebbfc9ddc0b36ba305ef65577c94b06262ed793716a1afd981" 4185 | dependencies = [ 4186 | "quote", 4187 | "wasm-bindgen-macro-support", 4188 | ] 4189 | 4190 | [[package]] 4191 | name = "wasm-bindgen-macro-support" 4192 | version = "0.2.96" 4193 | source = "registry+https://github.com/rust-lang/crates.io-index" 4194 | checksum = "bf59002391099644be3524e23b781fa43d2be0c5aa0719a18c0731b9d195cab6" 4195 | dependencies = [ 4196 | "proc-macro2", 4197 | "quote", 4198 | "syn", 4199 | "wasm-bindgen-backend", 4200 | "wasm-bindgen-shared", 4201 | ] 4202 | 4203 | [[package]] 4204 | name = "wasm-bindgen-shared" 4205 | version = "0.2.96" 4206 | source = "registry+https://github.com/rust-lang/crates.io-index" 4207 | checksum = "e5047c5392700766601942795a436d7d2599af60dcc3cc1248c9120bfb0827b0" 4208 | 4209 | [[package]] 4210 | name = "web-sys" 4211 | version = "0.3.73" 4212 | source = "registry+https://github.com/rust-lang/crates.io-index" 4213 | checksum = "476364ff87d0ae6bfb661053a9104ab312542658c3d8f963b7ace80b6f9b26b9" 4214 | dependencies = [ 4215 | "js-sys", 4216 | "wasm-bindgen", 4217 | ] 4218 | 4219 | [[package]] 4220 | name = "web-time" 4221 | version = "1.1.0" 4222 | source = "registry+https://github.com/rust-lang/crates.io-index" 4223 | checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" 4224 | dependencies = [ 4225 | "js-sys", 4226 | "wasm-bindgen", 4227 | ] 4228 | 4229 | [[package]] 4230 | name = "wgpu" 4231 | version = "23.0.1" 4232 | source = "registry+https://github.com/rust-lang/crates.io-index" 4233 | checksum = "80f70000db37c469ea9d67defdc13024ddf9a5f1b89cb2941b812ad7cde1735a" 4234 | dependencies = [ 4235 | "arrayvec", 4236 | "cfg_aliases 0.1.1", 4237 | "document-features", 4238 | "js-sys", 4239 | "log", 4240 | "naga", 4241 | "parking_lot", 4242 | "profiling", 4243 | "raw-window-handle", 4244 | "smallvec", 4245 | "static_assertions", 4246 | "wasm-bindgen", 4247 | "wasm-bindgen-futures", 4248 | "web-sys", 4249 | "wgpu-core", 4250 | "wgpu-hal", 4251 | "wgpu-types", 4252 | ] 4253 | 4254 | [[package]] 4255 | name = "wgpu-core" 4256 | version = "23.0.1" 4257 | source = "registry+https://github.com/rust-lang/crates.io-index" 4258 | checksum = "d63c3c478de8e7e01786479919c8769f62a22eec16788d8c2ac77ce2c132778a" 4259 | dependencies = [ 4260 | "arrayvec", 4261 | "bit-vec 0.8.0", 4262 | "bitflags 2.6.0", 4263 | "cfg_aliases 0.1.1", 4264 | "document-features", 4265 | "indexmap", 4266 | "log", 4267 | "naga", 4268 | "once_cell", 4269 | "parking_lot", 4270 | "profiling", 4271 | "raw-window-handle", 4272 | "rustc-hash", 4273 | "smallvec", 4274 | "thiserror", 4275 | "wgpu-hal", 4276 | "wgpu-types", 4277 | ] 4278 | 4279 | [[package]] 4280 | name = "wgpu-hal" 4281 | version = "23.0.1" 4282 | source = "registry+https://github.com/rust-lang/crates.io-index" 4283 | checksum = "89364b8a0b211adc7b16aeaf1bd5ad4a919c1154b44c9ce27838213ba05fd821" 4284 | dependencies = [ 4285 | "android_system_properties", 4286 | "arrayvec", 4287 | "ash", 4288 | "bit-set 0.8.0", 4289 | "bitflags 2.6.0", 4290 | "block", 4291 | "bytemuck", 4292 | "cfg_aliases 0.1.1", 4293 | "core-graphics-types", 4294 | "glow", 4295 | "glutin_wgl_sys", 4296 | "gpu-alloc", 4297 | "gpu-allocator", 4298 | "gpu-descriptor", 4299 | "js-sys", 4300 | "khronos-egl", 4301 | "libc", 4302 | "libloading", 4303 | "log", 4304 | "metal", 4305 | "naga", 4306 | "ndk-sys 0.5.0+25.2.9519653", 4307 | "objc", 4308 | "once_cell", 4309 | "parking_lot", 4310 | "profiling", 4311 | "range-alloc", 4312 | "raw-window-handle", 4313 | "renderdoc-sys", 4314 | "rustc-hash", 4315 | "smallvec", 4316 | "thiserror", 4317 | "wasm-bindgen", 4318 | "web-sys", 4319 | "wgpu-types", 4320 | "windows 0.58.0", 4321 | "windows-core 0.58.0", 4322 | ] 4323 | 4324 | [[package]] 4325 | name = "wgpu-types" 4326 | version = "23.0.0" 4327 | source = "registry+https://github.com/rust-lang/crates.io-index" 4328 | checksum = "610f6ff27778148c31093f3b03abc4840f9636d58d597ca2f5977433acfe0068" 4329 | dependencies = [ 4330 | "bitflags 2.6.0", 4331 | "js-sys", 4332 | "web-sys", 4333 | ] 4334 | 4335 | [[package]] 4336 | name = "winapi" 4337 | version = "0.3.9" 4338 | source = "registry+https://github.com/rust-lang/crates.io-index" 4339 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 4340 | dependencies = [ 4341 | "winapi-i686-pc-windows-gnu", 4342 | "winapi-x86_64-pc-windows-gnu", 4343 | ] 4344 | 4345 | [[package]] 4346 | name = "winapi-i686-pc-windows-gnu" 4347 | version = "0.4.0" 4348 | source = "registry+https://github.com/rust-lang/crates.io-index" 4349 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 4350 | 4351 | [[package]] 4352 | name = "winapi-util" 4353 | version = "0.1.9" 4354 | source = "registry+https://github.com/rust-lang/crates.io-index" 4355 | checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" 4356 | dependencies = [ 4357 | "windows-sys 0.59.0", 4358 | ] 4359 | 4360 | [[package]] 4361 | name = "winapi-x86_64-pc-windows-gnu" 4362 | version = "0.4.0" 4363 | source = "registry+https://github.com/rust-lang/crates.io-index" 4364 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 4365 | 4366 | [[package]] 4367 | name = "windows" 4368 | version = "0.54.0" 4369 | source = "registry+https://github.com/rust-lang/crates.io-index" 4370 | checksum = "9252e5725dbed82865af151df558e754e4a3c2c30818359eb17465f1346a1b49" 4371 | dependencies = [ 4372 | "windows-core 0.54.0", 4373 | "windows-targets 0.52.6", 4374 | ] 4375 | 4376 | [[package]] 4377 | name = "windows" 4378 | version = "0.57.0" 4379 | source = "registry+https://github.com/rust-lang/crates.io-index" 4380 | checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143" 4381 | dependencies = [ 4382 | "windows-core 0.57.0", 4383 | "windows-targets 0.52.6", 4384 | ] 4385 | 4386 | [[package]] 4387 | name = "windows" 4388 | version = "0.58.0" 4389 | source = "registry+https://github.com/rust-lang/crates.io-index" 4390 | checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" 4391 | dependencies = [ 4392 | "windows-core 0.58.0", 4393 | "windows-targets 0.52.6", 4394 | ] 4395 | 4396 | [[package]] 4397 | name = "windows-core" 4398 | version = "0.54.0" 4399 | source = "registry+https://github.com/rust-lang/crates.io-index" 4400 | checksum = "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65" 4401 | dependencies = [ 4402 | "windows-result 0.1.2", 4403 | "windows-targets 0.52.6", 4404 | ] 4405 | 4406 | [[package]] 4407 | name = "windows-core" 4408 | version = "0.57.0" 4409 | source = "registry+https://github.com/rust-lang/crates.io-index" 4410 | checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d" 4411 | dependencies = [ 4412 | "windows-implement 0.57.0", 4413 | "windows-interface 0.57.0", 4414 | "windows-result 0.1.2", 4415 | "windows-targets 0.52.6", 4416 | ] 4417 | 4418 | [[package]] 4419 | name = "windows-core" 4420 | version = "0.58.0" 4421 | source = "registry+https://github.com/rust-lang/crates.io-index" 4422 | checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" 4423 | dependencies = [ 4424 | "windows-implement 0.58.0", 4425 | "windows-interface 0.58.0", 4426 | "windows-result 0.2.0", 4427 | "windows-strings", 4428 | "windows-targets 0.52.6", 4429 | ] 4430 | 4431 | [[package]] 4432 | name = "windows-implement" 4433 | version = "0.57.0" 4434 | source = "registry+https://github.com/rust-lang/crates.io-index" 4435 | checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" 4436 | dependencies = [ 4437 | "proc-macro2", 4438 | "quote", 4439 | "syn", 4440 | ] 4441 | 4442 | [[package]] 4443 | name = "windows-implement" 4444 | version = "0.58.0" 4445 | source = "registry+https://github.com/rust-lang/crates.io-index" 4446 | checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" 4447 | dependencies = [ 4448 | "proc-macro2", 4449 | "quote", 4450 | "syn", 4451 | ] 4452 | 4453 | [[package]] 4454 | name = "windows-interface" 4455 | version = "0.57.0" 4456 | source = "registry+https://github.com/rust-lang/crates.io-index" 4457 | checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" 4458 | dependencies = [ 4459 | "proc-macro2", 4460 | "quote", 4461 | "syn", 4462 | ] 4463 | 4464 | [[package]] 4465 | name = "windows-interface" 4466 | version = "0.58.0" 4467 | source = "registry+https://github.com/rust-lang/crates.io-index" 4468 | checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" 4469 | dependencies = [ 4470 | "proc-macro2", 4471 | "quote", 4472 | "syn", 4473 | ] 4474 | 4475 | [[package]] 4476 | name = "windows-result" 4477 | version = "0.1.2" 4478 | source = "registry+https://github.com/rust-lang/crates.io-index" 4479 | checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" 4480 | dependencies = [ 4481 | "windows-targets 0.52.6", 4482 | ] 4483 | 4484 | [[package]] 4485 | name = "windows-result" 4486 | version = "0.2.0" 4487 | source = "registry+https://github.com/rust-lang/crates.io-index" 4488 | checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" 4489 | dependencies = [ 4490 | "windows-targets 0.52.6", 4491 | ] 4492 | 4493 | [[package]] 4494 | name = "windows-strings" 4495 | version = "0.1.0" 4496 | source = "registry+https://github.com/rust-lang/crates.io-index" 4497 | checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" 4498 | dependencies = [ 4499 | "windows-result 0.2.0", 4500 | "windows-targets 0.52.6", 4501 | ] 4502 | 4503 | [[package]] 4504 | name = "windows-sys" 4505 | version = "0.45.0" 4506 | source = "registry+https://github.com/rust-lang/crates.io-index" 4507 | checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" 4508 | dependencies = [ 4509 | "windows-targets 0.42.2", 4510 | ] 4511 | 4512 | [[package]] 4513 | name = "windows-sys" 4514 | version = "0.52.0" 4515 | source = "registry+https://github.com/rust-lang/crates.io-index" 4516 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 4517 | dependencies = [ 4518 | "windows-targets 0.52.6", 4519 | ] 4520 | 4521 | [[package]] 4522 | name = "windows-sys" 4523 | version = "0.59.0" 4524 | source = "registry+https://github.com/rust-lang/crates.io-index" 4525 | checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 4526 | dependencies = [ 4527 | "windows-targets 0.52.6", 4528 | ] 4529 | 4530 | [[package]] 4531 | name = "windows-targets" 4532 | version = "0.42.2" 4533 | source = "registry+https://github.com/rust-lang/crates.io-index" 4534 | checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" 4535 | dependencies = [ 4536 | "windows_aarch64_gnullvm 0.42.2", 4537 | "windows_aarch64_msvc 0.42.2", 4538 | "windows_i686_gnu 0.42.2", 4539 | "windows_i686_msvc 0.42.2", 4540 | "windows_x86_64_gnu 0.42.2", 4541 | "windows_x86_64_gnullvm 0.42.2", 4542 | "windows_x86_64_msvc 0.42.2", 4543 | ] 4544 | 4545 | [[package]] 4546 | name = "windows-targets" 4547 | version = "0.48.5" 4548 | source = "registry+https://github.com/rust-lang/crates.io-index" 4549 | checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 4550 | dependencies = [ 4551 | "windows_aarch64_gnullvm 0.48.5", 4552 | "windows_aarch64_msvc 0.48.5", 4553 | "windows_i686_gnu 0.48.5", 4554 | "windows_i686_msvc 0.48.5", 4555 | "windows_x86_64_gnu 0.48.5", 4556 | "windows_x86_64_gnullvm 0.48.5", 4557 | "windows_x86_64_msvc 0.48.5", 4558 | ] 4559 | 4560 | [[package]] 4561 | name = "windows-targets" 4562 | version = "0.52.6" 4563 | source = "registry+https://github.com/rust-lang/crates.io-index" 4564 | checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 4565 | dependencies = [ 4566 | "windows_aarch64_gnullvm 0.52.6", 4567 | "windows_aarch64_msvc 0.52.6", 4568 | "windows_i686_gnu 0.52.6", 4569 | "windows_i686_gnullvm", 4570 | "windows_i686_msvc 0.52.6", 4571 | "windows_x86_64_gnu 0.52.6", 4572 | "windows_x86_64_gnullvm 0.52.6", 4573 | "windows_x86_64_msvc 0.52.6", 4574 | ] 4575 | 4576 | [[package]] 4577 | name = "windows_aarch64_gnullvm" 4578 | version = "0.42.2" 4579 | source = "registry+https://github.com/rust-lang/crates.io-index" 4580 | checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" 4581 | 4582 | [[package]] 4583 | name = "windows_aarch64_gnullvm" 4584 | version = "0.48.5" 4585 | source = "registry+https://github.com/rust-lang/crates.io-index" 4586 | checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 4587 | 4588 | [[package]] 4589 | name = "windows_aarch64_gnullvm" 4590 | version = "0.52.6" 4591 | source = "registry+https://github.com/rust-lang/crates.io-index" 4592 | checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 4593 | 4594 | [[package]] 4595 | name = "windows_aarch64_msvc" 4596 | version = "0.42.2" 4597 | source = "registry+https://github.com/rust-lang/crates.io-index" 4598 | checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" 4599 | 4600 | [[package]] 4601 | name = "windows_aarch64_msvc" 4602 | version = "0.48.5" 4603 | source = "registry+https://github.com/rust-lang/crates.io-index" 4604 | checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 4605 | 4606 | [[package]] 4607 | name = "windows_aarch64_msvc" 4608 | version = "0.52.6" 4609 | source = "registry+https://github.com/rust-lang/crates.io-index" 4610 | checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 4611 | 4612 | [[package]] 4613 | name = "windows_i686_gnu" 4614 | version = "0.42.2" 4615 | source = "registry+https://github.com/rust-lang/crates.io-index" 4616 | checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" 4617 | 4618 | [[package]] 4619 | name = "windows_i686_gnu" 4620 | version = "0.48.5" 4621 | source = "registry+https://github.com/rust-lang/crates.io-index" 4622 | checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 4623 | 4624 | [[package]] 4625 | name = "windows_i686_gnu" 4626 | version = "0.52.6" 4627 | source = "registry+https://github.com/rust-lang/crates.io-index" 4628 | checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 4629 | 4630 | [[package]] 4631 | name = "windows_i686_gnullvm" 4632 | version = "0.52.6" 4633 | source = "registry+https://github.com/rust-lang/crates.io-index" 4634 | checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 4635 | 4636 | [[package]] 4637 | name = "windows_i686_msvc" 4638 | version = "0.42.2" 4639 | source = "registry+https://github.com/rust-lang/crates.io-index" 4640 | checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" 4641 | 4642 | [[package]] 4643 | name = "windows_i686_msvc" 4644 | version = "0.48.5" 4645 | source = "registry+https://github.com/rust-lang/crates.io-index" 4646 | checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 4647 | 4648 | [[package]] 4649 | name = "windows_i686_msvc" 4650 | version = "0.52.6" 4651 | source = "registry+https://github.com/rust-lang/crates.io-index" 4652 | checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 4653 | 4654 | [[package]] 4655 | name = "windows_x86_64_gnu" 4656 | version = "0.42.2" 4657 | source = "registry+https://github.com/rust-lang/crates.io-index" 4658 | checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" 4659 | 4660 | [[package]] 4661 | name = "windows_x86_64_gnu" 4662 | version = "0.48.5" 4663 | source = "registry+https://github.com/rust-lang/crates.io-index" 4664 | checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 4665 | 4666 | [[package]] 4667 | name = "windows_x86_64_gnu" 4668 | version = "0.52.6" 4669 | source = "registry+https://github.com/rust-lang/crates.io-index" 4670 | checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 4671 | 4672 | [[package]] 4673 | name = "windows_x86_64_gnullvm" 4674 | version = "0.42.2" 4675 | source = "registry+https://github.com/rust-lang/crates.io-index" 4676 | checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" 4677 | 4678 | [[package]] 4679 | name = "windows_x86_64_gnullvm" 4680 | version = "0.48.5" 4681 | source = "registry+https://github.com/rust-lang/crates.io-index" 4682 | checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 4683 | 4684 | [[package]] 4685 | name = "windows_x86_64_gnullvm" 4686 | version = "0.52.6" 4687 | source = "registry+https://github.com/rust-lang/crates.io-index" 4688 | checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 4689 | 4690 | [[package]] 4691 | name = "windows_x86_64_msvc" 4692 | version = "0.42.2" 4693 | source = "registry+https://github.com/rust-lang/crates.io-index" 4694 | checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" 4695 | 4696 | [[package]] 4697 | name = "windows_x86_64_msvc" 4698 | version = "0.48.5" 4699 | source = "registry+https://github.com/rust-lang/crates.io-index" 4700 | checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 4701 | 4702 | [[package]] 4703 | name = "windows_x86_64_msvc" 4704 | version = "0.52.6" 4705 | source = "registry+https://github.com/rust-lang/crates.io-index" 4706 | checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 4707 | 4708 | [[package]] 4709 | name = "winit" 4710 | version = "0.30.5" 4711 | source = "registry+https://github.com/rust-lang/crates.io-index" 4712 | checksum = "0be9e76a1f1077e04a411f0b989cbd3c93339e1771cb41e71ac4aee95bfd2c67" 4713 | dependencies = [ 4714 | "android-activity", 4715 | "atomic-waker", 4716 | "bitflags 2.6.0", 4717 | "block2", 4718 | "bytemuck", 4719 | "calloop", 4720 | "cfg_aliases 0.2.1", 4721 | "concurrent-queue", 4722 | "core-foundation 0.9.4", 4723 | "core-graphics", 4724 | "cursor-icon", 4725 | "dpi", 4726 | "js-sys", 4727 | "libc", 4728 | "ndk 0.9.0", 4729 | "objc2", 4730 | "objc2-app-kit", 4731 | "objc2-foundation", 4732 | "objc2-ui-kit", 4733 | "orbclient", 4734 | "percent-encoding", 4735 | "pin-project", 4736 | "raw-window-handle", 4737 | "redox_syscall 0.4.1", 4738 | "rustix", 4739 | "smol_str", 4740 | "tracing", 4741 | "unicode-segmentation", 4742 | "wasm-bindgen", 4743 | "wasm-bindgen-futures", 4744 | "web-sys", 4745 | "web-time", 4746 | "windows-sys 0.52.0", 4747 | "x11-dl", 4748 | "x11rb", 4749 | "xkbcommon-dl", 4750 | ] 4751 | 4752 | [[package]] 4753 | name = "winnow" 4754 | version = "0.6.20" 4755 | source = "registry+https://github.com/rust-lang/crates.io-index" 4756 | checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" 4757 | dependencies = [ 4758 | "memchr", 4759 | ] 4760 | 4761 | [[package]] 4762 | name = "x11-dl" 4763 | version = "2.21.0" 4764 | source = "registry+https://github.com/rust-lang/crates.io-index" 4765 | checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" 4766 | dependencies = [ 4767 | "libc", 4768 | "once_cell", 4769 | "pkg-config", 4770 | ] 4771 | 4772 | [[package]] 4773 | name = "x11rb" 4774 | version = "0.13.1" 4775 | source = "registry+https://github.com/rust-lang/crates.io-index" 4776 | checksum = "5d91ffca73ee7f68ce055750bf9f6eca0780b8c85eff9bc046a3b0da41755e12" 4777 | dependencies = [ 4778 | "as-raw-xcb-connection", 4779 | "gethostname", 4780 | "libc", 4781 | "libloading", 4782 | "once_cell", 4783 | "rustix", 4784 | "x11rb-protocol", 4785 | ] 4786 | 4787 | [[package]] 4788 | name = "x11rb-protocol" 4789 | version = "0.13.1" 4790 | source = "registry+https://github.com/rust-lang/crates.io-index" 4791 | checksum = "ec107c4503ea0b4a98ef47356329af139c0a4f7750e621cf2973cd3385ebcb3d" 4792 | 4793 | [[package]] 4794 | name = "xkbcommon-dl" 4795 | version = "0.4.2" 4796 | source = "registry+https://github.com/rust-lang/crates.io-index" 4797 | checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5" 4798 | dependencies = [ 4799 | "bitflags 2.6.0", 4800 | "dlib", 4801 | "log", 4802 | "once_cell", 4803 | "xkeysym", 4804 | ] 4805 | 4806 | [[package]] 4807 | name = "xkeysym" 4808 | version = "0.2.1" 4809 | source = "registry+https://github.com/rust-lang/crates.io-index" 4810 | checksum = "b9cc00251562a284751c9973bace760d86c0276c471b4be569fe6b068ee97a56" 4811 | 4812 | [[package]] 4813 | name = "xml-rs" 4814 | version = "0.8.23" 4815 | source = "registry+https://github.com/rust-lang/crates.io-index" 4816 | checksum = "af310deaae937e48a26602b730250b4949e125f468f11e6990be3e5304ddd96f" 4817 | 4818 | [[package]] 4819 | name = "yazi" 4820 | version = "0.1.6" 4821 | source = "registry+https://github.com/rust-lang/crates.io-index" 4822 | checksum = "c94451ac9513335b5e23d7a8a2b61a7102398b8cca5160829d313e84c9d98be1" 4823 | 4824 | [[package]] 4825 | name = "zeno" 4826 | version = "0.2.3" 4827 | source = "registry+https://github.com/rust-lang/crates.io-index" 4828 | checksum = "dd15f8e0dbb966fd9245e7498c7e9e5055d9e5c8b676b95bd67091cd11a1e697" 4829 | 4830 | [[package]] 4831 | name = "zerocopy" 4832 | version = "0.7.35" 4833 | source = "registry+https://github.com/rust-lang/crates.io-index" 4834 | checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" 4835 | dependencies = [ 4836 | "byteorder", 4837 | "zerocopy-derive", 4838 | ] 4839 | 4840 | [[package]] 4841 | name = "zerocopy-derive" 4842 | version = "0.7.35" 4843 | source = "registry+https://github.com/rust-lang/crates.io-index" 4844 | checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" 4845 | dependencies = [ 4846 | "proc-macro2", 4847 | "quote", 4848 | "syn", 4849 | ] 4850 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "invaders" 3 | version = "0.3.0" 4 | edition = "2021" 5 | license = "MIT OR Apache-2.0" 6 | 7 | [dependencies] 8 | rand = "0.8.5" 9 | 10 | [dependencies.bevy] 11 | version = "0.15.0" 12 | features = [ 13 | "bevy_asset", 14 | "bevy_audio", 15 | "bevy_winit", 16 | "bevy_core_pipeline", 17 | "bevy_sprite", 18 | "bevy_text", 19 | "bevy_ui", 20 | "multi_threaded", 21 | "png", 22 | "vorbis", 23 | "x11", 24 | "file_watcher", 25 | "default_font", 26 | "webgl2", 27 | ] 28 | 29 | [workspace] 30 | resolver = "2" # Important! wgpu/Bevy needs this! 31 | 32 | # Enable max optimizations for dependencies, excluding rust-invaders code: 33 | [profile.dev.package."*"] 34 | opt-level = 3 35 | -------------------------------------------------------------------------------- /LICENSE-APACHE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright 2024 Jeremy Chone 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. -------------------------------------------------------------------------------- /LICENSE-MIT: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2024 Jeremy Chone 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | NEW YouTube full tutorial - [Rust Bevy - Full Tutorial - Game Dev](https://www.youtube.com/watch?v=j7qHwb7geIM&list=PL7r-PXl6ZPcCIOFaL7nVHXZvBmHNhrh_Q) 2 | 3 | Rust [Bevy](https://bevyengine.org/) - Game Dev tutorials 4 | 5 | ### Latest Bevy Version updates 6 | 7 | - `2024-11-29` - Updated to Bevy 0.15. Thanks to [Matt Woelfel](https://github.com/woelfman) 8 | - `2024-06-08` - Updated to Bevy 0.14. Thanks to [Matt Woelfel](https://github.com/woelfman) 9 | - `2024-05-23` - Updated to Bevy 0.12 & 0.13. Thanks to [Vinzenz Schroeter (@kaesaecracker)](https://github.com/kaesaecracker) 10 | - `2023-10-11` - Updated to Bevy 0.11.3. Thanks to [juliohq](https://github.com/juliohq) 11 | - `2023-05-02` - Updated to Bevy 0.10. Thanks to [ehasnain](https://github.com/ehasnain) 12 | - `2022-12-13` - Updated to Bevy 0.9. Thanks to [GiulianoCTRL](https://github.com/GiulianoCTRL) 13 | - `2022-08-07` - Main branch updated to Bevy 0.8. Thanks to [DomagojRatko](https://github.com/DomagojRatko) 14 | 15 | ### MacOS Setup 16 | 17 | - Ensure [Rust and Cargo are installed](https://www.rust-lang.org/tools/install) 18 | - Delete the Cargo.lock, as it may otherwise raise an error the first time: `rm Cargo.lock` 19 | - Install Cmake with [Homebrew](https://brew.sh/): `brew install cmake` 20 | - Install Cargo Watch: `cargo install cargo-watch` 21 | 22 | ### Fedora (Linux) requirements 23 | 24 | Ensure to have on your system with a package manager of your choice 25 | 26 | ``` 27 | dnf install rust-alsa-sys-devel 28 | dnf install rust-libudev-devel 29 | ``` 30 | Thanks to [janpauldahlke](https://github.com/janpauldahlke) 31 | 32 | ### Browser (WebAssembly) - Gitpod 33 | 34 | Open in Gitpod 35 | 36 | 37 | ### Development 38 | 39 | For rapid development: 40 | - `cargo run --features bevy/dynamic_linking` 41 | - `cargo watch -q -c -x 'run --features bevy/dynamic_linking'` 42 | 43 | - Other Rust videos: 44 | - Weekly Rust Videos at [Jeremy Chone](https://www.youtube.com/jeremychone) channel 45 | - [Rust Game Development Tutorials](https://youtube.com/playlist?list=PL7r-PXl6ZPcCB_9zZFU0krBoGK3y5f5Vt) 46 | 47 | ### Change log 48 | 49 | - 2022-12-13 - Updated to Bevy 0.9. Thanks to [GiulianoCTRL](https://github.com/GiulianoCTRL) 50 | - 2022-08-07 - Main branch updated to Bevy 0.8. Thanks to [DomagojRatko](https://github.com/DomagojRatko) 51 | - 2022-08-07 - Main branch updated to Bevy 0.8 thanks to [@DomagojRatko](https://github.com/DomagojRatko) 52 | - 2022-05-09 - Updated to new tutorial for v0.7. See [Rust Bevy - Full Tutorial - Game Dev](https://www.youtube.com/watch?v=j7qHwb7geIM&list=PL7r-PXl6ZPcCIOFaL7nVHXZvBmHNhrh_Q) 53 | - 2022-01-28 - Code has been updated to **Bevy v0.6** !!! 54 | - 2021-06-25 - Initial (for old tutorial [Episode 1](https://youtu.be/Yb3vInxzKGE), [Episode 2](https://youtu.be/Dl4PJG0eRhg), [Episode 3](https://youtu.be/4nEUX2hf2ZI)) 55 | 56 | 57 | ## Rust & Bevy & Other Resources 58 | 59 | Topics learned and used: 60 | 61 | - Rust Programming for Game Development 62 | - Game ECS Engine Bevy 63 | - Bevy System, Bevy Components, Bevy Resources 64 | - Bevy Plugins 65 | - Bevy entities spawn and despawn 66 | - Bevy SpriteBundle, Sprite Sheet (SpriteAtlas) 67 | - Bevy Timesteps, Time, and Timer 68 | - Bevy custom system criteria 69 | - Indirection strategy to spawn explosions 70 | - Sprite Sheet atlas for sprite animations 71 | - Basic Rust Programming 72 | - Rust module 73 | - Rust closure 74 | - Rust matches 75 | 76 | Resources: 77 | 78 | - Rust: 79 | - [Rust Book](https://doc.rust-lang.org/book/) 80 | - [Rust Video Course](https://www.youtube.com/playlist?list=PL7r-PXl6ZPcB4jn1_VR3D8tSK9DxOaiQE) 81 | - Bevy: 82 | - [Official Bevy Web Site](https://bevyengine.org/) 83 | - [Official Bevy Book](https://bevyengine.org/learn/book/introduction/) 84 | - [Unofficial Bevy Cheat Book](https://bevy-cheatbook.github.io/) 85 | - [Official Bevy API Doc](https://docs.rs/bevy/latest/bevy/index.html) 86 | - [Official Bevy Assets](https://bevyengine.org/assets/) 87 | - [Offical GitHub examples](https://github.com/bevyengine/bevy/tree/latest/examples) 88 | - [Great Blog Post - snake game](https://mbuffett.com/posts/bevy-snake-tutorial/) 89 | - Assets: 90 | - [Player, Laser, Enemy Sprites](https://opengameart.org/content/space-shooter-redux) 91 | - [Explosion](https://opengameart.org/content/explosion) 92 | 93 | 94 |


95 | [This repo](https://github.com/jeremychone-channel/rust-invaders) -------------------------------------------------------------------------------- /assets/enemy_a_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeremychone-channel/rust-invaders/af246691ea089234864277740ce4d7f8fe7417b9/assets/enemy_a_01.png -------------------------------------------------------------------------------- /assets/explo_a_sheet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeremychone-channel/rust-invaders/af246691ea089234864277740ce4d7f8fe7417b9/assets/explo_a_sheet.png -------------------------------------------------------------------------------- /assets/laser_a_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeremychone-channel/rust-invaders/af246691ea089234864277740ce4d7f8fe7417b9/assets/laser_a_01.png -------------------------------------------------------------------------------- /assets/laser_b_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeremychone-channel/rust-invaders/af246691ea089234864277740ce4d7f8fe7417b9/assets/laser_b_01.png -------------------------------------------------------------------------------- /assets/player_a_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeremychone-channel/rust-invaders/af246691ea089234864277740ce4d7f8fe7417b9/assets/player_a_01.png -------------------------------------------------------------------------------- /assets/player_b_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeremychone-channel/rust-invaders/af246691ea089234864277740ce4d7f8fe7417b9/assets/player_b_01.png -------------------------------------------------------------------------------- /rust-toolchain: -------------------------------------------------------------------------------- 1 | stable -------------------------------------------------------------------------------- /rustfmt.toml: -------------------------------------------------------------------------------- 1 | hard_tabs = true 2 | edition = "2021" 3 | max_width = 95 4 | chain_width = 80 5 | fn_call_width = 80 6 | single_line_if_else_max_width = 60 7 | struct_lit_width = 24 -------------------------------------------------------------------------------- /src/components.rs: -------------------------------------------------------------------------------- 1 | use bevy::math::{Vec2, Vec3}; 2 | use bevy::prelude::Component; 3 | use bevy::time::{Timer, TimerMode}; 4 | 5 | // region: --- Common Components 6 | #[derive(Component)] 7 | pub struct Velocity { 8 | pub x: f32, 9 | pub y: f32, 10 | } 11 | 12 | #[derive(Component)] 13 | pub struct Movable { 14 | pub auto_despawn: bool, 15 | } 16 | 17 | #[derive(Component)] 18 | pub struct Laser; 19 | 20 | #[derive(Component)] 21 | pub struct SpriteSize(pub Vec2); 22 | 23 | impl From<(f32, f32)> for SpriteSize { 24 | fn from(val: (f32, f32)) -> Self { 25 | SpriteSize(Vec2::new(val.0, val.1)) 26 | } 27 | } 28 | 29 | // endregion: --- Common Components 30 | 31 | // region: --- Player Components 32 | #[derive(Component)] 33 | pub struct Player; 34 | 35 | #[derive(Component)] 36 | pub struct FromPlayer; 37 | // endregion: --- Player Components 38 | 39 | // region: --- Enemy Components 40 | #[derive(Component)] 41 | pub struct Enemy; 42 | 43 | #[derive(Component)] 44 | pub struct FromEnemy; 45 | // endregion: --- Enemy Components 46 | 47 | // region: --- Explosion Components 48 | #[derive(Component)] 49 | pub struct Explosion; 50 | 51 | #[derive(Component)] 52 | pub struct ExplosionToSpawn(pub Vec3); 53 | 54 | #[derive(Component)] 55 | pub struct ExplosionTimer(pub Timer); 56 | 57 | impl Default for ExplosionTimer { 58 | fn default() -> Self { 59 | Self(Timer::from_seconds(0.05, TimerMode::Repeating)) 60 | } 61 | } 62 | // endregion: --- Explosion Components 63 | -------------------------------------------------------------------------------- /src/enemy/formation.rs: -------------------------------------------------------------------------------- 1 | use crate::{WinSize, BASE_SPEED, FORMATION_MEMBERS_MAX}; 2 | use bevy::prelude::{Component, Resource}; 3 | use rand::{thread_rng, Rng}; 4 | 5 | /// Component - Enemy Formation (per enemy) 6 | #[derive(Clone, Component)] 7 | pub struct Formation { 8 | pub start: (f32, f32), 9 | pub radius: (f32, f32), 10 | pub pivot: (f32, f32), 11 | pub speed: f32, 12 | pub angle: f32, // change per tick 13 | } 14 | 15 | /// Resource - Formation Maker 16 | #[derive(Default, Resource)] 17 | pub struct FormationMaker { 18 | current_template: Option, 19 | current_members: u32, 20 | } 21 | 22 | /// Formation factory implementation 23 | impl FormationMaker { 24 | pub fn make(&mut self, win_size: &WinSize) -> Formation { 25 | match (&self.current_template, self.current_members >= FORMATION_MEMBERS_MAX) { 26 | // if has current template and still within max members 27 | (Some(tmpl), false) => { 28 | self.current_members += 1; 29 | tmpl.clone() 30 | } 31 | // if first formation or previous formation is full (need to create a new one) 32 | (None, _) | (_, true) => { 33 | let mut rng = thread_rng(); 34 | 35 | // compute the start x/y 36 | let w_span = win_size.w / 2. + 100.; 37 | let h_span = win_size.h / 2. + 100.; 38 | let x = if rng.gen_bool(0.5) { w_span } else { -w_span }; 39 | let y = rng.gen_range(-h_span..h_span); 40 | let start = (x, y); 41 | 42 | // compute the pivot x/y 43 | let w_span = win_size.w / 4.; 44 | let h_span = win_size.h / 3. - 50.; 45 | let pivot = (rng.gen_range(-w_span..w_span), rng.gen_range(0.0..h_span)); 46 | 47 | // compute the radius 48 | let radius = (rng.gen_range(80.0..150.), 100.); 49 | 50 | // compute the start angle 51 | let angle = (y - pivot.1).atan2(x - pivot.0); 52 | 53 | // speed (fixed for now) 54 | let speed = BASE_SPEED; 55 | 56 | // create the formation 57 | let formation = Formation { 58 | start, 59 | radius, 60 | pivot, 61 | speed, 62 | angle, 63 | }; 64 | 65 | // store as template 66 | self.current_template = Some(formation.clone()); 67 | // reset members to 1 68 | self.current_members = 1; 69 | 70 | formation 71 | } 72 | } 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /src/enemy/mod.rs: -------------------------------------------------------------------------------- 1 | use self::formation::{Formation, FormationMaker}; 2 | use crate::components::{Enemy, FromEnemy, Laser, Movable, SpriteSize, Velocity}; 3 | use crate::{ 4 | EnemyCount, GameTextures, WinSize, ENEMY_LASER_SIZE, ENEMY_MAX, ENEMY_SIZE, SPRITE_SCALE, 5 | }; 6 | 7 | use bevy::prelude::*; 8 | use bevy::time::common_conditions::on_timer; 9 | use rand::{thread_rng, Rng}; 10 | use std::{f32::consts::PI, time::Duration}; 11 | 12 | mod formation; 13 | 14 | pub struct EnemyPlugin; 15 | 16 | impl Plugin for EnemyPlugin { 17 | fn build(&self, app: &mut App) { 18 | app.insert_resource(FormationMaker::default()) 19 | .add_systems(Update, enemy_spawn_system.run_if(on_timer(Duration::from_secs(1)))) 20 | .add_systems(Update, enemy_fire_system.run_if(enemy_fire_criteria)) 21 | .add_systems(Update, enemy_movement_system); 22 | } 23 | } 24 | 25 | fn enemy_spawn_system( 26 | mut commands: Commands, 27 | game_textures: Res, 28 | mut enemy_count: ResMut, 29 | mut formation_maker: ResMut, 30 | win_size: Res, 31 | ) { 32 | if enemy_count.0 < ENEMY_MAX { 33 | // get formation and start x/y 34 | let formation = formation_maker.make(&win_size); 35 | let (x, y) = formation.start; 36 | 37 | commands 38 | .spawn(( 39 | Sprite::from_image(game_textures.enemy.clone()), 40 | Transform { 41 | translation: Vec3::new(x, y, 10.), 42 | scale: Vec3::new(SPRITE_SCALE, SPRITE_SCALE, 1.), 43 | ..Default::default() 44 | }, 45 | )) 46 | .insert(Enemy) 47 | .insert(formation) 48 | .insert(SpriteSize::from(ENEMY_SIZE)); 49 | 50 | enemy_count.0 += 1; 51 | } 52 | } 53 | 54 | fn enemy_fire_criteria() -> bool { 55 | thread_rng().gen_bool(1. / 60.) 56 | } 57 | 58 | fn enemy_fire_system( 59 | mut commands: Commands, 60 | game_textures: Res, 61 | enemy_query: Query<&Transform, With>, 62 | ) { 63 | for &tf in enemy_query.iter() { 64 | let (x, y) = (tf.translation.x, tf.translation.y); 65 | // spawn enemy laser sprite 66 | commands 67 | .spawn(( 68 | Sprite::from_image(game_textures.enemy_laser.clone()), 69 | Transform { 70 | translation: Vec3::new(x, y - 15., 0.), 71 | rotation: Quat::from_rotation_x(PI), 72 | scale: Vec3::new(SPRITE_SCALE, SPRITE_SCALE, 1.), 73 | }, 74 | )) 75 | .insert(Laser) 76 | .insert(SpriteSize::from(ENEMY_LASER_SIZE)) 77 | .insert(FromEnemy) 78 | .insert(Movable { auto_despawn: true }) 79 | .insert(Velocity { x: 0., y: -1. }); 80 | } 81 | } 82 | 83 | fn enemy_movement_system( 84 | time: Res