From 6d4c4b0d3e7f4615df201b207b96ceadf4ba2291 Mon Sep 17 00:00:00 2001 From: databasedav <31483365+databasedav@users.noreply.github.com> Date: Fri, 19 Dec 2025 20:07:59 -0800 Subject: [PATCH] upgrade to bevy 0.18-rc.1 --- CHANGELOG.md | 8 +- Cargo.lock | 512 +++++++++++++++++++++++++------------------- Cargo.toml | 16 +- README.md | 2 +- examples/counter.rs | 2 +- examples/filters.rs | 23 +- examples/letters.rs | 44 ++-- src/builder.rs | 2 +- src/graph.rs | 4 +- src/signal.rs | 41 ++-- src/signal_map.rs | 4 +- src/signal_vec.rs | 17 +- 12 files changed, 377 insertions(+), 298 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7cfc4b9..bd14bda 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ the format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) ## unreleased +### changed + +- upgraded to bevy 0.18-rc.1 + # 0.5.0 (2025-12-19) ### changed @@ -17,13 +21,13 @@ the format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) - `JonmoBuilder::on_despawn` - `SignalBuilder::from_function` - `SignalBuilder::always` -- `signal::option` - `SignalExt::map_bool_in` - `SignalExt::map_true_in` - `SignalExt::map_false_in` - `SignalExt::map_option_in` - `SignalExt::map_some_in` - `SignalExt::map_none_in` +- `signal::option` - `signal::eq!` - `signal::all!` - `signal::any!` @@ -65,7 +69,7 @@ the format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) ### changed -- upgraded to Bevy 0.17 +- upgraded to bevy 0.17 ### added diff --git a/Cargo.lock b/Cargo.lock index 3df3779..f0e90fc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -322,18 +322,18 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "bevy" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76d3ee8652fe0577fd8a99054e147740850140d530be8e044a9be4e23a3e8a24" +checksum = "025b2a90cabc7aa843dc8176aeceeabc564c19cb7e2d96fe7bbedc5210eff71b" dependencies = [ "bevy_internal", ] [[package]] name = "bevy_a11y" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6702a82db1b383641fc7c503451847cdafb57076c203cd3bfe549d3eeef474c3" +checksum = "ed7c01aa097dc7ad7fcf1b708f4ee81a469f4d35cc83085e472d1bccc87c7e05" dependencies = [ "accesskit", "bevy_app", @@ -344,18 +344,18 @@ dependencies = [ [[package]] name = "bevy_android" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42b2d9435e9fe8d7107bb795a6140277872ad5b992cb3934f8d28cfd11040f6f" +checksum = "8f9e5380363c6a2d0a14e63eeb7a98d89977d7761554d323ed5d6cc7bc1af3b6" dependencies = [ "android-activity", ] [[package]] name = "bevy_animation" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfaf3ea6d435f4736b3deb60958270443501f5795c7964b1b504abd3be970b4f" +checksum = "ad1d193133fb7c9fe82f1c3140ddf2672531f254b5d947993b8515cfe4426684" dependencies = [ "bevy_animation_macros", "bevy_app", @@ -386,9 +386,9 @@ dependencies = [ [[package]] name = "bevy_animation_macros" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d577eae7246a1cda461df1b63188619fc6a3c619adba2a8e5a79e9aa51f64671" +checksum = "b6c5f27252e65b9f3e706f48786cd92aec1af11dc308f9591d6a5bc3facb2d12" dependencies = [ "bevy_macro_utils", "quote", @@ -397,9 +397,9 @@ dependencies = [ [[package]] name = "bevy_anti_alias" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15820535cc88bc280f55635eb3ea58df2703a434a0cc2343472eaa7e607fb27b" +checksum = "e1d711d1b581adfbbcc27454fa015305040283ff6f588c45fd327011577271a4" dependencies = [ "bevy_app", "bevy_asset", @@ -419,9 +419,9 @@ dependencies = [ [[package]] name = "bevy_app" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e4fc5dfe9d1d9b8233e1878353b5e66a3f5910c2131d3abf68f9a4116b2d433" +checksum = "347ee88ff3ad9edf18e3fced5006ac2fef2b161e5cd7b5e2fc25eab93947c51f" dependencies = [ "bevy_derive", "bevy_ecs", @@ -442,17 +442,19 @@ dependencies = [ [[package]] name = "bevy_asset" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "357787dbfaba3f73fd185e15d6df70605bddaa774f2ebbcab1aaa031f21fb6c2" +checksum = "0449222cb3b2dd5ec87191a1e22ceffdd10e7287c7296dd0303e32a744c44d3b" dependencies = [ "async-broadcast", + "async-channel", "async-fs", "async-lock", "atomicow", "bevy_android", "bevy_app", "bevy_asset_macros", + "bevy_diagnostic", "bevy_ecs", "bevy_platform", "bevy_reflect", @@ -467,8 +469,8 @@ dependencies = [ "either", "futures-io", "futures-lite", + "futures-util", "js-sys", - "parking_lot", "ron", "serde", "stackfuture", @@ -482,9 +484,9 @@ dependencies = [ [[package]] name = "bevy_asset_macros" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afa09271d4ca0bf31fda3a9ad57273775d448a05c4046d9367f71d29968d85b4" +checksum = "ffbd1c73a2834c25c9abd90b8dc4d82bcb89032923ad0f1e0b2ba6eaf7f32be2" dependencies = [ "bevy_macro_utils", "proc-macro2", @@ -494,9 +496,9 @@ dependencies = [ [[package]] name = "bevy_audio" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d79e56e072001524100b00e38cfdea302d9fdabbff48109fc67b528b27a237bb" +checksum = "85c959eae08a404d613fbf5c47fb21a99d4cf06c3d945694df293e9dab992074" dependencies = [ "bevy_app", "bevy_asset", @@ -512,9 +514,9 @@ dependencies = [ [[package]] name = "bevy_camera" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8af1d5a57fde6e577e7b1db58996afb381618294be75a37b3070a20d309678b0" +checksum = "e6cd52c71ea1c533319a461d07217a0ed8f9b41b589898ffc0915bbd8bfd7d18" dependencies = [ "bevy_app", "bevy_asset", @@ -538,9 +540,9 @@ dependencies = [ [[package]] name = "bevy_color" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49504fac6b9897f03b4bdc0189c04ef1ba0a9b37926343aa520a71619e90e116" +checksum = "7b1fa4b3b09be089a0035b4b67a54b46b8335fdc51fe07d452745f7f0b0a9423" dependencies = [ "bevy_math", "bevy_reflect", @@ -554,15 +556,16 @@ dependencies = [ [[package]] name = "bevy_core_pipeline" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6af7e735685a652a8dba41b886f1330faeb57d4c61398917b7e49b09a7a1c3c1" +checksum = "86dd691de90d30338b9cb1f3ccbbb52e079aef600f81130302b90aed8bc891c6" dependencies = [ "bevy_app", "bevy_asset", "bevy_camera", "bevy_color", "bevy_derive", + "bevy_diagnostic", "bevy_ecs", "bevy_image", "bevy_math", @@ -583,20 +586,49 @@ dependencies = [ [[package]] name = "bevy_derive" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9396b256b366a43d7f61d1f230cdab0a512fb4712cbf7d688f3d6fce4c5ea8a" +checksum = "d7c8f5f08bc84ab360c7d7b5b9cb7b02a86f88545573480916b5468ad40841c1" dependencies = [ "bevy_macro_utils", "quote", "syn", ] +[[package]] +name = "bevy_dev_tools" +version = "0.18.0-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1a6043eaef095cba8226e9e55abee73623eef0adcd2af0a8662f7a116c39909" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_camera", + "bevy_color", + "bevy_diagnostic", + "bevy_ecs", + "bevy_image", + "bevy_input", + "bevy_math", + "bevy_picking", + "bevy_reflect", + "bevy_render", + "bevy_shader", + "bevy_state", + "bevy_text", + "bevy_time", + "bevy_transform", + "bevy_ui", + "bevy_ui_render", + "bevy_window", + "tracing", +] + [[package]] name = "bevy_diagnostic" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1cdb0ed0c8423570fbbb7c4fc2719a203dd40928fefff45f76ef0889685a446" +checksum = "7026be8e1046956e8e66ced6d72a2e4274f7cd95d7aa1b1e9ab995a9be8690b5" dependencies = [ "atomic-waker", "bevy_app", @@ -612,9 +644,9 @@ dependencies = [ [[package]] name = "bevy_ecs" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7dd5229dd00d00e70ac6b2fc0a139961252f6ce07d3d268cfcac0da86d5bde4" +checksum = "d318f5bb0464f4f487ece2f1868c2bb8052438bda48851091d84ea156a909817" dependencies = [ "arrayvec", "bevy_ecs_macros", @@ -640,9 +672,9 @@ dependencies = [ [[package]] name = "bevy_ecs_macros" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4d83bdd2285af4867e76c691406e0a4b55611b583d0c45b6ac7bcec1b45fd48" +checksum = "3fd9737542eedd7cd09b93983a948ce931f0a232af845d2fa494701167ad6179" dependencies = [ "bevy_macro_utils", "proc-macro2", @@ -652,9 +684,9 @@ dependencies = [ [[package]] name = "bevy_encase_derive" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7179e985f3f1b99265cb87fe194db3b00aee8e2914888d621ff9826e1417ee19" +checksum = "26b1eb4ab2352621b86342e042cfe5ee8ec1910e4287542c5ed5cd3ae47371eb" dependencies = [ "bevy_macro_utils", "encase_derive_impl", @@ -662,9 +694,9 @@ dependencies = [ [[package]] name = "bevy_gilrs" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a39dd8fdfe93314d47355ab3c58da40b648908a368bc536872f75fad4e8f3755" +checksum = "7e392d8f4ff57de9da44837c091b35d7c56f9994d68c717c3762ed4bcaf3ca72" dependencies = [ "bevy_app", "bevy_ecs", @@ -678,50 +710,67 @@ dependencies = [ [[package]] name = "bevy_gizmos" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ebb9e3ca4938b48e5111151ce4b08f0e6fc207b854db08fa2d8de15ecabe8f8" +checksum = "83585e4685ab2d08b88dd79a6de7a99f410fc2511ff9f2088628f8718098969b" dependencies = [ "bevy_app", "bevy_asset", "bevy_camera", "bevy_color", - "bevy_core_pipeline", "bevy_ecs", "bevy_gizmos_macros", - "bevy_image", "bevy_light", "bevy_math", - "bevy_mesh", - "bevy_pbr", "bevy_reflect", - "bevy_render", - "bevy_shader", - "bevy_sprite_render", "bevy_time", "bevy_transform", "bevy_utils", - "bytemuck", - "tracing", ] [[package]] name = "bevy_gizmos_macros" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92c4b3c3aac86f0db85d4f708883ebdc735c3f88ac5b84c033874fcdd3540a9d" +checksum = "47bc7d5d8214c6d5be6d6ce01627759d991a88fc3c7324ef853ecb30eed7217d" dependencies = [ "bevy_macro_utils", "quote", "syn", ] +[[package]] +name = "bevy_gizmos_render" +version = "0.18.0-rc.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9df30cdb90589f41fb265f8dfb384b70e8cd16b15c9f328861fb57e871011888" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_camera", + "bevy_core_pipeline", + "bevy_ecs", + "bevy_gizmos", + "bevy_image", + "bevy_math", + "bevy_mesh", + "bevy_pbr", + "bevy_render", + "bevy_shader", + "bevy_sprite_render", + "bevy_transform", + "bevy_utils", + "bytemuck", + "tracing", +] + [[package]] name = "bevy_gltf" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3479fbaf897320a3ee30c1626b4a1bee0be874ca27699c3b2f3494891d103d9b" +checksum = "47372eeecdab719d9dc19fd80824459ac87efc72d15a6f60cfe54d5b9064db78" dependencies = [ + "async-lock", "base64", "bevy_animation", "bevy_app", @@ -753,9 +802,9 @@ dependencies = [ [[package]] name = "bevy_image" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d546bbe2486bfa14971517e7ef427a9384749817c201d3afc60de0325cf52f11" +checksum = "7e474fc339462199367162a9eb1fb28180f360485160ee39a16235d9bc858475" dependencies = [ "bevy_app", "bevy_asset", @@ -782,9 +831,9 @@ dependencies = [ [[package]] name = "bevy_input" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ca955b99f4dc2059e9c8574f8d95a5dd5002809fda80d062a94a553c571a467" +checksum = "64eab12ce38c28785bb52b6fa846b1caab1199311b90ead12686d3313eff7120" dependencies = [ "bevy_app", "bevy_ecs", @@ -799,16 +848,18 @@ dependencies = [ [[package]] name = "bevy_input_focus" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de4d1d0e833e31beba1f28a77152b35f946e8c45df364ec4969d58788ab9de7f" +checksum = "494e8430787c1543a0aae28c03bf4813e07b6f53d81aaa2acc3ab377a9b61aa1" dependencies = [ "bevy_app", + "bevy_camera", "bevy_ecs", "bevy_input", "bevy_math", "bevy_picking", "bevy_reflect", + "bevy_ui", "bevy_window", "log", "thiserror 2.0.17", @@ -816,9 +867,9 @@ dependencies = [ [[package]] name = "bevy_internal" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f5e645f9e1a24c9667c768b6233beaf4e241739d8ca4fbba59435cc27aabad5" +checksum = "d707a4a92431e29fff3e0f7c67cc23b57aa8feac7afa7907075b40b783efe165" dependencies = [ "bevy_a11y", "bevy_android", @@ -831,10 +882,12 @@ dependencies = [ "bevy_color", "bevy_core_pipeline", "bevy_derive", + "bevy_dev_tools", "bevy_diagnostic", "bevy_ecs", "bevy_gilrs", "bevy_gizmos", + "bevy_gizmos_render", "bevy_gltf", "bevy_image", "bevy_input", @@ -868,9 +921,9 @@ dependencies = [ [[package]] name = "bevy_light" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47093733280976ebd595f6e25f76603d5067ca4eb7544e59ecb0dd2fc5147810" +checksum = "d8cc5bdd42c6c5d7fe157a0dfd24d216f4a558317ede485fc9312c32b7bdd596" dependencies = [ "bevy_app", "bevy_asset", @@ -889,9 +942,9 @@ dependencies = [ [[package]] name = "bevy_log" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a2d4ea086ac4663ab9dfb056c7b85eee39e18f7e3e9a4ae6e39897eaa155c5" +checksum = "17fb1d81bf27c708d3620bc05706b6629fe561b6af784c045849e6a95bf6dea2" dependencies = [ "android_log-sys", "bevy_app", @@ -907,11 +960,10 @@ dependencies = [ [[package]] name = "bevy_macro_utils" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62d984f9f8bd0f0d9fb020492a955e641e30e7a425f3588bf346cb3e61fec3c3" +checksum = "f499ce11a21f5f01b5bc2529e7d9ec76961f73531a9d88be58b5dcb4a6e24ce4" dependencies = [ - "parking_lot", "proc-macro2", "quote", "syn", @@ -920,11 +972,12 @@ dependencies = [ [[package]] name = "bevy_math" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fa74ae5d968749cc073da991757d3c7e3504ac6dbaac5f8c2a54b9d19b0b7ed" +checksum = "e025c2b7802fe20910afaf4d9ccce6f9c06e6d04dbd7431111cb88211c8a5cf9" dependencies = [ "approx", + "arrayvec", "bevy_reflect", "derive_more", "glam", @@ -933,16 +986,15 @@ dependencies = [ "rand", "rand_distr", "serde", - "smallvec", "thiserror 2.0.17", "variadics_please", ] [[package]] name = "bevy_mesh" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd9a0ea86abbd17655bc6f9f8d94461dfcd0322431f752fc03748df8b335eff2" +checksum = "99ec70dc28494ec9b5e911bf19065dd23336f9109f0fe2f79c5b434c1a417b81" dependencies = [ "bevy_app", "bevy_asset", @@ -971,9 +1023,9 @@ checksum = "7ef8e4b7e61dfe7719bb03c884dc270cd46a82efb40f93e9933b990c5c190c59" [[package]] name = "bevy_pbr" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c514b950cda849aa64e9b076a235913577370275125a34a478758505a19d776" +checksum = "2567353c338d4d080a7c509bdcd6a8eec2f6a4d1f0367fdd0545442560346365" dependencies = [ "bevy_app", "bevy_asset", @@ -1007,9 +1059,9 @@ dependencies = [ [[package]] name = "bevy_picking" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b371779713b40dea83b24cdb95054fe999fe8372351a317c4fb768859ac5f010" +checksum = "ac55022debc64d3a6b36cb3b2b6e40bdca817076d9ff673aae60d632538ef78b" dependencies = [ "bevy_app", "bevy_asset", @@ -1031,14 +1083,13 @@ dependencies = [ [[package]] name = "bevy_platform" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4691af6d7cfd1b5deb2fc926a43a180a546cdc3fe1e5a013fcee60db9bb2c81f" +checksum = "cfc05567edd4e8a5f705be83ddc75cba2e388832f269c658df2337209f718601" dependencies = [ "critical-section", "foldhash 0.2.0", "futures-channel", - "getrandom", "hashbrown 0.16.1", "js-sys", "portable-atomic", @@ -1052,9 +1103,9 @@ dependencies = [ [[package]] name = "bevy_post_process" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b857972f5d56b43b0dce2c843b75b64d5fbbd0f6177f6ecccd75e7e41f72deb" +checksum = "56ea0814f66b2f37b0ad50b8e71f7288e75215201cd6eb5f39e7ef4f0ece59f0" dependencies = [ "bevy_app", "bevy_asset", @@ -1082,15 +1133,15 @@ dependencies = [ [[package]] name = "bevy_ptr" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17d24d7906c7de556033168b3485de36c59049fbaef0c2c44c715a23e0329b10" +checksum = "09f2912f5547f7a49c9bedd7eeec06d014c06fa08f6e6518642e99c457f5c752" [[package]] name = "bevy_reflect" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5472b91928c0f3e4e3988c0d036b00719f19520f53a0c3f8c2af72f00e693c5" +checksum = "69e846831b308f38f9bf3ae7c74bcf2b888b84621556abd64f0f107a14cf5a14" dependencies = [ "assert_type_match", "bevy_platform", @@ -1103,6 +1154,7 @@ dependencies = [ "erased-serde", "foldhash 0.2.0", "glam", + "indexmap", "inventory", "petgraph", "serde", @@ -1116,9 +1168,9 @@ dependencies = [ [[package]] name = "bevy_reflect_derive" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "083784255162fa39960aa3cf3c23af0e515db2daa7f2e796ae34df993f4d3f6c" +checksum = "9a9765a0ff296d5adf5e0e96bd11bbf49eb1a83c03504c15b6404e6f4cfa5e67" dependencies = [ "bevy_macro_utils", "indexmap", @@ -1130,9 +1182,9 @@ dependencies = [ [[package]] name = "bevy_render" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44117cbc9448b5a3118eb9c65bd9ec4c574be996148793be2443257daae6eb05" +checksum = "cfdec653954cbde7815628235f0760766510e45a6ad575fab0bc6c2dac4a1ab0" dependencies = [ "async-channel", "bevy_app", @@ -1161,6 +1213,7 @@ dependencies = [ "downcast-rs 2.0.2", "encase", "fixedbitset", + "glam", "image", "indexmap", "js-sys", @@ -1179,9 +1232,9 @@ dependencies = [ [[package]] name = "bevy_render_macros" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9557b7b6b06b1b70c147581f4f410c2de73b6f6f0e82915887020f953bacb5a" +checksum = "b4738c5c480dbae677ea0841538ec5514536f416935eff4679f5f0ce76844142" dependencies = [ "bevy_macro_utils", "proc-macro2", @@ -1191,9 +1244,9 @@ dependencies = [ [[package]] name = "bevy_scene" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcf6efd31fdd1e05724c95900bb1055716c8e3633b05fa731ee75db4241c17d" +checksum = "fa8a5fd7fb8b8c4b535c892beb3f7ad18e575127ebfdf98ccdb375a1e00d82be" dependencies = [ "bevy_app", "bevy_asset", @@ -1205,6 +1258,7 @@ dependencies = [ "bevy_transform", "bevy_utils", "derive_more", + "ron", "serde", "thiserror 2.0.17", "uuid", @@ -1212,9 +1266,9 @@ dependencies = [ [[package]] name = "bevy_shader" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a655de9f64e113a6e37be76401fb0d6cb84ed7cc4f891e70af4e39d26e9080c3" +checksum = "73c906b7ab6a4d05a65350ff7bddaa1e70b689476d9e68fab1ee01267a7c6c05" dependencies = [ "bevy_asset", "bevy_platform", @@ -1229,9 +1283,9 @@ dependencies = [ [[package]] name = "bevy_sprite" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52b9a80aadf102ef0b012ceba5326253638c891994c303479e9973092e4e1c8b" +checksum = "193dc37c7ecb8e991a048777ec92d88f2f6d48a8eeca1fafb90767fe2341d6a5" dependencies = [ "bevy_app", "bevy_asset", @@ -1254,9 +1308,9 @@ dependencies = [ [[package]] name = "bevy_sprite_render" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eec49a2a9185526f9828559a40b6f66d4c2dbae2df8ea2936d88ba449a5e86a" +checksum = "b9c754958f657e87e55a2c87cea8aa3d23b64d3842fe4e52314f24ed3a0853fd" dependencies = [ "bevy_app", "bevy_asset", @@ -1286,9 +1340,9 @@ dependencies = [ [[package]] name = "bevy_state" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05e8556a55d548844fc067fac6657b62f8073c94bd7e13c86aa7573f4c2a67b3" +checksum = "4d8a21e4ad355064de3c00e77ee55e2d9d9cc2c17c92b6fb2ca8357d868086c3" dependencies = [ "bevy_app", "bevy_ecs", @@ -1302,9 +1356,9 @@ dependencies = [ [[package]] name = "bevy_state_macros" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcda45913b1d6470c6b751656e72fb3f25ca6b5b7b2ee055b294aaed1eb7e5ba" +checksum = "6a43db72d26fb5452dd8df55ce7709d227d0cb5adfac334a49d8683d812943d4" dependencies = [ "bevy_macro_utils", "quote", @@ -1313,9 +1367,9 @@ dependencies = [ [[package]] name = "bevy_tasks" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcbbfa5a58a16c4228434d3018c23fde3d78dcd76ec5f5b2b482a21f4b158dd3" +checksum = "c1325cee9a949f7b95018cb4bd10e3b44710bde7856aaeaf2beec738bbe82c22" dependencies = [ "async-channel", "async-executor", @@ -1332,9 +1386,9 @@ dependencies = [ [[package]] name = "bevy_text" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc144cc6a30ed44a88e342c22d9e3a66a0993a74f792ae07ba79318efb41a86d" +checksum = "4e7fbbf66f234780beee6197d5d2f66620d154f330f4015ec05b4d9e763d7173" dependencies = [ "bevy_app", "bevy_asset", @@ -1358,9 +1412,9 @@ dependencies = [ [[package]] name = "bevy_time" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32835c3dbe082fbbe7d4f2f37f655073421f2882d4320ac2d59f922474260de4" +checksum = "ef1a95ee77274ed3c5450a0caa62cea0100c71cee6931a2fb840077dc3dc93e2" dependencies = [ "bevy_app", "bevy_ecs", @@ -1373,9 +1427,9 @@ dependencies = [ [[package]] name = "bevy_transform" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b41fabfeaa53f51ff5ccf4d87e66836293159d50d21f6d3e16c93efb7c30f969" +checksum = "28b10d4ffd346e2afd185c5964c1fba6670118c5a2baaacab163c4d15b2f3c74" dependencies = [ "bevy_app", "bevy_ecs", @@ -1391,9 +1445,9 @@ dependencies = [ [[package]] name = "bevy_ui" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa0fe27b8c641c2537480774dfd9198d56779371b04dd76618db39da4e7c7483" +checksum = "ce2bb64b3361d219c743d55e24a2562b2673d8fb7d0e9ce8d29d2f11ff8913e1" dependencies = [ "accesskit", "bevy_a11y", @@ -1424,9 +1478,9 @@ dependencies = [ [[package]] name = "bevy_ui_render" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1d2e783bb5f0b748e6360a0055421d5c934b43830b205a84996a75e54330cd7" +checksum = "ae9e11a8d83b72028c3f19ed6532772e7ee0b9a42a9f29c0bf5c6d970caee48a" dependencies = [ "bevy_app", "bevy_asset", @@ -1455,9 +1509,9 @@ dependencies = [ [[package]] name = "bevy_utils" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "789d04f88c764877a4552e07745b402dbc45f5d0545e6d102558f2f1752a1d89" +checksum = "b69d01a7f00490ce63cf840bbb9ce6f0e702a74e802430fc2883ef7a740a558e" dependencies = [ "bevy_platform", "disqualified", @@ -1466,9 +1520,9 @@ dependencies = [ [[package]] name = "bevy_window" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae54ec7a0fc344278592a688a01b57b32182abc3ca7d47040773c4cbc2e15e0" +checksum = "8501e0975050fb90a85c27ef4befc57d80eb725047a290e0c716257ce2438923" dependencies = [ "bevy_app", "bevy_asset", @@ -1485,9 +1539,9 @@ dependencies = [ [[package]] name = "bevy_winit" -version = "0.17.3" +version = "0.18.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "feeaa46d3c4480323e690de8a4ca7f914c074af1f5f70ee3246392992dbf4a0c" +checksum = "9173fc522232cfabbefe00d43e81aaf6e9dca097c80ce140e911b346889159b8" dependencies = [ "accesskit", "accesskit_winit", @@ -1874,6 +1928,15 @@ dependencies = [ "libc", ] +[[package]] +name = "core_maths" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77745e017f5edba1a9c1d854f6f3a52dac8a12dd5af5d2f54aecf61e43d80d30" +dependencies = [ + "libm", +] + [[package]] name = "coreaudio-rs" version = "0.11.3" @@ -1896,21 +1959,22 @@ dependencies = [ [[package]] name = "cosmic-text" -version = "0.14.2" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da46a9d5a8905cc538a4a5bceb6a4510de7a51049c5588c0114efce102bcbbe8" +checksum = "173852283a9a57a3cbe365d86e74dc428a09c50421477d5ad6fe9d9509e37737" dependencies = [ "bitflags 2.10.0", "fontdb", + "harfrust", + "linebender_resource_handle", "log", "rangemap", "rustc-hash 1.1.0", - "rustybuzz", "self_cell", + "skrifa", "smol_str", "swash", "sys-locale", - "ttf-parser 0.21.1", "unicode-bidi", "unicode-linebreak", "unicode-script", @@ -2109,30 +2173,29 @@ checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] name = "encase" -version = "0.11.2" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02ba239319a4f60905966390f5e52799d868103a533bb7e27822792332504ddd" +checksum = "6e3e0ff2ee0b7aa97428308dd9e1e42369cb22f5fb8dc1c55546637443a60f1e" dependencies = [ "const_panic", "encase_derive", - "glam", "thiserror 2.0.17", ] [[package]] name = "encase_derive" -version = "0.11.2" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5223d6c647f09870553224f6e37261fe5567bc5a4f4cf13ed337476e79990f2f" +checksum = "a4d90c5d7d527c6cb8a3b114efd26a6304d9ab772656e73d8f4e32b1f3d601a2" dependencies = [ "encase_derive_impl", ] [[package]] name = "encase_derive_impl" -version = "0.11.2" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1796db3d892515842ca2dfb11124c4bb4a9e58d9f2c5c1072e5bca1b2334507b" +checksum = "c8bad72d8308f7a382de2391ec978ddd736e0103846b965d7e2a63a75768af30" dependencies = [ "proc-macro2", "quote", @@ -2277,16 +2340,16 @@ dependencies = [ [[package]] name = "fontdb" -version = "0.16.2" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0299020c3ef3f60f526a4f64ab4a3d4ce116b1acbf24cdd22da0068e5d81dc3" +checksum = "457e789b3d1202543297a350643cf459f836cade38934e7a4cf6a39e7cde2905" dependencies = [ "fontconfig-parser", "log", "memmap2", "slotmap", "tinyvec", - "ttf-parser 0.20.0", + "ttf-parser", ] [[package]] @@ -2350,6 +2413,36 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "futures-macro" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +dependencies = [ + "futures-core", + "futures-macro", + "futures-task", + "pin-project-lite", + "pin-utils", +] + [[package]] name = "gethostname" version = "1.1.0" @@ -2426,6 +2519,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd47b05dddf0005d850e5644cae7f2b14ac3df487979dbfff3b56f20b1a6ae46" dependencies = [ "bytemuck", + "encase", "libm", "rand", "serde_core", @@ -2547,9 +2641,9 @@ dependencies = [ [[package]] name = "grid" -version = "0.15.0" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36119f3a540b086b4e436bb2b588cf98a68863470e0e880f4d0842f112a3183a" +checksum = "f9e2d4c0a8296178d8802098410ca05d86b17a10bb5ab559b3fb404c1f948220" [[package]] name = "guillotiere" @@ -2573,6 +2667,19 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "harfrust" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92c020db12c71d8a12a3fe7607873cade3a01a6287e29d540c8723276221b9d8" +dependencies = [ + "bitflags 2.10.0", + "bytemuck", + "core_maths", + "read-fonts", + "smallvec", +] + [[package]] name = "hash32" version = "0.3.1" @@ -2598,15 +2705,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" dependencies = [ "equivalent", + "foldhash 0.2.0", "serde", "serde_core", ] [[package]] name = "heapless" -version = "0.8.0" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad" +checksum = "2af2455f757db2b292a9b1768c4b70186d443bcb3b316252d6b540aec1cd89ed" dependencies = [ "hash32", "portable-atomic", @@ -2879,6 +2987,12 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "linebender_resource_handle" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4a5ff6bcca6c4867b1c4fd4ef63e4db7436ef363e0ad7531d1558856bae64f4" + [[package]] name = "linux-raw-sys" version = "0.4.15" @@ -2997,9 +3111,9 @@ dependencies = [ [[package]] name = "naga" -version = "26.0.0" +version = "27.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "916cbc7cb27db60be930a4e2da243cf4bc39569195f22fd8ee419cd31d5b662c" +checksum = "066cf25f0e8b11ee0df221219010f213ad429855f57c494f995590c861a9a7d8" dependencies = [ "arrayvec", "bit-set", @@ -3008,7 +3122,7 @@ dependencies = [ "cfg_aliases", "codespan-reporting", "half", - "hashbrown 0.15.5", + "hashbrown 0.16.1", "hexf-parse", "indexmap", "libm", @@ -3024,9 +3138,9 @@ dependencies = [ [[package]] name = "naga_oil" -version = "0.19.1" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b586d3cf5c9b7e13fe2af6e114406ff70773fd80881960378933b63e76f37dd" +checksum = "310c347db1b30e69581f3b84dc9a5c311ed583f67851b39b77953cb7a066c97f" dependencies = [ "codespan-reporting", "data-encoding", @@ -3493,7 +3607,7 @@ version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "36820e9051aca1014ddc75770aab4d68bc1e9e632f0f5627c4086bc216fb583b" dependencies = [ - "ttf-parser 0.25.1", + "ttf-parser", ] [[package]] @@ -3576,6 +3690,12 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + [[package]] name = "piper" version = "0.2.4" @@ -3789,6 +3909,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6717cf23b488adf64b9d711329542ba34de147df262370221940dfabc2c91358" dependencies = [ "bytemuck", + "core_maths", "font-types", ] @@ -3863,14 +3984,15 @@ dependencies = [ [[package]] name = "ron" -version = "0.10.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "beceb6f7bf81c73e73aeef6dd1356d9a1b2b4909e1f0fc3e59b034f9572d7b7f" +checksum = "fd490c5b18261893f14449cbd28cb9c0b637aebf161cd77900bfdedaff21ec32" dependencies = [ - "base64", "bitflags 2.10.0", + "once_cell", "serde", "serde_derive", + "typeid", "unicode-ident", ] @@ -3924,23 +4046,6 @@ version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" -[[package]] -name = "rustybuzz" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfb9cf8877777222e4a3bc7eb247e398b56baba500c38c1c46842431adc8b55c" -dependencies = [ - "bitflags 2.10.0", - "bytemuck", - "libm", - "smallvec", - "ttf-parser 0.21.1", - "unicode-bidi-mirroring", - "unicode-ccc", - "unicode-properties", - "unicode-script", -] - [[package]] name = "ruzstd" version = "0.8.2" @@ -4229,9 +4334,9 @@ dependencies = [ [[package]] name = "taffy" -version = "0.7.7" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab4f4d046dd956a47a7e1a2947083d7ac3e6aa3cfaaead36173ceaa5ab11878c" +checksum = "41ba83ebaf2954d31d05d67340fd46cebe99da2b7133b0dd68d70c65473a437b" dependencies = [ "arrayvec", "grid", @@ -4472,23 +4577,14 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "ttf-parser" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4" - -[[package]] -name = "ttf-parser" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c591d83f69777866b9126b24c6dd9a18351f177e49d625920d19f989fd31cf8" - [[package]] name = "ttf-parser" version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2df906b07856748fa3f6e0ad0cbaa047052d4a7dd609e231c4f72cee8c36f31" +dependencies = [ + "core_maths", +] [[package]] name = "twox-hash" @@ -4514,18 +4610,6 @@ version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" -[[package]] -name = "unicode-bidi-mirroring" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23cb788ffebc92c5948d0e997106233eeb1d8b9512f93f41651f52b6c5f5af86" - -[[package]] -name = "unicode-ccc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df77b101bcc4ea3d78dafc5ad7e4f58ceffe0b2b16bf446aeb50b6cb4157656" - [[package]] name = "unicode-ident" version = "1.0.22" @@ -4538,12 +4622,6 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" -[[package]] -name = "unicode-properties" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7df058c713841ad818f1dc5d3fd88063241cc61f49f5fbea4b951e8cf5a8d71d" - [[package]] name = "unicode-script" version = "0.5.7" @@ -4816,16 +4894,16 @@ dependencies = [ [[package]] name = "wgpu" -version = "26.0.1" +version = "27.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70b6ff82bbf6e9206828e1a3178e851f8c20f1c9028e74dd3a8090741ccd5798" +checksum = "bfe68bac7cde125de7a731c3400723cadaaf1703795ad3f4805f187459cd7a77" dependencies = [ "arrayvec", "bitflags 2.10.0", "cfg-if", "cfg_aliases", "document-features", - "hashbrown 0.15.5", + "hashbrown 0.16.1", "js-sys", "log", "naga", @@ -4843,17 +4921,18 @@ dependencies = [ [[package]] name = "wgpu-core" -version = "26.0.1" +version = "27.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f62f1053bd28c2268f42916f31588f81f64796e2ff91b81293515017ca8bd9" +checksum = "27a75de515543b1897b26119f93731b385a19aea165a1ec5f0e3acecc229cae7" dependencies = [ "arrayvec", "bit-set", "bit-vec", "bitflags 2.10.0", + "bytemuck", "cfg_aliases", "document-features", - "hashbrown 0.15.5", + "hashbrown 0.16.1", "indexmap", "log", "naga", @@ -4874,36 +4953,36 @@ dependencies = [ [[package]] name = "wgpu-core-deps-apple" -version = "26.0.0" +version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18ae5fbde6a4cbebae38358aa73fcd6e0f15c6144b67ef5dc91ded0db125dbdf" +checksum = "0772ae958e9be0c729561d5e3fd9a19679bcdfb945b8b1a1969d9bfe8056d233" dependencies = [ "wgpu-hal", ] [[package]] name = "wgpu-core-deps-wasm" -version = "26.0.0" +version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c03b9f9e1a50686d315fc6debe4980cc45cd37b0e919351917df494e8fdc8885" +checksum = "9b1027dcf3b027a877e44819df7ceb0e2e98578830f8cd34cd6c3c7c2a7a50b7" dependencies = [ "wgpu-hal", ] [[package]] name = "wgpu-core-deps-windows-linux-android" -version = "26.0.0" +version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "720a5cb9d12b3d337c15ff0e24d3e97ed11490ff3f7506e7f3d98c68fa5d6f14" +checksum = "71197027d61a71748e4120f05a9242b2ad142e3c01f8c1b47707945a879a03c3" dependencies = [ "wgpu-hal", ] [[package]] name = "wgpu-hal" -version = "26.0.6" +version = "27.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8d0e67224cc7305b3b4eb2cc57ca4c4c3afc665c1d1bee162ea806e19c47bdd" +checksum = "5b21cb61c57ee198bc4aff71aeadff4cbb80b927beb912506af9c780d64313ce" dependencies = [ "android_system_properties", "arrayvec", @@ -4920,7 +4999,7 @@ dependencies = [ "gpu-alloc", "gpu-allocator", "gpu-descriptor", - "hashbrown 0.15.5", + "hashbrown 0.16.1", "js-sys", "khronos-egl", "libc", @@ -4930,6 +5009,7 @@ dependencies = [ "naga", "ndk-sys 0.6.0+11769913", "objc", + "once_cell", "ordered-float", "parking_lot", "portable-atomic", @@ -4949,9 +5029,9 @@ dependencies = [ [[package]] name = "wgpu-types" -version = "26.0.0" +version = "27.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca7a8d8af57c18f57d393601a1fb159ace8b2328f1b6b5f80893f7d672c9ae2" +checksum = "afdcf84c395990db737f2dd91628706cb31e86d72e53482320d368e52b5da5eb" dependencies = [ "bitflags 2.10.0", "bytemuck", diff --git a/Cargo.toml b/Cargo.toml index 691cb44..eefcf9a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,15 +11,15 @@ repository = "https://github.com/databasedav/jonmo" documentation = "https://docs.rs/jonmo" [dependencies] -bevy_app = { version = "0.17", default-features = false } -bevy_derive = { version = "0.17", default-features = false } -bevy_ecs = { version = "0.17", default-features = false } -bevy_platform = { version = "0.17", default-features = false } -bevy_log = { version = "0.17", default-features = false, optional = true } -bevy_time = { version = "0.17", default-features = false, optional = true } +bevy_app = { version = "0.18.0-rc.1", default-features = false } +bevy_derive = { version = "0.18.0-rc.1", default-features = false } +bevy_ecs = { version = "0.18.0-rc.1", default-features = false } +bevy_platform = { version = "0.18.0-rc.1", default-features = false } +bevy_log = { version = "0.18.0-rc.1", default-features = false, optional = true } +bevy_time = { version = "0.18.0-rc.1", default-features = false, optional = true } enclose = "1.2" dyn-clone = "1.0" -apply = "0.3" +apply = "0.3.0" cfg-if = "1.0" document-features = { version = "0.2", optional = true } @@ -63,7 +63,7 @@ web = [ deployed_wasm_example = [] [dev-dependencies] -bevy = { version = "0.17", features = ["track_location"] } +bevy = { version = "0.18.0-rc.1", features = ["track_location"] } rand = "0.9" test-log = { version = "0.2", default-features = false, features = ["trace"] } diff --git a/README.md b/README.md index 13291e8..8897422 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # jonmo [জন্ম](https://translate.google.com/?sl=bn&tl=en&text=%E0%A6%9C%E0%A6%A8%E0%A7%8D%E0%A6%AE&op=translate) [![Crates.io Version](https://img.shields.io/crates/v/jonmo?style=for-the-badge)](https://crates.io/crates/jonmo) -[![Docs.rs](https://img.shields.io/docsrs/jonmo?style=for-the-badge)](https://docs.rs/jonmo) [![Following released Bevy versions](https://img.shields.io/badge/Bevy%20tracking-0.17-lightblue?style=for-the-badge)](https://bevyengine.org/learn/quick-start/plugin-development/#main-branch-tracking) +[![Docs.rs](https://img.shields.io/docsrs/jonmo?style=for-the-badge)](https://docs.rs/jonmo) ```text in bengali, jonmo means "birth" diff --git a/examples/counter.rs b/examples/counter.rs index 6f5fae4..4a7e6c3 100644 --- a/examples/counter.rs +++ b/examples/counter.rs @@ -109,9 +109,9 @@ fn counter_button(counter_holder: LazyEntity, color: Color, label: &'static str, width: Val::Px(45.0), justify_content: JustifyContent::Center, align_items: AlignItems::Center, + border_radius: BorderRadius::MAX, ..default() }, - BorderRadius::MAX, BackgroundColor(color), )) // Attach observers to the entity diff --git a/examples/filters.rs b/examples/filters.rs index 06516b3..44bd9f7 100644 --- a/examples/filters.rs +++ b/examples/filters.rs @@ -200,11 +200,13 @@ fn maybe_insert_random_sorted(builder: JonmoBuilder) -> JonmoBuilder { fn text_node(text: &'static str) -> JonmoBuilder { JonmoBuilder::from(( - Node::default(), + Node { + border_radius: BorderRadius::all(Val::Px(GAP)), + ..default() + }, Text::new(text), TextColor(Color::WHITE), TextLayout::new_with_justify(Justify::Center), - BorderRadius::all(Val::Px(GAP)), )) } @@ -319,7 +321,10 @@ fn shape_toggles(row_parent: LazyEntity) -> JonmoBuilder { ..default() }) .child(shape_toggle(row_parent.clone(), Shape::Square)) - .child(shape_toggle(row_parent.clone(), Shape::Circle).insert(BorderRadius::MAX)) + .child( + shape_toggle(row_parent.clone(), Shape::Circle) + .with_component::(|mut node| node.border_radius = BorderRadius::MAX), + ) } fn color_toggles(row_parent: LazyEntity) -> JonmoBuilder { @@ -338,9 +343,9 @@ fn color_toggles(row_parent: LazyEntity) -> JonmoBuilder { width: Val::Px(15.), height: Val::Px(15.), border: UiRect::all(Val::Px(1.)), + border_radius: BorderRadius::all(Val::Px(GAP)), ..default() }, - BorderRadius::all(Val::Px(GAP)), BackgroundColor(color.into()), BorderColor::all(Color::BLACK), )) @@ -367,11 +372,11 @@ fn button(text: &'static str, offset: f32) -> JonmoBuilder { height: Val::Px((ITEM_SIZE / 2) as f32), justify_content: JustifyContent::Center, border: UiRect::all(Val::Px(1.)), + border_radius: BorderRadius::all(Val::Px(GAP)), ..default() }, BackgroundColor(bevy::color::palettes::basic::GRAY.into()), BorderColor::all(Color::WHITE), - BorderRadius::all(Val::Px(GAP)), )) .child( text_node(text) @@ -494,13 +499,13 @@ fn item(index: impl Signal>, Data { number, color, shape }: width: Val::Px(ITEM_SIZE as f32), align_items: AlignItems::Center, justify_content: JustifyContent::Center, + border_radius: match shape { + Shape::Square => BorderRadius::default(), + Shape::Circle => BorderRadius::MAX, + }, ..default() }, BackgroundColor(color.into()), - match shape { - Shape::Square => BorderRadius::default(), - Shape::Circle => BorderRadius::MAX, - }, )) .component_signal(index.map_in(|index| index.map(Index))) .apply(on_click( diff --git a/examples/letters.rs b/examples/letters.rs index cde6f4c..bad4436 100644 --- a/examples/letters.rs +++ b/examples/letters.rs @@ -178,17 +178,15 @@ fn sum_container() -> JonmoBuilder { } fn save_card(save_char: char, active_save_signal: impl Signal + Clone) -> JonmoBuilder { - JonmoBuilder::from(( - Node { - width: Val::Px(100.), - height: Val::Px(100.), - justify_content: JustifyContent::Center, - align_items: AlignItems::Center, - padding: UiRect::all(Val::Px(GAP * 2.)), - ..default() - }, - BorderRadius::all(Val::Px(GAP * 2.)), - )) + JonmoBuilder::from((Node { + width: Val::Px(100.), + height: Val::Px(100.), + justify_content: JustifyContent::Center, + align_items: AlignItems::Center, + padding: UiRect::all(Val::Px(GAP * 2.)), + border_radius: BorderRadius::all(Val::Px(GAP * 2.)), + ..default() + },)) .observe(move |_click: On>, mut active_save: ResMut| { active_save.0 = save_char; }) @@ -212,24 +210,24 @@ fn save_card(save_char: char, active_save_signal: impl Signal fn text_node() -> JonmoBuilder { JonmoBuilder::from(( - Node::default(), + Node { + border_radius: BorderRadius::all(Val::Px(GAP)), + ..default() + }, TextColor(Color::WHITE), TextLayout::new_with_justify(Justify::Center), - BorderRadius::all(Val::Px(GAP)), )) } fn letter(letter: char, data: impl Signal + Clone) -> JonmoBuilder { - JonmoBuilder::from(( - Node { - flex_direction: FlexDirection::Column, - row_gap: Val::Px(GAP * 2.), - padding: UiRect::all(Val::Px(GAP * 2.)), - width: Val::Px(100.), - ..default() - }, - BorderRadius::all(Val::Px(GAP * 2.)), - )) + JonmoBuilder::from((Node { + flex_direction: FlexDirection::Column, + row_gap: Val::Px(GAP * 2.), + padding: UiRect::all(Val::Px(GAP * 2.)), + width: Val::Px(100.), + border_radius: BorderRadius::all(Val::Px(GAP * 2.)), + ..default() + },)) .component_signal( data.clone() .map_in(|LetterData { pressed, .. }| pressed) diff --git a/src/builder.rs b/src/builder.rs index 81db7c6..b255177 100644 --- a/src/builder.rs +++ b/src/builder.rs @@ -674,7 +674,7 @@ impl JonmoBuilder { if let Ok(mut parent) = world.get_entity_mut(parent) { // Bevy's `remove_children` finds the entity and removes it from its // current position, correctly shifting subsequent children. - parent.remove_children(&[moved_entity]); + parent.detach_children(&[moved_entity]); // The new insertion index must be calculated with the offset from any // preceding static children. diff --git a/src/graph.rs b/src/graph.rs index 64522db..cb40a2f 100644 --- a/src/graph.rs +++ b/src/graph.rs @@ -2,7 +2,6 @@ use super::utils::SSs; use bevy_derive::Deref; use bevy_ecs::{ - entity_disabling::Internal, lifecycle::HookContext, prelude::*, query::{QueryData, QueryFilter}, @@ -234,8 +233,7 @@ pub(crate) fn process_signals( } pub(crate) fn process_signal_graph(world: &mut World) { - let mut orphan_parents = - SystemState::, Without, Allow)>>::new(world); + let mut orphan_parents = SystemState::, Without)>>::new(world); let orphan_parents = orphan_parents.get(world); let orphan_parents = orphan_parents.iter().map(SignalSystem).collect::>(); process_signals(world, orphan_parents, Box::new(())); diff --git a/src/signal.rs b/src/signal.rs index 1d996ef..94d3c32 100644 --- a/src/signal.rs +++ b/src/signal.rs @@ -10,7 +10,7 @@ use super::{ utils::{LazyEntity, SSs, ancestor_map}, }; use crate::prelude::clone; -use bevy_ecs::{entity_disabling::Internal, prelude::*, system::SystemState}; +use bevy_ecs::{prelude::*, system::SystemState}; cfg_if::cfg_if! { if #[cfg(feature = "tracing")] { use bevy_log::prelude::*; @@ -1412,7 +1412,7 @@ pub trait SignalExt: Signal { // the value. It has no upstream dependencies in the graph; it is triggered manually by the // forwarder. let reader_system = *SignalBuilder::from_system::<::Item, _, _, _>( - clone!((reader_entity) move |_: In<()>, mut query: Query<&mut FlattenState<::Item>, Allow>| { + clone!((reader_entity) move |_: In<()>, mut query: Query<&mut FlattenState<::Item>>| { if let Ok(mut state) = query.get_mut(reader_entity.get()) { state.value.take() } else { @@ -1477,11 +1477,7 @@ pub trait SignalExt: Signal { let forwarder_handle = inner_signal .map( // This first map writes the value to the state component. - move |In(value), - mut query: Query< - &mut FlattenState<::Item>, - Allow, - >| { + move |In(value), mut query: Query<&mut FlattenState<::Item>>| { if let Ok(mut state) = query.get_mut(*reader_system) { state.value = Some(value); } @@ -1602,7 +1598,7 @@ pub trait SignalExt: Signal { // The output system is a "poller". It runs when poked and drains its own queue. let output_signal_entity = LazyEntity::new(); let output_signal = *SignalBuilder::from_system::>, _, _, _>( - clone!((output_signal_entity) move |_: In<()>, mut q: Query<&mut SwitcherQueue, Allow>| { + clone!((output_signal_entity) move |_: In<()>, mut q: Query<&mut SwitcherQueue>| { if let Ok(mut queue) = q.get_mut(*output_signal_entity) { if queue.0.is_empty() { None @@ -1665,7 +1661,7 @@ pub trait SignalExt: Signal { // F. MANUALLY TRIGGER REPLAY: Take the trigger from the new signal and run it // _now_. This synchronously sends the initial `Replace` diff through the pipe we // just established. - let mut upstreams = SystemState::>>::new(world); + let mut upstreams = SystemState::>::new(world); let upstreams = upstreams.get(world); let upstreams = UpstreamIter::new(&upstreams, new_signal).collect::>(); for signal in [new_signal].into_iter().chain(upstreams.into_iter()) { @@ -1738,20 +1734,21 @@ pub trait SignalExt: Signal { // The output signal is a "poller". It runs when poked and drains its own queue. let output_signal_entity = LazyEntity::new(); - let output_signal = *SignalBuilder::from_system::>, _, _, _>( - clone!((output_signal_entity) move |_: In<()>, mut q: Query<&mut SwitcherQueue, Allow>| { - if let Ok(mut queue) = q.get_mut(*output_signal_entity) { - if queue.0.is_empty() { - None + let output_signal = + *SignalBuilder::from_system::>, _, _, _>( + clone!((output_signal_entity) move |_: In<()>, mut q: Query<&mut SwitcherQueue>| { + if let Ok(mut queue) = q.get_mut(*output_signal_entity) { + if queue.0.is_empty() { + None + } else { + Some(core::mem::take(&mut queue.0)) + } } else { - Some(core::mem::take(&mut queue.0)) + None } - } else { - None - } - }), - ) - .register(world); + }), + ) + .register(world); output_signal_entity.set(*output_signal); // Add the queue component to the output signal's entity so it can be found. @@ -1803,7 +1800,7 @@ pub trait SignalExt: Signal { // F. MANUALLY TRIGGER REPLAY: Take the trigger from the new signal and run it // _now_. This synchronously sends the initial `Replace` diff through the pipe we // just established. - let mut upstreams = SystemState::>>::new(world); + let mut upstreams = SystemState::>::new(world); let upstreams = upstreams.get(world); let upstreams = UpstreamIter::new(&upstreams, new_signal).collect::>(); for signal in [new_signal].into_iter().chain(upstreams.into_iter()) { diff --git a/src/signal_map.rs b/src/signal_map.rs index 86fa757..ad9f198 100644 --- a/src/signal_map.rs +++ b/src/signal_map.rs @@ -11,7 +11,7 @@ use super::{ }; use crate::prelude::clone; use alloc::collections::BTreeMap; -use bevy_ecs::{entity_disabling::Internal, prelude::*}; +use bevy_ecs::prelude::*; #[cfg(feature = "tracing")] use bevy_log::debug; use bevy_platform::{ @@ -1124,7 +1124,7 @@ impl MutableBTreeMap { let was_initially_empty = self_.read(&*world).is_empty(); let replay_entity = LazyEntity::new(); - let replay_system = clone!((self_, replay_entity) move |In(upstream_diffs): In>>, replay_onces: Query<&ReplayOnce, Allow>, mutable_btree_map_datas: Query<&MutableBTreeMapData>| { + let replay_system = clone!((self_, replay_entity) move |In(upstream_diffs): In>>, replay_onces: Query<&ReplayOnce>, mutable_btree_map_datas: Query<&MutableBTreeMapData>| { if replay_onces.contains(*replay_entity) { if !was_initially_empty { let initial_map = self_.read(&mutable_btree_map_datas); diff --git a/src/signal_vec.rs b/src/signal_vec.rs index 7fadd11..f78fba7 100644 --- a/src/signal_vec.rs +++ b/src/signal_vec.rs @@ -10,7 +10,7 @@ use super::{ }; use crate::prelude::clone; use bevy_derive::{Deref, DerefMut}; -use bevy_ecs::{change_detection::Mut, entity_disabling::Internal, prelude::*, system::SystemId}; +use bevy_ecs::{change_detection::Mut, prelude::*, system::SystemId}; #[cfg(feature = "tracing")] use bevy_log::debug; use bevy_platform::{ @@ -477,11 +477,11 @@ fn spawn_filter_signal( let self_entity = *entity; // The processor might run after its parent has been cleaned up. - let Ok(signal_index_comp) = world.query_filtered::<&FilterSignalIndex, Allow>().get(world, self_entity) else { + let Ok(signal_index_comp) = world.query::<&FilterSignalIndex>().get(world, self_entity) else { return; }; let item_index = signal_index_comp.0; - let Ok(mut filter_signal_data) = world.query_filtered::<&mut FilterSignalData, Allow>().get_mut(world, parent) else { + let Ok(mut filter_signal_data) = world.query::<&mut FilterSignalData>().get_mut(world, parent) else { return; }; @@ -2052,7 +2052,7 @@ pub trait SignalVecExt: SignalVec { let create_index_signal = clone!((processor_entity_handle) move | key: usize | { SignalBuilder::from_system( - clone!((processor_entity_handle) move |_: In<()>, query: Query<&EnumerateState, Allow>| { + clone!((processor_entity_handle) move |_: In<()>, query: Query<&EnumerateState>| { Some( query .get(processor_entity_handle.get()) @@ -2657,7 +2657,7 @@ pub trait SignalVecExt: SignalVec { SignalBuilder::from_system( clone!( (state_entity_handle) move |_: In<()>, - query: Query<&IntersperseState, Allow>| { + query: Query<&IntersperseState>| { Some( query .get(state_entity_handle.get()) @@ -3797,7 +3797,7 @@ impl MutableVec { let was_initially_empty = self_.read(&*world).is_empty(); let replay_entity = LazyEntity::new(); - let replay_system = clone!((self_, replay_entity) move |In(upstream_diffs): In>>, replay_onces: Query<&ReplayOnce, Allow>, mutable_vec_datas: Query<&MutableVecData>| { + let replay_system = clone!((self_, replay_entity) move |In(upstream_diffs): In>>, replay_onces: Query<&ReplayOnce>, mutable_vec_datas: Query<&MutableVecData>| { if replay_onces.contains(*replay_entity) { if !was_initially_empty { let initial_vec = self_.read(&mutable_vec_datas).to_vec(); @@ -3986,10 +3986,7 @@ pub(crate) fn trigger_replay(world: &mut } pub(crate) fn trigger_replays(world: &mut World) { - let triggers: Vec = world - .query_filtered::, Allow)>() - .iter(world) - .collect(); + let triggers: Vec = world.query_filtered::>().iter(world).collect(); for entity in triggers { trigger_replay::(world, entity); }