Game stats that reset every frame, inspired by immediate mode GUI.
gamedev bevy stats
0
fork

Configure Feed

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

Merge pull request #16 from AlephCubed/bevy-auto-plugin

Added `bevy_auto_plugin` feature.

authored by

AlephCubed and committed by
GitHub
3ff9be22 f749a635

+689 -279
+372 -228
Cargo.lock
··· 31 31 dependencies = [ 32 32 "proc-macro2", 33 33 "quote", 34 - "syn 2.0.101", 34 + "syn 2.0.106", 35 35 ] 36 36 37 37 [[package]] 38 38 name = "async-executor" 39 - version = "1.13.2" 39 + version = "1.13.3" 40 40 source = "registry+https://github.com/rust-lang/crates.io-index" 41 - checksum = "bb812ffb58524bdd10860d7d974e2f01cc0950c2438a74ee5ec2e2280c6c4ffa" 41 + checksum = "497c00e0fd83a72a79a39fcbd8e3e2f055d6f6c7e025f3b3d91f4f8e76527fb8" 42 42 dependencies = [ 43 43 "async-task", 44 44 "concurrent-queue", ··· 59 59 60 60 [[package]] 61 61 name = "async-trait" 62 - version = "0.1.88" 62 + version = "0.1.89" 63 63 source = "registry+https://github.com/rust-lang/crates.io-index" 64 - checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" 64 + checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" 65 65 dependencies = [ 66 66 "proc-macro2", 67 67 "quote", 68 - "syn 2.0.101", 68 + "syn 2.0.106", 69 69 ] 70 70 71 71 [[package]] ··· 79 79 80 80 [[package]] 81 81 name = "autocfg" 82 - version = "1.4.0" 82 + version = "1.5.0" 83 83 source = "registry+https://github.com/rust-lang/crates.io-index" 84 - checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" 84 + checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" 85 85 86 86 [[package]] 87 87 name = "bevy" 88 - version = "0.16.0" 88 + version = "0.16.1" 89 89 source = "registry+https://github.com/rust-lang/crates.io-index" 90 - checksum = "2a5cd3b24a5adb7c7378da7b3eea47639877643d11b6b087fc8a8094f2528615" 90 + checksum = "4b8369c16b7c017437021341521f8b4a0d98e1c70113fb358c3258ae7d661d79" 91 91 dependencies = [ 92 92 "bevy_internal", 93 93 ] 94 94 95 95 [[package]] 96 96 name = "bevy-butler" 97 - version = "0.6.1" 97 + version = "0.6.2" 98 98 source = "registry+https://github.com/rust-lang/crates.io-index" 99 - checksum = "3110fa6c59f9c5cbb3719b120f736f95fdf440d8034911a147f72efec691a85a" 99 + checksum = "a837ab609be8353552de441031ee101ac86ffb19ccf9e6d3d2b922aa545f0ff9" 100 100 dependencies = [ 101 101 "bevy-butler-proc-macro", 102 102 "bevy_app", 103 103 "bevy_ecs", 104 104 "bevy_log", 105 + "bevy_state", 105 106 "inventory", 106 107 "linkme", 107 108 ] 108 109 109 110 [[package]] 110 111 name = "bevy-butler-proc-macro" 111 - version = "0.6.1" 112 + version = "0.6.2-alpha.2" 112 113 source = "registry+https://github.com/rust-lang/crates.io-index" 113 - checksum = "8b9ee12e4ffa2725714bc68e942229724df006607e68b5fc244a9916814ff635" 114 + checksum = "4150a4732c48044ec63efd1ebe51a889647391dab5e59603802eac3a1bde63b0" 114 115 dependencies = [ 115 116 "deluxe", 116 117 "deluxe-core", 117 118 "proc-macro2", 118 119 "quote", 119 120 "sha256", 120 - "syn 2.0.101", 121 + "syn 2.0.106", 121 122 ] 122 123 123 124 [[package]] 124 125 name = "bevy_app" 125 - version = "0.16.0" 126 + version = "0.16.1" 126 127 source = "registry+https://github.com/rust-lang/crates.io-index" 127 - checksum = "a2b6267ac23a9947d5b2725ff047a1e1add70076d85fa9fb73d044ab9bea1f3c" 128 + checksum = "4491cc4c718ae76b4c6883df58b94cc88b32dcd894ea8d5b603c7c7da72ca967" 128 129 dependencies = [ 129 130 "bevy_derive", 130 131 "bevy_ecs", ··· 144 145 ] 145 146 146 147 [[package]] 148 + name = "bevy_auto_plugin" 149 + version = "0.5.0" 150 + source = "registry+https://github.com/rust-lang/crates.io-index" 151 + checksum = "71599f6ff43778a56d1c9d257bcaf257abdae3385c8c2be883646dd64d1bbb93" 152 + dependencies = [ 153 + "bevy_auto_plugin_proc_macros", 154 + "bevy_auto_plugin_shared", 155 + "cfg_aliases", 156 + "rustc_version", 157 + ] 158 + 159 + [[package]] 160 + name = "bevy_auto_plugin_proc_macros" 161 + version = "0.5.0" 162 + source = "registry+https://github.com/rust-lang/crates.io-index" 163 + checksum = "07922d132befe18e2878cd170ba80110437d509e265f4c138617766191fb22a6" 164 + dependencies = [ 165 + "bevy_auto_plugin_shared", 166 + "darling", 167 + "proc-macro2", 168 + "quote", 169 + "syn 2.0.106", 170 + ] 171 + 172 + [[package]] 173 + name = "bevy_auto_plugin_shared" 174 + version = "0.5.0" 175 + source = "registry+https://github.com/rust-lang/crates.io-index" 176 + checksum = "10522f47da314c6a708f3c2001db6eaa0e94a44f06462700e57d1a28a7cdcc54" 177 + dependencies = [ 178 + "bevy_app", 179 + "bevy_ecs", 180 + "bevy_ecs_macros", 181 + "bevy_log", 182 + "bevy_reflect", 183 + "bevy_reflect_derive", 184 + "bevy_state", 185 + "darling", 186 + "inventory", 187 + "linkme", 188 + "proc-macro2", 189 + "quote", 190 + "smart-default", 191 + "syn 2.0.106", 192 + "thiserror", 193 + ] 194 + 195 + [[package]] 147 196 name = "bevy_derive" 148 - version = "0.16.0" 197 + version = "0.16.1" 149 198 source = "registry+https://github.com/rust-lang/crates.io-index" 150 - checksum = "f626531b9c05c25a758ede228727bd11c2c2c8498ecbed9925044386d525a2a3" 199 + checksum = "1b837bf6c51806b10ebfa9edf1844ad80a3a0760d6c5fac4e90761df91a8901a" 151 200 dependencies = [ 152 201 "bevy_macro_utils", 153 202 "quote", 154 - "syn 2.0.101", 203 + "syn 2.0.106", 155 204 ] 156 205 157 206 [[package]] 158 207 name = "bevy_diagnostic" 159 - version = "0.16.0" 208 + version = "0.16.1" 160 209 source = "registry+https://github.com/rust-lang/crates.io-index" 161 - checksum = "048a1ff3944a534b8472516866284181eef0a75b6dd4d39b6e5925715e350766" 210 + checksum = "48797366f312a8f31e237d08ce3ee70162591282d2bfe7c5ad8be196fb263e55" 162 211 dependencies = [ 163 212 "bevy_app", 164 213 "bevy_ecs", ··· 172 221 173 222 [[package]] 174 223 name = "bevy_ecs" 175 - version = "0.16.0" 224 + version = "0.16.1" 176 225 source = "registry+https://github.com/rust-lang/crates.io-index" 177 - checksum = "d9e807b5d9aab3bb8dfe47e7a44c9ff088bad2ceefe299b80ac77609a87fe9d4" 226 + checksum = "3c2bf6521aae57a0ec3487c4bfb59e36c4a378e834b626a4bea6a885af2fdfe7" 178 227 dependencies = [ 179 228 "arrayvec", 180 229 "bevy_ecs_macros", ··· 200 249 201 250 [[package]] 202 251 name = "bevy_ecs_macros" 203 - version = "0.16.0" 252 + version = "0.16.1" 204 253 source = "registry+https://github.com/rust-lang/crates.io-index" 205 - checksum = "467d7bb98aeb8dd30f36e6a773000c12a891d4f1bee2adc3841ec89cc8eaf54e" 254 + checksum = "38748d6f3339175c582d751f410fb60a93baf2286c3deb7efebb0878dce7f413" 206 255 dependencies = [ 207 256 "bevy_macro_utils", 208 257 "proc-macro2", 209 258 "quote", 210 - "syn 2.0.101", 259 + "syn 2.0.106", 211 260 ] 212 261 213 262 [[package]] 214 263 name = "bevy_input" 215 - version = "0.16.0" 264 + version = "0.16.1" 216 265 source = "registry+https://github.com/rust-lang/crates.io-index" 217 - checksum = "763410715714f3d4d2dcdf077af276e2e4ea93fd8081b183d446d060ea95baaa" 266 + checksum = "18d6b6516433f6f7d680f648d04eb1866bb3927a1782d52f74831b62042f3cd1" 218 267 dependencies = [ 219 268 "bevy_app", 220 269 "bevy_ecs", ··· 229 278 230 279 [[package]] 231 280 name = "bevy_internal" 232 - version = "0.16.0" 281 + version = "0.16.1" 233 282 source = "registry+https://github.com/rust-lang/crates.io-index" 234 - checksum = "526ffd64c58004cb97308826e896c07d0e23dc056c243b97492e31cdf72e2830" 283 + checksum = "857da8785678fde537d02944cd20dec9cafb7d4c447efe15f898dc60e733cacd" 235 284 dependencies = [ 236 285 "bevy_app", 237 286 "bevy_derive", ··· 250 299 251 300 [[package]] 252 301 name = "bevy_log" 253 - version = "0.16.0" 302 + version = "0.16.1" 254 303 source = "registry+https://github.com/rust-lang/crates.io-index" 255 - checksum = "7156df8d2f11135cf71c03eb4c11132b65201fd4f51648571e59e39c9c9ee2f6" 304 + checksum = "d7a61ee8aef17a974f5ca481dcedf0c2bd52670e231d4c4bc9ddef58328865f9" 256 305 dependencies = [ 257 306 "android_log-sys", 258 307 "bevy_app", ··· 267 316 268 317 [[package]] 269 318 name = "bevy_macro_utils" 270 - version = "0.16.0" 319 + version = "0.16.1" 271 320 source = "registry+https://github.com/rust-lang/crates.io-index" 272 - checksum = "7a2473db70d8785b5c75d6dd951a2e51e9be2c2311122db9692c79c9d887517b" 321 + checksum = "052eeebcb8e7e072beea5031b227d9a290f8a7fbbb947573ab6ec81df0fb94be" 273 322 dependencies = [ 274 323 "parking_lot", 275 324 "proc-macro2", 276 325 "quote", 277 - "syn 2.0.101", 278 - "toml_edit 0.22.26", 326 + "syn 2.0.106", 327 + "toml_edit 0.22.27", 279 328 ] 280 329 281 330 [[package]] 282 331 name = "bevy_math" 283 - version = "0.16.0" 332 + version = "0.16.1" 284 333 source = "registry+https://github.com/rust-lang/crates.io-index" 285 - checksum = "f1a3a926d02dc501c6156a047510bdb538dcb1fa744eeba13c824b73ba88de55" 334 + checksum = "68553e0090fe9c3ba066c65629f636bd58e4ebd9444fdba097b91af6cd3e243f" 286 335 dependencies = [ 287 336 "bevy_reflect", 288 337 "derive_more", ··· 299 348 300 349 [[package]] 301 350 name = "bevy_platform" 302 - version = "0.16.0" 351 + version = "0.16.1" 303 352 source = "registry+https://github.com/rust-lang/crates.io-index" 304 - checksum = "704db2c11b7bc31093df4fbbdd3769f9606a6a5287149f4b51f2680f25834ebc" 353 + checksum = "f7573dc824a1b08b4c93fdbe421c53e1e8188e9ca1dd74a414455fe571facb47" 305 354 dependencies = [ 306 355 "cfg-if", 307 356 "critical-section", 308 357 "foldhash", 309 358 "getrandom 0.2.16", 310 - "hashbrown", 359 + "hashbrown 0.15.5", 311 360 "portable-atomic", 312 361 "portable-atomic-util", 313 362 "serde", ··· 317 366 318 367 [[package]] 319 368 name = "bevy_ptr" 320 - version = "0.16.0" 369 + version = "0.16.1" 321 370 source = "registry+https://github.com/rust-lang/crates.io-index" 322 - checksum = "86f1275dfb4cfef4ffc90c3fa75408964864facf833acc932413d52aa5364ba4" 371 + checksum = "df7370d0e46b60e071917711d0860721f5347bc958bf325975ae6913a5dfcf01" 323 372 324 373 [[package]] 325 374 name = "bevy_reflect" 326 - version = "0.16.0" 375 + version = "0.16.1" 327 376 source = "registry+https://github.com/rust-lang/crates.io-index" 328 - checksum = "607ebacc31029cf2f39ac330eabf1d4bc411b159528ec08dbe6b0593eaccfd41" 377 + checksum = "daeb91a63a1a4df00aa58da8cc4ddbd4b9f16ab8bb647c5553eb156ce36fa8c2" 329 378 dependencies = [ 330 379 "assert_type_match", 331 380 "bevy_platform", ··· 349 398 350 399 [[package]] 351 400 name = "bevy_reflect_derive" 352 - version = "0.16.0" 401 + version = "0.16.1" 353 402 source = "registry+https://github.com/rust-lang/crates.io-index" 354 - checksum = "cf35e45e4eb239018369f63f2adc2107a54c329f9276d020e01eee1625b0238b" 403 + checksum = "40ddadc55fe16b45faaa54ab2f9cb00548013c74812e8b018aa172387103cce6" 355 404 dependencies = [ 356 405 "bevy_macro_utils", 357 406 "proc-macro2", 358 407 "quote", 359 - "syn 2.0.101", 408 + "syn 2.0.106", 360 409 "uuid", 361 410 ] 362 411 363 412 [[package]] 413 + name = "bevy_state" 414 + version = "0.16.1" 415 + source = "registry+https://github.com/rust-lang/crates.io-index" 416 + checksum = "155d3cd97b900539008cdcaa702f88b724d94b08977b8e591a32536ce66faa8c" 417 + dependencies = [ 418 + "bevy_app", 419 + "bevy_ecs", 420 + "bevy_platform", 421 + "bevy_reflect", 422 + "bevy_state_macros", 423 + "bevy_utils", 424 + "log", 425 + "variadics_please", 426 + ] 427 + 428 + [[package]] 429 + name = "bevy_state_macros" 430 + version = "0.16.1" 431 + source = "registry+https://github.com/rust-lang/crates.io-index" 432 + checksum = "2481c1304fd2a1851a0d4cb63a1ce6421ae40f3f0117cbc9882963ee4c9bb609" 433 + dependencies = [ 434 + "bevy_macro_utils", 435 + "proc-macro2", 436 + "quote", 437 + "syn 2.0.106", 438 + ] 439 + 440 + [[package]] 364 441 name = "bevy_tasks" 365 - version = "0.16.0" 442 + version = "0.16.1" 366 443 source = "registry+https://github.com/rust-lang/crates.io-index" 367 - checksum = "444c450b65e108855f42ecb6db0c041a56ea7d7f10cc6222f0ca95e9536a7d19" 444 + checksum = "5b674242641cab680688fc3b850243b351c1af49d4f3417a576debd6cca8dcf5" 368 445 dependencies = [ 369 446 "async-executor", 370 447 "async-task", ··· 382 459 383 460 [[package]] 384 461 name = "bevy_time" 385 - version = "0.16.0" 462 + version = "0.16.1" 386 463 source = "registry+https://github.com/rust-lang/crates.io-index" 387 - checksum = "456369ca10f8e039aaf273332744674844827854833ee29e28f9e161702f2f55" 464 + checksum = "bc98eb356c75be04fbbc77bb3d8ffa24c8bacd99f76111cee23d444be6ac8c9c" 388 465 dependencies = [ 389 466 "bevy_app", 390 467 "bevy_ecs", ··· 395 472 396 473 [[package]] 397 474 name = "bevy_transform" 398 - version = "0.16.0" 475 + version = "0.16.1" 399 476 source = "registry+https://github.com/rust-lang/crates.io-index" 400 - checksum = "8479cdd5461246943956a7c8347e4e5d6ff857e57add889fb50eee0b5c26ab48" 477 + checksum = "df218e440bb9a19058e1b80a68a031c887bcf7bd3a145b55f361359a2fa3100d" 401 478 dependencies = [ 402 479 "bevy_app", 403 480 "bevy_ecs", ··· 411 488 412 489 [[package]] 413 490 name = "bevy_utils" 414 - version = "0.16.0" 491 + version = "0.16.1" 415 492 source = "registry+https://github.com/rust-lang/crates.io-index" 416 - checksum = "ac2da3b3c1f94dadefcbe837aaa4aa119fcea37f7bdc5307eb05b4ede1921e24" 493 + checksum = "94f7a8905a125d2017e8561beefb7f2f5e67e93ff6324f072ad87c5fd6ec3b99" 417 494 dependencies = [ 418 495 "bevy_platform", 419 496 "thread_local", ··· 436 513 "regex", 437 514 "rustc-hash", 438 515 "shlex", 439 - "syn 2.0.101", 516 + "syn 2.0.106", 440 517 ] 441 518 442 519 [[package]] 443 520 name = "bitflags" 444 - version = "2.9.0" 521 + version = "2.9.4" 445 522 source = "registry+https://github.com/rust-lang/crates.io-index" 446 - checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" 523 + checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" 447 524 dependencies = [ 448 525 "serde", 449 526 ] ··· 459 536 460 537 [[package]] 461 538 name = "bumpalo" 462 - version = "3.17.0" 539 + version = "3.19.0" 463 540 source = "registry+https://github.com/rust-lang/crates.io-index" 464 - checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" 541 + checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" 465 542 466 543 [[package]] 467 544 name = "bytemuck" 468 - version = "1.23.0" 545 + version = "1.23.2" 469 546 source = "registry+https://github.com/rust-lang/crates.io-index" 470 - checksum = "9134a6ef01ce4b366b50689c94f82c14bc72bc5d0386829828a2e2752ef7958c" 547 + checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" 471 548 472 549 [[package]] 473 550 name = "byteorder" ··· 483 560 484 561 [[package]] 485 562 name = "cc" 486 - version = "1.2.20" 563 + version = "1.2.38" 487 564 source = "registry+https://github.com/rust-lang/crates.io-index" 488 - checksum = "04da6a0d40b948dfc4fa8f5bbf402b0fc1a64a28dbf7d12ffd683550f2c1b63a" 565 + checksum = "80f41ae168f955c12fb8960b057d70d0ca153fb83182b57d86380443527be7e9" 489 566 dependencies = [ 567 + "find-msvc-tools", 490 568 "shlex", 491 569 ] 492 570 ··· 501 579 502 580 [[package]] 503 581 name = "cfg-if" 504 - version = "1.0.0" 582 + version = "1.0.3" 505 583 source = "registry+https://github.com/rust-lang/crates.io-index" 506 - checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 584 + checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" 507 585 508 586 [[package]] 509 587 name = "cfg_aliases" ··· 590 668 591 669 [[package]] 592 670 name = "ctrlc" 593 - version = "3.4.6" 671 + version = "3.5.0" 594 672 source = "registry+https://github.com/rust-lang/crates.io-index" 595 - checksum = "697b5419f348fd5ae2478e8018cb016c00a5881c7f46c717de98ffd135a5651c" 673 + checksum = "881c5d0a13b2f1498e2306e82cbada78390e152d4b1378fb28a84f4dcd0dc4f3" 596 674 dependencies = [ 675 + "dispatch", 597 676 "nix", 598 - "windows-sys 0.59.0", 677 + "windows-sys 0.61.0", 599 678 ] 600 679 601 680 [[package]] 602 681 name = "darling" 603 - version = "0.20.11" 682 + version = "0.21.3" 604 683 source = "registry+https://github.com/rust-lang/crates.io-index" 605 - checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" 684 + checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" 606 685 dependencies = [ 607 686 "darling_core", 608 687 "darling_macro", ··· 610 689 611 690 [[package]] 612 691 name = "darling_core" 613 - version = "0.20.11" 692 + version = "0.21.3" 614 693 source = "registry+https://github.com/rust-lang/crates.io-index" 615 - checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" 694 + checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" 616 695 dependencies = [ 617 696 "fnv", 618 697 "ident_case", 619 698 "proc-macro2", 620 699 "quote", 621 700 "strsim 0.11.1", 622 - "syn 2.0.101", 701 + "syn 2.0.106", 623 702 ] 624 703 625 704 [[package]] 626 705 name = "darling_macro" 627 - version = "0.20.11" 706 + version = "0.21.3" 628 707 source = "registry+https://github.com/rust-lang/crates.io-index" 629 - checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" 708 + checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" 630 709 dependencies = [ 631 710 "darling_core", 632 711 "quote", 633 - "syn 2.0.101", 712 + "syn 2.0.106", 634 713 ] 635 714 636 715 [[package]] ··· 643 722 "deluxe-macros", 644 723 "once_cell", 645 724 "proc-macro2", 646 - "syn 2.0.101", 725 + "syn 2.0.106", 647 726 ] 648 727 649 728 [[package]] ··· 656 735 "proc-macro2", 657 736 "quote", 658 737 "strsim 0.10.0", 659 - "syn 2.0.101", 738 + "syn 2.0.106", 660 739 ] 661 740 662 741 [[package]] ··· 671 750 "proc-macro-crate", 672 751 "proc-macro2", 673 752 "quote", 674 - "syn 2.0.101", 753 + "syn 2.0.106", 675 754 ] 676 755 677 756 [[package]] ··· 691 770 dependencies = [ 692 771 "proc-macro2", 693 772 "quote", 694 - "syn 2.0.101", 773 + "syn 2.0.106", 695 774 "unicode-xid", 696 775 ] 697 776 ··· 706 785 ] 707 786 708 787 [[package]] 788 + name = "dispatch" 789 + version = "0.2.0" 790 + source = "registry+https://github.com/rust-lang/crates.io-index" 791 + checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" 792 + 793 + [[package]] 709 794 name = "disqualified" 710 795 version = "1.0.0" 711 796 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 713 798 714 799 [[package]] 715 800 name = "downcast-rs" 716 - version = "2.0.1" 801 + version = "2.0.2" 717 802 source = "registry+https://github.com/rust-lang/crates.io-index" 718 - checksum = "ea8a8b81cacc08888170eef4d13b775126db426d0b348bee9d18c2c1eaf123cf" 803 + checksum = "117240f60069e65410b3ae1bb213295bd828f707b5bec6596a1afc8793ce0cbc" 719 804 720 805 [[package]] 721 806 name = "either" ··· 731 816 732 817 [[package]] 733 818 name = "erased-serde" 734 - version = "0.4.6" 819 + version = "0.4.8" 735 820 source = "registry+https://github.com/rust-lang/crates.io-index" 736 - checksum = "e004d887f51fcb9fef17317a2f3525c887d8aa3f4f50fed920816a688284a5b7" 821 + checksum = "259d404d09818dec19332e31d94558aeb442fea04c817006456c24b5460bbd4b" 737 822 dependencies = [ 738 823 "serde", 824 + "serde_core", 739 825 "typeid", 740 826 ] 741 827 ··· 746 832 checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" 747 833 748 834 [[package]] 835 + name = "find-msvc-tools" 836 + version = "0.1.2" 837 + source = "registry+https://github.com/rust-lang/crates.io-index" 838 + checksum = "1ced73b1dacfc750a6db6c0a0c3a3853c8b41997e2e2c563dc90804ae6867959" 839 + 840 + [[package]] 749 841 name = "fixedbitset" 750 842 version = "0.5.7" 751 843 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 786 878 787 879 [[package]] 788 880 name = "futures-lite" 789 - version = "2.6.0" 881 + version = "2.6.1" 790 882 source = "registry+https://github.com/rust-lang/crates.io-index" 791 - checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532" 883 + checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" 792 884 dependencies = [ 793 885 "fastrand", 794 886 "futures-core", ··· 816 908 "cfg-if", 817 909 "js-sys", 818 910 "libc", 819 - "wasi 0.11.0+wasi-snapshot-preview1", 911 + "wasi 0.11.1+wasi-snapshot-preview1", 820 912 "wasm-bindgen", 821 913 ] 822 914 823 915 [[package]] 824 916 name = "getrandom" 825 - version = "0.3.2" 917 + version = "0.3.3" 826 918 source = "registry+https://github.com/rust-lang/crates.io-index" 827 - checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" 919 + checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" 828 920 dependencies = [ 829 921 "cfg-if", 830 922 "libc", 831 923 "r-efi", 832 - "wasi 0.14.2+wasi-0.2.4", 924 + "wasi 0.14.7+wasi-0.2.4", 833 925 ] 834 926 835 927 [[package]] ··· 845 937 846 938 [[package]] 847 939 name = "glob" 848 - version = "0.3.2" 940 + version = "0.3.3" 849 941 source = "registry+https://github.com/rust-lang/crates.io-index" 850 - checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" 942 + checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" 851 943 852 944 [[package]] 853 945 name = "hash32" ··· 860 952 861 953 [[package]] 862 954 name = "hashbrown" 863 - version = "0.15.3" 955 + version = "0.15.5" 864 956 source = "registry+https://github.com/rust-lang/crates.io-index" 865 - checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3" 957 + checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" 866 958 dependencies = [ 867 959 "equivalent", 868 960 "serde", 869 961 ] 962 + 963 + [[package]] 964 + name = "hashbrown" 965 + version = "0.16.0" 966 + source = "registry+https://github.com/rust-lang/crates.io-index" 967 + checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" 870 968 871 969 [[package]] 872 970 name = "heapless" ··· 899 997 900 998 [[package]] 901 999 name = "if_chain" 902 - version = "1.0.2" 1000 + version = "1.0.3" 903 1001 source = "registry+https://github.com/rust-lang/crates.io-index" 904 - checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed" 1002 + checksum = "cd62e6b5e86ea8eeeb8db1de02880a6abc01a397b2ebb64b5d74ac255318f5cb" 905 1003 906 1004 [[package]] 907 1005 name = "immediate_stats" 908 - version = "0.1.3" 1006 + version = "0.2.0-beta.1" 909 1007 dependencies = [ 910 1008 "bevy", 911 1009 "bevy-butler", 912 1010 "bevy_app", 1011 + "bevy_auto_plugin", 913 1012 "bevy_ecs", 914 1013 "bevy_reflect", 915 1014 "immediate_stats_macros", ··· 917 1016 918 1017 [[package]] 919 1018 name = "immediate_stats_macros" 920 - version = "0.1.3" 1019 + version = "0.2.0-beta.1" 921 1020 dependencies = [ 922 1021 "darling", 923 1022 "proc-macro-error", 924 1023 "proc-macro2", 925 1024 "quote", 926 - "syn 2.0.101", 1025 + "syn 2.0.106", 927 1026 ] 928 1027 929 1028 [[package]] 930 1029 name = "indexmap" 931 - version = "2.9.0" 1030 + version = "2.11.4" 932 1031 source = "registry+https://github.com/rust-lang/crates.io-index" 933 - checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" 1032 + checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5" 934 1033 dependencies = [ 935 1034 "equivalent", 936 - "hashbrown", 1035 + "hashbrown 0.16.0", 937 1036 ] 938 1037 939 1038 [[package]] 940 1039 name = "inventory" 941 - version = "0.3.20" 1040 + version = "0.3.21" 942 1041 source = "registry+https://github.com/rust-lang/crates.io-index" 943 - checksum = "ab08d7cd2c5897f2c949e5383ea7c7db03fb19130ffcfbf7eda795137ae3cb83" 1042 + checksum = "bc61209c082fbeb19919bee74b176221b27223e27b65d781eb91af24eb1fb46e" 944 1043 dependencies = [ 945 1044 "rustversion", 946 1045 ] ··· 965 1064 966 1065 [[package]] 967 1066 name = "js-sys" 968 - version = "0.3.77" 1067 + version = "0.3.81" 969 1068 source = "registry+https://github.com/rust-lang/crates.io-index" 970 - checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" 1069 + checksum = "ec48937a97411dcb524a265206ccd4c90bb711fca92b2792c407f268825b9305" 971 1070 dependencies = [ 972 1071 "once_cell", 973 1072 "wasm-bindgen", ··· 981 1080 982 1081 [[package]] 983 1082 name = "libc" 984 - version = "0.2.172" 1083 + version = "0.2.176" 985 1084 source = "registry+https://github.com/rust-lang/crates.io-index" 986 - checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" 1085 + checksum = "58f929b4d672ea937a23a1ab494143d968337a5f47e56d0815df1e0890ddf174" 987 1086 988 1087 [[package]] 989 1088 name = "libloading" 990 - version = "0.8.6" 1089 + version = "0.8.9" 991 1090 source = "registry+https://github.com/rust-lang/crates.io-index" 992 - checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" 1091 + checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" 993 1092 dependencies = [ 994 1093 "cfg-if", 995 - "windows-targets", 1094 + "windows-link", 996 1095 ] 997 1096 998 1097 [[package]] 999 1098 name = "libm" 1000 - version = "0.2.13" 1099 + version = "0.2.15" 1001 1100 source = "registry+https://github.com/rust-lang/crates.io-index" 1002 - checksum = "c9627da5196e5d8ed0b0495e61e518847578da83483c37288316d9b2e03a7f72" 1101 + checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" 1003 1102 1004 1103 [[package]] 1005 1104 name = "linkme" 1006 - version = "0.3.32" 1105 + version = "0.3.33" 1007 1106 source = "registry+https://github.com/rust-lang/crates.io-index" 1008 - checksum = "22d227772b5999ddc0690e733f734f95ca05387e329c4084fe65678c51198ffe" 1107 + checksum = "a1b1703c00b2a6a70738920544aa51652532cacddfec2e162d2e29eae01e665c" 1009 1108 dependencies = [ 1010 1109 "linkme-impl", 1011 1110 ] 1012 1111 1013 1112 [[package]] 1014 1113 name = "linkme-impl" 1015 - version = "0.3.32" 1114 + version = "0.3.33" 1016 1115 source = "registry+https://github.com/rust-lang/crates.io-index" 1017 - checksum = "71a98813fa0073a317ed6a8055dcd4722a49d9b862af828ee68449adb799b6be" 1116 + checksum = "04d55ca5d5a14363da83bf3c33874b8feaa34653e760d5216d7ef9829c88001a" 1018 1117 dependencies = [ 1019 1118 "proc-macro2", 1020 1119 "quote", 1021 - "syn 2.0.101", 1120 + "syn 2.0.106", 1022 1121 ] 1023 1122 1024 1123 [[package]] 1025 1124 name = "lock_api" 1026 - version = "0.4.12" 1125 + version = "0.4.13" 1027 1126 source = "registry+https://github.com/rust-lang/crates.io-index" 1028 - checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" 1127 + checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" 1029 1128 dependencies = [ 1030 1129 "autocfg", 1031 1130 "scopeguard", ··· 1033 1132 1034 1133 [[package]] 1035 1134 name = "log" 1036 - version = "0.4.27" 1135 + version = "0.4.28" 1037 1136 source = "registry+https://github.com/rust-lang/crates.io-index" 1038 - checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" 1137 + checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" 1039 1138 1040 1139 [[package]] 1041 1140 name = "matchers" ··· 1048 1147 1049 1148 [[package]] 1050 1149 name = "memchr" 1051 - version = "2.7.4" 1150 + version = "2.7.5" 1052 1151 source = "registry+https://github.com/rust-lang/crates.io-index" 1053 - checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" 1152 + checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" 1054 1153 1055 1154 [[package]] 1056 1155 name = "minimal-lexical" ··· 1060 1159 1061 1160 [[package]] 1062 1161 name = "nix" 1063 - version = "0.29.0" 1162 + version = "0.30.1" 1064 1163 source = "registry+https://github.com/rust-lang/crates.io-index" 1065 - checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" 1164 + checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" 1066 1165 dependencies = [ 1067 1166 "bitflags", 1068 1167 "cfg-if", ··· 1119 1218 1120 1219 [[package]] 1121 1220 name = "parking_lot" 1122 - version = "0.12.3" 1221 + version = "0.12.4" 1123 1222 source = "registry+https://github.com/rust-lang/crates.io-index" 1124 - checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" 1223 + checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" 1125 1224 dependencies = [ 1126 1225 "lock_api", 1127 1226 "parking_lot_core", ··· 1129 1228 1130 1229 [[package]] 1131 1230 name = "parking_lot_core" 1132 - version = "0.9.10" 1231 + version = "0.9.11" 1133 1232 source = "registry+https://github.com/rust-lang/crates.io-index" 1134 - checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" 1233 + checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" 1135 1234 dependencies = [ 1136 1235 "cfg-if", 1137 1236 "libc", ··· 1157 1256 dependencies = [ 1158 1257 "proc-macro2", 1159 1258 "quote", 1160 - "syn 2.0.101", 1259 + "syn 2.0.106", 1161 1260 ] 1162 1261 1163 1262 [[package]] ··· 1168 1267 1169 1268 [[package]] 1170 1269 name = "portable-atomic" 1171 - version = "1.11.0" 1270 + version = "1.11.1" 1172 1271 source = "registry+https://github.com/rust-lang/crates.io-index" 1173 - checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" 1272 + checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" 1174 1273 1175 1274 [[package]] 1176 1275 name = "portable-atomic-util" ··· 1192 1291 1193 1292 [[package]] 1194 1293 name = "prettyplease" 1195 - version = "0.2.32" 1294 + version = "0.2.37" 1196 1295 source = "registry+https://github.com/rust-lang/crates.io-index" 1197 - checksum = "664ec5419c51e34154eec046ebcba56312d5a2fc3b09a06da188e1ad21afadf6" 1296 + checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" 1198 1297 dependencies = [ 1199 1298 "proc-macro2", 1200 - "syn 2.0.101", 1299 + "syn 2.0.106", 1201 1300 ] 1202 1301 1203 1302 [[package]] ··· 1236 1335 1237 1336 [[package]] 1238 1337 name = "proc-macro2" 1239 - version = "1.0.95" 1338 + version = "1.0.101" 1240 1339 source = "registry+https://github.com/rust-lang/crates.io-index" 1241 - checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" 1340 + checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" 1242 1341 dependencies = [ 1243 1342 "unicode-ident", 1244 1343 ] ··· 1254 1353 1255 1354 [[package]] 1256 1355 name = "r-efi" 1257 - version = "5.2.0" 1356 + version = "5.3.0" 1258 1357 source = "registry+https://github.com/rust-lang/crates.io-index" 1259 - checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" 1358 + checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" 1260 1359 1261 1360 [[package]] 1262 1361 name = "rand" ··· 1300 1399 1301 1400 [[package]] 1302 1401 name = "redox_syscall" 1303 - version = "0.5.11" 1402 + version = "0.5.17" 1304 1403 source = "registry+https://github.com/rust-lang/crates.io-index" 1305 - checksum = "d2f103c6d277498fbceb16e84d317e2a400f160f46904d5f5410848c829511a3" 1404 + checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" 1306 1405 dependencies = [ 1307 1406 "bitflags", 1308 1407 ] 1309 1408 1310 1409 [[package]] 1311 1410 name = "regex" 1312 - version = "1.11.1" 1411 + version = "1.11.2" 1313 1412 source = "registry+https://github.com/rust-lang/crates.io-index" 1314 - checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" 1413 + checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" 1315 1414 dependencies = [ 1316 1415 "aho-corasick", 1317 1416 "memchr", ··· 1321 1420 1322 1421 [[package]] 1323 1422 name = "regex-automata" 1324 - version = "0.4.9" 1423 + version = "0.4.10" 1325 1424 source = "registry+https://github.com/rust-lang/crates.io-index" 1326 - checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" 1425 + checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" 1327 1426 dependencies = [ 1328 1427 "aho-corasick", 1329 1428 "memchr", ··· 1332 1431 1333 1432 [[package]] 1334 1433 name = "regex-syntax" 1335 - version = "0.8.5" 1434 + version = "0.8.6" 1336 1435 source = "registry+https://github.com/rust-lang/crates.io-index" 1337 - checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" 1436 + checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" 1338 1437 1339 1438 [[package]] 1340 1439 name = "rustc-hash" ··· 1343 1442 checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" 1344 1443 1345 1444 [[package]] 1445 + name = "rustc_version" 1446 + version = "0.4.1" 1447 + source = "registry+https://github.com/rust-lang/crates.io-index" 1448 + checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" 1449 + dependencies = [ 1450 + "semver", 1451 + ] 1452 + 1453 + [[package]] 1346 1454 name = "rustversion" 1347 - version = "1.0.20" 1455 + version = "1.0.22" 1348 1456 source = "registry+https://github.com/rust-lang/crates.io-index" 1349 - checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" 1457 + checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" 1350 1458 1351 1459 [[package]] 1352 1460 name = "scopeguard" ··· 1355 1463 checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 1356 1464 1357 1465 [[package]] 1466 + name = "semver" 1467 + version = "1.0.27" 1468 + source = "registry+https://github.com/rust-lang/crates.io-index" 1469 + checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" 1470 + 1471 + [[package]] 1358 1472 name = "serde" 1359 - version = "1.0.219" 1473 + version = "1.0.226" 1474 + source = "registry+https://github.com/rust-lang/crates.io-index" 1475 + checksum = "0dca6411025b24b60bfa7ec1fe1f8e710ac09782dca409ee8237ba74b51295fd" 1476 + dependencies = [ 1477 + "serde_core", 1478 + "serde_derive", 1479 + ] 1480 + 1481 + [[package]] 1482 + name = "serde_core" 1483 + version = "1.0.226" 1360 1484 source = "registry+https://github.com/rust-lang/crates.io-index" 1361 - checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" 1485 + checksum = "ba2ba63999edb9dac981fb34b3e5c0d111a69b0924e253ed29d83f7c99e966a4" 1362 1486 dependencies = [ 1363 1487 "serde_derive", 1364 1488 ] 1365 1489 1366 1490 [[package]] 1367 1491 name = "serde_derive" 1368 - version = "1.0.219" 1492 + version = "1.0.226" 1369 1493 source = "registry+https://github.com/rust-lang/crates.io-index" 1370 - checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" 1494 + checksum = "8db53ae22f34573731bafa1db20f04027b2d25e02d8205921b569171699cdb33" 1371 1495 dependencies = [ 1372 1496 "proc-macro2", 1373 1497 "quote", 1374 - "syn 2.0.101", 1498 + "syn 2.0.106", 1375 1499 ] 1376 1500 1377 1501 [[package]] ··· 1414 1538 1415 1539 [[package]] 1416 1540 name = "slab" 1417 - version = "0.4.9" 1541 + version = "0.4.11" 1418 1542 source = "registry+https://github.com/rust-lang/crates.io-index" 1419 - checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" 1420 - dependencies = [ 1421 - "autocfg", 1422 - ] 1543 + checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" 1423 1544 1424 1545 [[package]] 1425 1546 name = "smallvec" 1426 - version = "1.15.0" 1547 + version = "1.15.1" 1427 1548 source = "registry+https://github.com/rust-lang/crates.io-index" 1428 - checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" 1549 + checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" 1550 + 1551 + [[package]] 1552 + name = "smart-default" 1553 + version = "0.7.1" 1554 + source = "registry+https://github.com/rust-lang/crates.io-index" 1555 + checksum = "0eb01866308440fc64d6c44d9e86c5cc17adfe33c4d6eed55da9145044d0ffc1" 1556 + dependencies = [ 1557 + "proc-macro2", 1558 + "quote", 1559 + "syn 2.0.106", 1560 + ] 1429 1561 1430 1562 [[package]] 1431 1563 name = "smol_str" ··· 1475 1607 1476 1608 [[package]] 1477 1609 name = "syn" 1478 - version = "2.0.101" 1610 + version = "2.0.106" 1479 1611 source = "registry+https://github.com/rust-lang/crates.io-index" 1480 - checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" 1612 + checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" 1481 1613 dependencies = [ 1482 1614 "proc-macro2", 1483 1615 "quote", ··· 1486 1618 1487 1619 [[package]] 1488 1620 name = "thiserror" 1489 - version = "2.0.12" 1621 + version = "2.0.16" 1490 1622 source = "registry+https://github.com/rust-lang/crates.io-index" 1491 - checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" 1623 + checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" 1492 1624 dependencies = [ 1493 1625 "thiserror-impl", 1494 1626 ] 1495 1627 1496 1628 [[package]] 1497 1629 name = "thiserror-impl" 1498 - version = "2.0.12" 1630 + version = "2.0.16" 1499 1631 source = "registry+https://github.com/rust-lang/crates.io-index" 1500 - checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" 1632 + checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" 1501 1633 dependencies = [ 1502 1634 "proc-macro2", 1503 1635 "quote", 1504 - "syn 2.0.101", 1636 + "syn 2.0.106", 1505 1637 ] 1506 1638 1507 1639 [[package]] 1508 1640 name = "thread_local" 1509 - version = "1.1.8" 1641 + version = "1.1.9" 1510 1642 source = "registry+https://github.com/rust-lang/crates.io-index" 1511 - checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" 1643 + checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" 1512 1644 dependencies = [ 1513 1645 "cfg-if", 1514 - "once_cell", 1515 1646 ] 1516 1647 1517 1648 [[package]] 1518 1649 name = "toml_datetime" 1519 - version = "0.6.9" 1650 + version = "0.6.11" 1520 1651 source = "registry+https://github.com/rust-lang/crates.io-index" 1521 - checksum = "3da5db5a963e24bc68be8b17b6fa82814bb22ee8660f192bb182771d498f09a3" 1652 + checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" 1522 1653 1523 1654 [[package]] 1524 1655 name = "toml_edit" ··· 1533 1664 1534 1665 [[package]] 1535 1666 name = "toml_edit" 1536 - version = "0.22.26" 1667 + version = "0.22.27" 1537 1668 source = "registry+https://github.com/rust-lang/crates.io-index" 1538 - checksum = "310068873db2c5b3e7659d2cc35d21855dbafa50d1ce336397c666e3cb08137e" 1669 + checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" 1539 1670 dependencies = [ 1540 1671 "indexmap", 1541 1672 "toml_datetime", 1542 - "winnow 0.7.8", 1673 + "winnow 0.7.13", 1543 1674 ] 1544 1675 1545 1676 [[package]] ··· 1555 1686 1556 1687 [[package]] 1557 1688 name = "tracing-attributes" 1558 - version = "0.1.28" 1689 + version = "0.1.30" 1559 1690 source = "registry+https://github.com/rust-lang/crates.io-index" 1560 - checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" 1691 + checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" 1561 1692 dependencies = [ 1562 1693 "proc-macro2", 1563 1694 "quote", 1564 - "syn 2.0.101", 1695 + "syn 2.0.106", 1565 1696 ] 1566 1697 1567 1698 [[package]] 1568 1699 name = "tracing-core" 1569 - version = "0.1.33" 1700 + version = "0.1.34" 1570 1701 source = "registry+https://github.com/rust-lang/crates.io-index" 1571 - checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" 1702 + checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" 1572 1703 dependencies = [ 1573 1704 "once_cell", 1574 1705 "valuable", ··· 1643 1774 1644 1775 [[package]] 1645 1776 name = "unicode-ident" 1646 - version = "1.0.18" 1777 + version = "1.0.19" 1647 1778 source = "registry+https://github.com/rust-lang/crates.io-index" 1648 - checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" 1779 + checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" 1649 1780 1650 1781 [[package]] 1651 1782 name = "unicode-xid" ··· 1655 1786 1656 1787 [[package]] 1657 1788 name = "uuid" 1658 - version = "1.16.0" 1789 + version = "1.18.1" 1659 1790 source = "registry+https://github.com/rust-lang/crates.io-index" 1660 - checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" 1791 + checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" 1661 1792 dependencies = [ 1662 - "getrandom 0.3.2", 1793 + "getrandom 0.3.3", 1663 1794 "js-sys", 1664 1795 "serde", 1665 1796 "wasm-bindgen", ··· 1679 1810 dependencies = [ 1680 1811 "proc-macro2", 1681 1812 "quote", 1682 - "syn 2.0.101", 1813 + "syn 2.0.106", 1683 1814 ] 1684 1815 1685 1816 [[package]] ··· 1690 1821 1691 1822 [[package]] 1692 1823 name = "wasi" 1693 - version = "0.11.0+wasi-snapshot-preview1" 1824 + version = "0.11.1+wasi-snapshot-preview1" 1694 1825 source = "registry+https://github.com/rust-lang/crates.io-index" 1695 - checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 1826 + checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" 1696 1827 1697 1828 [[package]] 1698 1829 name = "wasi" 1699 - version = "0.14.2+wasi-0.2.4" 1830 + version = "0.14.7+wasi-0.2.4" 1700 1831 source = "registry+https://github.com/rust-lang/crates.io-index" 1701 - checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" 1832 + checksum = "883478de20367e224c0090af9cf5f9fa85bed63a95c1abf3afc5c083ebc06e8c" 1702 1833 dependencies = [ 1703 - "wit-bindgen-rt", 1834 + "wasip2", 1835 + ] 1836 + 1837 + [[package]] 1838 + name = "wasip2" 1839 + version = "1.0.1+wasi-0.2.4" 1840 + source = "registry+https://github.com/rust-lang/crates.io-index" 1841 + checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" 1842 + dependencies = [ 1843 + "wit-bindgen", 1704 1844 ] 1705 1845 1706 1846 [[package]] 1707 1847 name = "wasm-bindgen" 1708 - version = "0.2.100" 1848 + version = "0.2.104" 1709 1849 source = "registry+https://github.com/rust-lang/crates.io-index" 1710 - checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" 1850 + checksum = "c1da10c01ae9f1ae40cbfac0bac3b1e724b320abfcf52229f80b547c0d250e2d" 1711 1851 dependencies = [ 1712 1852 "cfg-if", 1713 1853 "once_cell", 1714 1854 "rustversion", 1715 1855 "wasm-bindgen-macro", 1856 + "wasm-bindgen-shared", 1716 1857 ] 1717 1858 1718 1859 [[package]] 1719 1860 name = "wasm-bindgen-backend" 1720 - version = "0.2.100" 1861 + version = "0.2.104" 1721 1862 source = "registry+https://github.com/rust-lang/crates.io-index" 1722 - checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" 1863 + checksum = "671c9a5a66f49d8a47345ab942e2cb93c7d1d0339065d4f8139c486121b43b19" 1723 1864 dependencies = [ 1724 1865 "bumpalo", 1725 1866 "log", 1726 1867 "proc-macro2", 1727 1868 "quote", 1728 - "syn 2.0.101", 1869 + "syn 2.0.106", 1729 1870 "wasm-bindgen-shared", 1730 1871 ] 1731 1872 1732 1873 [[package]] 1733 1874 name = "wasm-bindgen-futures" 1734 - version = "0.4.50" 1875 + version = "0.4.54" 1735 1876 source = "registry+https://github.com/rust-lang/crates.io-index" 1736 - checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" 1877 + checksum = "7e038d41e478cc73bae0ff9b36c60cff1c98b8f38f8d7e8061e79ee63608ac5c" 1737 1878 dependencies = [ 1738 1879 "cfg-if", 1739 1880 "js-sys", ··· 1744 1885 1745 1886 [[package]] 1746 1887 name = "wasm-bindgen-macro" 1747 - version = "0.2.100" 1888 + version = "0.2.104" 1748 1889 source = "registry+https://github.com/rust-lang/crates.io-index" 1749 - checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" 1890 + checksum = "7ca60477e4c59f5f2986c50191cd972e3a50d8a95603bc9434501cf156a9a119" 1750 1891 dependencies = [ 1751 1892 "quote", 1752 1893 "wasm-bindgen-macro-support", ··· 1754 1895 1755 1896 [[package]] 1756 1897 name = "wasm-bindgen-macro-support" 1757 - version = "0.2.100" 1898 + version = "0.2.104" 1758 1899 source = "registry+https://github.com/rust-lang/crates.io-index" 1759 - checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" 1900 + checksum = "9f07d2f20d4da7b26400c9f4a0511e6e0345b040694e8a75bd41d578fa4421d7" 1760 1901 dependencies = [ 1761 1902 "proc-macro2", 1762 1903 "quote", 1763 - "syn 2.0.101", 1904 + "syn 2.0.106", 1764 1905 "wasm-bindgen-backend", 1765 1906 "wasm-bindgen-shared", 1766 1907 ] 1767 1908 1768 1909 [[package]] 1769 1910 name = "wasm-bindgen-shared" 1770 - version = "0.2.100" 1911 + version = "0.2.104" 1771 1912 source = "registry+https://github.com/rust-lang/crates.io-index" 1772 - checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" 1913 + checksum = "bad67dc8b2a1a6e5448428adec4c3e84c43e561d8c9ee8a9e5aabeb193ec41d1" 1773 1914 dependencies = [ 1774 1915 "unicode-ident", 1775 1916 ] 1776 1917 1777 1918 [[package]] 1778 1919 name = "web-sys" 1779 - version = "0.3.77" 1920 + version = "0.3.81" 1780 1921 source = "registry+https://github.com/rust-lang/crates.io-index" 1781 - checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" 1922 + checksum = "9367c417a924a74cae129e6a2ae3b47fabb1f8995595ab474029da749a8be120" 1782 1923 dependencies = [ 1783 1924 "js-sys", 1784 1925 "wasm-bindgen", ··· 1808 1949 ] 1809 1950 1810 1951 [[package]] 1952 + name = "windows-link" 1953 + version = "0.2.0" 1954 + source = "registry+https://github.com/rust-lang/crates.io-index" 1955 + checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" 1956 + 1957 + [[package]] 1811 1958 name = "windows-sys" 1812 1959 version = "0.52.0" 1813 1960 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1818 1965 1819 1966 [[package]] 1820 1967 name = "windows-sys" 1821 - version = "0.59.0" 1968 + version = "0.61.0" 1822 1969 source = "registry+https://github.com/rust-lang/crates.io-index" 1823 - checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 1970 + checksum = "e201184e40b2ede64bc2ea34968b28e33622acdbbf37104f0e4a33f7abe657aa" 1824 1971 dependencies = [ 1825 - "windows-targets", 1972 + "windows-link", 1826 1973 ] 1827 1974 1828 1975 [[package]] ··· 1900 2047 1901 2048 [[package]] 1902 2049 name = "winnow" 1903 - version = "0.7.8" 2050 + version = "0.7.13" 1904 2051 source = "registry+https://github.com/rust-lang/crates.io-index" 1905 - checksum = "9e27d6ad3dac991091e4d35de9ba2d2d00647c5d0fc26c5496dee55984ae111b" 2052 + checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" 1906 2053 dependencies = [ 1907 2054 "memchr", 1908 2055 ] 1909 2056 1910 2057 [[package]] 1911 - name = "wit-bindgen-rt" 1912 - version = "0.39.0" 2058 + name = "wit-bindgen" 2059 + version = "0.46.0" 1913 2060 source = "registry+https://github.com/rust-lang/crates.io-index" 1914 - checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" 1915 - dependencies = [ 1916 - "bitflags", 1917 - ] 2061 + checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" 1918 2062 1919 2063 [[package]] 1920 2064 name = "zerocopy" 1921 - version = "0.8.25" 2065 + version = "0.8.27" 1922 2066 source = "registry+https://github.com/rust-lang/crates.io-index" 1923 - checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" 2067 + checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" 1924 2068 dependencies = [ 1925 2069 "zerocopy-derive", 1926 2070 ] 1927 2071 1928 2072 [[package]] 1929 2073 name = "zerocopy-derive" 1930 - version = "0.8.25" 2074 + version = "0.8.27" 1931 2075 source = "registry+https://github.com/rust-lang/crates.io-index" 1932 - checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" 2076 + checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" 1933 2077 dependencies = [ 1934 2078 "proc-macro2", 1935 2079 "quote", 1936 - "syn 2.0.101", 2080 + "syn 2.0.106", 1937 2081 ]
+8 -9
README.md
··· 48 48 } 49 49 ``` 50 50 51 - ### Bevy Butler 51 + ### Bevy Auto Plugin 52 52 53 - If you use [Bevy Butler](https://github.com/TGRCdev/bevy-butler/), you can also use the `bevy_butler` feature flag. 54 - This automatically registers the required system(s) using the `add_component` attribute 55 - or the existing `insert_resource` macro. 53 + If you use [Bevy Auto Plugin](https://github.com/strikeforcezero/bevy_auto_plugin/), you can also use the `bevy_auto_plugin` feature flag. 54 + This automatically registers the required system(s) by leveraging the existing `auto_component` and `auto_resource` macros. 56 55 57 56 ```rust 58 57 fn main() { 59 58 App::new().add_plugins((ImmediateStatsPlugin, MyPlugin)).run(); 60 59 } 61 60 62 - #[butler_plugin] 61 + #[derive(AutoPlugin)] 62 + #[auto_plugin(impl_plugin_trait)] 63 63 struct MyPlugin; 64 64 65 - // `StatContainer` derive adds the `add_component` attribute 66 - // and hooks into the existing `insert_resource` macro. 65 + // `StatContainer` derive hooks into the existing `auto_component` and `auto_resource` macros. 67 66 #[derive(StatContainer, Component, Resource)] 68 - #[add_component(plugin = MyPlugin)] // Adds `reset_component_modifiers` system. 69 - #[insert_resource(plugin = MyPlugin)] // Adds `reset_resource_modifiers` system. 67 + #[auto_component(plugin = MyPlugin)] // Adds `reset_component_modifiers` system. 68 + #[auto_init_resource(plugin = MyPlugin)] // Adds `reset_resource_modifiers` system. 70 69 struct Speed(Stat); 71 70 ``` 72 71
+20 -4
immediate_stats/Cargo.toml
··· 1 1 [package] 2 2 name = "immediate_stats" 3 - version = "0.1.3" 3 + version = "0.2.0-beta.1" 4 4 edition = "2024" 5 5 description = "Game stats that reset every frame, inspired by immediate mode GUI." 6 6 categories = ["game-development", "data-structures"] ··· 14 14 all-features = true 15 15 16 16 [features] 17 - bevy = ["bevy_ecs", "bevy_app", "bevy_reflect", "immediate_stats_macros/bevy"] 18 - bevy_butler = ["bevy", "bevy-butler", "immediate_stats_macros/bevy_butler"] 17 + bevy = [ 18 + "dep:bevy_ecs", 19 + "dep:bevy_app", 20 + "dep:bevy_reflect", 21 + "immediate_stats_macros/bevy", 22 + ] 23 + bevy_butler = ["bevy", "dep:bevy-butler", "immediate_stats_macros/bevy_butler"] 24 + bevy_auto_plugin = [ 25 + "bevy", 26 + "dep:bevy_auto_plugin", 27 + "immediate_stats_macros/bevy_auto_plugin", 28 + ] 19 29 20 30 [dependencies] 21 31 bevy_app = { version = "0.16.0", default-features = false, optional = true, features = [ 22 32 "bevy_reflect", 23 33 ] } 24 34 bevy-butler = { version = "0.6.1", optional = true } 35 + bevy_auto_plugin = { version = "0.5.0", optional = true } 25 36 bevy_ecs = { version = "0.16.0", default-features = false, optional = true, features = [ 26 37 "bevy_reflect", 27 38 ] } 28 39 bevy_reflect = { version = "0.16.0", default-features = false, optional = true } 29 - immediate_stats_macros = { path = "../immediate_stats_macros", version = "0.1.3", default-features = false } 40 + immediate_stats_macros = { path = "../immediate_stats_macros", version = "0.2.0-beta.1", default-features = false } 30 41 31 42 [dev-dependencies] 32 43 bevy = { version = "0.16.0", default-features = false } ··· 51 62 name = "simple_bevy_butler" 52 63 path = "examples/simple_bevy_butler.rs" 53 64 required-features = ["bevy_butler"] 65 + 66 + [[example]] 67 + name = "simple_bevy_auto_plugin" 68 + path = "examples/simple_bevy_auto_plugin.rs" 69 + required-features = ["bevy_auto_plugin"]
+45
immediate_stats/examples/simple_bevy_auto_plugin.rs
··· 1 + //! A very simple example using Bevy Auto Plugin. Requires the `bevy_auto_plugin` feature flag. 2 + //! There are two other versions of this example, one using a simple main loop and the other using Bevy. 3 + 4 + use bevy::prelude::*; 5 + use bevy_auto_plugin; 6 + use bevy_auto_plugin::modes::global::prelude::{AutoPlugin, auto_component, auto_system}; 7 + use immediate_stats::*; 8 + 9 + fn main() { 10 + App::new() 11 + .add_plugins((MinimalPlugins, ImmediateStatsPlugin, SpeedPlugin)) 12 + .run(); 13 + } 14 + 15 + #[derive(AutoPlugin)] 16 + #[auto_plugin(impl_plugin_trait)] 17 + struct SpeedPlugin; 18 + 19 + // Implements `reset_modifiers` by passing the call onto `Stat`. 20 + // This will also add the `ResetComponentPlugin` to `SpeedPlugin`. 21 + #[derive(StatContainer, Component)] 22 + #[auto_component(plugin = SpeedPlugin)] 23 + struct Speed(Stat); 24 + 25 + #[auto_system(plugin = SpeedPlugin, schedule = Startup)] 26 + fn init_speed(mut commands: Commands) { 27 + commands.spawn(Speed(Stat::new(10))); // Set base speed to 10. 28 + } 29 + 30 + #[auto_system(plugin = SpeedPlugin, schedule = Update, config(in_set = StatSystems::Modify))] 31 + fn apply_modifiers(mut speeds: Query<&mut Speed>) { 32 + for mut speed in &mut speeds { 33 + speed.0 *= 2.0; // Applies a multiplier to the final result. 34 + speed.0 += 5; // Adds a bonus to the final result. 35 + // The order does not matter, bonuses are always applied before multipliers. 36 + } 37 + } 38 + 39 + #[auto_system(plugin = SpeedPlugin, schedule = Update, config(in_set = StatSystems::Read))] 40 + fn read_speed(speeds: Query<&Speed>) { 41 + for speed in &speeds { 42 + println!("The current speed is {}.", speed.0.total()); 43 + assert_eq!(speed.0.total(), 30); // (10 + 5) * 2 = 30 44 + } 45 + }
+3 -2
immediate_stats/examples/simple_bevy_butler.rs
··· 1 - //! A very simple example using Bevy Butler. Requires the `bevy_butler` feature flag. 2 - //! There are two other versions of this example, one using a simple main loop and the other using Bevy. 1 + //! A very simple example using Bevy Butler. Requires the `bevy_butler` feature flag, which is *depreciated*. 2 + //! 3 + //! **Please see the Bevy Auto Plugin example instead.** 3 4 4 5 use bevy::prelude::*; 5 6 use bevy_butler::*;
+1 -1
immediate_stats/examples/simple_main_loop.rs
··· 1 1 //! A very simple example using a main loop. 2 - //! There are two other versions of this example, one using Bevy and the other using Bevy Butler. 2 + //! There are two other versions of this example, one using Bevy and the other using Bevy Auto Plugin. 3 3 4 4 use immediate_stats::*; 5 5
+27 -27
immediate_stats/src/lib.rs
··· 48 48 //! } 49 49 //! ``` 50 50 //! 51 - //! ### Bevy Butler 51 + //! ### Bevy Auto Plugin 52 52 //! 53 - //! If you use [Bevy Butler](https://github.com/TGRCdev/bevy-butler/), 54 - //! you can also use the `bevy_butler` feature flag. 55 - //! This automatically registers the required system(s) using the `add_component` attribute 56 - //! or the existing `insert_resource` macro. 53 + //! If you use [Bevy Auto Plugin](https://github.com/strikeforcezero/bevy_auto_plugin/), 54 + //! you can also use the `bevy_auto_plugin` feature flag. This automatically registers the required 55 + //! system(s) by leveraging the existing `auto_component` and `auto_resource` macros. 57 56 //! 58 - #![cfg_attr(not(feature = "bevy_butler"), doc = "```rust ignore")] 59 - #![cfg_attr(feature = "bevy_butler", doc = "```rust")] 57 + #![cfg_attr(not(feature = "bevy_auto_plugin"), doc = "```rust ignore")] 58 + #![cfg_attr(feature = "bevy_auto_plugin", doc = "```rust")] 60 59 //! # use bevy_app::prelude::*; 61 60 //! # use bevy_ecs::prelude::*; 62 61 //! # use immediate_stats::*; 63 - //! # use bevy_butler::*; 62 + //! # use bevy_auto_plugin::modes::global::prelude::{AutoPlugin, auto_component, auto_resource}; 64 63 //! fn main() { 65 64 //! App::new().add_plugins((ImmediateStatsPlugin, MyPlugin)).run(); 66 65 //! } 67 66 //! 68 - //! #[butler_plugin] 67 + //! #[derive(AutoPlugin)] 68 + //! #[auto_plugin(impl_plugin_trait)] 69 69 //! struct MyPlugin; 70 70 //! 71 - //! // `StatContainer` derive adds the `add_component` attribute 72 - //! // and hooks into the existing `insert_resource` macro. 73 - //! #[derive(StatContainer, Component, Resource, Default)] 74 - //! #[add_component(plugin = MyPlugin)] // Adds `ResetComponentPlugin` 75 - //! #[insert_resource(plugin = MyPlugin)] // Adds `ResetResourcePlugin` 71 + //! // `StatContainer` derive hooks into the existing `auto_component` and `auto_resource` macros. 72 + //! #[derive(StatContainer, Component, Resource)] 73 + //! #[auto_component(plugin = MyPlugin)] // Adds `reset_component_modifiers` system. 74 + //! #[auto_resource(plugin = MyPlugin)] // Adds `reset_resource_modifiers` system. 76 75 //! struct Speed(Stat); 77 76 //! ``` 78 77 //! ··· 141 140 /// assert_eq!(partial.ignored, Stat::default().with_bonus(10)); 142 141 /// } 143 142 /// ``` 144 - /// # Bevy Butler 145 - /// If the `bevy_butler` feature flag is enabled, you may also use the `add_component` attribute 146 - /// or the existing `insert_resource` macro to register [`reset_component_modifiers`] 147 - /// and/or [`reset_resource_modifiers`] automatically. 148 - #[cfg_attr(not(feature = "bevy_butler"), doc = "```rust ignore")] 149 - #[cfg_attr(feature = "bevy_butler", doc = "```rust")] 150 - /// # use bevy_butler::*; 143 + /// # Bevy Auto Plugin 144 + /// If the `bevy_auto_plugin` feature flag is enabled, the existing `auto_component` and 145 + /// `auto_resource` macros will register [`reset_component_modifiers`] and/or 146 + /// [`reset_resource_modifiers`] automatically. 147 + #[cfg_attr(not(feature = "bevy_auto_plugin"), doc = "```rust ignore")] 148 + #[cfg_attr(feature = "bevy_auto_plugin", doc = "```rust")] 149 + /// # use bevy_app::prelude::*; 151 150 /// # use bevy_ecs::prelude::*; 152 151 /// # use immediate_stats::*; 153 - /// #[butler_plugin] 152 + /// # use bevy_auto_plugin::modes::global::prelude::{AutoPlugin, auto_component, auto_resource}; 153 + /// #[derive(AutoPlugin)] 154 + /// #[auto_plugin(impl_plugin_trait)] 154 155 /// struct MyPlugin; 155 156 /// 156 - /// // `StatContainer` derive adds the `add_component` attribute 157 - /// // and hooks into the existing `insert_resource` macro. 158 - /// #[derive(StatContainer, Component, Resource, Default)] 159 - /// #[add_component(plugin = MyPlugin)] // Adds `reset_component_modifiers` system. 160 - /// #[insert_resource(plugin = MyPlugin)] // Adds `reset_resource_modifiers` system. 157 + /// // `StatContainer` derive hooks into the existing `auto_component` and `auto_resource` macros. 158 + /// #[derive(StatContainer, Component, Resource)] 159 + /// #[auto_component(plugin = MyPlugin)] // Adds `reset_component_modifiers` system. 160 + /// #[auto_resource(plugin = MyPlugin)] // Adds `reset_resource_modifiers` system. 161 161 /// struct Speed(Stat); 162 162 /// ``` 163 163 pub use immediate_stats_macros::StatContainer;
+61
immediate_stats/tests/bevy_auto_plugin.rs
··· 1 + //! Tests the `add_component` attribute for automatic system registration. 2 + #![cfg(feature = "bevy_auto_plugin")] 3 + 4 + extern crate immediate_stats; 5 + use crate::{Stat, StatContainer}; 6 + use bevy_app::App; 7 + use bevy_auto_plugin::modes::global::prelude::{AutoPlugin, auto_component, auto_init_resource}; 8 + use bevy_ecs::prelude::*; 9 + use immediate_stats::*; 10 + 11 + #[derive(AutoPlugin)] 12 + #[auto_plugin(impl_plugin_trait)] 13 + struct MyPlugin; 14 + 15 + #[derive(Resource, Component, StatContainer, Default, PartialEq, Debug)] 16 + #[auto_component(plugin = MyPlugin)] 17 + #[auto_init_resource(plugin = MyPlugin)] 18 + struct Health(Stat); 19 + 20 + #[test] 21 + fn reset_component_auto() { 22 + let mut app = App::new(); 23 + 24 + app.add_plugins(MyPlugin); 25 + 26 + let entity = app 27 + .world_mut() 28 + .spawn(Health(Stat { 29 + base: 100, 30 + bonus: 50, 31 + multiplier: 2.0, 32 + })) 33 + .id(); 34 + 35 + app.update(); 36 + 37 + assert_eq!( 38 + app.world().get::<Health>(entity), 39 + Some(Health(Stat::new(100))).as_ref() 40 + ); 41 + } 42 + 43 + #[test] 44 + fn reset_resource_auto() { 45 + let mut app = App::new(); 46 + 47 + app.add_plugins(MyPlugin); 48 + 49 + app.insert_resource(Health(Stat { 50 + base: 100, 51 + bonus: 50, 52 + multiplier: 2.0, 53 + })); 54 + 55 + app.update(); 56 + 57 + assert_eq!( 58 + app.world().get_resource::<Health>(), 59 + Some(Health(Stat::new(100))).as_ref() 60 + ); 61 + }
+3 -2
immediate_stats_macros/Cargo.toml
··· 1 1 [package] 2 2 name = "immediate_stats_macros" 3 - version = "0.1.3" 3 + version = "0.2.0-beta.1" 4 4 edition = "2024" 5 5 description = "Game stats that reset every frame, inspired by immediate mode GUI." 6 6 categories = ["game-development", "data-structures"] ··· 19 19 [features] 20 20 bevy = [] 21 21 bevy_butler = ["bevy"] 22 + bevy_auto_plugin = ["bevy"] 22 23 23 24 [dependencies] 24 - darling = "0.20.11" 25 + darling = "0.21.3" 25 26 proc-macro2 = "1.0" 26 27 proc-macro-error = "1.0" 27 28 quote = "1.0"
+130
immediate_stats_macros/src/bevy_auto_plugin.rs
··· 1 + use darling::ast::NestedMeta; 2 + use darling::{Error, FromMeta}; 3 + use proc_macro2::{Ident, TokenStream}; 4 + use quote::{ToTokens, format_ident, quote}; 5 + use syn::{DeriveInput, Expr, Meta, Path}; 6 + 7 + /// Returns code that will register stat resetting system(s) with Bevy Auto Plugin. 8 + pub fn register_systems(input: &DeriveInput) -> darling::Result<TokenStream> { 9 + let struct_name = &input.ident; 10 + 11 + let mut auto_plugin_attributes = AutoPluginAttributes::new(struct_name); 12 + 13 + for attr in &input.attrs { 14 + if attr.path().is_ident("auto_component") { 15 + let plugin = PluginPath::from_meta(&attr.meta)?; 16 + auto_plugin_attributes.component_plugin = Some(plugin); 17 + } else if attr.path().is_ident("auto_resource") 18 + || attr.path().is_ident("auto_init_resource") 19 + || attr.path().is_ident("auto_insert_resource") 20 + { 21 + let plugin = PluginPath::from_meta(&attr.meta)?; 22 + auto_plugin_attributes.resource_plugin = Some(plugin); 23 + } 24 + } 25 + 26 + Ok(auto_plugin_attributes.into_token_stream()) 27 + } 28 + 29 + pub struct AutoPluginAttributes<'a> { 30 + ident: &'a Ident, 31 + component_plugin: Option<PluginPath>, 32 + resource_plugin: Option<PluginPath>, 33 + } 34 + 35 + impl<'a> AutoPluginAttributes<'a> { 36 + pub fn new(ident: &'a Ident) -> Self { 37 + Self { 38 + ident, 39 + component_plugin: None, 40 + resource_plugin: None, 41 + } 42 + } 43 + } 44 + 45 + impl<'a> ToTokens for AutoPluginAttributes<'a> { 46 + fn to_tokens(&self, tokens: &mut TokenStream) { 47 + if let Some(plugin_path) = &self.component_plugin { 48 + let ident = &self.ident; 49 + let plugin = &plugin_path.0; 50 + let system_ident = format_ident!("__reset_{ident}_component_modifiers"); 51 + 52 + tokens.extend(quote! { 53 + #[bevy_auto_plugin::modes::global::prelude::auto_system( 54 + plugin = #plugin, 55 + schedule = immediate_stats::__PreUpdate, 56 + config( 57 + in_set = immediate_stats::StatSystems::Reset, 58 + ) 59 + )] 60 + fn #system_ident( 61 + mut query: Query<&mut #ident, Without<immediate_stats::PauseStatReset>>, 62 + ) { 63 + for mut stat in &mut query { 64 + stat.reset_modifiers(); 65 + } 66 + } 67 + }); 68 + } 69 + 70 + if let Some(plugin_path) = &self.resource_plugin { 71 + let ident = &self.ident; 72 + let plugin = &plugin_path.0; 73 + let system_ident = format_ident!("__reset_{ident}_resource_modifiers"); 74 + 75 + tokens.extend(quote! { 76 + #[bevy_auto_plugin::modes::global::prelude::auto_system( 77 + plugin = #plugin, 78 + schedule = immediate_stats::__PreUpdate, 79 + config( 80 + in_set = immediate_stats::StatSystems::Reset, 81 + ) 82 + )] 83 + fn #system_ident(res: Option<ResMut<#ident>>) { 84 + if let Some(mut res) = res { 85 + res.reset_modifiers(); 86 + } 87 + } 88 + }); 89 + } 90 + } 91 + } 92 + 93 + /// Represents a `plugin(PATH)` or `plugin = PATH` attribute meta. 94 + pub struct PluginPath(pub Path); 95 + 96 + impl FromMeta for PluginPath { 97 + fn from_list(items: &[NestedMeta]) -> darling::Result<Self> { 98 + for item in items { 99 + return match item { 100 + NestedMeta::Meta(meta) => match meta { 101 + Meta::Path(_) => Err(Error::custom("Expected a value for `plugin`")), 102 + Meta::List(list) => { 103 + if list.path.require_ident()? != "plugin" { 104 + continue; 105 + } 106 + 107 + let mut path = None; 108 + 109 + list.parse_nested_meta(|value_meta| { 110 + path = Some(value_meta.path); 111 + Ok(()) 112 + })?; 113 + 114 + match path { 115 + None => Err(Error::custom("Expected `plugin` attribute")), 116 + Some(path) => Ok(PluginPath(path)), 117 + } 118 + } 119 + Meta::NameValue(name_value) => match &name_value.value { 120 + Expr::Path(p) => Ok(PluginPath(p.path.clone())), 121 + _ => Err(Error::custom("Expected a path to an auto plugin")), 122 + }, 123 + }, 124 + NestedMeta::Lit(_) => Err(Error::custom("Expected `plugin` attribute")), 125 + }; 126 + } 127 + 128 + Err(Error::custom("Expected `plugin` attribute")) 129 + } 130 + }
+2 -2
immediate_stats_macros/src/bevy_butler.rs
··· 5 5 use syn::{DeriveInput, Expr, Meta, Path}; 6 6 7 7 /// Returns code that will register stat resetting system(s) with Bevy Butler. 8 - pub fn register_systems(input: DeriveInput) -> darling::Result<TokenStream> { 8 + pub fn register_systems(input: &DeriveInput) -> darling::Result<TokenStream> { 9 9 let struct_name = &input.ident; 10 10 11 11 let mut butler_attributes = ButlerAttributes::new(struct_name); 12 12 13 - for attr in input.attrs { 13 + for attr in &input.attrs { 14 14 if attr.path().is_ident("add_component") { 15 15 let plugin = PluginPath::from_meta(&attr.meta)?; 16 16 butler_attributes.component_plugin = Some(plugin);
+17 -4
immediate_stats_macros/src/lib.rs
··· 1 + #[cfg(feature = "bevy_auto_plugin")] 2 + mod bevy_auto_plugin; 1 3 #[cfg(feature = "bevy_butler")] 2 4 mod bevy_butler; 3 5 mod derive_enum; ··· 23 25 } 24 26 }; 25 27 26 - let trait_impl = quote! { 28 + let mut trait_impl = quote! { 27 29 impl StatContainer for #ident { 28 30 fn reset_modifiers(&mut self) { 29 31 #method_contents ··· 33 35 34 36 #[cfg(feature = "bevy_butler")] 35 37 { 38 + emit_warning!( 39 + proc_macro2::Span::call_site(), 40 + "The `bevy_butler` feature flag is depreciated." 41 + ); 42 + 36 43 let systems = 37 - bevy_butler::register_systems(tree).unwrap_or_else(darling::Error::write_errors); 38 - quote! { #trait_impl #systems }.into() 44 + bevy_butler::register_systems(&tree).unwrap_or_else(darling::Error::write_errors); 45 + trait_impl = quote! { #trait_impl #systems }; 39 46 } 40 47 41 - #[cfg(not(feature = "bevy_butler"))] 48 + #[cfg(feature = "bevy_auto_plugin")] 49 + { 50 + let systems = 51 + bevy_auto_plugin::register_systems(&tree).unwrap_or_else(darling::Error::write_errors); 52 + trait_impl = quote! { #trait_impl #systems }; 53 + } 54 + 42 55 trait_impl.into() 43 56 } 44 57