An experimental, status effects-as-entities system for Bevy.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge pull request #9 from AlephCubed/MergeOverhaul

Merge system overhaul

authored by

Josiah Nelson and committed by
GitHub
12b36fce 33e2c806

+1290 -654
+901 -535
Cargo.lock
··· 88 88 checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" 89 89 dependencies = [ 90 90 "cfg-if", 91 - "getrandom", 91 + "getrandom 0.3.4", 92 92 "once_cell", 93 93 "version_check", 94 94 "zerocopy", ··· 119 119 checksum = "ed7572b7ba83a31e20d1b48970ee402d2e3e0537dcfe0a3ff4d6eb7508617d43" 120 120 dependencies = [ 121 121 "alsa-sys", 122 - "bitflags 2.10.0", 122 + "bitflags 2.11.0", 123 123 "cfg-if", 124 124 "libc", 125 125 ] ··· 136 136 137 137 [[package]] 138 138 name = "android-activity" 139 - version = "0.6.0" 139 + version = "0.6.1" 140 140 source = "registry+https://github.com/rust-lang/crates.io-index" 141 - checksum = "ef6978589202a00cd7e118380c448a08b6ed394c3a8df3a430d0898e3a42d046" 141 + checksum = "0f2a1bb052857d5dd49572219344a7332b31b76405648eabac5bc68978251bcd" 142 142 dependencies = [ 143 143 "android-properties", 144 - "bitflags 2.10.0", 144 + "bitflags 2.11.0", 145 145 "cc", 146 - "cesu8", 147 - "jni", 148 - "jni-sys", 146 + "jni 0.22.4", 149 147 "libc", 150 148 "log", 151 149 "ndk 0.9.0", 152 150 "ndk-context", 153 151 "ndk-sys 0.6.0+11769913", 154 152 "num_enum", 155 - "thiserror 1.0.69", 153 + "simd_cesu8", 154 + "thiserror 2.0.18", 156 155 ] 157 156 158 157 [[package]] ··· 184 183 185 184 [[package]] 186 185 name = "anstyle" 187 - version = "1.0.13" 186 + version = "1.0.14" 187 + source = "registry+https://github.com/rust-lang/crates.io-index" 188 + checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" 189 + 190 + [[package]] 191 + name = "anyhow" 192 + version = "1.0.102" 188 193 source = "registry+https://github.com/rust-lang/crates.io-index" 189 - checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" 194 + checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" 190 195 191 196 [[package]] 192 197 name = "approx" ··· 232 237 dependencies = [ 233 238 "proc-macro2", 234 239 "quote", 235 - "syn 2.0.111", 240 + "syn 2.0.117", 236 241 ] 237 242 238 243 [[package]] ··· 261 266 262 267 [[package]] 263 268 name = "async-executor" 264 - version = "1.13.3" 269 + version = "1.14.0" 265 270 source = "registry+https://github.com/rust-lang/crates.io-index" 266 - checksum = "497c00e0fd83a72a79a39fcbd8e3e2f055d6f6c7e025f3b3d91f4f8e76527fb8" 271 + checksum = "c96bf972d85afc50bf5ab8fe2d54d1586b4e0b46c97c50a0c9e71e2f7bcd812a" 267 272 dependencies = [ 268 273 "async-task", 269 274 "concurrent-queue", ··· 285 290 ] 286 291 287 292 [[package]] 293 + name = "async-io" 294 + version = "2.6.0" 295 + source = "registry+https://github.com/rust-lang/crates.io-index" 296 + checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc" 297 + dependencies = [ 298 + "autocfg", 299 + "cfg-if", 300 + "concurrent-queue", 301 + "futures-io", 302 + "futures-lite", 303 + "parking", 304 + "polling", 305 + "rustix 1.1.4", 306 + "slab", 307 + "windows-sys 0.61.2", 308 + ] 309 + 310 + [[package]] 288 311 name = "async-lock" 289 - version = "3.4.1" 312 + version = "3.4.2" 290 313 source = "registry+https://github.com/rust-lang/crates.io-index" 291 - checksum = "5fd03604047cee9b6ce9de9f70c6cd540a0520c813cbd49bae61f33ab80ed1dc" 314 + checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311" 292 315 dependencies = [ 293 316 "event-listener", 294 317 "event-listener-strategy", ··· 337 360 338 361 [[package]] 339 362 name = "bevy" 340 - version = "0.18.0" 363 + version = "0.18.1" 341 364 source = "registry+https://github.com/rust-lang/crates.io-index" 342 - checksum = "ec689b5a79452b6f777b889bbff22d3216b82a8d2ab7814d4a0eb571e9938d97" 365 + checksum = "1fd310426290cec560221f9750c2f4484be4a8eeea7de3483c423329b465c40e" 343 366 dependencies = [ 344 367 "bevy_internal", 345 368 ] 346 369 347 370 [[package]] 348 371 name = "bevy_a11y" 349 - version = "0.18.0" 372 + version = "0.18.1" 350 373 source = "registry+https://github.com/rust-lang/crates.io-index" 351 - checksum = "ef69b6d2dec07cbf407c63f6987e1746e4b735a9beea51f4bfc25ad49e344f75" 374 + checksum = "e887b25c84f384ffe3278a17cf0e4b405eaa3c8fbc3db24d05d560a11780676d" 352 375 dependencies = [ 353 376 "accesskit", 354 377 "bevy_app", ··· 359 382 360 383 [[package]] 361 384 name = "bevy_alchemy" 362 - version = "0.4.0" 385 + version = "0.5.0" 363 386 dependencies = [ 364 387 "bevy", 365 388 "bevy_app", ··· 368 391 "bevy_log", 369 392 "bevy_reflect", 370 393 "bevy_time", 394 + "bevy_utils", 371 395 "criterion", 372 396 "immediate_stats", 373 397 ] 374 398 375 399 [[package]] 376 400 name = "bevy_android" 377 - version = "0.18.0" 401 + version = "0.18.1" 378 402 source = "registry+https://github.com/rust-lang/crates.io-index" 379 - checksum = "008133458cfe0d43a8870bfc4c5a729467cc5d9246611462add38bcf45ed896f" 403 + checksum = "a8c58de772ac1148884112e8a456c4f127a94b95a0e42ab5b160b7a11895a241" 380 404 dependencies = [ 381 405 "android-activity", 382 406 ] 383 407 384 408 [[package]] 385 409 name = "bevy_animation" 386 - version = "0.18.0" 410 + version = "0.18.1" 387 411 source = "registry+https://github.com/rust-lang/crates.io-index" 388 - checksum = "13c852457843456c695ed22562969c83c3823454c3c40d359f92415371208ee7" 412 + checksum = "be5bf5b285f0d3fab983b4505e62e195e06930a29007ffc95bdabde834e163a2" 389 413 dependencies = [ 390 414 "bevy_animation_macros", 391 415 "bevy_app", ··· 408 432 "ron", 409 433 "serde", 410 434 "smallvec", 411 - "thiserror 2.0.17", 435 + "thiserror 2.0.18", 412 436 "thread_local", 413 437 "tracing", 414 438 "uuid", ··· 416 440 417 441 [[package]] 418 442 name = "bevy_animation_macros" 419 - version = "0.18.0" 443 + version = "0.18.1" 420 444 source = "registry+https://github.com/rust-lang/crates.io-index" 421 - checksum = "ac120bfd5a74e05f96013817d28318dc716afaa68864af069c7ffc3ccaf9d153" 445 + checksum = "7cf35516d0e7ac9ec25df533be1bf8cbaa20596a8e65f36838a3f7803a267d6d" 422 446 dependencies = [ 423 447 "bevy_macro_utils", 424 448 "quote", 425 - "syn 2.0.111", 449 + "syn 2.0.117", 426 450 ] 427 451 428 452 [[package]] 429 453 name = "bevy_anti_alias" 430 - version = "0.18.0" 454 + version = "0.18.1" 431 455 source = "registry+https://github.com/rust-lang/crates.io-index" 432 - checksum = "b418087f7c36a62c9886b55be6278e7b3d21c9943b107953aa2068000956a736" 456 + checksum = "726cc494eb7d6a84ce6291c23636fd451fa4846604dc059fa93febca4e60a928" 433 457 dependencies = [ 434 458 "bevy_app", 435 459 "bevy_asset", ··· 449 473 450 474 [[package]] 451 475 name = "bevy_app" 452 - version = "0.18.0" 476 + version = "0.18.1" 453 477 source = "registry+https://github.com/rust-lang/crates.io-index" 454 - checksum = "2271a0123a7cc355c3fe98754360c75aa84b29f2a6b1a9f8c00aac427570d174" 478 + checksum = "def9f41aa5bf9b9dec8beda307a332798609cffb9d44f71005e0cfb45164f2f6" 455 479 dependencies = [ 456 480 "bevy_derive", 457 481 "bevy_ecs", ··· 464 488 "ctrlc", 465 489 "downcast-rs 2.0.2", 466 490 "log", 467 - "thiserror 2.0.17", 491 + "thiserror 2.0.18", 468 492 "variadics_please", 469 493 "wasm-bindgen", 470 494 "web-sys", ··· 472 496 473 497 [[package]] 474 498 name = "bevy_asset" 475 - version = "0.18.0" 499 + version = "0.18.1" 476 500 source = "registry+https://github.com/rust-lang/crates.io-index" 477 - checksum = "b1f7361669d1426a3359cb92f890ef9c62bd6e6b67f0190d2c5279d25ce24168" 501 + checksum = "29f86fed15972b9fb1a3f7b092cf0390e67131caaedab15a2707c043e3a3c886" 478 502 dependencies = [ 479 503 "async-broadcast", 480 504 "async-channel", 481 505 "async-fs", 506 + "async-io", 482 507 "async-lock", 483 508 "atomicow", 484 509 "bevy_android", ··· 490 515 "bevy_reflect", 491 516 "bevy_tasks", 492 517 "bevy_utils", 493 - "bitflags 2.10.0", 518 + "bitflags 2.11.0", 494 519 "blake3", 495 520 "crossbeam-channel", 496 521 "derive_more", ··· 504 529 "ron", 505 530 "serde", 506 531 "stackfuture", 507 - "thiserror 2.0.17", 532 + "thiserror 2.0.18", 508 533 "tracing", 509 534 "uuid", 510 535 "wasm-bindgen", ··· 514 539 515 540 [[package]] 516 541 name = "bevy_asset_macros" 517 - version = "0.18.0" 542 + version = "0.18.1" 518 543 source = "registry+https://github.com/rust-lang/crates.io-index" 519 - checksum = "288e1edf17069afe2e02a0c0e7e5936b3d22a67c7d2dc9201a27e4451875f909" 544 + checksum = "12cb8d948365b06561b43b7d709282e62a6abb756baac5d8e295206d5e156168" 520 545 dependencies = [ 521 546 "bevy_macro_utils", 522 547 "proc-macro2", 523 548 "quote", 524 - "syn 2.0.111", 549 + "syn 2.0.117", 525 550 ] 526 551 527 552 [[package]] 528 553 name = "bevy_audio" 529 - version = "0.18.0" 554 + version = "0.18.1" 530 555 source = "registry+https://github.com/rust-lang/crates.io-index" 531 - checksum = "e3cbecfc6c5d3860f224f56d3152b14aa313168d35c16e847f5a0202a992c3af" 556 + checksum = "9d68da32468ce7f4bb2863b71326acfaaa88e9aef8da8306257cd487d40cede4" 532 557 dependencies = [ 533 558 "bevy_app", 534 559 "bevy_asset", ··· 579 604 "proc-macro2", 580 605 "quote", 581 606 "smart-default", 582 - "syn 2.0.111", 583 - "thiserror 2.0.17", 607 + "syn 2.0.117", 608 + "thiserror 2.0.18", 584 609 ] 585 610 586 611 [[package]] 587 612 name = "bevy_camera" 588 - version = "0.18.0" 613 + version = "0.18.1" 589 614 source = "registry+https://github.com/rust-lang/crates.io-index" 590 - checksum = "48c7e1f2a5da1755cd58e45c762f4ea2d72cef6c480f9c8ddbadbd2a4380c616" 615 + checksum = "37ed9eed054e14341852236d06a7244597b1ace39ff9ae023fbd188ffde88619" 591 616 dependencies = [ 592 617 "bevy_app", 593 618 "bevy_asset", ··· 605 630 "downcast-rs 2.0.2", 606 631 "serde", 607 632 "smallvec", 608 - "thiserror 2.0.17", 633 + "thiserror 2.0.18", 609 634 "wgpu-types", 610 635 ] 611 636 612 637 [[package]] 613 638 name = "bevy_color" 614 - version = "0.18.0" 639 + version = "0.18.1" 615 640 source = "registry+https://github.com/rust-lang/crates.io-index" 616 - checksum = "74727302424d7ffc23528a974dbb44a34708662926e1a3bfc5040493f858886e" 641 + checksum = "2eb41e8310a85811d14a4e75cfc2d6c07ac70661d6a4883509fc960f622970a8" 617 642 dependencies = [ 618 643 "bevy_math", 619 644 "bevy_reflect", ··· 621 646 "derive_more", 622 647 "encase", 623 648 "serde", 624 - "thiserror 2.0.17", 649 + "thiserror 2.0.18", 625 650 "wgpu-types", 626 651 ] 627 652 628 653 [[package]] 629 654 name = "bevy_core_pipeline" 630 - version = "0.18.0" 655 + version = "0.18.1" 631 656 source = "registry+https://github.com/rust-lang/crates.io-index" 632 - checksum = "a9e6bf0ba878bb5dd00ad4d70875b08eb11367829668c70d95785f5483ddb1cb" 657 + checksum = "4d0810e85c2436e50c67448d48a83bf0bb1b5849899619ae2c7ea817221e9172" 633 658 dependencies = [ 634 659 "bevy_app", 635 660 "bevy_asset", ··· 647 672 "bevy_transform", 648 673 "bevy_utils", 649 674 "bevy_window", 650 - "bitflags 2.10.0", 675 + "bitflags 2.11.0", 651 676 "nonmax", 652 677 "radsort", 653 678 "smallvec", 654 - "thiserror 2.0.17", 679 + "thiserror 2.0.18", 655 680 "tracing", 656 681 ] 657 682 658 683 [[package]] 659 684 name = "bevy_derive" 660 - version = "0.18.0" 685 + version = "0.18.1" 661 686 source = "registry+https://github.com/rust-lang/crates.io-index" 662 - checksum = "70b6a05c31f54c83d681f1b8699bbaf581f06b25a40c9a6bb815625f731f5ba9" 687 + checksum = "318ee0532c3da93749859d18f89a889c638fbc56aabac4d866583df7b951d103" 663 688 dependencies = [ 664 689 "bevy_macro_utils", 665 690 "quote", 666 - "syn 2.0.111", 691 + "syn 2.0.117", 667 692 ] 668 693 669 694 [[package]] 670 695 name = "bevy_dev_tools" 671 - version = "0.18.0" 696 + version = "0.18.1" 672 697 source = "registry+https://github.com/rust-lang/crates.io-index" 673 - checksum = "f3183daa165acce210c50c170c47433c90b1d55932ead9734ebca14b7cd242c4" 698 + checksum = "a4f1464a3f5ef5c23d917987714ee89881f9f791e9ff97ecf6600ee846b9569e" 674 699 dependencies = [ 675 700 "bevy_app", 676 701 "bevy_asset", ··· 697 722 698 723 [[package]] 699 724 name = "bevy_diagnostic" 700 - version = "0.18.0" 725 + version = "0.18.1" 701 726 source = "registry+https://github.com/rust-lang/crates.io-index" 702 - checksum = "aca4caa8a9014a435dca382b1bdebaee4363e9be69882c598fc4ff4d7cd56e6a" 727 + checksum = "ec8543a0f7afd56d3499ba80ffab6ef0bad12f93c2d2ca9aa7b1f1b8816c3980" 703 728 dependencies = [ 704 729 "atomic-waker", 705 730 "bevy_app", ··· 715 740 716 741 [[package]] 717 742 name = "bevy_ecs" 718 - version = "0.18.0" 743 + version = "0.18.1" 719 744 source = "registry+https://github.com/rust-lang/crates.io-index" 720 - checksum = "24637a7c8643cab493f4085cda6bde4895f0e0816699c59006f18819da2ca0b8" 745 + checksum = "c9cf7a3ee41342dd7b5a5d82e200d0e8efb933169247fce853b4ad633d51e87d" 721 746 dependencies = [ 722 747 "arrayvec", 723 748 "bevy_ecs_macros", ··· 726 751 "bevy_reflect", 727 752 "bevy_tasks", 728 753 "bevy_utils", 729 - "bitflags 2.10.0", 754 + "bitflags 2.11.0", 730 755 "bumpalo", 731 756 "concurrent-queue", 732 757 "derive_more", ··· 737 762 "serde", 738 763 "slotmap", 739 764 "smallvec", 740 - "thiserror 2.0.17", 765 + "thiserror 2.0.18", 741 766 "variadics_please", 742 767 ] 743 768 744 769 [[package]] 745 770 name = "bevy_ecs_macros" 746 - version = "0.18.0" 771 + version = "0.18.1" 747 772 source = "registry+https://github.com/rust-lang/crates.io-index" 748 - checksum = "6eb14c18ca71e11c69fbae873c2db129064efac6d52e48d0127d37bfba1acfa8" 773 + checksum = "908baf585e2ea16bd53ef0da57b69580478af0059d2dbdb4369991ac9794b618" 749 774 dependencies = [ 750 775 "bevy_macro_utils", 751 776 "proc-macro2", 752 777 "quote", 753 - "syn 2.0.111", 778 + "syn 2.0.117", 754 779 ] 755 780 756 781 [[package]] 757 782 name = "bevy_encase_derive" 758 - version = "0.18.0" 783 + version = "0.18.1" 759 784 source = "registry+https://github.com/rust-lang/crates.io-index" 760 - checksum = "0f89146a8fcbfe47310fc929ee762dd3b08d4de3e3371c601529cfa8eeb861de" 785 + checksum = "d4fee46eeddcbc00a805ae00ffa973f224671fc5cf0fe1a796963804faeade90" 761 786 dependencies = [ 762 787 "bevy_macro_utils", 763 788 "encase_derive_impl", 764 789 ] 765 790 766 791 [[package]] 792 + name = "bevy_feathers" 793 + version = "0.18.1" 794 + source = "registry+https://github.com/rust-lang/crates.io-index" 795 + checksum = "1cb29be8f8443c5cc44e1c4710bbe02877e73703c60228ca043f20529a5496c6" 796 + dependencies = [ 797 + "accesskit", 798 + "bevy_a11y", 799 + "bevy_app", 800 + "bevy_asset", 801 + "bevy_camera", 802 + "bevy_color", 803 + "bevy_derive", 804 + "bevy_ecs", 805 + "bevy_input_focus", 806 + "bevy_log", 807 + "bevy_math", 808 + "bevy_picking", 809 + "bevy_platform", 810 + "bevy_reflect", 811 + "bevy_render", 812 + "bevy_shader", 813 + "bevy_text", 814 + "bevy_ui", 815 + "bevy_ui_render", 816 + "bevy_ui_widgets", 817 + "bevy_window", 818 + "smol_str", 819 + ] 820 + 821 + [[package]] 767 822 name = "bevy_gilrs" 768 - version = "0.18.0" 823 + version = "0.18.1" 769 824 source = "registry+https://github.com/rust-lang/crates.io-index" 770 - checksum = "6c76417261ff3cd7ecda532b58514224aee06e76fbd87636c3a80695be7c8192" 825 + checksum = "611827ab0ce43b88c0a695e6603901b5f34687efecaf526c861456c9d8e6fedb" 771 826 dependencies = [ 772 827 "bevy_app", 773 828 "bevy_ecs", ··· 775 830 "bevy_platform", 776 831 "bevy_time", 777 832 "gilrs", 778 - "thiserror 2.0.17", 833 + "thiserror 2.0.18", 779 834 "tracing", 780 835 ] 781 836 782 837 [[package]] 783 838 name = "bevy_gizmos" 784 - version = "0.18.0" 839 + version = "0.18.1" 785 840 source = "registry+https://github.com/rust-lang/crates.io-index" 786 - checksum = "bc78a5699580c2dce078f4c099028d26525a5a38e8eb587a31854c660a3c5ff7" 841 + checksum = "6aaff0dd5f405c83d290c5cd591835f1ae8009894947ab19dadcb323062bd7e7" 787 842 dependencies = [ 788 843 "bevy_app", 789 844 "bevy_asset", ··· 801 856 802 857 [[package]] 803 858 name = "bevy_gizmos_macros" 804 - version = "0.18.0" 859 + version = "0.18.1" 805 860 source = "registry+https://github.com/rust-lang/crates.io-index" 806 - checksum = "60bb92e0ef80ff7c59429133244765515db3d313fae77ee67ffe94dab5b2725d" 861 + checksum = "6960ea308d7e94adcac5c712553ff86614bba6b663511f3f3812f6bec028b51e" 807 862 dependencies = [ 808 863 "bevy_macro_utils", 809 864 "quote", 810 - "syn 2.0.111", 865 + "syn 2.0.117", 811 866 ] 812 867 813 868 [[package]] 814 869 name = "bevy_gizmos_render" 815 - version = "0.18.0" 870 + version = "0.18.1" 816 871 source = "registry+https://github.com/rust-lang/crates.io-index" 817 - checksum = "48fde3172a31f81033b4f497dd9df84476f527fadb00936ede380fb646c402eb" 872 + checksum = "4a8d18c089102de4c5e9326023ad96ba618a6961029f8102a33640b966883237" 818 873 dependencies = [ 819 874 "bevy_app", 820 875 "bevy_asset", ··· 837 892 838 893 [[package]] 839 894 name = "bevy_gltf" 840 - version = "0.18.0" 895 + version = "0.18.1" 841 896 source = "registry+https://github.com/rust-lang/crates.io-index" 842 - checksum = "08372f222676dba313061fc71128209b82f9711e7c5cba222b5c34bf1c5c70fe" 897 + checksum = "5f37fb52655d0439656ca0a1db027d46926e463c81d893d4b1639668e5d7f1c1" 843 898 dependencies = [ 844 899 "async-lock", 845 900 "base64", ··· 867 922 "serde", 868 923 "serde_json", 869 924 "smallvec", 870 - "thiserror 2.0.17", 925 + "thiserror 2.0.18", 871 926 "tracing", 872 927 ] 873 928 874 929 [[package]] 875 930 name = "bevy_image" 876 - version = "0.18.0" 931 + version = "0.18.1" 877 932 source = "registry+https://github.com/rust-lang/crates.io-index" 878 - checksum = "809101ebe678a76c4c5ba3ecad255cde9be3ae0af591cf0143ba2c157afb55e9" 933 + checksum = "a71daf9b2afdd032c2b1122d1d501f99126218cb3e9983b3604ec381daa35f22" 879 934 dependencies = [ 880 935 "bevy_app", 881 936 "bevy_asset", ··· 885 940 "bevy_platform", 886 941 "bevy_reflect", 887 942 "bevy_utils", 888 - "bitflags 2.10.0", 943 + "bitflags 2.11.0", 889 944 "bytemuck", 890 945 "futures-lite", 891 946 "guillotiere", ··· 895 950 "rectangle-pack", 896 951 "ruzstd", 897 952 "serde", 898 - "thiserror 2.0.17", 953 + "thiserror 2.0.18", 899 954 "tracing", 900 955 "wgpu-types", 901 956 ] 902 957 903 958 [[package]] 904 959 name = "bevy_input" 905 - version = "0.18.0" 960 + version = "0.18.1" 906 961 source = "registry+https://github.com/rust-lang/crates.io-index" 907 - checksum = "9c2853993baf27b963a417d3603a73e02e39c5041913cd1ba7211b0a3037b191" 962 + checksum = "dbc8ffbd02df34dfc52faf420a5263985973765e228043adf542fd0d790a6b21" 908 963 dependencies = [ 909 964 "bevy_app", 910 965 "bevy_ecs", ··· 914 969 "derive_more", 915 970 "log", 916 971 "smol_str", 917 - "thiserror 2.0.17", 972 + "thiserror 2.0.18", 918 973 ] 919 974 920 975 [[package]] 921 976 name = "bevy_input_focus" 922 - version = "0.18.0" 977 + version = "0.18.1" 923 978 source = "registry+https://github.com/rust-lang/crates.io-index" 924 - checksum = "05fc0fae5e4e081180f7f7bf8023a2b97dad13dcb5fa79eba50cda5bb95699a9" 979 + checksum = "08d48a5bceccb9157549a39ab3de4017f5368b65db6471605e9a3f1c19d91bbc" 925 980 dependencies = [ 926 981 "bevy_app", 927 982 "bevy_ecs", ··· 931 986 "bevy_reflect", 932 987 "bevy_window", 933 988 "log", 934 - "thiserror 2.0.17", 989 + "thiserror 2.0.18", 935 990 ] 936 991 937 992 [[package]] 938 993 name = "bevy_internal" 939 - version = "0.18.0" 994 + version = "0.18.1" 940 995 source = "registry+https://github.com/rust-lang/crates.io-index" 941 - checksum = "57463815630ea71221c0b8e7bff72d816a3071a89507c45f9e2686fbb5e1956b" 996 + checksum = "6a11df62e49897def470471551c02f13c6fb488e55dddb5ab7ef098132e07754" 942 997 dependencies = [ 943 998 "bevy_a11y", 944 999 "bevy_android", ··· 954 1009 "bevy_dev_tools", 955 1010 "bevy_diagnostic", 956 1011 "bevy_ecs", 1012 + "bevy_feathers", 957 1013 "bevy_gilrs", 958 1014 "bevy_gizmos", 959 1015 "bevy_gizmos_render", ··· 990 1046 991 1047 [[package]] 992 1048 name = "bevy_light" 993 - version = "0.18.0" 1049 + version = "0.18.1" 994 1050 source = "registry+https://github.com/rust-lang/crates.io-index" 995 - checksum = "4f9968b8f8a6a766a88b66144474c39d1415edc277d042fec1526eae85e1f8b4" 1051 + checksum = "4d9d2ac64390a9baacb3c0fa0f5456ac1553959d5a387874c102a09aab8b92cc" 996 1052 dependencies = [ 997 1053 "bevy_app", 998 1054 "bevy_asset", ··· 1011 1067 1012 1068 [[package]] 1013 1069 name = "bevy_log" 1014 - version = "0.18.0" 1070 + version = "0.18.1" 1015 1071 source = "registry+https://github.com/rust-lang/crates.io-index" 1016 - checksum = "406304a9b867a2de98c3edf0cc9e5a608fad1a1ddc567e15e72c186a8273ef51" 1072 + checksum = "c2aac1187f83a1ab2eae887564f7fb14b4abb3fbe8b2267a6426663463923120" 1017 1073 dependencies = [ 1018 1074 "android_log-sys", 1019 1075 "bevy_app", ··· 1029 1085 1030 1086 [[package]] 1031 1087 name = "bevy_macro_utils" 1032 - version = "0.18.0" 1088 + version = "0.18.1" 1033 1089 source = "registry+https://github.com/rust-lang/crates.io-index" 1034 - checksum = "0b7272fca0bf30d8ca2571a803598856104b63e5c596d52850f811ed37c5e1e3" 1090 + checksum = "3b147843b81a7ec548876ff97fa7bfdc646ef2567cb465566259237b39664438" 1035 1091 dependencies = [ 1036 1092 "proc-macro2", 1037 1093 "quote", 1038 - "syn 2.0.111", 1039 - "toml_edit", 1094 + "syn 2.0.117", 1095 + "toml_edit 0.23.10+spec-1.0.0", 1040 1096 ] 1041 1097 1042 1098 [[package]] 1043 1099 name = "bevy_math" 1044 - version = "0.18.0" 1100 + version = "0.18.1" 1045 1101 source = "registry+https://github.com/rust-lang/crates.io-index" 1046 - checksum = "6a815c514b8a6f7b11508cdc8b3a4bf0761e96a14227af40aa93cb1160989ce0" 1102 + checksum = "e931fa969f89c83498b22c97432383afe90e90fd1a5e04fa07be8da4d3bcac84" 1047 1103 dependencies = [ 1048 1104 "approx", 1049 1105 "arrayvec", ··· 1055 1111 "rand", 1056 1112 "rand_distr", 1057 1113 "serde", 1058 - "thiserror 2.0.17", 1114 + "thiserror 2.0.18", 1059 1115 "variadics_please", 1060 1116 ] 1061 1117 1062 1118 [[package]] 1063 1119 name = "bevy_mesh" 1064 - version = "0.18.0" 1120 + version = "0.18.1" 1065 1121 source = "registry+https://github.com/rust-lang/crates.io-index" 1066 - checksum = "aacf09d0ffd1a15baf8d201c4a34b918912a506395c2817aa55ab3d3776c09f2" 1122 + checksum = "288f590c8173d4cca3cae5f2ba579accd5ed1a35dd3fab338f427eb39d55f05e" 1067 1123 dependencies = [ 1068 1124 "bevy_app", 1069 1125 "bevy_asset", ··· 1075 1131 "bevy_platform", 1076 1132 "bevy_reflect", 1077 1133 "bevy_transform", 1078 - "bitflags 2.10.0", 1134 + "bitflags 2.11.0", 1079 1135 "bytemuck", 1080 1136 "derive_more", 1081 1137 "hexasphere", 1082 - "thiserror 2.0.17", 1138 + "thiserror 2.0.18", 1083 1139 "tracing", 1084 1140 "wgpu-types", 1085 1141 ] ··· 1092 1148 1093 1149 [[package]] 1094 1150 name = "bevy_pbr" 1095 - version = "0.18.0" 1151 + version = "0.18.1" 1096 1152 source = "registry+https://github.com/rust-lang/crates.io-index" 1097 - checksum = "69cc361c65035f7e531b592d99bce95b6ab3f643cae2abe97dfa7681363159a6" 1153 + checksum = "a5ab6944ffc6fd71604c0fbca68cc3e2a3654edfcdbfd232f9d8b88e3d20fdc0" 1098 1154 dependencies = [ 1099 1155 "bevy_app", 1100 1156 "bevy_asset", ··· 1115 1171 "bevy_shader", 1116 1172 "bevy_transform", 1117 1173 "bevy_utils", 1118 - "bitflags 2.10.0", 1174 + "bitflags 2.11.0", 1119 1175 "bytemuck", 1120 1176 "derive_more", 1121 1177 "fixedbitset", ··· 1123 1179 "offset-allocator", 1124 1180 "smallvec", 1125 1181 "static_assertions", 1126 - "thiserror 2.0.17", 1182 + "thiserror 2.0.18", 1127 1183 "tracing", 1128 1184 ] 1129 1185 1130 1186 [[package]] 1131 1187 name = "bevy_picking" 1132 - version = "0.18.0" 1188 + version = "0.18.1" 1133 1189 source = "registry+https://github.com/rust-lang/crates.io-index" 1134 - checksum = "e4d10bb2a776087e1d8a9b87e8deb091d25bcedbe6160c613df2dc5fe069c3c5" 1190 + checksum = "b7d524dbc8f2c9e73f7ab70c148c8f7886f3c24b8aa8c252a38ba68ed06cbf10" 1135 1191 dependencies = [ 1136 1192 "bevy_app", 1137 1193 "bevy_asset", ··· 1153 1209 1154 1210 [[package]] 1155 1211 name = "bevy_platform" 1156 - version = "0.18.0" 1212 + version = "0.18.1" 1157 1213 source = "registry+https://github.com/rust-lang/crates.io-index" 1158 - checksum = "9b29ea749a8e85f98186ab662f607b885b97c804bb14cdb0cdf838164496d474" 1214 + checksum = "ec6b36504169b644acd26a5469fd8d371aa6f1d73ee5c01b1b1181ae1cefbf9b" 1159 1215 dependencies = [ 1160 1216 "critical-section", 1161 1217 "foldhash 0.2.0", ··· 1173 1229 1174 1230 [[package]] 1175 1231 name = "bevy_post_process" 1176 - version = "0.18.0" 1232 + version = "0.18.1" 1177 1233 source = "registry+https://github.com/rust-lang/crates.io-index" 1178 - checksum = "e8e1116cbc35637f267a29c7d2fe376e020f2b4402d6b525d328bae9c10460c7" 1234 + checksum = "8f77a4e894aea992e3d6938f1d5898a1cdbb87dba6eebfb95cb4038d0a2600e9" 1179 1235 dependencies = [ 1180 1236 "bevy_app", 1181 1237 "bevy_asset", ··· 1193 1249 "bevy_transform", 1194 1250 "bevy_utils", 1195 1251 "bevy_window", 1196 - "bitflags 2.10.0", 1252 + "bitflags 2.11.0", 1197 1253 "nonmax", 1198 1254 "radsort", 1199 1255 "smallvec", 1200 - "thiserror 2.0.17", 1256 + "thiserror 2.0.18", 1201 1257 "tracing", 1202 1258 ] 1203 1259 1204 1260 [[package]] 1205 1261 name = "bevy_ptr" 1206 - version = "0.18.0" 1262 + version = "0.18.1" 1207 1263 source = "registry+https://github.com/rust-lang/crates.io-index" 1208 - checksum = "4f98cbc6d34bbdb58240b72ed1731931b4991a893b3a3238bb7c42ae054aa676" 1264 + checksum = "c7a9329e8dc4e01ced480eeec4902e6d7cb56e56ec37f6fbc4323e5c937290a7" 1209 1265 1210 1266 [[package]] 1211 1267 name = "bevy_reflect" 1212 - version = "0.18.0" 1268 + version = "0.18.1" 1213 1269 source = "registry+https://github.com/rust-lang/crates.io-index" 1214 - checksum = "2b2a977e2b8dba65b6e9c11039c5f9ef108be428f036b3d1cac13ad86ec59f9c" 1270 + checksum = "d1dfeb67a9fe4f59003a84f5f99ba6302141c70e926601cbc6abfd4a1eea9ca9" 1215 1271 dependencies = [ 1216 1272 "assert_type_match", 1217 1273 "bevy_platform", ··· 1230 1286 "serde", 1231 1287 "smallvec", 1232 1288 "smol_str", 1233 - "thiserror 2.0.17", 1289 + "thiserror 2.0.18", 1234 1290 "uuid", 1235 1291 "variadics_please", 1236 1292 "wgpu-types", ··· 1238 1294 1239 1295 [[package]] 1240 1296 name = "bevy_reflect_derive" 1241 - version = "0.18.0" 1297 + version = "0.18.1" 1242 1298 source = "registry+https://github.com/rust-lang/crates.io-index" 1243 - checksum = "067af30072b1611fda1a577f1cb678b8ea2c9226133068be808dd49aac30cef0" 1299 + checksum = "475f68c93e9cd5f17e9167635c8533a4f388f12d38245a202359e4c2721d87ba" 1244 1300 dependencies = [ 1245 1301 "bevy_macro_utils", 1246 1302 "indexmap", 1247 1303 "proc-macro2", 1248 1304 "quote", 1249 - "syn 2.0.111", 1305 + "syn 2.0.117", 1250 1306 "uuid", 1251 1307 ] 1252 1308 1253 1309 [[package]] 1254 1310 name = "bevy_render" 1255 - version = "0.18.0" 1311 + version = "0.18.1" 1256 1312 source = "registry+https://github.com/rust-lang/crates.io-index" 1257 - checksum = "d6b2c9a276646bde8ba58a7e15711b459fb4a5cdf46c47059b7a310f97a70d9c" 1313 + checksum = "243523e33fe5dfcebc4240b1eb2fc16e855c5d4c0ea6a8393910740956770f44" 1258 1314 dependencies = [ 1259 1315 "async-channel", 1260 1316 "bevy_app", ··· 1277 1333 "bevy_transform", 1278 1334 "bevy_utils", 1279 1335 "bevy_window", 1280 - "bitflags 2.10.0", 1336 + "bitflags 2.11.0", 1281 1337 "bytemuck", 1282 1338 "derive_more", 1283 1339 "downcast-rs 2.0.2", ··· 1292 1348 "offset-allocator", 1293 1349 "send_wrapper", 1294 1350 "smallvec", 1295 - "thiserror 2.0.17", 1351 + "thiserror 2.0.18", 1296 1352 "tracing", 1297 1353 "variadics_please", 1298 1354 "wasm-bindgen", ··· 1302 1358 1303 1359 [[package]] 1304 1360 name = "bevy_render_macros" 1305 - version = "0.18.0" 1361 + version = "0.18.1" 1306 1362 source = "registry+https://github.com/rust-lang/crates.io-index" 1307 - checksum = "03e16b8cac95b87021399ed19f6ab79c0b1e03101a448e3a0240934f78f66a56" 1363 + checksum = "66b6325e9c495a71270446784611e8d7f446f927eac8506c4c099fd10cb4c3ed" 1308 1364 dependencies = [ 1309 1365 "bevy_macro_utils", 1310 1366 "proc-macro2", 1311 1367 "quote", 1312 - "syn 2.0.111", 1368 + "syn 2.0.117", 1313 1369 ] 1314 1370 1315 1371 [[package]] 1316 1372 name = "bevy_scene" 1317 - version = "0.18.0" 1373 + version = "0.18.1" 1318 1374 source = "registry+https://github.com/rust-lang/crates.io-index" 1319 - checksum = "0046bb071ee358619f2fa9409ccced47375502b098b4107ec3385f3a1acf6600" 1375 + checksum = "34cc1047d85ec8048261b63ef675c12f1e6b5782dc0b422fbcee0c140d026bd4" 1320 1376 dependencies = [ 1321 1377 "bevy_app", 1322 1378 "bevy_asset", ··· 1330 1386 "derive_more", 1331 1387 "ron", 1332 1388 "serde", 1333 - "thiserror 2.0.17", 1389 + "thiserror 2.0.18", 1334 1390 "uuid", 1335 1391 ] 1336 1392 1337 1393 [[package]] 1338 1394 name = "bevy_shader" 1339 - version = "0.18.0" 1395 + version = "0.18.1" 1340 1396 source = "registry+https://github.com/rust-lang/crates.io-index" 1341 - checksum = "4a14cb0991b2482a66b94728cbcf7482d1b74364be017197396435d3d542b8d3" 1397 + checksum = "9eea95f0273c32be13d6a0b799a93bc256ad7830759ede595c404d5234302da2" 1342 1398 dependencies = [ 1343 1399 "bevy_asset", 1344 1400 "bevy_platform", ··· 1346 1402 "naga", 1347 1403 "naga_oil", 1348 1404 "serde", 1349 - "thiserror 2.0.17", 1405 + "thiserror 2.0.18", 1350 1406 "tracing", 1351 1407 "wgpu-types", 1352 1408 ] 1353 1409 1354 1410 [[package]] 1355 1411 name = "bevy_sprite" 1356 - version = "0.18.0" 1412 + version = "0.18.1" 1357 1413 source = "registry+https://github.com/rust-lang/crates.io-index" 1358 - checksum = "b2b3921ce1a8ce801c29d9552cbc204548bfeb16b9b829045c9e82b5917d99cc" 1414 + checksum = "96ec5bc0cbdee551b610a46f41d30374bbe42b8951ffc676253c6243ab2b9395" 1359 1415 dependencies = [ 1360 1416 "bevy_app", 1361 1417 "bevy_asset", ··· 1378 1434 1379 1435 [[package]] 1380 1436 name = "bevy_sprite_render" 1381 - version = "0.18.0" 1437 + version = "0.18.1" 1382 1438 source = "registry+https://github.com/rust-lang/crates.io-index" 1383 - checksum = "ed40642fa0e1330df65b6a1bf0b14aa32fcd9d7f3306e08e0784c10362bd6265" 1439 + checksum = "b82cb08905e7ddcea2694a95f757ae7f1fd01e6a7304076bad595d2158e4bfe0" 1384 1440 dependencies = [ 1385 1441 "bevy_app", 1386 1442 "bevy_asset", ··· 1400 1456 "bevy_text", 1401 1457 "bevy_transform", 1402 1458 "bevy_utils", 1403 - "bitflags 2.10.0", 1459 + "bitflags 2.11.0", 1404 1460 "bytemuck", 1405 1461 "derive_more", 1406 1462 "fixedbitset", ··· 1410 1466 1411 1467 [[package]] 1412 1468 name = "bevy_state" 1413 - version = "0.18.0" 1469 + version = "0.18.1" 1414 1470 source = "registry+https://github.com/rust-lang/crates.io-index" 1415 - checksum = "9453325ca0c185a043f4515158daa15a8ab19139a60fd1edaf87fbe896cb7f83" 1471 + checksum = "0ae0682968e97d29c1eccc8c6bb6283f2678d362779bc03f1bb990967059473b" 1416 1472 dependencies = [ 1417 1473 "bevy_app", 1418 1474 "bevy_ecs", ··· 1426 1482 1427 1483 [[package]] 1428 1484 name = "bevy_state_macros" 1429 - version = "0.18.0" 1485 + version = "0.18.1" 1430 1486 source = "registry+https://github.com/rust-lang/crates.io-index" 1431 - checksum = "d733081e57e49b3c43bdf3766d1de74c7df32e0f4db20c20437c85b1d18908de" 1487 + checksum = "73d32f90f9cfcef5a44401db7ce206770daaa1707b0fb95eb7a96a6933f54f1b" 1432 1488 dependencies = [ 1433 1489 "bevy_macro_utils", 1434 1490 "quote", 1435 - "syn 2.0.111", 1491 + "syn 2.0.117", 1436 1492 ] 1437 1493 1438 1494 [[package]] 1439 1495 name = "bevy_tasks" 1440 - version = "0.18.0" 1496 + version = "0.18.1" 1441 1497 source = "registry+https://github.com/rust-lang/crates.io-index" 1442 - checksum = "990ffedd374dd2c4fe8f0fd4bcefd5617d1ee59164b6c3fcc356a69b48e26e8e" 1498 + checksum = "384eb04d80aa38664d69988fd30cbbe03e937ecb65c66aa6abe60ce0bca826aa" 1443 1499 dependencies = [ 1444 1500 "async-channel", 1445 1501 "async-executor", ··· 1456 1512 1457 1513 [[package]] 1458 1514 name = "bevy_text" 1459 - version = "0.18.0" 1515 + version = "0.18.1" 1460 1516 source = "registry+https://github.com/rust-lang/crates.io-index" 1461 - checksum = "ecbb6eeaa9a63d1f8aae8c0d79f8d5e14c584a962a4ef9f69115fd7d10941101" 1517 + checksum = "fdc5233291dfc22e584de2535f2e37ae9766d37cb5a01652de2133ba202dcb9b" 1462 1518 dependencies = [ 1463 1519 "bevy_app", 1464 1520 "bevy_asset", ··· 1475 1531 "serde", 1476 1532 "smallvec", 1477 1533 "sys-locale", 1478 - "thiserror 2.0.17", 1534 + "thiserror 2.0.18", 1479 1535 "tracing", 1480 1536 "wgpu-types", 1481 1537 ] 1482 1538 1483 1539 [[package]] 1484 1540 name = "bevy_time" 1485 - version = "0.18.0" 1541 + version = "0.18.1" 1486 1542 source = "registry+https://github.com/rust-lang/crates.io-index" 1487 - checksum = "e4c68b78e7ca1cc10c811cd1ded8350f53f2be11eb46946879a74c684026bff7" 1543 + checksum = "b5ef9af4e523195e561074cf60fbfad0f4cb8d1db504855fee3c4ce8896c7244" 1488 1544 dependencies = [ 1489 1545 "bevy_app", 1490 1546 "bevy_ecs", ··· 1497 1553 1498 1554 [[package]] 1499 1555 name = "bevy_transform" 1500 - version = "0.18.0" 1556 + version = "0.18.1" 1501 1557 source = "registry+https://github.com/rust-lang/crates.io-index" 1502 - checksum = "b30e3957de42c2f7d88dfe8428e739b74deab8932d2a8bbb9d4eefbd64b6aa34" 1558 + checksum = "3c3bb3de7842fef699344beb03f22bdbff16599d788fe0f47fbb3b1e6fa320eb" 1503 1559 dependencies = [ 1504 1560 "bevy_app", 1505 1561 "bevy_ecs", ··· 1510 1566 "bevy_utils", 1511 1567 "derive_more", 1512 1568 "serde", 1513 - "thiserror 2.0.17", 1569 + "thiserror 2.0.18", 1514 1570 ] 1515 1571 1516 1572 [[package]] 1517 1573 name = "bevy_ui" 1518 - version = "0.18.0" 1574 + version = "0.18.1" 1519 1575 source = "registry+https://github.com/rust-lang/crates.io-index" 1520 - checksum = "889c6892e9c5c308ab225a1322d07fb2358ccf39493526cda4d5f083d717773d" 1576 + checksum = "1691a411014085e0d35f8bb8208e5f973edd7ace061a4b1c41c83de21579dc70" 1521 1577 dependencies = [ 1522 1578 "accesskit", 1523 1579 "bevy_a11y", ··· 1542 1598 "derive_more", 1543 1599 "smallvec", 1544 1600 "taffy", 1545 - "thiserror 2.0.17", 1601 + "thiserror 2.0.18", 1546 1602 "tracing", 1547 1603 "uuid", 1548 1604 ] 1549 1605 1550 1606 [[package]] 1551 1607 name = "bevy_ui_render" 1552 - version = "0.18.0" 1608 + version = "0.18.1" 1553 1609 source = "registry+https://github.com/rust-lang/crates.io-index" 1554 - checksum = "b649395e32a4761d4f17aeff37170a4421c94a14c505645397b8ee8510eb19e9" 1610 + checksum = "c2c35402d8a052f512e3fec1f36b26e83eee713fcca57f965c244ee795e1fcb0" 1555 1611 dependencies = [ 1556 1612 "bevy_app", 1557 1613 "bevy_asset", ··· 1579 1635 ] 1580 1636 1581 1637 [[package]] 1638 + name = "bevy_ui_widgets" 1639 + version = "0.18.1" 1640 + source = "registry+https://github.com/rust-lang/crates.io-index" 1641 + checksum = "b6a63cb818b0de41bdb14990e0ce1aaaa347f871750ab280f80c427e83d72712" 1642 + dependencies = [ 1643 + "accesskit", 1644 + "bevy_a11y", 1645 + "bevy_app", 1646 + "bevy_camera", 1647 + "bevy_ecs", 1648 + "bevy_input", 1649 + "bevy_input_focus", 1650 + "bevy_log", 1651 + "bevy_math", 1652 + "bevy_picking", 1653 + "bevy_reflect", 1654 + "bevy_ui", 1655 + ] 1656 + 1657 + [[package]] 1582 1658 name = "bevy_utils" 1583 - version = "0.18.0" 1659 + version = "0.18.1" 1584 1660 source = "registry+https://github.com/rust-lang/crates.io-index" 1585 - checksum = "e258c44d869f9c41ac0f88a16815c67f2569eb9fff4716828a40273d127b6f84" 1661 + checksum = "2111910cd7a4b1e6ce07eaaeb6f68a2c0ea0ca609ed0d0d506e3eb161101435b" 1586 1662 dependencies = [ 1587 1663 "bevy_platform", 1588 1664 "disqualified", ··· 1591 1667 1592 1668 [[package]] 1593 1669 name = "bevy_window" 1594 - version = "0.18.0" 1670 + version = "0.18.1" 1595 1671 source = "registry+https://github.com/rust-lang/crates.io-index" 1596 - checksum = "869a56f1da2544641734018e1f1caa660299cd6e3af794f3fa0df72293d8eed2" 1672 + checksum = "6df06e6993a0896bae2fe7644ae6def29a1a92b45dfb1bcebbd92af782be3638" 1597 1673 dependencies = [ 1598 1674 "bevy_app", 1599 1675 "bevy_asset", ··· 1610 1686 1611 1687 [[package]] 1612 1688 name = "bevy_winit" 1613 - version = "0.18.0" 1689 + version = "0.18.1" 1614 1690 source = "registry+https://github.com/rust-lang/crates.io-index" 1615 - checksum = "8142a3749fc491eeae481c30bb3830cf5a71d2fa3dba4d450a42792f6d39eb2d" 1691 + checksum = "f2de1c13d32ab8528435b58eca7ab874a1068184c6d6f266ee11433ae99d4069" 1616 1692 dependencies = [ 1617 1693 "accesskit", 1618 1694 "accesskit_winit", ··· 1648 1724 source = "registry+https://github.com/rust-lang/crates.io-index" 1649 1725 checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" 1650 1726 dependencies = [ 1651 - "bitflags 2.10.0", 1727 + "bitflags 2.11.0", 1652 1728 "cexpr", 1653 1729 "clang-sys", 1654 1730 "itertools 0.13.0", 1655 1731 "proc-macro2", 1656 1732 "quote", 1657 1733 "regex", 1658 - "rustc-hash 2.1.1", 1734 + "rustc-hash 2.1.2", 1659 1735 "shlex", 1660 - "syn 2.0.111", 1736 + "syn 2.0.117", 1661 1737 ] 1662 1738 1663 1739 [[package]] ··· 1683 1759 1684 1760 [[package]] 1685 1761 name = "bitflags" 1686 - version = "2.10.0" 1762 + version = "2.11.0" 1687 1763 source = "registry+https://github.com/rust-lang/crates.io-index" 1688 - checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" 1764 + checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" 1689 1765 dependencies = [ 1690 1766 "bytemuck", 1691 1767 "serde_core", ··· 1693 1769 1694 1770 [[package]] 1695 1771 name = "blake3" 1696 - version = "1.8.2" 1772 + version = "1.8.4" 1697 1773 source = "registry+https://github.com/rust-lang/crates.io-index" 1698 - checksum = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0" 1774 + checksum = "4d2d5991425dfd0785aed03aedcf0b321d61975c9b5b3689c774a2610ae0b51e" 1699 1775 dependencies = [ 1700 1776 "arrayref", 1701 1777 "arrayvec", 1702 1778 "cc", 1703 1779 "cfg-if", 1704 1780 "constant_time_eq", 1781 + "cpufeatures", 1705 1782 ] 1706 1783 1707 1784 [[package]] ··· 1725 1802 source = "registry+https://github.com/rust-lang/crates.io-index" 1726 1803 checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" 1727 1804 dependencies = [ 1728 - "objc2 0.6.3", 1805 + "objc2 0.6.4", 1729 1806 ] 1730 1807 1731 1808 [[package]] ··· 1743 1820 1744 1821 [[package]] 1745 1822 name = "bumpalo" 1746 - version = "3.19.1" 1823 + version = "3.20.2" 1747 1824 source = "registry+https://github.com/rust-lang/crates.io-index" 1748 - checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" 1825 + checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" 1749 1826 1750 1827 [[package]] 1751 1828 name = "bytemuck" 1752 - version = "1.24.0" 1829 + version = "1.25.0" 1753 1830 source = "registry+https://github.com/rust-lang/crates.io-index" 1754 - checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" 1831 + checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" 1755 1832 dependencies = [ 1756 1833 "bytemuck_derive", 1757 1834 ] ··· 1764 1841 dependencies = [ 1765 1842 "proc-macro2", 1766 1843 "quote", 1767 - "syn 2.0.111", 1844 + "syn 2.0.117", 1768 1845 ] 1769 1846 1770 1847 [[package]] ··· 1781 1858 1782 1859 [[package]] 1783 1860 name = "bytes" 1784 - version = "1.11.0" 1861 + version = "1.11.1" 1785 1862 source = "registry+https://github.com/rust-lang/crates.io-index" 1786 - checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" 1863 + checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" 1787 1864 1788 1865 [[package]] 1789 1866 name = "calloop" ··· 1791 1868 source = "registry+https://github.com/rust-lang/crates.io-index" 1792 1869 checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec" 1793 1870 dependencies = [ 1794 - "bitflags 2.10.0", 1871 + "bitflags 2.11.0", 1795 1872 "log", 1796 1873 "polling", 1797 1874 "rustix 0.38.44", ··· 1819 1896 1820 1897 [[package]] 1821 1898 name = "cc" 1822 - version = "1.2.49" 1899 + version = "1.2.59" 1823 1900 source = "registry+https://github.com/rust-lang/crates.io-index" 1824 - checksum = "90583009037521a116abf44494efecd645ba48b6622457080f080b85544e2215" 1901 + checksum = "b7a4d3ec6524d28a329fc53654bbadc9bdd7b0431f5d65f1a56ffb28a1ee5283" 1825 1902 dependencies = [ 1826 1903 "find-msvc-tools", 1827 1904 "jobserver", ··· 1983 2060 1984 2061 [[package]] 1985 2062 name = "constant_time_eq" 1986 - version = "0.3.1" 2063 + version = "0.4.2" 1987 2064 source = "registry+https://github.com/rust-lang/crates.io-index" 1988 - checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" 2065 + checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" 1989 2066 1990 2067 [[package]] 1991 2068 name = "constgebra" ··· 2061 2138 source = "registry+https://github.com/rust-lang/crates.io-index" 2062 2139 checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" 2063 2140 dependencies = [ 2064 - "bitflags 2.10.0", 2141 + "bitflags 2.11.0", 2065 2142 "core-foundation 0.10.1", 2066 2143 "libc", 2067 2144 ] ··· 2101 2178 source = "registry+https://github.com/rust-lang/crates.io-index" 2102 2179 checksum = "c4cadaea21e24c49c0c82116f2b465ae6a49d63c90e428b0f8d9ae1f638ac91f" 2103 2180 dependencies = [ 2104 - "bitflags 2.10.0", 2181 + "bitflags 2.11.0", 2105 2182 "fontdb", 2106 2183 "harfrust", 2107 2184 "linebender_resource_handle", ··· 2129 2206 "core-foundation-sys", 2130 2207 "coreaudio-rs", 2131 2208 "dasp_sample", 2132 - "jni", 2209 + "jni 0.21.1", 2133 2210 "js-sys", 2134 2211 "libc", 2135 2212 "mach2", ··· 2140 2217 "wasm-bindgen-futures", 2141 2218 "web-sys", 2142 2219 "windows 0.54.0", 2220 + ] 2221 + 2222 + [[package]] 2223 + name = "cpufeatures" 2224 + version = "0.3.0" 2225 + source = "registry+https://github.com/rust-lang/crates.io-index" 2226 + checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" 2227 + dependencies = [ 2228 + "libc", 2143 2229 ] 2144 2230 2145 2231 [[package]] ··· 2243 2329 2244 2330 [[package]] 2245 2331 name = "ctrlc" 2246 - version = "3.5.1" 2332 + version = "3.5.2" 2247 2333 source = "registry+https://github.com/rust-lang/crates.io-index" 2248 - checksum = "73736a89c4aff73035ba2ed2e565061954da00d4970fc9ac25dcc85a2a20d790" 2334 + checksum = "e0b1fab2ae45819af2d0731d60f2afe17227ebb1a1538a236da84c93e9a60162" 2249 2335 dependencies = [ 2250 2336 "dispatch2", 2251 - "nix", 2337 + "nix 0.31.2", 2252 2338 "windows-sys 0.61.2", 2253 2339 ] 2254 2340 ··· 2279 2365 "proc-macro2", 2280 2366 "quote", 2281 2367 "strsim", 2282 - "syn 2.0.111", 2368 + "syn 2.0.117", 2283 2369 ] 2284 2370 2285 2371 [[package]] ··· 2290 2376 dependencies = [ 2291 2377 "darling_core", 2292 2378 "quote", 2293 - "syn 2.0.111", 2379 + "syn 2.0.117", 2294 2380 ] 2295 2381 2296 2382 [[package]] ··· 2301 2387 2302 2388 [[package]] 2303 2389 name = "data-encoding" 2304 - version = "2.9.0" 2390 + version = "2.10.0" 2305 2391 source = "registry+https://github.com/rust-lang/crates.io-index" 2306 - checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" 2392 + checksum = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea" 2307 2393 2308 2394 [[package]] 2309 2395 name = "derive_more" 2310 - version = "2.1.0" 2396 + version = "2.1.1" 2311 2397 source = "registry+https://github.com/rust-lang/crates.io-index" 2312 - checksum = "10b768e943bed7bf2cab53df09f4bc34bfd217cdb57d971e769874c9a6710618" 2398 + checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134" 2313 2399 dependencies = [ 2314 2400 "derive_more-impl", 2315 2401 ] 2316 2402 2317 2403 [[package]] 2318 2404 name = "derive_more-impl" 2319 - version = "2.1.0" 2405 + version = "2.1.1" 2320 2406 source = "registry+https://github.com/rust-lang/crates.io-index" 2321 - checksum = "6d286bfdaf75e988b4a78e013ecd79c581e06399ab53fbacd2d916c2f904f30b" 2407 + checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb" 2322 2408 dependencies = [ 2323 2409 "convert_case", 2324 2410 "proc-macro2", 2325 2411 "quote", 2326 2412 "rustc_version", 2327 - "syn 2.0.111", 2413 + "syn 2.0.117", 2328 2414 "unicode-xid", 2329 2415 ] 2330 2416 ··· 2336 2422 2337 2423 [[package]] 2338 2424 name = "dispatch2" 2339 - version = "0.3.0" 2425 + version = "0.3.1" 2340 2426 source = "registry+https://github.com/rust-lang/crates.io-index" 2341 - checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" 2427 + checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" 2342 2428 dependencies = [ 2343 - "bitflags 2.10.0", 2429 + "bitflags 2.11.0", 2344 2430 "block2 0.6.2", 2345 2431 "libc", 2346 - "objc2 0.6.3", 2432 + "objc2 0.6.4", 2347 2433 ] 2348 2434 2349 2435 [[package]] ··· 2354 2440 2355 2441 [[package]] 2356 2442 name = "dlib" 2357 - version = "0.5.2" 2443 + version = "0.5.3" 2358 2444 source = "registry+https://github.com/rust-lang/crates.io-index" 2359 - checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" 2445 + checksum = "ab8ecd87370524b461f8557c119c405552c396ed91fc0a8eec68679eab26f94a" 2360 2446 dependencies = [ 2361 2447 "libloading", 2362 2448 ] ··· 2402 2488 dependencies = [ 2403 2489 "const_panic", 2404 2490 "encase_derive", 2405 - "thiserror 2.0.17", 2491 + "thiserror 2.0.18", 2406 2492 ] 2407 2493 2408 2494 [[package]] ··· 2422 2508 dependencies = [ 2423 2509 "proc-macro2", 2424 2510 "quote", 2425 - "syn 2.0.111", 2511 + "syn 2.0.117", 2426 2512 ] 2427 2513 2428 2514 [[package]] ··· 2433 2519 2434 2520 [[package]] 2435 2521 name = "erased-serde" 2436 - version = "0.4.9" 2522 + version = "0.4.10" 2437 2523 source = "registry+https://github.com/rust-lang/crates.io-index" 2438 - checksum = "89e8918065695684b2b0702da20382d5ae6065cf3327bc2d6436bd49a71ce9f3" 2524 + checksum = "d2add8a07dd6a8d93ff627029c51de145e12686fbc36ecb298ac22e74cf02dec" 2439 2525 dependencies = [ 2440 2526 "serde", 2441 2527 "serde_core", ··· 2454 2540 2455 2541 [[package]] 2456 2542 name = "euclid" 2457 - version = "0.22.11" 2543 + version = "0.22.14" 2458 2544 source = "registry+https://github.com/rust-lang/crates.io-index" 2459 - checksum = "ad9cdb4b747e485a12abb0e6566612956c7a1bafa3bdb8d682c5b6d403589e48" 2545 + checksum = "f1a05365e3b1c6d1650318537c7460c6923f1abdd272ad6842baa2b509957a06" 2460 2546 dependencies = [ 2461 2547 "num-traits", 2462 2548 ] ··· 2499 2585 2500 2586 [[package]] 2501 2587 name = "find-msvc-tools" 2502 - version = "0.1.5" 2588 + version = "0.1.9" 2503 2589 source = "registry+https://github.com/rust-lang/crates.io-index" 2504 - checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844" 2590 + checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" 2505 2591 2506 2592 [[package]] 2507 2593 name = "fixedbitset" ··· 2511 2597 2512 2598 [[package]] 2513 2599 name = "flate2" 2514 - version = "1.1.5" 2600 + version = "1.1.9" 2515 2601 source = "registry+https://github.com/rust-lang/crates.io-index" 2516 - checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb" 2602 + checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" 2517 2603 dependencies = [ 2518 2604 "crc32fast", 2519 2605 "miniz_oxide", ··· 2547 2633 ] 2548 2634 2549 2635 [[package]] 2636 + name = "font-types" 2637 + version = "0.11.2" 2638 + source = "registry+https://github.com/rust-lang/crates.io-index" 2639 + checksum = "2d9237c6d82152100c691fb77ea18037b402bcc7257d2c876a4ffac81bc22a1c" 2640 + dependencies = [ 2641 + "bytemuck", 2642 + ] 2643 + 2644 + [[package]] 2550 2645 name = "fontconfig-parser" 2551 2646 version = "0.5.8" 2552 2647 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2587 2682 dependencies = [ 2588 2683 "proc-macro2", 2589 2684 "quote", 2590 - "syn 2.0.111", 2685 + "syn 2.0.117", 2591 2686 ] 2592 2687 2593 2688 [[package]] ··· 2598 2693 2599 2694 [[package]] 2600 2695 name = "futures-channel" 2601 - version = "0.3.31" 2696 + version = "0.3.32" 2602 2697 source = "registry+https://github.com/rust-lang/crates.io-index" 2603 - checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" 2698 + checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" 2604 2699 dependencies = [ 2605 2700 "futures-core", 2606 2701 ] 2607 2702 2608 2703 [[package]] 2609 2704 name = "futures-core" 2610 - version = "0.3.31" 2705 + version = "0.3.32" 2611 2706 source = "registry+https://github.com/rust-lang/crates.io-index" 2612 - checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" 2707 + checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" 2613 2708 2614 2709 [[package]] 2615 2710 name = "futures-io" 2616 - version = "0.3.31" 2711 + version = "0.3.32" 2617 2712 source = "registry+https://github.com/rust-lang/crates.io-index" 2618 - checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" 2713 + checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" 2619 2714 2620 2715 [[package]] 2621 2716 name = "futures-lite" ··· 2632 2727 2633 2728 [[package]] 2634 2729 name = "futures-macro" 2635 - version = "0.3.31" 2730 + version = "0.3.32" 2636 2731 source = "registry+https://github.com/rust-lang/crates.io-index" 2637 - checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" 2732 + checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" 2638 2733 dependencies = [ 2639 2734 "proc-macro2", 2640 2735 "quote", 2641 - "syn 2.0.111", 2736 + "syn 2.0.117", 2642 2737 ] 2643 2738 2644 2739 [[package]] 2645 2740 name = "futures-task" 2646 - version = "0.3.31" 2741 + version = "0.3.32" 2647 2742 source = "registry+https://github.com/rust-lang/crates.io-index" 2648 - checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" 2743 + checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" 2649 2744 2650 2745 [[package]] 2651 2746 name = "futures-util" 2652 - version = "0.3.31" 2747 + version = "0.3.32" 2653 2748 source = "registry+https://github.com/rust-lang/crates.io-index" 2654 - checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" 2749 + checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" 2655 2750 dependencies = [ 2656 2751 "futures-core", 2657 2752 "futures-macro", 2658 2753 "futures-task", 2659 2754 "pin-project-lite", 2660 - "pin-utils", 2755 + "slab", 2661 2756 ] 2662 2757 2663 2758 [[package]] ··· 2666 2761 source = "registry+https://github.com/rust-lang/crates.io-index" 2667 2762 checksum = "1bd49230192a3797a9a4d6abe9b3eed6f7fa4c8a8a4947977c6f80025f92cbd8" 2668 2763 dependencies = [ 2669 - "rustix 1.1.2", 2764 + "rustix 1.1.4", 2670 2765 "windows-link 0.2.1", 2671 2766 ] 2672 2767 ··· 2678 2773 dependencies = [ 2679 2774 "cfg-if", 2680 2775 "libc", 2681 - "r-efi", 2776 + "r-efi 5.3.0", 2682 2777 "wasip2", 2683 2778 ] 2684 2779 2685 2780 [[package]] 2781 + name = "getrandom" 2782 + version = "0.4.2" 2783 + source = "registry+https://github.com/rust-lang/crates.io-index" 2784 + checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" 2785 + dependencies = [ 2786 + "cfg-if", 2787 + "libc", 2788 + "r-efi 6.0.0", 2789 + "wasip2", 2790 + "wasip3", 2791 + ] 2792 + 2793 + [[package]] 2686 2794 name = "gilrs" 2687 - version = "0.11.0" 2795 + version = "0.11.1" 2688 2796 source = "registry+https://github.com/rust-lang/crates.io-index" 2689 - checksum = "bbb2c998745a3c1ac90f64f4f7b3a54219fd3612d7705e7798212935641ed18f" 2797 + checksum = "3fa85c2e35dc565c90511917897ea4eae16b77f2773d5223536f7b602536d462" 2690 2798 dependencies = [ 2691 2799 "fnv", 2692 2800 "gilrs-core", ··· 2697 2805 2698 2806 [[package]] 2699 2807 name = "gilrs-core" 2700 - version = "0.6.6" 2808 + version = "0.6.7" 2701 2809 source = "registry+https://github.com/rust-lang/crates.io-index" 2702 - checksum = "be11a71ac3564f6965839e2ed275bf4fcf5ce16d80d396e1dfdb7b2d80bd587e" 2810 + checksum = "d23f2cc5144060a7f8d9e02d3fce5d06705376568256a509cdbc3c24d47e4f04" 2703 2811 dependencies = [ 2704 - "core-foundation 0.10.1", 2705 2812 "inotify", 2706 - "io-kit-sys", 2707 2813 "js-sys", 2708 2814 "libc", 2709 2815 "libudev-sys", 2710 2816 "log", 2711 - "nix", 2817 + "nix 0.30.1", 2818 + "objc2-core-foundation", 2819 + "objc2-io-kit", 2712 2820 "uuid", 2713 2821 "vec_map", 2714 2822 "wasm-bindgen", ··· 2729 2837 2730 2838 [[package]] 2731 2839 name = "glam" 2732 - version = "0.30.9" 2840 + version = "0.30.10" 2733 2841 source = "registry+https://github.com/rust-lang/crates.io-index" 2734 - checksum = "bd47b05dddf0005d850e5644cae7f2b14ac3df487979dbfff3b56f20b1a6ae46" 2842 + checksum = "19fc433e8437a212d1b6f1e68c7824af3aed907da60afa994e7f542d18d12aa9" 2735 2843 dependencies = [ 2736 2844 "bytemuck", 2737 2845 "encase", ··· 2779 2887 "inflections", 2780 2888 "proc-macro2", 2781 2889 "quote", 2782 - "syn 2.0.111", 2890 + "syn 2.0.117", 2783 2891 ] 2784 2892 2785 2893 [[package]] ··· 2809 2917 source = "registry+https://github.com/rust-lang/crates.io-index" 2810 2918 checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171" 2811 2919 dependencies = [ 2812 - "bitflags 2.10.0", 2920 + "bitflags 2.11.0", 2813 2921 "gpu-alloc-types", 2814 2922 ] 2815 2923 ··· 2819 2927 source = "registry+https://github.com/rust-lang/crates.io-index" 2820 2928 checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4" 2821 2929 dependencies = [ 2822 - "bitflags 2.10.0", 2930 + "bitflags 2.11.0", 2823 2931 ] 2824 2932 2825 2933 [[package]] ··· 2840 2948 source = "registry+https://github.com/rust-lang/crates.io-index" 2841 2949 checksum = "b89c83349105e3732062a895becfc71a8f921bb71ecbbdd8ff99263e3b53a0ca" 2842 2950 dependencies = [ 2843 - "bitflags 2.10.0", 2951 + "bitflags 2.11.0", 2844 2952 "gpu-descriptor-types", 2845 2953 "hashbrown 0.15.5", 2846 2954 ] ··· 2851 2959 source = "registry+https://github.com/rust-lang/crates.io-index" 2852 2960 checksum = "fdf242682df893b86f33a73828fb09ca4b2d3bb6cc95249707fc684d27484b91" 2853 2961 dependencies = [ 2854 - "bitflags 2.10.0", 2962 + "bitflags 2.11.0", 2855 2963 ] 2856 2964 2857 2965 [[package]] ··· 2888 2996 source = "registry+https://github.com/rust-lang/crates.io-index" 2889 2997 checksum = "e0caaee032384c10dd597af4579c67dee16650d862a9ccbe1233ff1a379abc07" 2890 2998 dependencies = [ 2891 - "bitflags 2.10.0", 2999 + "bitflags 2.11.0", 2892 3000 "bytemuck", 2893 3001 "core_maths", 2894 3002 "read-fonts 0.36.0", ··· 2937 3045 ] 2938 3046 2939 3047 [[package]] 3048 + name = "heck" 3049 + version = "0.5.0" 3050 + source = "registry+https://github.com/rust-lang/crates.io-index" 3051 + checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" 3052 + 3053 + [[package]] 2940 3054 name = "hermit-abi" 2941 3055 version = "0.5.2" 2942 3056 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2960 3074 checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" 2961 3075 2962 3076 [[package]] 3077 + name = "id-arena" 3078 + version = "2.3.0" 3079 + source = "registry+https://github.com/rust-lang/crates.io-index" 3080 + checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" 3081 + 3082 + [[package]] 2963 3083 name = "ident_case" 2964 3084 version = "1.0.1" 2965 3085 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2967 3087 2968 3088 [[package]] 2969 3089 name = "image" 2970 - version = "0.25.9" 3090 + version = "0.25.10" 2971 3091 source = "registry+https://github.com/rust-lang/crates.io-index" 2972 - checksum = "e6506c6c10786659413faa717ceebcb8f70731c0a60cbae39795fdf114519c1a" 3092 + checksum = "85ab80394333c02fe689eaf900ab500fbd0c2213da414687ebf995a65d5a6104" 2973 3093 dependencies = [ 2974 3094 "bytemuck", 2975 3095 "byteorder-lite", ··· 3000 3120 "proc-macro-error", 3001 3121 "proc-macro2", 3002 3122 "quote", 3003 - "syn 2.0.111", 3123 + "syn 2.0.117", 3004 3124 ] 3005 3125 3006 3126 [[package]] 3007 3127 name = "indexmap" 3008 - version = "2.12.1" 3128 + version = "2.13.1" 3009 3129 source = "registry+https://github.com/rust-lang/crates.io-index" 3010 - checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" 3130 + checksum = "45a8a2b9cb3e0b0c1803dbb0758ffac5de2f425b23c28f518faabd9d805342ff" 3011 3131 dependencies = [ 3012 3132 "equivalent", 3013 3133 "hashbrown 0.16.1", ··· 3023 3143 3024 3144 [[package]] 3025 3145 name = "inotify" 3026 - version = "0.11.0" 3146 + version = "0.11.1" 3027 3147 source = "registry+https://github.com/rust-lang/crates.io-index" 3028 - checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3" 3148 + checksum = "bd5b3eaf1a28b758ac0faa5a4254e8ab2705605496f1b1f3fbbc3988ad73d199" 3029 3149 dependencies = [ 3030 - "bitflags 2.10.0", 3150 + "bitflags 2.11.0", 3031 3151 "inotify-sys", 3032 3152 "libc", 3033 3153 ] ··· 3043 3163 3044 3164 [[package]] 3045 3165 name = "inventory" 3046 - version = "0.3.21" 3166 + version = "0.3.24" 3047 3167 source = "registry+https://github.com/rust-lang/crates.io-index" 3048 - checksum = "bc61209c082fbeb19919bee74b176221b27223e27b65d781eb91af24eb1fb46e" 3168 + checksum = "a4f0c30c76f2f4ccee3fe55a2435f691ca00c0e4bd87abe4f4a851b1d4dac39b" 3049 3169 dependencies = [ 3050 3170 "rustversion", 3051 3171 ] 3052 3172 3053 3173 [[package]] 3054 - name = "io-kit-sys" 3055 - version = "0.4.1" 3056 - source = "registry+https://github.com/rust-lang/crates.io-index" 3057 - checksum = "617ee6cf8e3f66f3b4ea67a4058564628cde41901316e19f559e14c7c72c5e7b" 3058 - dependencies = [ 3059 - "core-foundation-sys", 3060 - "mach2", 3061 - ] 3062 - 3063 - [[package]] 3064 3174 name = "itertools" 3065 3175 version = "0.13.0" 3066 3176 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3080 3190 3081 3191 [[package]] 3082 3192 name = "itoa" 3083 - version = "1.0.15" 3193 + version = "1.0.18" 3084 3194 source = "registry+https://github.com/rust-lang/crates.io-index" 3085 - checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" 3195 + checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" 3086 3196 3087 3197 [[package]] 3088 3198 name = "jni" ··· 3093 3203 "cesu8", 3094 3204 "cfg-if", 3095 3205 "combine", 3096 - "jni-sys", 3206 + "jni-sys 0.3.1", 3097 3207 "log", 3098 3208 "thiserror 1.0.69", 3099 3209 "walkdir", ··· 3101 3211 ] 3102 3212 3103 3213 [[package]] 3214 + name = "jni" 3215 + version = "0.22.4" 3216 + source = "registry+https://github.com/rust-lang/crates.io-index" 3217 + checksum = "5efd9a482cf3a427f00d6b35f14332adc7902ce91efb778580e180ff90fa3498" 3218 + dependencies = [ 3219 + "cfg-if", 3220 + "combine", 3221 + "jni-macros", 3222 + "jni-sys 0.4.1", 3223 + "log", 3224 + "simd_cesu8", 3225 + "thiserror 2.0.18", 3226 + "walkdir", 3227 + "windows-link 0.2.1", 3228 + ] 3229 + 3230 + [[package]] 3231 + name = "jni-macros" 3232 + version = "0.22.4" 3233 + source = "registry+https://github.com/rust-lang/crates.io-index" 3234 + checksum = "a00109accc170f0bdb141fed3e393c565b6f5e072365c3bd58f5b062591560a3" 3235 + dependencies = [ 3236 + "proc-macro2", 3237 + "quote", 3238 + "rustc_version", 3239 + "simd_cesu8", 3240 + "syn 2.0.117", 3241 + ] 3242 + 3243 + [[package]] 3104 3244 name = "jni-sys" 3105 - version = "0.3.0" 3245 + version = "0.3.1" 3106 3246 source = "registry+https://github.com/rust-lang/crates.io-index" 3107 - checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" 3247 + checksum = "41a652e1f9b6e0275df1f15b32661cf0d4b78d4d87ddec5e0c3c20f097433258" 3248 + dependencies = [ 3249 + "jni-sys 0.4.1", 3250 + ] 3251 + 3252 + [[package]] 3253 + name = "jni-sys" 3254 + version = "0.4.1" 3255 + source = "registry+https://github.com/rust-lang/crates.io-index" 3256 + checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" 3257 + dependencies = [ 3258 + "jni-sys-macros", 3259 + ] 3260 + 3261 + [[package]] 3262 + name = "jni-sys-macros" 3263 + version = "0.4.1" 3264 + source = "registry+https://github.com/rust-lang/crates.io-index" 3265 + checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" 3266 + dependencies = [ 3267 + "quote", 3268 + "syn 2.0.117", 3269 + ] 3108 3270 3109 3271 [[package]] 3110 3272 name = "jobserver" ··· 3112 3274 source = "registry+https://github.com/rust-lang/crates.io-index" 3113 3275 checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" 3114 3276 dependencies = [ 3115 - "getrandom", 3277 + "getrandom 0.3.4", 3116 3278 "libc", 3117 3279 ] 3118 3280 3119 3281 [[package]] 3120 3282 name = "js-sys" 3121 - version = "0.3.83" 3283 + version = "0.3.94" 3122 3284 source = "registry+https://github.com/rust-lang/crates.io-index" 3123 - checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" 3285 + checksum = "2e04e2ef80ce82e13552136fabeef8a5ed1f985a96805761cbb9a2c34e7664d9" 3124 3286 dependencies = [ 3287 + "cfg-if", 3288 + "futures-util", 3125 3289 "once_cell", 3126 3290 "wasm-bindgen", 3127 3291 ] ··· 3149 3313 source = "registry+https://github.com/rust-lang/crates.io-index" 3150 3314 checksum = "ff7f53bdf698e7aa7ec916411bbdc8078135da11b66db5182675b2227f6c0d07" 3151 3315 dependencies = [ 3152 - "bitflags 2.10.0", 3316 + "bitflags 2.11.0", 3153 3317 ] 3154 3318 3155 3319 [[package]] ··· 3159 3323 checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 3160 3324 3161 3325 [[package]] 3326 + name = "leb128fmt" 3327 + version = "0.1.0" 3328 + source = "registry+https://github.com/rust-lang/crates.io-index" 3329 + checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" 3330 + 3331 + [[package]] 3162 3332 name = "lewton" 3163 3333 version = "0.10.2" 3164 3334 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3171 3341 3172 3342 [[package]] 3173 3343 name = "libc" 3174 - version = "0.2.178" 3344 + version = "0.2.184" 3175 3345 source = "registry+https://github.com/rust-lang/crates.io-index" 3176 - checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091" 3346 + checksum = "48f5d2a454e16a5ea0f4ced81bd44e4cfc7bd3a507b61887c99fd3538b28e4af" 3177 3347 3178 3348 [[package]] 3179 3349 name = "libloading" ··· 3187 3357 3188 3358 [[package]] 3189 3359 name = "libm" 3190 - version = "0.2.15" 3360 + version = "0.2.16" 3191 3361 source = "registry+https://github.com/rust-lang/crates.io-index" 3192 - checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" 3362 + checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" 3193 3363 3194 3364 [[package]] 3195 3365 name = "libredox" 3196 - version = "0.1.11" 3366 + version = "0.1.15" 3197 3367 source = "registry+https://github.com/rust-lang/crates.io-index" 3198 - checksum = "df15f6eac291ed1cf25865b1ee60399f57e7c227e7f51bdbd4c5270396a9ed50" 3368 + checksum = "7ddbf48fd451246b1f8c2610bd3b4ac0cc6e149d89832867093ab69a17194f08" 3199 3369 dependencies = [ 3200 - "bitflags 2.10.0", 3370 + "bitflags 2.11.0", 3201 3371 "libc", 3202 - "redox_syscall 0.6.0", 3372 + "plain", 3373 + "redox_syscall 0.7.3", 3203 3374 ] 3204 3375 3205 3376 [[package]] ··· 3235 3406 dependencies = [ 3236 3407 "proc-macro2", 3237 3408 "quote", 3238 - "syn 2.0.111", 3409 + "syn 2.0.117", 3239 3410 ] 3240 3411 3241 3412 [[package]] ··· 3246 3417 3247 3418 [[package]] 3248 3419 name = "linux-raw-sys" 3249 - version = "0.11.0" 3420 + version = "0.12.1" 3250 3421 source = "registry+https://github.com/rust-lang/crates.io-index" 3251 - checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" 3422 + checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" 3252 3423 3253 3424 [[package]] 3254 3425 name = "litrs" ··· 3300 3471 3301 3472 [[package]] 3302 3473 name = "memchr" 3303 - version = "2.7.6" 3474 + version = "2.8.0" 3304 3475 source = "registry+https://github.com/rust-lang/crates.io-index" 3305 - checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" 3476 + checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" 3306 3477 3307 3478 [[package]] 3308 3479 name = "memmap2" 3309 - version = "0.9.9" 3480 + version = "0.9.10" 3310 3481 source = "registry+https://github.com/rust-lang/crates.io-index" 3311 - checksum = "744133e4a0e0a658e1374cf3bf8e415c4052a15a111acd372764c55b4177d490" 3482 + checksum = "714098028fe011992e1c3962653c96b2d578c4b4bce9036e15ff220319b1e0e3" 3312 3483 dependencies = [ 3313 3484 "libc", 3314 3485 ] ··· 3319 3490 source = "registry+https://github.com/rust-lang/crates.io-index" 3320 3491 checksum = "00c15a6f673ff72ddcc22394663290f870fb224c1bfce55734a75c414150e605" 3321 3492 dependencies = [ 3322 - "bitflags 2.10.0", 3493 + "bitflags 2.11.0", 3323 3494 "block", 3324 3495 "core-graphics-types 0.2.0", 3325 3496 "foreign-types", ··· 3346 3517 3347 3518 [[package]] 3348 3519 name = "moxcms" 3349 - version = "0.7.11" 3520 + version = "0.8.1" 3350 3521 source = "registry+https://github.com/rust-lang/crates.io-index" 3351 - checksum = "ac9557c559cd6fc9867e122e20d2cbefc9ca29d80d027a8e39310920ed2f0a97" 3522 + checksum = "bb85c154ba489f01b25c0d36ae69a87e4a1c73a72631fc6c0eb6dde34a73e44b" 3352 3523 dependencies = [ 3353 3524 "num-traits", 3354 3525 "pxfm", ··· 3362 3533 dependencies = [ 3363 3534 "arrayvec", 3364 3535 "bit-set", 3365 - "bitflags 2.10.0", 3536 + "bitflags 2.11.0", 3366 3537 "cfg-if", 3367 3538 "cfg_aliases", 3368 3539 "codespan-reporting", ··· 3377 3548 "pp-rs", 3378 3549 "rustc-hash 1.1.0", 3379 3550 "spirv", 3380 - "thiserror 2.0.17", 3551 + "thiserror 2.0.18", 3381 3552 "unicode-ident", 3382 3553 ] 3383 3554 ··· 3393 3564 "naga", 3394 3565 "regex", 3395 3566 "rustc-hash 1.1.0", 3396 - "thiserror 2.0.17", 3567 + "thiserror 2.0.18", 3397 3568 "tracing", 3398 3569 "unicode-ident", 3399 3570 ] ··· 3404 3575 source = "registry+https://github.com/rust-lang/crates.io-index" 3405 3576 checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7" 3406 3577 dependencies = [ 3407 - "bitflags 2.10.0", 3408 - "jni-sys", 3578 + "bitflags 2.11.0", 3579 + "jni-sys 0.3.1", 3409 3580 "log", 3410 3581 "ndk-sys 0.5.0+25.2.9519653", 3411 3582 "num_enum", ··· 3418 3589 source = "registry+https://github.com/rust-lang/crates.io-index" 3419 3590 checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" 3420 3591 dependencies = [ 3421 - "bitflags 2.10.0", 3422 - "jni-sys", 3592 + "bitflags 2.11.0", 3593 + "jni-sys 0.3.1", 3423 3594 "log", 3424 3595 "ndk-sys 0.6.0+11769913", 3425 3596 "num_enum", ··· 3439 3610 source = "registry+https://github.com/rust-lang/crates.io-index" 3440 3611 checksum = "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691" 3441 3612 dependencies = [ 3442 - "jni-sys", 3613 + "jni-sys 0.3.1", 3443 3614 ] 3444 3615 3445 3616 [[package]] ··· 3448 3619 source = "registry+https://github.com/rust-lang/crates.io-index" 3449 3620 checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" 3450 3621 dependencies = [ 3451 - "jni-sys", 3622 + "jni-sys 0.3.1", 3452 3623 ] 3453 3624 3454 3625 [[package]] ··· 3457 3628 source = "registry+https://github.com/rust-lang/crates.io-index" 3458 3629 checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" 3459 3630 dependencies = [ 3460 - "bitflags 2.10.0", 3631 + "bitflags 2.11.0", 3632 + "cfg-if", 3633 + "cfg_aliases", 3634 + "libc", 3635 + ] 3636 + 3637 + [[package]] 3638 + name = "nix" 3639 + version = "0.31.2" 3640 + source = "registry+https://github.com/rust-lang/crates.io-index" 3641 + checksum = "5d6d0705320c1e6ba1d912b5e37cf18071b6c2e9b7fa8215a1e8a7651966f5d3" 3642 + dependencies = [ 3643 + "bitflags 2.11.0", 3461 3644 "cfg-if", 3462 3645 "cfg_aliases", 3463 3646 "libc", ··· 3481 3664 3482 3665 [[package]] 3483 3666 name = "ntapi" 3484 - version = "0.4.1" 3667 + version = "0.4.3" 3485 3668 source = "registry+https://github.com/rust-lang/crates.io-index" 3486 - checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" 3669 + checksum = "c3b335231dfd352ffb0f8017f3b6027a4917f7df785ea2143d8af2adc66980ae" 3487 3670 dependencies = [ 3488 3671 "winapi", 3489 3672 ] ··· 3505 3688 dependencies = [ 3506 3689 "proc-macro2", 3507 3690 "quote", 3508 - "syn 2.0.111", 3691 + "syn 2.0.117", 3509 3692 ] 3510 3693 3511 3694 [[package]] ··· 3520 3703 3521 3704 [[package]] 3522 3705 name = "num_enum" 3523 - version = "0.7.5" 3706 + version = "0.7.6" 3524 3707 source = "registry+https://github.com/rust-lang/crates.io-index" 3525 - checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c" 3708 + checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" 3526 3709 dependencies = [ 3527 3710 "num_enum_derive", 3528 3711 "rustversion", ··· 3530 3713 3531 3714 [[package]] 3532 3715 name = "num_enum_derive" 3533 - version = "0.7.5" 3716 + version = "0.7.6" 3534 3717 source = "registry+https://github.com/rust-lang/crates.io-index" 3535 - checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" 3718 + checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" 3536 3719 dependencies = [ 3537 3720 "proc-macro-crate", 3538 3721 "proc-macro2", 3539 3722 "quote", 3540 - "syn 2.0.111", 3723 + "syn 2.0.117", 3541 3724 ] 3542 3725 3543 3726 [[package]] ··· 3567 3750 3568 3751 [[package]] 3569 3752 name = "objc2" 3570 - version = "0.6.3" 3753 + version = "0.6.4" 3571 3754 source = "registry+https://github.com/rust-lang/crates.io-index" 3572 - checksum = "b7c2599ce0ec54857b29ce62166b0ed9b4f6f1a70ccc9a71165b6154caca8c05" 3755 + checksum = "3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f" 3573 3756 dependencies = [ 3574 3757 "objc2-encode", 3575 3758 ] ··· 3580 3763 source = "registry+https://github.com/rust-lang/crates.io-index" 3581 3764 checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" 3582 3765 dependencies = [ 3583 - "bitflags 2.10.0", 3766 + "bitflags 2.11.0", 3584 3767 "block2 0.5.1", 3585 3768 "libc", 3586 3769 "objc2 0.5.2", ··· 3596 3779 source = "registry+https://github.com/rust-lang/crates.io-index" 3597 3780 checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" 3598 3781 dependencies = [ 3599 - "bitflags 2.10.0", 3782 + "bitflags 2.11.0", 3600 3783 "block2 0.5.1", 3601 3784 "objc2 0.5.2", 3602 3785 "objc2-core-location", ··· 3620 3803 source = "registry+https://github.com/rust-lang/crates.io-index" 3621 3804 checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" 3622 3805 dependencies = [ 3623 - "bitflags 2.10.0", 3806 + "bitflags 2.11.0", 3624 3807 "block2 0.5.1", 3625 3808 "objc2 0.5.2", 3626 3809 "objc2-foundation", ··· 3632 3815 source = "registry+https://github.com/rust-lang/crates.io-index" 3633 3816 checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" 3634 3817 dependencies = [ 3635 - "bitflags 2.10.0", 3818 + "bitflags 2.11.0", 3636 3819 ] 3637 3820 3638 3821 [[package]] ··· 3671 3854 source = "registry+https://github.com/rust-lang/crates.io-index" 3672 3855 checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" 3673 3856 dependencies = [ 3674 - "bitflags 2.10.0", 3857 + "bitflags 2.11.0", 3675 3858 "block2 0.5.1", 3676 3859 "dispatch", 3677 3860 "libc", ··· 3684 3867 source = "registry+https://github.com/rust-lang/crates.io-index" 3685 3868 checksum = "33fafba39597d6dc1fb709123dfa8289d39406734be322956a69f0931c73bb15" 3686 3869 dependencies = [ 3870 + "bitflags 2.11.0", 3687 3871 "libc", 3688 3872 "objc2-core-foundation", 3689 3873 ] ··· 3706 3890 source = "registry+https://github.com/rust-lang/crates.io-index" 3707 3891 checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" 3708 3892 dependencies = [ 3709 - "bitflags 2.10.0", 3893 + "bitflags 2.11.0", 3710 3894 "block2 0.5.1", 3711 3895 "objc2 0.5.2", 3712 3896 "objc2-foundation", ··· 3718 3902 source = "registry+https://github.com/rust-lang/crates.io-index" 3719 3903 checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" 3720 3904 dependencies = [ 3721 - "bitflags 2.10.0", 3905 + "bitflags 2.11.0", 3722 3906 "block2 0.5.1", 3723 3907 "objc2 0.5.2", 3724 3908 "objc2-foundation", ··· 3741 3925 source = "registry+https://github.com/rust-lang/crates.io-index" 3742 3926 checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" 3743 3927 dependencies = [ 3744 - "bitflags 2.10.0", 3928 + "bitflags 2.11.0", 3745 3929 "block2 0.5.1", 3746 3930 "objc2 0.5.2", 3747 3931 "objc2-cloud-kit", ··· 3773 3957 source = "registry+https://github.com/rust-lang/crates.io-index" 3774 3958 checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" 3775 3959 dependencies = [ 3776 - "bitflags 2.10.0", 3960 + "bitflags 2.11.0", 3777 3961 "block2 0.5.1", 3778 3962 "objc2 0.5.2", 3779 3963 "objc2-core-location", ··· 3786 3970 source = "registry+https://github.com/rust-lang/crates.io-index" 3787 3971 checksum = "e8b61bebd49e5d43f5f8cc7ee2891c16e0f41ec7954d36bcb6c14c5e0de867fb" 3788 3972 dependencies = [ 3789 - "jni", 3973 + "jni 0.21.1", 3790 3974 "ndk 0.8.0", 3791 3975 "ndk-context", 3792 3976 "num-derive", ··· 3824 4008 3825 4009 [[package]] 3826 4010 name = "once_cell" 3827 - version = "1.21.3" 4011 + version = "1.21.4" 3828 4012 source = "registry+https://github.com/rust-lang/crates.io-index" 3829 - checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" 4013 + checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" 3830 4014 3831 4015 [[package]] 3832 4016 name = "oorandom" ··· 3836 4020 3837 4021 [[package]] 3838 4022 name = "orbclient" 3839 - version = "0.3.49" 4023 + version = "0.3.51" 3840 4024 source = "registry+https://github.com/rust-lang/crates.io-index" 3841 - checksum = "247ad146e19b9437f8604c21f8652423595cf710ad108af40e77d3ae6e96b827" 4025 + checksum = "59aed3b33578edcfa1bc96a321d590d31832b6ad55a26f0313362ce687e9abd6" 3842 4026 dependencies = [ 4027 + "libc", 3843 4028 "libredox", 3844 4029 ] 3845 4030 3846 4031 [[package]] 3847 4032 name = "ordered-float" 3848 - version = "5.0.0" 4033 + version = "5.3.0" 3849 4034 source = "registry+https://github.com/rust-lang/crates.io-index" 3850 - checksum = "e2c1f9f56e534ac6a9b8a4600bdf0f530fb393b5f393e7b4d03489c3cf0c3f01" 4035 + checksum = "b7d950ca161dc355eaf28f82b11345ed76c6e1f6eb1f4f4479e0323b9e2fbd0e" 3851 4036 dependencies = [ 3852 4037 "num-traits", 3853 4038 ] ··· 3927 4112 3928 4113 [[package]] 3929 4114 name = "pin-project" 3930 - version = "1.1.10" 4115 + version = "1.1.11" 3931 4116 source = "registry+https://github.com/rust-lang/crates.io-index" 3932 - checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" 4117 + checksum = "f1749c7ed4bcaf4c3d0a3efc28538844fb29bcdd7d2b67b2be7e20ba861ff517" 3933 4118 dependencies = [ 3934 4119 "pin-project-internal", 3935 4120 ] 3936 4121 3937 4122 [[package]] 3938 4123 name = "pin-project-internal" 3939 - version = "1.1.10" 4124 + version = "1.1.11" 3940 4125 source = "registry+https://github.com/rust-lang/crates.io-index" 3941 - checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" 4126 + checksum = "d9b20ed30f105399776b9c883e68e536ef602a16ae6f596d2c473591d6ad64c6" 3942 4127 dependencies = [ 3943 4128 "proc-macro2", 3944 4129 "quote", 3945 - "syn 2.0.111", 4130 + "syn 2.0.117", 3946 4131 ] 3947 4132 3948 4133 [[package]] 3949 4134 name = "pin-project-lite" 3950 - version = "0.2.16" 4135 + version = "0.2.17" 3951 4136 source = "registry+https://github.com/rust-lang/crates.io-index" 3952 - checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" 3953 - 3954 - [[package]] 3955 - name = "pin-utils" 3956 - version = "0.1.0" 3957 - source = "registry+https://github.com/rust-lang/crates.io-index" 3958 - checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 4137 + checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" 3959 4138 3960 4139 [[package]] 3961 4140 name = "piper" 3962 - version = "0.2.4" 4141 + version = "0.2.5" 3963 4142 source = "registry+https://github.com/rust-lang/crates.io-index" 3964 - checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" 4143 + checksum = "c835479a4443ded371d6c535cbfd8d31ad92c5d23ae9770a61bc155e4992a3c1" 3965 4144 dependencies = [ 3966 4145 "atomic-waker", 3967 4146 "fastrand", ··· 3973 4152 version = "0.3.32" 3974 4153 source = "registry+https://github.com/rust-lang/crates.io-index" 3975 4154 checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" 4155 + 4156 + [[package]] 4157 + name = "plain" 4158 + version = "0.2.3" 4159 + source = "registry+https://github.com/rust-lang/crates.io-index" 4160 + checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" 3976 4161 3977 4162 [[package]] 3978 4163 name = "plotters" ··· 4004 4189 4005 4190 [[package]] 4006 4191 name = "png" 4007 - version = "0.18.0" 4192 + version = "0.18.1" 4008 4193 source = "registry+https://github.com/rust-lang/crates.io-index" 4009 - checksum = "97baced388464909d42d89643fe4361939af9b7ce7a31ee32a168f832a70f2a0" 4194 + checksum = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61" 4010 4195 dependencies = [ 4011 - "bitflags 2.10.0", 4196 + "bitflags 2.11.0", 4012 4197 "crc32fast", 4013 4198 "fdeflate", 4014 4199 "flate2", ··· 4025 4210 "concurrent-queue", 4026 4211 "hermit-abi", 4027 4212 "pin-project-lite", 4028 - "rustix 1.1.2", 4213 + "rustix 1.1.4", 4029 4214 "windows-sys 0.61.2", 4030 4215 ] 4031 4216 4032 4217 [[package]] 4033 4218 name = "portable-atomic" 4034 - version = "1.11.1" 4219 + version = "1.13.1" 4035 4220 source = "registry+https://github.com/rust-lang/crates.io-index" 4036 - checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" 4221 + checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" 4037 4222 4038 4223 [[package]] 4039 4224 name = "portable-atomic-util" 4040 - version = "0.2.4" 4225 + version = "0.2.6" 4041 4226 source = "registry+https://github.com/rust-lang/crates.io-index" 4042 - checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" 4227 + checksum = "091397be61a01d4be58e7841595bd4bfedb15f1cd54977d79b8271e94ed799a3" 4043 4228 dependencies = [ 4044 4229 "portable-atomic", 4045 4230 ] ··· 4069 4254 checksum = "e8cf8e6a8aa66ce33f63993ffc4ea4271eb5b0530a9002db8455ea6050c77bfa" 4070 4255 4071 4256 [[package]] 4257 + name = "prettyplease" 4258 + version = "0.2.37" 4259 + source = "registry+https://github.com/rust-lang/crates.io-index" 4260 + checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" 4261 + dependencies = [ 4262 + "proc-macro2", 4263 + "syn 2.0.117", 4264 + ] 4265 + 4266 + [[package]] 4072 4267 name = "proc-macro-crate" 4073 - version = "3.4.0" 4268 + version = "3.5.0" 4074 4269 source = "registry+https://github.com/rust-lang/crates.io-index" 4075 - checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" 4270 + checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" 4076 4271 dependencies = [ 4077 - "toml_edit", 4272 + "toml_edit 0.25.10+spec-1.1.0", 4078 4273 ] 4079 4274 4080 4275 [[package]] ··· 4103 4298 4104 4299 [[package]] 4105 4300 name = "proc-macro2" 4106 - version = "1.0.103" 4301 + version = "1.0.106" 4107 4302 source = "registry+https://github.com/rust-lang/crates.io-index" 4108 - checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" 4303 + checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" 4109 4304 dependencies = [ 4110 4305 "unicode-ident", 4111 4306 ] ··· 4118 4313 4119 4314 [[package]] 4120 4315 name = "pxfm" 4121 - version = "0.1.27" 4316 + version = "0.1.28" 4122 4317 source = "registry+https://github.com/rust-lang/crates.io-index" 4123 - checksum = "7186d3822593aa4393561d186d1393b3923e9d6163d3fbfd6e825e3e6cf3e6a8" 4124 - dependencies = [ 4125 - "num-traits", 4126 - ] 4318 + checksum = "b5a041e753da8b807c9255f28de81879c78c876392ff2469cde94799b2896b9d" 4127 4319 4128 4320 [[package]] 4129 4321 name = "quick-xml" 4130 - version = "0.37.5" 4322 + version = "0.39.2" 4131 4323 source = "registry+https://github.com/rust-lang/crates.io-index" 4132 - checksum = "331e97a1af0bf59823e6eadffe373d7b27f485be8748f71471c662c1f269b7fb" 4324 + checksum = "958f21e8e7ceb5a1aa7fa87fab28e7c75976e0bfe7e23ff069e0a260f894067d" 4133 4325 dependencies = [ 4134 4326 "memchr", 4135 4327 ] 4136 4328 4137 4329 [[package]] 4138 4330 name = "quote" 4139 - version = "1.0.42" 4331 + version = "1.0.45" 4140 4332 source = "registry+https://github.com/rust-lang/crates.io-index" 4141 - checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" 4333 + checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" 4142 4334 dependencies = [ 4143 4335 "proc-macro2", 4144 4336 ] ··· 4148 4340 version = "5.3.0" 4149 4341 source = "registry+https://github.com/rust-lang/crates.io-index" 4150 4342 checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" 4343 + 4344 + [[package]] 4345 + name = "r-efi" 4346 + version = "6.0.0" 4347 + source = "registry+https://github.com/rust-lang/crates.io-index" 4348 + checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" 4151 4349 4152 4350 [[package]] 4153 4351 name = "radsort" ··· 4177 4375 4178 4376 [[package]] 4179 4377 name = "rand_core" 4180 - version = "0.9.3" 4378 + version = "0.9.5" 4181 4379 source = "registry+https://github.com/rust-lang/crates.io-index" 4182 - checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" 4380 + checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" 4183 4381 dependencies = [ 4184 - "getrandom", 4382 + "getrandom 0.3.4", 4185 4383 ] 4186 4384 4187 4385 [[package]] ··· 4196 4394 4197 4395 [[package]] 4198 4396 name = "range-alloc" 4199 - version = "0.1.4" 4397 + version = "0.1.5" 4200 4398 source = "registry+https://github.com/rust-lang/crates.io-index" 4201 - checksum = "c3d6831663a5098ea164f89cff59c6284e95f4e3c76ce9848d4529f5ccca9bde" 4399 + checksum = "ca45419789ae5a7899559e9512e58ca889e41f04f1f2445e9f4b290ceccd1d08" 4202 4400 4203 4401 [[package]] 4204 4402 name = "rangemap" 4205 - version = "1.7.0" 4403 + version = "1.7.1" 4206 4404 source = "registry+https://github.com/rust-lang/crates.io-index" 4207 - checksum = "acbbbbea733ec66275512d0b9694f34102e7d5406fdbe2ad8d21b28dce92887c" 4405 + checksum = "973443cf09a9c8656b574a866ab68dfa19f0867d0340648c7d2f6a71b8a8ea68" 4208 4406 4209 4407 [[package]] 4210 4408 name = "raw-window-handle" ··· 4234 4432 4235 4433 [[package]] 4236 4434 name = "read-fonts" 4237 - version = "0.35.0" 4435 + version = "0.36.0" 4238 4436 source = "registry+https://github.com/rust-lang/crates.io-index" 4239 - checksum = "6717cf23b488adf64b9d711329542ba34de147df262370221940dfabc2c91358" 4437 + checksum = "5eaa2941a4c05443ee3a7b26ab076a553c343ad5995230cc2b1d3e993bdc6345" 4240 4438 dependencies = [ 4241 4439 "bytemuck", 4242 - "font-types", 4440 + "core_maths", 4441 + "font-types 0.10.1", 4243 4442 ] 4244 4443 4245 4444 [[package]] 4246 4445 name = "read-fonts" 4247 - version = "0.36.0" 4446 + version = "0.37.0" 4248 4447 source = "registry+https://github.com/rust-lang/crates.io-index" 4249 - checksum = "5eaa2941a4c05443ee3a7b26ab076a553c343ad5995230cc2b1d3e993bdc6345" 4448 + checksum = "7b634fabf032fab15307ffd272149b622260f55974d9fad689292a5d33df02e5" 4250 4449 dependencies = [ 4251 4450 "bytemuck", 4252 - "core_maths", 4253 - "font-types", 4451 + "font-types 0.11.2", 4254 4452 ] 4255 4453 4256 4454 [[package]] ··· 4274 4472 source = "registry+https://github.com/rust-lang/crates.io-index" 4275 4473 checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" 4276 4474 dependencies = [ 4277 - "bitflags 2.10.0", 4475 + "bitflags 2.11.0", 4278 4476 ] 4279 4477 4280 4478 [[package]] 4281 4479 name = "redox_syscall" 4282 - version = "0.6.0" 4480 + version = "0.7.3" 4283 4481 source = "registry+https://github.com/rust-lang/crates.io-index" 4284 - checksum = "ec96166dafa0886eb81fe1c0a388bece180fbef2135f97c1e2cf8302e74b43b5" 4482 + checksum = "6ce70a74e890531977d37e532c34d45e9055d2409ed08ddba14529471ed0be16" 4285 4483 dependencies = [ 4286 - "bitflags 2.10.0", 4484 + "bitflags 2.11.0", 4287 4485 ] 4288 4486 4289 4487 [[package]] 4290 4488 name = "regex" 4291 - version = "1.12.2" 4489 + version = "1.12.3" 4292 4490 source = "registry+https://github.com/rust-lang/crates.io-index" 4293 - checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" 4491 + checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" 4294 4492 dependencies = [ 4295 4493 "aho-corasick", 4296 4494 "memchr", ··· 4300 4498 4301 4499 [[package]] 4302 4500 name = "regex-automata" 4303 - version = "0.4.13" 4501 + version = "0.4.14" 4304 4502 source = "registry+https://github.com/rust-lang/crates.io-index" 4305 - checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" 4503 + checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" 4306 4504 dependencies = [ 4307 4505 "aho-corasick", 4308 4506 "memchr", ··· 4311 4509 4312 4510 [[package]] 4313 4511 name = "regex-syntax" 4314 - version = "0.8.8" 4512 + version = "0.8.10" 4315 4513 source = "registry+https://github.com/rust-lang/crates.io-index" 4316 - checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" 4514 + checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" 4317 4515 4318 4516 [[package]] 4319 4517 name = "renderdoc-sys" ··· 4333 4531 4334 4532 [[package]] 4335 4533 name = "ron" 4336 - version = "0.12.0" 4534 + version = "0.12.1" 4337 4535 source = "registry+https://github.com/rust-lang/crates.io-index" 4338 - checksum = "fd490c5b18261893f14449cbd28cb9c0b637aebf161cd77900bfdedaff21ec32" 4536 + checksum = "4147b952f3f819eca0e99527022f7d6a8d05f111aeb0a62960c74eb283bec8fc" 4339 4537 dependencies = [ 4340 - "bitflags 2.10.0", 4538 + "bitflags 2.11.0", 4341 4539 "once_cell", 4342 4540 "serde", 4343 4541 "serde_derive", ··· 4359 4557 4360 4558 [[package]] 4361 4559 name = "rustc-hash" 4362 - version = "2.1.1" 4560 + version = "2.1.2" 4363 4561 source = "registry+https://github.com/rust-lang/crates.io-index" 4364 - checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" 4562 + checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe" 4365 4563 4366 4564 [[package]] 4367 4565 name = "rustc_version" ··· 4378 4576 source = "registry+https://github.com/rust-lang/crates.io-index" 4379 4577 checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" 4380 4578 dependencies = [ 4381 - "bitflags 2.10.0", 4579 + "bitflags 2.11.0", 4382 4580 "errno", 4383 4581 "libc", 4384 4582 "linux-raw-sys 0.4.15", ··· 4387 4585 4388 4586 [[package]] 4389 4587 name = "rustix" 4390 - version = "1.1.2" 4588 + version = "1.1.4" 4391 4589 source = "registry+https://github.com/rust-lang/crates.io-index" 4392 - checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" 4590 + checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" 4393 4591 dependencies = [ 4394 - "bitflags 2.10.0", 4592 + "bitflags 2.11.0", 4395 4593 "errno", 4396 4594 "libc", 4397 - "linux-raw-sys 0.11.0", 4595 + "linux-raw-sys 0.12.1", 4398 4596 "windows-sys 0.61.2", 4399 4597 ] 4400 4598 ··· 4414 4612 ] 4415 4613 4416 4614 [[package]] 4417 - name = "ryu" 4418 - version = "1.0.20" 4419 - source = "registry+https://github.com/rust-lang/crates.io-index" 4420 - checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" 4421 - 4422 - [[package]] 4423 4615 name = "same-file" 4424 4616 version = "1.0.6" 4425 4617 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 4455 4647 4456 4648 [[package]] 4457 4649 name = "self_cell" 4458 - version = "1.2.1" 4650 + version = "1.2.2" 4459 4651 source = "registry+https://github.com/rust-lang/crates.io-index" 4460 - checksum = "16c2f82143577edb4921b71ede051dac62ca3c16084e918bf7b40c96ae10eb33" 4652 + checksum = "b12e76d157a900eb52e81bc6e9f3069344290341720e9178cde2407113ac8d89" 4461 4653 4462 4654 [[package]] 4463 4655 name = "semver" ··· 4498 4690 dependencies = [ 4499 4691 "proc-macro2", 4500 4692 "quote", 4501 - "syn 2.0.111", 4693 + "syn 2.0.117", 4502 4694 ] 4503 4695 4504 4696 [[package]] 4505 4697 name = "serde_json" 4506 - version = "1.0.145" 4698 + version = "1.0.149" 4507 4699 source = "registry+https://github.com/rust-lang/crates.io-index" 4508 - checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" 4700 + checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" 4509 4701 dependencies = [ 4510 4702 "itoa", 4511 4703 "memchr", 4512 - "ryu", 4513 4704 "serde", 4514 4705 "serde_core", 4706 + "zmij", 4515 4707 ] 4516 4708 4517 4709 [[package]] ··· 4531 4723 4532 4724 [[package]] 4533 4725 name = "simd-adler32" 4534 - version = "0.3.8" 4726 + version = "0.3.9" 4535 4727 source = "registry+https://github.com/rust-lang/crates.io-index" 4536 - checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" 4728 + checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" 4537 4729 4538 4730 [[package]] 4539 - name = "skrifa" 4540 - version = "0.37.0" 4731 + name = "simd_cesu8" 4732 + version = "1.1.1" 4541 4733 source = "registry+https://github.com/rust-lang/crates.io-index" 4542 - checksum = "8c31071dedf532758ecf3fed987cdb4bd9509f900e026ab684b4ecb81ea49841" 4734 + checksum = "94f90157bb87cddf702797c5dadfa0be7d266cdf49e22da2fcaa32eff75b2c33" 4543 4735 dependencies = [ 4544 - "bytemuck", 4545 - "read-fonts 0.35.0", 4736 + "rustc_version", 4737 + "simdutf8", 4546 4738 ] 4547 4739 4548 4740 [[package]] 4741 + name = "simdutf8" 4742 + version = "0.1.5" 4743 + source = "registry+https://github.com/rust-lang/crates.io-index" 4744 + checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" 4745 + 4746 + [[package]] 4549 4747 name = "skrifa" 4550 4748 version = "0.39.0" 4551 4749 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 4556 4754 ] 4557 4755 4558 4756 [[package]] 4757 + name = "skrifa" 4758 + version = "0.40.0" 4759 + source = "registry+https://github.com/rust-lang/crates.io-index" 4760 + checksum = "7fbdfe3d2475fbd7ddd1f3e5cf8288a30eb3e5f95832829570cd88115a7434ac" 4761 + dependencies = [ 4762 + "bytemuck", 4763 + "read-fonts 0.37.0", 4764 + ] 4765 + 4766 + [[package]] 4559 4767 name = "slab" 4560 - version = "0.4.11" 4768 + version = "0.4.12" 4561 4769 source = "registry+https://github.com/rust-lang/crates.io-index" 4562 - checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" 4770 + checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" 4563 4771 4564 4772 [[package]] 4565 4773 name = "slotmap" ··· 4584 4792 dependencies = [ 4585 4793 "proc-macro2", 4586 4794 "quote", 4587 - "syn 2.0.111", 4795 + "syn 2.0.117", 4588 4796 ] 4589 4797 4590 4798 [[package]] ··· 4593 4801 source = "registry+https://github.com/rust-lang/crates.io-index" 4594 4802 checksum = "3457dea1f0eb631b4034d61d4d8c32074caa6cd1ab2d59f2327bd8461e2c0016" 4595 4803 dependencies = [ 4596 - "bitflags 2.10.0", 4804 + "bitflags 2.11.0", 4597 4805 "calloop", 4598 4806 "calloop-wayland-source", 4599 4807 "cursor-icon", ··· 4636 4844 source = "registry+https://github.com/rust-lang/crates.io-index" 4637 4845 checksum = "eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844" 4638 4846 dependencies = [ 4639 - "bitflags 2.10.0", 4847 + "bitflags 2.11.0", 4640 4848 ] 4641 4849 4642 4850 [[package]] ··· 4680 4888 4681 4889 [[package]] 4682 4890 name = "swash" 4683 - version = "0.2.6" 4891 + version = "0.2.7" 4684 4892 source = "registry+https://github.com/rust-lang/crates.io-index" 4685 - checksum = "47846491253e976bdd07d0f9cc24b7daf24720d11309302ccbbc6e6b6e53550a" 4893 + checksum = "842f3cd369c2ba38966204f983eaa5e54a8e84a7d7159ed36ade2b6c335aae64" 4686 4894 dependencies = [ 4687 - "skrifa 0.37.0", 4895 + "skrifa 0.40.0", 4688 4896 "yazi", 4689 4897 "zeno", 4690 4898 ] ··· 4701 4909 4702 4910 [[package]] 4703 4911 name = "syn" 4704 - version = "2.0.111" 4912 + version = "2.0.117" 4705 4913 source = "registry+https://github.com/rust-lang/crates.io-index" 4706 - checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" 4914 + checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" 4707 4915 dependencies = [ 4708 4916 "proc-macro2", 4709 4917 "quote", ··· 4765 4973 4766 4974 [[package]] 4767 4975 name = "thiserror" 4768 - version = "2.0.17" 4976 + version = "2.0.18" 4769 4977 source = "registry+https://github.com/rust-lang/crates.io-index" 4770 - checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" 4978 + checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" 4771 4979 dependencies = [ 4772 - "thiserror-impl 2.0.17", 4980 + "thiserror-impl 2.0.18", 4773 4981 ] 4774 4982 4775 4983 [[package]] ··· 4780 4988 dependencies = [ 4781 4989 "proc-macro2", 4782 4990 "quote", 4783 - "syn 2.0.111", 4991 + "syn 2.0.117", 4784 4992 ] 4785 4993 4786 4994 [[package]] 4787 4995 name = "thiserror-impl" 4788 - version = "2.0.17" 4996 + version = "2.0.18" 4789 4997 source = "registry+https://github.com/rust-lang/crates.io-index" 4790 - checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" 4998 + checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" 4791 4999 dependencies = [ 4792 5000 "proc-macro2", 4793 5001 "quote", 4794 - "syn 2.0.111", 5002 + "syn 2.0.117", 4795 5003 ] 4796 5004 4797 5005 [[package]] ··· 4840 5048 4841 5049 [[package]] 4842 5050 name = "tinyvec" 4843 - version = "1.10.0" 5051 + version = "1.11.0" 4844 5052 source = "registry+https://github.com/rust-lang/crates.io-index" 4845 - checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" 5053 + checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" 4846 5054 dependencies = [ 4847 5055 "tinyvec_macros", 4848 5056 ] ··· 4863 5071 ] 4864 5072 4865 5073 [[package]] 5074 + name = "toml_datetime" 5075 + version = "1.1.1+spec-1.1.0" 5076 + source = "registry+https://github.com/rust-lang/crates.io-index" 5077 + checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" 5078 + dependencies = [ 5079 + "serde_core", 5080 + ] 5081 + 5082 + [[package]] 4866 5083 name = "toml_edit" 4867 5084 version = "0.23.10+spec-1.0.0" 4868 5085 source = "registry+https://github.com/rust-lang/crates.io-index" 4869 5086 checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" 4870 5087 dependencies = [ 4871 5088 "indexmap", 4872 - "toml_datetime", 5089 + "toml_datetime 0.7.5+spec-1.1.0", 4873 5090 "toml_parser", 4874 - "winnow", 5091 + "winnow 0.7.15", 5092 + ] 5093 + 5094 + [[package]] 5095 + name = "toml_edit" 5096 + version = "0.25.10+spec-1.1.0" 5097 + source = "registry+https://github.com/rust-lang/crates.io-index" 5098 + checksum = "a82418ca169e235e6c399a84e395ab6debeb3bc90edc959bf0f48647c6a32d1b" 5099 + dependencies = [ 5100 + "indexmap", 5101 + "toml_datetime 1.1.1+spec-1.1.0", 5102 + "toml_parser", 5103 + "winnow 1.0.1", 4875 5104 ] 4876 5105 4877 5106 [[package]] 4878 5107 name = "toml_parser" 4879 - version = "1.0.6+spec-1.1.0" 5108 + version = "1.1.2+spec-1.1.0" 4880 5109 source = "registry+https://github.com/rust-lang/crates.io-index" 4881 - checksum = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44" 5110 + checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" 4882 5111 dependencies = [ 4883 - "winnow", 5112 + "winnow 1.0.1", 4884 5113 ] 4885 5114 4886 5115 [[package]] ··· 4902 5131 dependencies = [ 4903 5132 "proc-macro2", 4904 5133 "quote", 4905 - "syn 2.0.111", 5134 + "syn 2.0.117", 4906 5135 ] 4907 5136 4908 5137 [[package]] ··· 4940 5169 4941 5170 [[package]] 4942 5171 name = "tracing-subscriber" 4943 - version = "0.3.22" 5172 + version = "0.3.23" 4944 5173 source = "registry+https://github.com/rust-lang/crates.io-index" 4945 - checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" 5174 + checksum = "cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319" 4946 5175 dependencies = [ 4947 5176 "matchers", 4948 5177 "nu-ansi-term", ··· 4990 5219 4991 5220 [[package]] 4992 5221 name = "typewit" 4993 - version = "1.14.2" 5222 + version = "1.15.0" 4994 5223 source = "registry+https://github.com/rust-lang/crates.io-index" 4995 - checksum = "f8c1ae7cc0fdb8b842d65d127cb981574b0d2b249b74d1c7a2986863dc134f71" 5224 + checksum = "06fee3a8df48c50c55ad646a4e03b00a370da6fe1850ebf467a8d0165dfcafae" 4996 5225 4997 5226 [[package]] 4998 5227 name = "unicode-bidi" ··· 5002 5231 5003 5232 [[package]] 5004 5233 name = "unicode-ident" 5005 - version = "1.0.22" 5234 + version = "1.0.24" 5006 5235 source = "registry+https://github.com/rust-lang/crates.io-index" 5007 - checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" 5236 + checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" 5008 5237 5009 5238 [[package]] 5010 5239 name = "unicode-linebreak" ··· 5020 5249 5021 5250 [[package]] 5022 5251 name = "unicode-segmentation" 5023 - version = "1.12.0" 5252 + version = "1.13.2" 5024 5253 source = "registry+https://github.com/rust-lang/crates.io-index" 5025 - checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" 5254 + checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c" 5026 5255 5027 5256 [[package]] 5028 5257 name = "unicode-width" ··· 5038 5267 5039 5268 [[package]] 5040 5269 name = "uuid" 5041 - version = "1.19.0" 5270 + version = "1.23.0" 5042 5271 source = "registry+https://github.com/rust-lang/crates.io-index" 5043 - checksum = "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a" 5272 + checksum = "5ac8b6f42ead25368cf5b098aeb3dc8a1a2c05a3eee8a9a1a68c640edbfc79d9" 5044 5273 dependencies = [ 5045 - "getrandom", 5274 + "getrandom 0.4.2", 5046 5275 "js-sys", 5047 5276 "serde_core", 5048 5277 "wasm-bindgen", ··· 5062 5291 dependencies = [ 5063 5292 "proc-macro2", 5064 5293 "quote", 5065 - "syn 2.0.111", 5294 + "syn 2.0.117", 5066 5295 ] 5067 5296 5068 5297 [[package]] ··· 5089 5318 5090 5319 [[package]] 5091 5320 name = "wasip2" 5092 - version = "1.0.1+wasi-0.2.4" 5321 + version = "1.0.2+wasi-0.2.9" 5093 5322 source = "registry+https://github.com/rust-lang/crates.io-index" 5094 - checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" 5323 + checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" 5324 + dependencies = [ 5325 + "wit-bindgen", 5326 + ] 5327 + 5328 + [[package]] 5329 + name = "wasip3" 5330 + version = "0.4.0+wasi-0.3.0-rc-2026-01-06" 5331 + source = "registry+https://github.com/rust-lang/crates.io-index" 5332 + checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" 5095 5333 dependencies = [ 5096 5334 "wit-bindgen", 5097 5335 ] 5098 5336 5099 5337 [[package]] 5100 5338 name = "wasm-bindgen" 5101 - version = "0.2.106" 5339 + version = "0.2.117" 5102 5340 source = "registry+https://github.com/rust-lang/crates.io-index" 5103 - checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" 5341 + checksum = "0551fc1bb415591e3372d0bc4780db7e587d84e2a7e79da121051c5c4b89d0b0" 5104 5342 dependencies = [ 5105 5343 "cfg-if", 5106 5344 "once_cell", ··· 5111 5349 5112 5350 [[package]] 5113 5351 name = "wasm-bindgen-futures" 5114 - version = "0.4.56" 5352 + version = "0.4.67" 5115 5353 source = "registry+https://github.com/rust-lang/crates.io-index" 5116 - checksum = "836d9622d604feee9e5de25ac10e3ea5f2d65b41eac0d9ce72eb5deae707ce7c" 5354 + checksum = "03623de6905b7206edd0a75f69f747f134b7f0a2323392d664448bf2d3c5d87e" 5117 5355 dependencies = [ 5118 - "cfg-if", 5119 5356 "js-sys", 5120 - "once_cell", 5121 5357 "wasm-bindgen", 5122 - "web-sys", 5123 5358 ] 5124 5359 5125 5360 [[package]] 5126 5361 name = "wasm-bindgen-macro" 5127 - version = "0.2.106" 5362 + version = "0.2.117" 5128 5363 source = "registry+https://github.com/rust-lang/crates.io-index" 5129 - checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" 5364 + checksum = "7fbdf9a35adf44786aecd5ff89b4563a90325f9da0923236f6104e603c7e86be" 5130 5365 dependencies = [ 5131 5366 "quote", 5132 5367 "wasm-bindgen-macro-support", ··· 5134 5369 5135 5370 [[package]] 5136 5371 name = "wasm-bindgen-macro-support" 5137 - version = "0.2.106" 5372 + version = "0.2.117" 5138 5373 source = "registry+https://github.com/rust-lang/crates.io-index" 5139 - checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" 5374 + checksum = "dca9693ef2bab6d4e6707234500350d8dad079eb508dca05530c85dc3a529ff2" 5140 5375 dependencies = [ 5141 5376 "bumpalo", 5142 5377 "proc-macro2", 5143 5378 "quote", 5144 - "syn 2.0.111", 5379 + "syn 2.0.117", 5145 5380 "wasm-bindgen-shared", 5146 5381 ] 5147 5382 5148 5383 [[package]] 5149 5384 name = "wasm-bindgen-shared" 5150 - version = "0.2.106" 5385 + version = "0.2.117" 5151 5386 source = "registry+https://github.com/rust-lang/crates.io-index" 5152 - checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" 5387 + checksum = "39129a682a6d2d841b6c429d0c51e5cb0ed1a03829d8b3d1e69a011e62cb3d3b" 5153 5388 dependencies = [ 5154 5389 "unicode-ident", 5155 5390 ] 5156 5391 5157 5392 [[package]] 5393 + name = "wasm-encoder" 5394 + version = "0.244.0" 5395 + source = "registry+https://github.com/rust-lang/crates.io-index" 5396 + checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" 5397 + dependencies = [ 5398 + "leb128fmt", 5399 + "wasmparser", 5400 + ] 5401 + 5402 + [[package]] 5403 + name = "wasm-metadata" 5404 + version = "0.244.0" 5405 + source = "registry+https://github.com/rust-lang/crates.io-index" 5406 + checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" 5407 + dependencies = [ 5408 + "anyhow", 5409 + "indexmap", 5410 + "wasm-encoder", 5411 + "wasmparser", 5412 + ] 5413 + 5414 + [[package]] 5415 + name = "wasmparser" 5416 + version = "0.244.0" 5417 + source = "registry+https://github.com/rust-lang/crates.io-index" 5418 + checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" 5419 + dependencies = [ 5420 + "bitflags 2.11.0", 5421 + "hashbrown 0.15.5", 5422 + "indexmap", 5423 + "semver", 5424 + ] 5425 + 5426 + [[package]] 5158 5427 name = "wayland-backend" 5159 - version = "0.3.11" 5428 + version = "0.3.15" 5160 5429 source = "registry+https://github.com/rust-lang/crates.io-index" 5161 - checksum = "673a33c33048a5ade91a6b139580fa174e19fb0d23f396dca9fa15f2e1e49b35" 5430 + checksum = "2857dd20b54e916ec7253b3d6b4d5c4d7d4ca2c33c2e11c6c76a99bd8744755d" 5162 5431 dependencies = [ 5163 5432 "cc", 5164 5433 "downcast-rs 1.2.1", 5165 - "rustix 1.1.2", 5434 + "rustix 1.1.4", 5166 5435 "scoped-tls", 5167 5436 "smallvec", 5168 5437 "wayland-sys", ··· 5170 5439 5171 5440 [[package]] 5172 5441 name = "wayland-client" 5173 - version = "0.31.11" 5442 + version = "0.31.14" 5174 5443 source = "registry+https://github.com/rust-lang/crates.io-index" 5175 - checksum = "c66a47e840dc20793f2264eb4b3e4ecb4b75d91c0dd4af04b456128e0bdd449d" 5444 + checksum = "645c7c96bb74690c3189b5c9cb4ca1627062bb23693a4fad9d8c3de958260144" 5176 5445 dependencies = [ 5177 - "bitflags 2.10.0", 5178 - "rustix 1.1.2", 5446 + "bitflags 2.11.0", 5447 + "rustix 1.1.4", 5179 5448 "wayland-backend", 5180 5449 "wayland-scanner", 5181 5450 ] ··· 5186 5455 source = "registry+https://github.com/rust-lang/crates.io-index" 5187 5456 checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" 5188 5457 dependencies = [ 5189 - "bitflags 2.10.0", 5458 + "bitflags 2.11.0", 5190 5459 "cursor-icon", 5191 5460 "wayland-backend", 5192 5461 ] 5193 5462 5194 5463 [[package]] 5195 5464 name = "wayland-cursor" 5196 - version = "0.31.11" 5465 + version = "0.31.14" 5197 5466 source = "registry+https://github.com/rust-lang/crates.io-index" 5198 - checksum = "447ccc440a881271b19e9989f75726d60faa09b95b0200a9b7eb5cc47c3eeb29" 5467 + checksum = "4a52d18780be9b1314328a3de5f930b73d2200112e3849ca6cb11822793fb34d" 5199 5468 dependencies = [ 5200 - "rustix 1.1.2", 5469 + "rustix 1.1.4", 5201 5470 "wayland-client", 5202 5471 "xcursor", 5203 5472 ] 5204 5473 5205 5474 [[package]] 5206 5475 name = "wayland-protocols" 5207 - version = "0.32.9" 5476 + version = "0.32.12" 5208 5477 source = "registry+https://github.com/rust-lang/crates.io-index" 5209 - checksum = "efa790ed75fbfd71283bd2521a1cfdc022aabcc28bdcff00851f9e4ae88d9901" 5478 + checksum = "563a85523cade2429938e790815fd7319062103b9f4a2dc806e9b53b95982d8f" 5210 5479 dependencies = [ 5211 - "bitflags 2.10.0", 5480 + "bitflags 2.11.0", 5212 5481 "wayland-backend", 5213 5482 "wayland-client", 5214 5483 "wayland-scanner", ··· 5216 5485 5217 5486 [[package]] 5218 5487 name = "wayland-protocols-plasma" 5219 - version = "0.3.9" 5488 + version = "0.3.12" 5220 5489 source = "registry+https://github.com/rust-lang/crates.io-index" 5221 - checksum = "a07a14257c077ab3279987c4f8bb987851bf57081b93710381daea94f2c2c032" 5490 + checksum = "2b6d8cf1eb2c1c31ed1f5643c88a6e53538129d4af80030c8cabd1f9fa884d91" 5222 5491 dependencies = [ 5223 - "bitflags 2.10.0", 5492 + "bitflags 2.11.0", 5224 5493 "wayland-backend", 5225 5494 "wayland-client", 5226 5495 "wayland-protocols", ··· 5229 5498 5230 5499 [[package]] 5231 5500 name = "wayland-protocols-wlr" 5232 - version = "0.3.9" 5501 + version = "0.3.12" 5233 5502 source = "registry+https://github.com/rust-lang/crates.io-index" 5234 - checksum = "efd94963ed43cf9938a090ca4f7da58eb55325ec8200c3848963e98dc25b78ec" 5503 + checksum = "eb04e52f7836d7c7976c78ca0250d61e33873c34156a2a1fc9474828ec268234" 5235 5504 dependencies = [ 5236 - "bitflags 2.10.0", 5505 + "bitflags 2.11.0", 5237 5506 "wayland-backend", 5238 5507 "wayland-client", 5239 5508 "wayland-protocols", ··· 5242 5511 5243 5512 [[package]] 5244 5513 name = "wayland-scanner" 5245 - version = "0.31.7" 5514 + version = "0.31.10" 5246 5515 source = "registry+https://github.com/rust-lang/crates.io-index" 5247 - checksum = "54cb1e9dc49da91950bdfd8b848c49330536d9d1fb03d4bfec8cae50caa50ae3" 5516 + checksum = "9c324a910fd86ebdc364a3e61ec1f11737d3b1d6c273c0239ee8ff4bc0d24b4a" 5248 5517 dependencies = [ 5249 5518 "proc-macro2", 5250 5519 "quick-xml", ··· 5253 5522 5254 5523 [[package]] 5255 5524 name = "wayland-sys" 5256 - version = "0.31.7" 5525 + version = "0.31.11" 5257 5526 source = "registry+https://github.com/rust-lang/crates.io-index" 5258 - checksum = "34949b42822155826b41db8e5d0c1be3a2bd296c747577a43a3e6daefc296142" 5527 + checksum = "d8eab23fefc9e41f8e841df4a9c707e8a8c4ed26e944ef69297184de2785e3be" 5259 5528 dependencies = [ 5260 5529 "dlib", 5261 5530 "log", ··· 5264 5533 5265 5534 [[package]] 5266 5535 name = "web-sys" 5267 - version = "0.3.83" 5536 + version = "0.3.94" 5268 5537 source = "registry+https://github.com/rust-lang/crates.io-index" 5269 - checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac" 5538 + checksum = "cd70027e39b12f0849461e08ffc50b9cd7688d942c1c8e3c7b22273236b4dd0a" 5270 5539 dependencies = [ 5271 5540 "js-sys", 5272 5541 "wasm-bindgen", ··· 5289 5558 checksum = "bfe68bac7cde125de7a731c3400723cadaaf1703795ad3f4805f187459cd7a77" 5290 5559 dependencies = [ 5291 5560 "arrayvec", 5292 - "bitflags 2.10.0", 5561 + "bitflags 2.11.0", 5293 5562 "cfg-if", 5294 5563 "cfg_aliases", 5295 5564 "document-features", ··· 5318 5587 "arrayvec", 5319 5588 "bit-set", 5320 5589 "bit-vec", 5321 - "bitflags 2.10.0", 5590 + "bitflags 2.11.0", 5322 5591 "bytemuck", 5323 5592 "cfg_aliases", 5324 5593 "document-features", ··· 5333 5602 "raw-window-handle", 5334 5603 "rustc-hash 1.1.0", 5335 5604 "smallvec", 5336 - "thiserror 2.0.17", 5605 + "thiserror 2.0.18", 5337 5606 "wgpu-core-deps-apple", 5338 5607 "wgpu-core-deps-wasm", 5339 5608 "wgpu-core-deps-windows-linux-android", ··· 5378 5647 "arrayvec", 5379 5648 "ash", 5380 5649 "bit-set", 5381 - "bitflags 2.10.0", 5650 + "bitflags 2.11.0", 5382 5651 "block", 5383 5652 "bytemuck", 5384 5653 "cfg-if", ··· 5409 5678 "raw-window-handle", 5410 5679 "renderdoc-sys", 5411 5680 "smallvec", 5412 - "thiserror 2.0.17", 5681 + "thiserror 2.0.18", 5413 5682 "wasm-bindgen", 5414 5683 "web-sys", 5415 5684 "wgpu-types", ··· 5423 5692 source = "registry+https://github.com/rust-lang/crates.io-index" 5424 5693 checksum = "afdcf84c395990db737f2dd91628706cb31e86d72e53482320d368e52b5da5eb" 5425 5694 dependencies = [ 5426 - "bitflags 2.10.0", 5695 + "bitflags 2.11.0", 5427 5696 "bytemuck", 5428 5697 "js-sys", 5429 5698 "log", 5430 5699 "serde", 5431 - "thiserror 2.0.17", 5700 + "thiserror 2.0.18", 5432 5701 "web-sys", 5433 5702 ] 5434 5703 ··· 5605 5874 dependencies = [ 5606 5875 "proc-macro2", 5607 5876 "quote", 5608 - "syn 2.0.111", 5877 + "syn 2.0.117", 5609 5878 ] 5610 5879 5611 5880 [[package]] ··· 5616 5885 dependencies = [ 5617 5886 "proc-macro2", 5618 5887 "quote", 5619 - "syn 2.0.111", 5888 + "syn 2.0.117", 5620 5889 ] 5621 5890 5622 5891 [[package]] ··· 5627 5896 dependencies = [ 5628 5897 "proc-macro2", 5629 5898 "quote", 5630 - "syn 2.0.111", 5899 + "syn 2.0.117", 5631 5900 ] 5632 5901 5633 5902 [[package]] ··· 5638 5907 dependencies = [ 5639 5908 "proc-macro2", 5640 5909 "quote", 5641 - "syn 2.0.111", 5910 + "syn 2.0.117", 5642 5911 ] 5643 5912 5644 5913 [[package]] ··· 5914 6183 5915 6184 [[package]] 5916 6185 name = "winit" 5917 - version = "0.30.12" 6186 + version = "0.30.13" 5918 6187 source = "registry+https://github.com/rust-lang/crates.io-index" 5919 - checksum = "c66d4b9ed69c4009f6321f762d6e61ad8a2389cd431b97cb1e146812e9e6c732" 6188 + checksum = "a6755fa58a9f8350bd1e472d4c3fcc25f824ec358933bba33306d0b63df5978d" 5920 6189 dependencies = [ 5921 6190 "ahash", 5922 6191 "android-activity", 5923 6192 "atomic-waker", 5924 - "bitflags 2.10.0", 6193 + "bitflags 2.11.0", 5925 6194 "block2 0.5.1", 5926 6195 "bytemuck", 5927 6196 "calloop", ··· 5966 6235 5967 6236 [[package]] 5968 6237 name = "winnow" 5969 - version = "0.7.14" 6238 + version = "0.7.15" 6239 + source = "registry+https://github.com/rust-lang/crates.io-index" 6240 + checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" 6241 + dependencies = [ 6242 + "memchr", 6243 + ] 6244 + 6245 + [[package]] 6246 + name = "winnow" 6247 + version = "1.0.1" 5970 6248 source = "registry+https://github.com/rust-lang/crates.io-index" 5971 - checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" 6249 + checksum = "09dac053f1cd375980747450bfc7250c264eaae0583872e845c0c7cd578872b5" 5972 6250 dependencies = [ 5973 6251 "memchr", 5974 6252 ] 5975 6253 5976 6254 [[package]] 5977 6255 name = "wit-bindgen" 5978 - version = "0.46.0" 6256 + version = "0.51.0" 6257 + source = "registry+https://github.com/rust-lang/crates.io-index" 6258 + checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" 6259 + dependencies = [ 6260 + "wit-bindgen-rust-macro", 6261 + ] 6262 + 6263 + [[package]] 6264 + name = "wit-bindgen-core" 6265 + version = "0.51.0" 6266 + source = "registry+https://github.com/rust-lang/crates.io-index" 6267 + checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" 6268 + dependencies = [ 6269 + "anyhow", 6270 + "heck", 6271 + "wit-parser", 6272 + ] 6273 + 6274 + [[package]] 6275 + name = "wit-bindgen-rust" 6276 + version = "0.51.0" 6277 + source = "registry+https://github.com/rust-lang/crates.io-index" 6278 + checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" 6279 + dependencies = [ 6280 + "anyhow", 6281 + "heck", 6282 + "indexmap", 6283 + "prettyplease", 6284 + "syn 2.0.117", 6285 + "wasm-metadata", 6286 + "wit-bindgen-core", 6287 + "wit-component", 6288 + ] 6289 + 6290 + [[package]] 6291 + name = "wit-bindgen-rust-macro" 6292 + version = "0.51.0" 6293 + source = "registry+https://github.com/rust-lang/crates.io-index" 6294 + checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" 6295 + dependencies = [ 6296 + "anyhow", 6297 + "prettyplease", 6298 + "proc-macro2", 6299 + "quote", 6300 + "syn 2.0.117", 6301 + "wit-bindgen-core", 6302 + "wit-bindgen-rust", 6303 + ] 6304 + 6305 + [[package]] 6306 + name = "wit-component" 6307 + version = "0.244.0" 6308 + source = "registry+https://github.com/rust-lang/crates.io-index" 6309 + checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" 6310 + dependencies = [ 6311 + "anyhow", 6312 + "bitflags 2.11.0", 6313 + "indexmap", 6314 + "log", 6315 + "serde", 6316 + "serde_derive", 6317 + "serde_json", 6318 + "wasm-encoder", 6319 + "wasm-metadata", 6320 + "wasmparser", 6321 + "wit-parser", 6322 + ] 6323 + 6324 + [[package]] 6325 + name = "wit-parser" 6326 + version = "0.244.0" 5979 6327 source = "registry+https://github.com/rust-lang/crates.io-index" 5980 - checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" 6328 + checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" 6329 + dependencies = [ 6330 + "anyhow", 6331 + "id-arena", 6332 + "indexmap", 6333 + "log", 6334 + "semver", 6335 + "serde", 6336 + "serde_derive", 6337 + "serde_json", 6338 + "unicode-xid", 6339 + "wasmparser", 6340 + ] 5981 6341 5982 6342 [[package]] 5983 6343 name = "x11-dl" ··· 6001 6361 "libc", 6002 6362 "libloading", 6003 6363 "once_cell", 6004 - "rustix 1.1.2", 6364 + "rustix 1.1.4", 6005 6365 "x11rb-protocol", 6006 6366 ] 6007 6367 ··· 6023 6383 source = "registry+https://github.com/rust-lang/crates.io-index" 6024 6384 checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5" 6025 6385 dependencies = [ 6026 - "bitflags 2.10.0", 6386 + "bitflags 2.11.0", 6027 6387 "dlib", 6028 6388 "log", 6029 6389 "once_cell", ··· 6056 6416 6057 6417 [[package]] 6058 6418 name = "zerocopy" 6059 - version = "0.8.31" 6419 + version = "0.8.48" 6060 6420 source = "registry+https://github.com/rust-lang/crates.io-index" 6061 - checksum = "fd74ec98b9250adb3ca554bdde269adf631549f51d8a8f8f0a10b50f1cb298c3" 6421 + checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" 6062 6422 dependencies = [ 6063 6423 "zerocopy-derive", 6064 6424 ] 6065 6425 6066 6426 [[package]] 6067 6427 name = "zerocopy-derive" 6068 - version = "0.8.31" 6428 + version = "0.8.48" 6069 6429 source = "registry+https://github.com/rust-lang/crates.io-index" 6070 - checksum = "d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a" 6430 + checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" 6071 6431 dependencies = [ 6072 6432 "proc-macro2", 6073 6433 "quote", 6074 - "syn 2.0.111", 6434 + "syn 2.0.117", 6075 6435 ] 6436 + 6437 + [[package]] 6438 + name = "zmij" 6439 + version = "1.0.21" 6440 + source = "registry+https://github.com/rust-lang/crates.io-index" 6441 + checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
+8 -3
Cargo.toml
··· 1 1 [package] 2 2 name = "bevy_alchemy" 3 - version = "0.4.0" 3 + version = "0.5.0" 4 4 edition = "2024" 5 5 description = "An experimental, status effects-as-entities system for Bevy." 6 6 categories = ["game-development"] ··· 19 19 bevy_ecs = { version = "0.18", default-features = false, features = [ 20 20 "bevy_reflect", 21 21 ] } 22 + bevy_log = { version = "0.18", default-features = false } 22 23 bevy_reflect = { version = "0.18", default-features = false } 23 24 bevy_time = { version = "0.18", default-features = false, features = [ 24 25 "bevy_reflect", 25 26 ] } 26 - bevy_log = { version = "0.18", default-features = false } 27 + bevy_utils = { version = "0.18", default-features = false } 27 28 28 29 [dev-dependencies] 29 30 bevy = "0.18" ··· 34 35 [lints.rust] 35 36 missing_docs = "warn" 36 37 unexpected_cfgs = { level = "warn", check-cfg = ['cfg(docsrs_dep)'] } 37 - unsafe_code = "deny" 38 38 unsafe_op_in_unsafe_fn = "warn" 39 39 unused_qualifications = "warn" 40 40 ··· 68 68 name = "insert_mode" 69 69 path = "benches/insert_mode.rs" 70 70 harness = false 71 + 72 + [[bench]] 73 + name = "merge_mode" 74 + path = "benches/merge_mode.rs" 75 + harness = false
+1 -1
README.md
··· 74 74 75 75 | Bevy | Bevy Alchemy | 76 76 |--------|---------------| 77 - | `0.18` | `0.2` - `0.4` | 77 + | `0.18` | `0.2` - `0.5` | 78 78 | `0.17` | `0.1` |
+70
benches/merge_mode.rs
··· 1 + //! Benchmarks for applying merge-mode effects. 2 + 3 + use bevy_alchemy::{ 4 + AlchemyPlugin, Effect, EffectCommandsExt, EffectMode, EffectStacks, EffectedBy, 5 + }; 6 + use bevy_app::App; 7 + use bevy_ecs::name::Name; 8 + use bevy_ecs::prelude::{Component, Entity, SpawnRelated}; 9 + use criterion::{Criterion, criterion_group, criterion_main}; 10 + 11 + #[derive(Component, Clone)] 12 + struct BenchEffect; 13 + 14 + fn init_app() -> (App, Entity) { 15 + let mut app = App::new(); 16 + app.add_plugins(AlchemyPlugin); 17 + 18 + let entity = app 19 + .world_mut() 20 + .spawn(( 21 + Name::new("Target"), 22 + EffectedBy::spawn(Effect(( 23 + Name::new("Effect"), 24 + EffectMode::Merge, 25 + BenchEffect, 26 + EffectStacks::default(), 27 + ))), 28 + )) 29 + .id(); 30 + 31 + (app, entity) 32 + } 33 + 34 + fn with_effect(c: &mut Criterion) { 35 + let (mut app, entity) = init_app(); 36 + 37 + c.bench_function("Merge mode matched `with_effect`", |b| { 38 + b.iter(|| { 39 + app.world_mut().commands().entity(entity).with_effect(( 40 + Name::new("Effect"), 41 + EffectMode::Merge, 42 + BenchEffect, 43 + EffectStacks::default(), 44 + )); 45 + app.world_mut().flush(); 46 + }) 47 + }); 48 + } 49 + 50 + fn related_spawner(c: &mut Criterion) { 51 + let (mut app, entity) = init_app(); 52 + 53 + c.bench_function("Merge mode matched related spawner", |b| { 54 + b.iter(|| { 55 + app.world_mut() 56 + .commands() 57 + .entity(entity) 58 + .insert(EffectedBy::spawn(Effect(( 59 + Name::new("Effect"), 60 + EffectMode::Merge, 61 + BenchEffect, 62 + EffectStacks::default(), 63 + )))); 64 + app.world_mut().flush(); 65 + }) 66 + }); 67 + } 68 + 69 + criterion_group!(benches, with_effect, related_spawner); 70 + criterion_main!(benches);
+185 -17
src/bundle_inspector.rs
··· 1 1 use crate::EffectMode; 2 - use bevy_ecs::prelude::{Bundle, Entity, Name, Resource, World}; 2 + use bevy_ecs::component::{ComponentCloneBehavior, ComponentId}; 3 + use bevy_ecs::prelude::{ 4 + AppTypeRegistry, Bundle, Entity, EntityRef, Name, ReflectComponent, Resource, World, 5 + }; 6 + use bevy_ecs::ptr::OwningPtr; 3 7 use bevy_ecs::relationship::RelationshipHookMode; 8 + use bevy_utils::prelude::DebugName; 9 + use std::alloc::alloc; 10 + use std::any::TypeId; 11 + use std::error::Error; 12 + use std::fmt::Formatter; 13 + use std::ptr::{NonNull, copy_nonoverlapping}; 4 14 5 15 #[derive(Resource)] 6 16 pub(crate) struct BundleInspector { ··· 20 30 } 21 31 22 32 impl BundleInspector { 23 - pub fn get_effect_meta<B: Bundle>(&mut self, bundle: B) -> (Option<Name>, EffectMode) { 24 - let e = self.scratch_entity; 33 + /// Stashes a bundle so it can be inspected. 34 + /// 35 + /// Calls [`clear`](Self::clear) first to avoid leakage. 36 + pub fn stash_bundle<B: Bundle>(&mut self, bundle: B) -> &mut Self { 37 + self.clear(); 38 + 25 39 self.world 26 - .entity_mut(e) 40 + .entity_mut(self.scratch_entity) 27 41 .insert_with_relationship_hook_mode(bundle, RelationshipHookMode::Skip); 28 42 29 - let name = self.world.entity(e).get::<Name>().cloned(); 43 + self 44 + } 45 + 46 + /// Clears the [stashed bundle](Self::stash_bundle). 47 + pub fn clear(&mut self) -> &mut Self { 48 + self.world.entity_mut(self.scratch_entity).clear(); 49 + 50 + self 51 + } 52 + 53 + /// Returns the [stashed bundle's](Self::stash_bundle) name and effect mode. 54 + pub fn get_effect_meta(&self) -> (Option<Name>, EffectMode) { 55 + let name = self 56 + .world 57 + .entity(self.scratch_entity) 58 + .get::<Name>() 59 + .cloned(); 30 60 31 61 let mode = self 32 62 .world 33 - .entity_mut(e) 63 + .entity(self.scratch_entity) 34 64 .get::<EffectMode>() 35 65 .copied() 36 66 .unwrap_or_default(); 37 67 38 - self.world.entity_mut(e).clear(); 68 + (name, mode) 69 + } 39 70 40 - (name, mode) 71 + /// Returns a reference to the [stashed bundle](Self::stash_bundle). 72 + pub fn get_ref(&'_ self) -> EntityRef<'_> { 73 + self.world.entity(self.scratch_entity) 74 + } 75 + 76 + /// Converts a component ID to a type ID, if registered. 77 + /// The component ID must be from the inspector's world, using [`get_type_id`](Self::get_type_id). 78 + pub fn get_type_id(&self, component_id: ComponentId) -> Option<TypeId> { 79 + self.world 80 + .components() 81 + .get_info(component_id) 82 + .and_then(|info| info.type_id()) 83 + } 84 + 85 + /// Copies a component from the [stashed bundle](Self::stash_bundle) into an entity in a different world. 86 + /// The component ID must be from the inspector's world, using [`get_type_id`](Self::get_type_id). 87 + /// 88 + /// # Errors 89 + /// Will return an error if: 90 + /// - The component is not registered in `dst_world`. 91 + /// - The component cannot be cloned ([`ComponentCloneBehavior::Ignore`]). 92 + /// - The stashed bundle doesn't contain the component. 93 + /// - The destination entity doesn't exist in `dst_world`. 94 + /// - The resource AppTypeRegistry doesn't exist in `dst_world`. 95 + /// 96 + /// # Safety 97 + /// `src_component_id` must be for the same component as `type_id`. 98 + pub unsafe fn copy_to_world( 99 + &self, 100 + dst_world: &mut World, 101 + dst_entity: Entity, 102 + type_id: TypeId, 103 + src_component_id: ComponentId, 104 + ) -> Result<&Self, MultiWorldCopyError> { 105 + let Some(dst_component_id) = dst_world.components().get_id(type_id) else { 106 + return Err(MultiWorldCopyError::Unregistered(type_id)); 107 + }; 108 + let component_info = dst_world.components().get_info(dst_component_id).unwrap(); 109 + 110 + match component_info.clone_behavior() { 111 + ComponentCloneBehavior::Default | ComponentCloneBehavior::Custom(_) => {} 112 + ComponentCloneBehavior::Ignore => { 113 + return Err(MultiWorldCopyError::Uncloneable(component_info.name())); 114 + } 115 + } 116 + 117 + let Some(src) = self.world.get_by_id(self.scratch_entity, src_component_id) else { 118 + return Err(MultiWorldCopyError::MissingSrcComponent( 119 + component_info.name(), 120 + self.scratch_entity, 121 + )); 122 + }; 123 + 124 + if component_info.drop().is_none() { 125 + unsafe { 126 + // SAFETY: Contract is required to be upheld by the world. 127 + let dst = alloc(component_info.layout()); 128 + 129 + // SAFETY: `dst` is allocated from the component's layout. 130 + // Both IDs provided by the caller must match, and `src` and `dst` are obtained using those IDs. 131 + // `src` and `dst` are from different worlds, so cannot overlap. 132 + copy_nonoverlapping(src.as_ptr(), dst, component_info.layout().size()); 133 + 134 + // SAFETY: Both IDs provided by the caller must match, and `dst` was created from `src`. 135 + let owning = OwningPtr::new(NonNull::new(dst).unwrap()); 136 + 137 + // SAFETY: `existing_component_id` is extracted from `dst_world`. 138 + // Both IDs provided by the caller must match, and `owning` was obtained using `src_component_id`. 139 + dst_world 140 + .get_entity_mut(dst_entity) 141 + .map_err(|_| MultiWorldCopyError::MissingDstEntity(dst_entity))? 142 + .insert_by_id(dst_component_id, owning); 143 + } 144 + } else { 145 + let Some(registry) = dst_world.get_resource::<AppTypeRegistry>().cloned() else { 146 + return Err(MultiWorldCopyError::MissingTypeRegistry); 147 + }; 148 + let registry = registry.read(); 149 + 150 + let reflect_component = registry 151 + .get_type_data::<ReflectComponent>(type_id) 152 + .ok_or(MultiWorldCopyError::Uncloneable(component_info.name()))?; 153 + 154 + reflect_component.copy( 155 + &self.world, 156 + dst_world, 157 + self.scratch_entity, 158 + dst_entity, 159 + &registry, 160 + ); 161 + } 162 + 163 + Ok(self) 41 164 } 42 165 } 43 166 167 + #[derive(Debug, Eq, PartialEq, Clone)] 168 + pub enum MultiWorldCopyError { 169 + Unregistered(TypeId), 170 + Uncloneable(DebugName), 171 + MissingDstEntity(Entity), 172 + MissingSrcComponent(DebugName, Entity), 173 + MissingTypeRegistry, 174 + } 175 + 176 + impl std::fmt::Display for MultiWorldCopyError { 177 + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { 178 + match self { 179 + MultiWorldCopyError::Unregistered(type_id) => write!( 180 + f, 181 + "Component with {type_id:?} is not registered in the destination world, and therefor cannot be inserted using merge mode.", 182 + ), 183 + MultiWorldCopyError::Uncloneable(name) => write!( 184 + f, 185 + "Component {name} cannot be cloned, and therefor cannot be inserted using merge mode.", 186 + ), 187 + MultiWorldCopyError::MissingDstEntity(entity) => write!( 188 + f, 189 + "Entity {entity} does not exist in the destination world." 190 + ), 191 + MultiWorldCopyError::MissingSrcComponent(name, entity) => write!( 192 + f, 193 + "Component {name} does not exist on the scratch entity {entity}, and therefor cannot be cloned.", 194 + ), 195 + MultiWorldCopyError::MissingTypeRegistry => write!( 196 + f, 197 + "Resource AppTypeRegistry does not exist in the destination world, and therefor no components can be cloned.", 198 + ), 199 + } 200 + } 201 + } 202 + 203 + impl Error for MultiWorldCopyError {} 204 + 44 205 #[cfg(test)] 45 206 mod tests { 46 207 use super::*; ··· 54 215 let mode = EffectMode::Insert; 55 216 56 217 assert_eq!( 57 - inspector.get_effect_meta((name.clone(), mode)), 218 + inspector 219 + .stash_bundle((name.clone(), mode)) 220 + .get_effect_meta(), 58 221 (Some(name), mode) 59 222 ); 60 223 } ··· 65 228 66 229 let mode = EffectMode::Insert; 67 230 68 - assert_eq!(inspector.get_effect_meta(mode), (None, mode)); 231 + assert_eq!(inspector.stash_bundle(mode).get_effect_meta(), (None, mode)); 69 232 } 70 233 71 234 #[test] ··· 75 238 let name = Name::new("Effect"); 76 239 77 240 assert_eq!( 78 - inspector.get_effect_meta(name.clone()), 241 + inspector.stash_bundle(name.clone()).get_effect_meta(), 79 242 (Some(name), EffectMode::default()) 80 243 ); 81 244 } ··· 84 247 fn get_effect_meta_nothing() { 85 248 let mut inspector = BundleInspector::default(); 86 249 87 - assert_eq!(inspector.get_effect_meta(()), (None, EffectMode::default())); 250 + assert_eq!( 251 + inspector.stash_bundle(()).get_effect_meta(), 252 + (None, EffectMode::default()) 253 + ); 88 254 } 89 255 90 256 #[test] ··· 95 261 let mode = EffectMode::Insert; 96 262 97 263 assert_eq!( 98 - inspector.get_effect_meta(( 99 - name.clone(), 100 - mode, 101 - Effecting(Entity::from_raw_u32(32).unwrap()) 102 - )), 264 + inspector 265 + .stash_bundle(( 266 + name.clone(), 267 + mode, 268 + Effecting(Entity::from_raw_u32(32).unwrap()) 269 + )) 270 + .get_effect_meta(), 103 271 (Some(name), mode) 104 272 ); 105 273 }
+43 -61
src/command.rs
··· 1 1 use crate::bundle_inspector::BundleInspector; 2 - use crate::registry::{EffectMergeFn, EffectMergeRegistry}; 2 + use crate::registry::EffectMergeRegistry; 3 3 use crate::{EffectMode, EffectedBy, Effecting}; 4 - use bevy_ecs::entity_disabling::Disabled; 5 4 use bevy_ecs::prelude::*; 6 - use bevy_log::warn_once; 7 - use std::any::TypeId; 5 + use bevy_log::{warn, warn_once}; 8 6 9 7 /// Applies an effect to a target entity. 10 8 /// This *might* spawn a new entity, depending on what effects are already applied to the target. ··· 19 17 } 20 18 21 19 impl<B: Bundle> AddEffectCommand<B> { 20 + /// Returns the bundle with the relationship component. 22 21 fn bundle_full(self) -> (Effecting, B) { 23 22 (Effecting(self.target), self.bundle) 24 23 } 25 24 26 - /// Inserts into the existing entity, and then merges the old effect into it using [`EffectMergeRegistry`]. 27 - /// Only registered components that implement `Clone` will be merged. 28 - /// ## Steps 29 - /// 1. Copy unregistered components to a new temporary, disabled entity. 30 - /// 2. Insert new components into the existing entity. 31 - /// 3. Merge the old components (temp entity) with the new ones (existing entity). 32 - /// 4. Despawn temp entity. 25 + /// Merges the [stashed bundle](Self::stash_bundle) with an entity from the given world. 26 + /// This is done by calling the [`EffectMergeFn`] for all components in the [registry](EffectMergeRegistry). 27 + /// Components not in the registry will be copied to the target entity. 33 28 fn merge(self, world: &mut World, existing_entity: Entity) { 34 - if !world.contains_resource::<EffectMergeRegistry>() { 35 - warn_once!( 36 - "No `EffectComponentMergeRegistry` found. Did you forget to add the `AlchemyPlugin`?" 37 - ); 38 - return; 39 - } 40 - 41 - // Copy existing mergeable components to a temporary entity. 42 - let new_effect = existing_entity; 43 - let old_effect = { 44 - let registry = world.resource::<EffectMergeRegistry>(); 45 - let allow: Vec<TypeId> = registry.merges.keys().copied().collect(); 46 - 47 - let temp = world.spawn(Disabled).id(); 48 - world 49 - .entity_mut(existing_entity) 50 - .clone_with_opt_in(temp, |builder| { 51 - builder.without_required_components(|builder| { 52 - builder.allow_by_ids(allow); 53 - }); 54 - }); 55 - 56 - temp 57 - }; 29 + world 30 + .try_resource_scope::<BundleInspector, ()>(|world, inspector| { 31 + world.try_resource_scope::<EffectMergeRegistry, ()>(|world, registry| { 32 + for incoming_component_id in inspector.get_ref().archetype().components() { 33 + let type_id = inspector.get_type_id(*incoming_component_id).unwrap(); 58 34 59 - world.entity_mut(new_effect).insert(self.bundle); 60 - 61 - // Call merge function on those copied components. 62 - { 63 - let old = world.entity(old_effect); 64 - let archetype = old.archetype(); 35 + if let Some(merge) = registry.merges.get(&type_id) { 36 + let entity_mut = world.entity_mut(existing_entity); 65 37 66 - let registry = world.resource::<EffectMergeRegistry>(); 38 + if entity_mut.contains_type_id(type_id) { 39 + merge(entity_mut, inspector.get_ref()); 40 + continue; 41 + } 42 + } 67 43 68 - let merge_functions: Vec<EffectMergeFn> = archetype 69 - .components() 70 - .iter() 71 - .filter_map(|component_id| { 72 - world 73 - .components() 74 - .get_info(*component_id) 75 - .and_then(|info| info.type_id()) 76 - .and_then(|id| registry.merges.get(&id).copied()) 44 + unsafe { 45 + // SAFETY: `incoming_component_id` `type_id` were extracted from the inspector. 46 + _ = inspector.copy_to_world(world, existing_entity, type_id, *incoming_component_id) 47 + .inspect_err(|e| { 48 + warn!("{e}"); 49 + }); 50 + } 51 + } 77 52 }) 78 - .collect(); 79 - 80 - for merge in merge_functions { 81 - merge(world.entity_mut(new_effect), old_effect); 82 - } 83 - } 84 - 85 - world.despawn(old_effect); 53 + .or_else(|| { 54 + warn_once!("No `EffectMergeRegistry` found. Did you forget to add the `AlchemyPlugin`?"); 55 + None 56 + }); 57 + }) 58 + .or_else(|| { 59 + warn_once!("No `BundleInspector` found. Did you forget to add the `AlchemyPlugin`?"); 60 + None 61 + }); 86 62 } 87 63 } 88 64 89 65 impl<B: Bundle + Clone> Command for AddEffectCommand<B> { 90 66 fn apply(self, world: &mut World) { 91 67 let mut inspector = world.get_resource_or_init::<BundleInspector>(); 92 - let (name, mode) = inspector.get_effect_meta(self.bundle.clone()); 68 + let (name, mode) = inspector 69 + .stash_bundle(self.bundle.clone()) 70 + .get_effect_meta(); 93 71 94 72 if mode == EffectMode::Stack { 95 73 world.spawn(self.bundle_full()); ··· 131 109 EffectMode::Insert => { 132 110 world.entity_mut(old_entity).insert(self.bundle); 133 111 } 134 - EffectMode::Merge => self.merge(world, old_entity), 112 + EffectMode::Merge => { 113 + // Ensure that all components are registered in the main world for cloning into. 114 + world.register_bundle::<B>(); 115 + self.merge(world, old_entity) 116 + } 135 117 } 136 118 } 137 119 }
+5 -5
src/component/stack.rs
··· 1 1 use crate::EffectMergeRegistry; 2 2 use bevy_app::{App, Plugin}; 3 - use bevy_ecs::prelude::ReflectComponent; 4 - use bevy_ecs::prelude::{Component, Entity, EntityWorldMut}; 3 + use bevy_ecs::prelude::{Component, EntityWorldMut}; 4 + use bevy_ecs::prelude::{EntityRef, ReflectComponent}; 5 5 use bevy_reflect::Reflect; 6 6 use bevy_reflect::prelude::ReflectDefault; 7 7 use std::ops::{Add, AddAssign, Deref, DerefMut}; ··· 82 82 } 83 83 84 84 /// A [merge function](crate::EffectMergeFn) for the [`EffectStacks`] component. 85 - pub fn merge_effect_stacks(mut new: EntityWorldMut, outgoing: Entity) { 86 - let outgoing = *new.world().get::<EffectStacks>(outgoing).unwrap(); 87 - *new.get_mut::<EffectStacks>().unwrap() += outgoing.0; 85 + pub fn merge_effect_stacks(mut existing: EntityWorldMut, incoming: EntityRef) { 86 + let incoming = incoming.get::<EffectStacks>().unwrap(); 87 + *existing.get_mut::<EffectStacks>().unwrap() += incoming.0; 88 88 }
+20 -16
src/component/timer.rs
··· 2 2 use crate::registry::EffectMergeRegistry; 3 3 use bevy_app::{App, Plugin, PreUpdate}; 4 4 use bevy_ecs::component::Mutable; 5 - use bevy_ecs::prelude::{Commands, Component, Entity, Query, Res}; 5 + use bevy_ecs::prelude::{Commands, Component, Entity, EntityRef, Query, Res}; 6 6 use bevy_ecs::schedule::IntoScheduleConfigs; 7 7 use bevy_ecs::world::EntityWorldMut; 8 8 use bevy_reflect::Reflect; 9 9 use bevy_time::{Time, Timer, TimerMode}; 10 + use std::fmt::Debug; 10 11 use std::time::Duration; 11 12 12 13 pub(crate) struct TimerPlugin; ··· 22 23 } 23 24 24 25 /// A [merge function](crate::EffectMergeFn) for [`EffectTimer`] components ([`Lifetime`] and [`Delay`]). 25 - pub fn merge_effect_timer<T: EffectTimer + Component<Mutability = Mutable> + Clone>( 26 - mut new: EntityWorldMut, 27 - outgoing: Entity, 26 + pub fn merge_effect_timer<T: EffectTimer + Component<Mutability = Mutable>>( 27 + mut existing: EntityWorldMut, 28 + incoming: EntityRef, 28 29 ) { 29 - let outgoing = new.world().get::<T>(outgoing).unwrap().clone(); 30 - new.get_mut::<T>().unwrap().merge(&outgoing); 30 + let incoming = incoming.get::<T>().unwrap(); 31 + existing.get_mut::<T>().unwrap().merge(incoming); 31 32 } 32 33 33 34 /// A [timer](Timer) which is used for status effects and includes a [`TimerMergeMode`]. 34 - pub trait EffectTimer: Sized { 35 + pub trait EffectTimer: Clone { 35 36 /// Creates a new timer from a duration. 36 37 fn new(duration: Duration) -> Self; 37 38 ··· 59 60 /// Behaviour depends on the current [`TimerMergeMode`]. 60 61 fn merge(&mut self, incoming: &Self) { 61 62 match self.get_mode() { 62 - TimerMergeMode::Replace => {} 63 - TimerMergeMode::Keep => *self.get_timer_mut() = incoming.get_timer().clone(), 63 + TimerMergeMode::Replace => self.clone_from(incoming), 64 + TimerMergeMode::Keep => {} 64 65 TimerMergeMode::Fraction => { 65 - let fraction = incoming.get_timer().fraction(); 66 - let duration = self.get_timer().duration().as_secs_f32(); 66 + let fraction = self.get_timer().fraction(); 67 + let duration = incoming.get_timer().duration().as_secs_f32(); 68 + 69 + self.clone_from(incoming); 67 70 self.get_timer_mut() 68 71 .set_elapsed(Duration::from_secs_f32(fraction * duration)); 69 72 } 70 73 TimerMergeMode::Max => { 71 - let old = incoming.get_timer().remaining_secs(); 72 - let new = self.get_timer().remaining_secs(); 74 + let old = self.get_timer().remaining_secs(); 75 + let new = incoming.get_timer().remaining_secs(); 73 76 74 - if old > new { 75 - *self.get_timer_mut() = incoming.get_timer().clone(); 77 + if new > old { 78 + self.clone_from(incoming); 76 79 } 77 80 } 78 81 TimerMergeMode::Sum => { 79 - let duration = incoming.get_timer().duration() + self.get_timer().duration(); 82 + let duration = self.get_timer().duration() + incoming.get_timer().duration(); 83 + self.clone_from(incoming); 80 84 self.get_timer_mut().set_duration(duration); 81 85 } 82 86 }
+13 -8
src/registry.rs
··· 5 5 /// A function used to merge effects with [`EffectMode::Merge`](crate::EffectMode::Merge), 6 6 /// which must be registered in the [registry](EffectMergeRegistry). 7 7 /// 8 + /// The component the function is registered for is guaranteed to exist on both provided entities. 9 + /// Note that the incoming entity exists in a **separate world**. 10 + /// 8 11 /// # Example 9 12 /// ```rust 10 13 /// # use bevy_ecs::prelude::*; ··· 12 15 /// #[derive(Component, Clone)] 13 16 /// struct MyEffect(f32); 14 17 /// 15 - /// fn merge_my_effect(mut new: EntityWorldMut, outgoing: Entity) { 16 - /// let outgoing = new.world().get::<MyEffect>(outgoing).unwrap().clone(); 17 - /// new.get_mut::<MyEffect>().unwrap().0 += outgoing.0; 18 + /// fn merge_my_effect(mut existing: EntityWorldMut, incoming: EntityRef) { 19 + /// let mut existing = existing.get_mut::<MyEffect>().unwrap(); 20 + /// let incoming = incoming.get::<MyEffect>().unwrap(); 21 + /// existing.0 += incoming.0; 18 22 /// } 19 23 /// ``` 20 - pub type EffectMergeFn = fn(new: EntityWorldMut, outgoing: Entity); 24 + pub type EffectMergeFn = fn(existing: EntityWorldMut, incoming: EntityRef); 21 25 22 26 /// Stores the effect merge logic for each registered component. 23 27 /// New components can be registered by providing a [`EffectMergeFn`] to the [`register`](EffectMergeRegistry::register) method. ··· 37 41 /// .register::<MyEffect>(merge_my_effect); 38 42 /// } 39 43 /// 40 - /// fn merge_my_effect(mut new: EntityWorldMut, outgoing: Entity) { 41 - /// let outgoing = new.world().get::<MyEffect>(outgoing).unwrap().clone(); 42 - /// new.get_mut::<MyEffect>().unwrap().0 += outgoing.0; 44 + /// fn merge_my_effect(mut existing: EntityWorldMut, incoming: EntityRef) { 45 + /// let mut existing = existing.get_mut::<MyEffect>().unwrap(); 46 + /// let incoming = incoming.get::<MyEffect>().unwrap(); 47 + /// existing.0 += incoming.0; 43 48 /// } 44 49 /// ``` 45 50 #[derive(Resource, Default)] ··· 48 53 } 49 54 50 55 impl EffectMergeRegistry { 51 - /// Registers a [`EffectMergeFn`] to be run whenever two `T` status effects are merged. 56 + /// Registers a [`EffectMergeFn`] to be run whenever two `T` status effect components are merged. 52 57 pub fn register<T: Component + Clone>(&mut self, f: EffectMergeFn) -> &mut Self { 53 58 self.merges.insert(TypeId::of::<T>(), f); 54 59 self
+37
tests/merge_mode.rs tests/effect_mode.rs
··· 13 13 14 14 let mut registry = EffectMergeRegistry::default(); 15 15 registry 16 + .register::<EffectStacks>(merge_effect_stacks) 16 17 .register::<Lifetime>(merge_effect_timer::<Lifetime>) 17 18 .register::<Delay>(merge_effect_timer::<Delay>); 18 19 ··· 101 102 assert!(effects.contains(&1)); 102 103 assert!(!effects.contains(&2)); 103 104 assert!(effects.contains(&3)); 105 + } 106 + 107 + #[test] 108 + fn effect_stacks_merge() { 109 + let mut world = init_world(); 110 + 111 + let target = world.spawn_empty().id(); 112 + world.commands().entity(target).with_effect(( 113 + EffectMode::Merge, 114 + MyEffect(0), 115 + EffectStacks::default(), 116 + )); 117 + world.commands().entity(target).with_effect(( 118 + EffectMode::Merge, 119 + MyEffect(1), 120 + EffectStacks::default(), 121 + Delay::default(), 122 + )); 123 + 124 + world.flush(); 125 + 126 + // Component with merge function: 127 + assert_eq!( 128 + world.query::<&EffectStacks>().single(&world).unwrap(), 129 + &EffectStacks(2), 130 + ); 131 + // Component without, and already present on effect. 132 + assert_eq!( 133 + world.query::<&MyEffect>().single(&world).unwrap(), 134 + &MyEffect(1) 135 + ); 136 + // Component without, and not present on effect. 137 + assert_eq!( 138 + world.query::<&Delay>().single(&world).unwrap(), 139 + &Delay::default() 140 + ) 104 141 } 105 142 106 143 #[test]
+7 -8
tests/timer.rs
··· 5 5 6 6 #[test] 7 7 fn merge_replace() { 8 - let first = Lifetime::from_seconds(1.0).with_mode(TimerMergeMode::Replace); 8 + let mut first = Lifetime::from_seconds(1.0).with_mode(TimerMergeMode::Replace); 9 9 let second = Lifetime::from_seconds(2.0).with_mode(TimerMergeMode::Replace); 10 - let mut result = second.clone(); 11 - result.merge(&first); 10 + first.merge(&second); 12 11 13 - assert_eq!(result, second); 12 + assert_eq!(first, second); 14 13 } 15 14 16 15 #[test] 17 16 fn merge_keep() { 18 17 let first = Lifetime::from_seconds(1.0).with_mode(TimerMergeMode::Keep); 19 18 let second = Lifetime::from_seconds(2.0).with_mode(TimerMergeMode::Keep); 20 - let mut result = second.clone(); 21 - result.merge(&first); 19 + let mut result = first.clone(); 20 + result.merge(&second); 22 21 23 22 assert_eq!(result, first); 24 23 } ··· 27 26 fn merge_fraction() { 28 27 let first = Lifetime::from_seconds(1.0).with_mode(TimerMergeMode::Fraction); 29 28 let second = Lifetime::from_seconds(2.0).with_mode(TimerMergeMode::Fraction); 30 - let mut result = second.clone(); 31 - result.merge(&first); 29 + let mut result = first.clone(); 30 + result.merge(&second); 32 31 33 32 assert_eq!(result, second); 34 33 }