From 77a7eaafef1acba52234be1c28098de192bbde8e Mon Sep 17 00:00:00 2001 From: Nicolas Date: Fri, 27 Sep 2024 15:02:30 +0200 Subject: [PATCH] add linting options (#214) Linter setup for the stabilization track --- .github/workflows/rust.yml | 47 +- Cargo.lock | 1209 ++++++++++++++++------------- Cargo.toml | 21 + examples/bevy_basic/Cargo.toml | 6 +- src/draw/displays.rs | 6 +- src/draw/displays_default/edge.rs | 26 +- src/draw/displays_default/node.rs | 7 +- src/draw/drawer.rs | 16 +- src/elements/edge.rs | 7 +- src/elements/node.rs | 10 +- src/graph.rs | 16 +- src/graph_view.rs | 43 +- src/metadata.rs | 8 +- src/transform.rs | 2 +- 14 files changed, 808 insertions(+), 616 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index b624997..6b0bc5c 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -1,32 +1,27 @@ -name: Rust +name: CI -on: - push: - branches: ["master"] - pull_request: - branches: ["master"] - -env: - CARGO_TERM_COLOR: always +on: [push, pull_request] jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Build - run: cargo build --verbose + ci: + name: ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, windows-latest, macos-latest] - lint: - runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - name: Lint - run: cargo clippy --verbose -- -D warnings + - name: Checkout code + uses: actions/checkout@v4 - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Test - run: cargo test --verbose + - name: cargo build + run: cargo build + + - name: cargo fmt + run: cargo fmt --all -- --check + + - name: cargo clippy + run: cargo clippy -- -D warnings + + - name: cargo test + run: cargo test diff --git a/Cargo.lock b/Cargo.lock index 67130fa..7fd5777 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -28,13 +28,29 @@ dependencies = [ "serde", ] +[[package]] +name = "accesskit" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6cf780eb737f2d4a49ffbd512324d53ad089070f813f7be7f99dbd5123a7f448" + [[package]] name = "accesskit_consumer" version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c17cca53c09fbd7288667b22a201274b9becaa27f0b91bf52a526db95de45e6" dependencies = [ - "accesskit", + "accesskit 0.12.3", +] + +[[package]] +name = "accesskit_consumer" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bdfa1638ddd6eb9c752def95568df8b3ad832df252e9156d2eb783b201ca8a9" +dependencies = [ + "accesskit 0.14.0", + "immutable-chunkmap", ] [[package]] @@ -43,20 +59,34 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd3b6ae1eabbfbced10e840fd3fce8a93ae84f174b3e4ba892ab7bcb42e477a7" dependencies = [ - "accesskit", - "accesskit_consumer", + "accesskit 0.12.3", + "accesskit_consumer 0.16.1", "objc2 0.3.0-beta.3.patch-leaks.3", "once_cell", ] +[[package]] +name = "accesskit_macos" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c236a84ff1111defc280cee755eaa953d0b24398786851b9d28322c6d3bb1ebd" +dependencies = [ + "accesskit 0.14.0", + "accesskit_consumer 0.22.0", + "objc2 0.5.2", + "objc2-app-kit", + "objc2-foundation", + "once_cell", +] + [[package]] name = "accesskit_unix" version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09f46c18d99ba61ad7123dd13eeb0c104436ab6af1df6a1cd8c11054ed394a08" dependencies = [ - "accesskit", - "accesskit_consumer", + "accesskit 0.12.3", + "accesskit_consumer 0.16.1", "async-channel", "async-once-cell", "atspi", @@ -72,38 +102,51 @@ version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "afcae27ec0974fc7c3b0b318783be89fd1b2e66dd702179fe600166a38ff4a0b" dependencies = [ - "accesskit", - "accesskit_consumer", + "accesskit 0.12.3", + "accesskit_consumer 0.16.1", "once_cell", "paste", "static_assertions", "windows 0.48.0", ] +[[package]] +name = "accesskit_windows" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d7f43d24b16b3e76bef248124fbfd2493c3a9860edb5aae1010c890e826de5e" +dependencies = [ + "accesskit 0.14.0", + "accesskit_consumer 0.22.0", + "paste", + "static_assertions", + "windows 0.54.0", +] + [[package]] name = "accesskit_winit" version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5284218aca17d9e150164428a0ebc7b955f70e3a9a78b4c20894513aabf98a67" dependencies = [ - "accesskit", - "accesskit_macos", + "accesskit 0.12.3", + "accesskit_macos 0.10.1", "accesskit_unix", - "accesskit_windows", - "winit", + "accesskit_windows 0.15.1", + "winit 0.29.15", ] [[package]] name = "accesskit_winit" -version = "0.17.0" +version = "0.20.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45f8f7c9f66d454d5fd8e344c8c8c7324b57194e1041b955519fc58a01e77a25" +checksum = "755535e6bf711a42dac28b888b884b10fc00ff4010d9d3bd871c5f5beae5aa78" dependencies = [ - "accesskit", - "accesskit_macos", - "accesskit_windows", + "accesskit 0.14.0", + "accesskit_macos 0.15.0", + "accesskit_windows 0.20.0", "raw-window-handle 0.6.2", - "winit", + "winit 0.30.5", ] [[package]] @@ -176,9 +219,30 @@ dependencies = [ "jni-sys", "libc", "log", - "ndk", + "ndk 0.8.0", + "ndk-context", + "ndk-sys 0.5.0+25.2.9519653", + "num_enum", + "thiserror", +] + +[[package]] +name = "android-activity" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef6978589202a00cd7e118380c448a08b6ed394c3a8df3a430d0898e3a42d046" +dependencies = [ + "android-properties", + "bitflags 2.6.0", + "cc", + "cesu8", + "jni", + "jni-sys", + "libc", + "log", + "ndk 0.9.0", "ndk-context", - "ndk-sys", + "ndk-sys 0.6.0+11769913", "num_enum", "thiserror", ] @@ -209,8 +273,8 @@ name = "animated_nodes" version = "0.1.0" dependencies = [ "eframe", - "egui 0.28.1", - "egui_graphs 0.21.1", + "egui", + "egui_graphs", "petgraph", ] @@ -280,7 +344,7 @@ checksum = "9fb4009533e8ff8f1450a5bcbc30f4242a1d34442221f72314bea1f5dc9c7f89" dependencies = [ "clipboard-win", "core-graphics", - "image 0.25.2", + "image", "log", "objc2 0.5.2", "objc2-app-kit", @@ -569,32 +633,38 @@ version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + [[package]] name = "basic" version = "0.1.0" dependencies = [ "eframe", - "egui 0.28.1", - "egui_graphs 0.21.1", + "egui", + "egui_graphs", "petgraph", ] [[package]] name = "bevy" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65b9eadaacf8fe971331bc3f250f35c18bc9dace3f96b483062f38ac07e3a1b4" +checksum = "043c9ad4b6fc4ca52d779873a8ca792a4e37842d07fce95363c9e17e36a1d8a0" dependencies = [ "bevy_internal", ] [[package]] name = "bevy_a11y" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd8ef2795f7f5c816a4eda04834083eb5a92e8fef603bc21d2091c6e3b63621a" +checksum = "ae1a976cb539d6a5a3ff579cdb78187a6bcfbffa7e8224ea28f23d8b983d9389" dependencies = [ - "accesskit", + "accesskit 0.14.0", "bevy_app", "bevy_derive", "bevy_ecs", @@ -602,44 +672,57 @@ dependencies = [ [[package]] name = "bevy_animation" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e553d68bc937586010ed2194ac66b751bc6238cf622b3ed5a86f4e1581e94509" +checksum = "93aef7d21a0342c24b05059493aa31d58f1798d34a2236569a8789b74df5a475" dependencies = [ "bevy_app", "bevy_asset", + "bevy_color", "bevy_core", + "bevy_derive", "bevy_ecs", "bevy_hierarchy", + "bevy_log", "bevy_math", "bevy_reflect", "bevy_render", "bevy_time", "bevy_transform", "bevy_utils", + "blake3", + "fixedbitset 0.5.7", + "petgraph", + "ron", + "serde", + "thiserror", + "thread_local", + "uuid", ] [[package]] name = "bevy_app" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab348a32e46d21c5d61794294a92d415a770d26c7ba8951830b127b40b53ccc4" +checksum = "a5361d0f8a8677a5d0102cfe7321a7ecd2a8b9a4f887ce0dde1059311cf9cd42" dependencies = [ "bevy_derive", "bevy_ecs", "bevy_reflect", "bevy_tasks", "bevy_utils", + "console_error_panic_hook", "downcast-rs", + "thiserror", "wasm-bindgen", "web-sys", ] [[package]] name = "bevy_asset" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50028e0d4f28a9f6aab48f61b688ba2793141188f88cdc9aa6c2bca2cc02ad35" +checksum = "60ec5ea257e1ebd3d411f669e29acf60beb715bebc7e1f374c17f49cd3aad46c" dependencies = [ "async-broadcast", "async-fs 2.1.2", @@ -647,7 +730,6 @@ dependencies = [ "bevy_app", "bevy_asset_macros", "bevy_ecs", - "bevy_log", "bevy_reflect", "bevy_tasks", "bevy_utils", @@ -662,6 +744,7 @@ dependencies = [ "ron", "serde", "thiserror", + "uuid", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -669,9 +752,9 @@ dependencies = [ [[package]] name = "bevy_asset_macros" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6617475908368418d815360148fdbb82f879dc255a70d2d7baa3766f0cd4bfd7" +checksum = "c9eb05ce838d282f09d83380b4d6432aec7519d421dee8c75cc20e6148237e6e" dependencies = [ "bevy_macro_utils", "proc-macro2", @@ -681,14 +764,15 @@ dependencies = [ [[package]] name = "bevy_audio" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0f12495e230cd5cf59c6051cdd820c97d7fe4f0597d4d9c3240c62e9c65b485" +checksum = "8ee31312a0e67f288fe12a1d9aa679dd0ba8a49e1e6fe5fcd2ba1aa1ea34e5ed" dependencies = [ "bevy_app", "bevy_asset", "bevy_derive", "bevy_ecs", + "bevy_hierarchy", "bevy_math", "bevy_reflect", "bevy_transform", @@ -703,52 +787,69 @@ version = "0.1.0" dependencies = [ "bevy", "bevy_egui", - "egui_graphs 0.19.0", + "egui_graphs", "petgraph", ] +[[package]] +name = "bevy_color" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04842e9d38a93f0c75ab46f7f404ea24ef57ad83dbd159e5b4b35318b02257bb" +dependencies = [ + "bevy_math", + "bevy_reflect", + "bytemuck", + "encase", + "serde", + "thiserror", + "wgpu-types", +] + [[package]] name = "bevy_core" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12b0042f241ba7cd61487aadd8addfb56f7eeb662d713ac1577026704508fc6c" +checksum = "de706862871a1fe99ea619bff2f99d73e43ad82f19ef866a9e19a14c957c8537" dependencies = [ "bevy_app", "bevy_ecs", - "bevy_math", "bevy_reflect", "bevy_tasks", "bevy_utils", - "bytemuck", + "uuid", ] [[package]] name = "bevy_core_pipeline" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48b7a471cb8ba665f12f7a167faa5566c11386f5bfc77d2e10bfde22b179f7b3" +checksum = "2f6e1e122ada4cd811442e083fb5ad3e325c59a87271d5ef57193f1c2cad7f8c" dependencies = [ "bevy_app", "bevy_asset", + "bevy_color", "bevy_core", "bevy_derive", "bevy_ecs", - "bevy_log", "bevy_math", "bevy_reflect", "bevy_render", "bevy_transform", "bevy_utils", "bitflags 2.6.0", + "nonmax", "radsort", "serde", + "smallvec", + "thiserror", ] [[package]] name = "bevy_derive" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0e01f8343f391e2d6a63b368b82fb5b252ed43c8713fc87f9a8f2d59407dd00" +checksum = "3fbfc33a4c6b80760bb8bf850a2cc65a1e031da62fd3ca8b552189104dc98514" dependencies = [ "bevy_macro_utils", "quote", @@ -757,14 +858,14 @@ dependencies = [ [[package]] name = "bevy_diagnostic" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1401cdccec7e49378d013dfb0ff62c251f85b3be19dcdf04cfd827f793d1ee9" +checksum = "bebb154e0cc78e3bbfbfdb42fb502b14c1cd47e72f16e6d4228dfe6233ba6cbd" dependencies = [ "bevy_app", "bevy_core", "bevy_ecs", - "bevy_log", + "bevy_tasks", "bevy_time", "bevy_utils", "const-fnv1a-hash", @@ -773,29 +874,30 @@ dependencies = [ [[package]] name = "bevy_ecs" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98e612a8e7962ead849e370f3a7e972b88df879ced05cd9dad6a0286d14650cf" +checksum = "9ee4222406637f3c8e3991a99788cfcde76097bf997c311f1b6297364057483f" dependencies = [ - "async-channel", + "arrayvec", "bevy_ecs_macros", "bevy_ptr", "bevy_reflect", "bevy_tasks", "bevy_utils", - "downcast-rs", - "fixedbitset", - "rustc-hash", + "bitflags 2.6.0", + "concurrent-queue", + "fixedbitset 0.5.7", + "nonmax", + "petgraph", "serde", "thiserror", - "thread_local", ] [[package]] name = "bevy_ecs_macros" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "807b5106c3410e58f4f523b55ea3c071e2a09e31e9510f3c22021c6a04732b5b" +checksum = "36b573430b67aff7bde8292257494f39343401379bfbda64035ba4918bba7b20" dependencies = [ "bevy_macro_utils", "proc-macro2", @@ -805,30 +907,32 @@ dependencies = [ [[package]] name = "bevy_egui" -version = "0.26.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44197ead4c9e40303fa5056be44de593f17151bd08d1d9dbe7b127700e1b9d01" +checksum = "128438a8163e49528207aabf20d3ff0890fd6be0f0054626915995efac87922b" dependencies = [ "arboard", "bevy", + "bytemuck", "console_log", "crossbeam-channel", - "egui 0.26.2", + "egui", "js-sys", "log", "thread_local", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "webbrowser 0.8.15", - "winit", + "webbrowser", + "wgpu-types", + "winit 0.30.5", ] [[package]] name = "bevy_encase_derive" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "887087a5e522d9f20733a84dd7e6e9ca04cd8fdfac659220ed87d675eebc83a7" +checksum = "d06c9693847a2a6ea61d6b86288dd4d8b6a79f05d4bf6e27b96d4f5c8d552fe4" dependencies = [ "bevy_macro_utils", "encase_derive_impl", @@ -836,14 +940,13 @@ dependencies = [ [[package]] name = "bevy_gilrs" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d133c65ab756f130c65cf00f37dc293fb9a9336c891802baf006c63e300d0e2" +checksum = "0422ccb3ce0f79b264100cf064fdc5ef65cef5c7d51bf6378058f9b96fea4183" dependencies = [ "bevy_app", "bevy_ecs", "bevy_input", - "bevy_log", "bevy_time", "bevy_utils", "gilrs", @@ -852,31 +955,32 @@ dependencies = [ [[package]] name = "bevy_gizmos" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "054df3550a9d423a961de65b459946ff23304f97f25af8a62c23f4259db8506d" +checksum = "dfe32af0666d8d8a7fd6eb6b5e41eceefdc6f2e5441c74b812e8f0902a9d7f52" dependencies = [ "bevy_app", "bevy_asset", - "bevy_core", + "bevy_color", "bevy_core_pipeline", "bevy_ecs", "bevy_gizmos_macros", - "bevy_log", "bevy_math", "bevy_pbr", "bevy_reflect", "bevy_render", "bevy_sprite", + "bevy_time", "bevy_transform", "bevy_utils", + "bytemuck", ] [[package]] name = "bevy_gizmos_macros" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abdcaf74d8cd34aa5c3293527e7a012826840886ad3496c1b963ed8b66b1619f" +checksum = "906b052f8cf3f3983f0f6df625fb10cbd9b27d44e362a327dc1ed51300d362bc" dependencies = [ "bevy_macro_utils", "proc-macro2", @@ -886,19 +990,19 @@ dependencies = [ [[package]] name = "bevy_gltf" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21ecf404295055deb7fe037495891bc135ca10d46bc5b6c55f9ab7b7ebc61d31" +checksum = "d6adbd325b90e3c700d0966b5404e226c7deec1b8bda8f36832788d7b435b9b8" dependencies = [ - "base64", + "base64 0.22.1", "bevy_animation", "bevy_app", "bevy_asset", + "bevy_color", "bevy_core", "bevy_core_pipeline", "bevy_ecs", "bevy_hierarchy", - "bevy_log", "bevy_math", "bevy_pbr", "bevy_reflect", @@ -911,28 +1015,29 @@ dependencies = [ "percent-encoding", "serde", "serde_json", + "smallvec", "thiserror", ] [[package]] name = "bevy_hierarchy" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb3dfad24866a6713dafa3065a91c5cf5e355f6e1b191c25d704ae54185246c" +checksum = "a88b912b37e1bc4dbb2aa40723199f74c8b06c4fbb6da0bb4585131df28ef66e" dependencies = [ "bevy_app", "bevy_core", "bevy_ecs", - "bevy_log", "bevy_reflect", "bevy_utils", + "smallvec", ] [[package]] name = "bevy_input" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47f2b2b3df168c6ef661d25e09abf5bd4fecaacd400f27e5db650df1c3fa3a3b" +checksum = "8dd3a54e67cc3ba17971de7b1a7e64eda84493c1e7bb6bfa11c6cf8ac124377b" dependencies = [ "bevy_app", "bevy_ecs", @@ -945,15 +1050,16 @@ dependencies = [ [[package]] name = "bevy_internal" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f58ec0ce77603df9474cde61f429126bfe06eb79094440e9141afb4217751c79" +checksum = "45d435cac77c568f3aef65f786a5fee0e53c81950c5258182dd2c1d6cd6c4fec" dependencies = [ "bevy_a11y", "bevy_animation", "bevy_app", "bevy_asset", "bevy_audio", + "bevy_color", "bevy_core", "bevy_core_pipeline", "bevy_derive", @@ -972,6 +1078,7 @@ dependencies = [ "bevy_render", "bevy_scene", "bevy_sprite", + "bevy_state", "bevy_tasks", "bevy_text", "bevy_time", @@ -984,60 +1091,63 @@ dependencies = [ [[package]] name = "bevy_log" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5eea6c527fd828b7fef8d0f518167f27f405b904a16f227b644687d3f46a809" +checksum = "67240c7596c8f0653e50fce35a60196516817449235193246599facba9002e02" dependencies = [ "android_log-sys", "bevy_app", "bevy_ecs", "bevy_utils", - "console_error_panic_hook", - "tracing-log 0.1.4", + "tracing-log", "tracing-subscriber", "tracing-wasm", ] [[package]] name = "bevy_macro_utils" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb270c98a96243b29465139ed10bda2f675d00a11904f6588a5f7fc4774119c7" +checksum = "bfc65e570012e64a21f3546df68591aaede8349e6174fb500071677f54f06630" dependencies = [ "proc-macro2", "quote", - "rustc-hash", "syn 2.0.74", - "toml_edit 0.21.1", + "toml_edit 0.22.21", ] [[package]] name = "bevy_math" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f06daa26ffb82d90ba772256c0ba286f6c305c392f6976c9822717974805837c" +checksum = "5421792749dda753ab3718e77d27bfce38443daf1850b836b97530b6245a4581" dependencies = [ + "bevy_reflect", "glam", + "rand", "serde", + "smallvec", + "thiserror", ] [[package]] name = "bevy_mikktspace" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0d7ef7f2a826d0b19f059035831ce00a5e930435cc53c61e045773d0483f67a" +checksum = "66cf695a264b043f2c4edb92dd5c742e6892180d2b30dac870012d153f8557ea" dependencies = [ "glam", ] [[package]] name = "bevy_pbr" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75b29c80269fa6db55c9e33701edd3ecb73d8866ca8cb814d49a9d3fb72531b6" +checksum = "4dccaa3c945f19834dcf7cd8eb358236dbf0fc4000dacbc7710564e7856714db" dependencies = [ "bevy_app", "bevy_asset", + "bevy_color", "bevy_core_pipeline", "bevy_derive", "bevy_ecs", @@ -1049,41 +1159,44 @@ dependencies = [ "bevy_window", "bitflags 2.6.0", "bytemuck", - "fixedbitset", + "fixedbitset 0.5.7", + "nonmax", "radsort", "smallvec", - "thread_local", + "static_assertions", ] [[package]] name = "bevy_ptr" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8050e2869fe341db6874203b5a01ff12673807a2c7c80cb829f6c7bea6997268" +checksum = "61baa1bdc1f4a7ac2c18217570a7cc04e1cd54d38456e91782f0371c79afe0a8" [[package]] name = "bevy_reflect" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccbd7de21d586457a340a0962ad0747dc5098ff925eb6b27a918c4bdd8252f7b" +checksum = "2508785a4a5809f25a237eec4fee2c91a4dbcf81324b2bbc2d6c52629e603781" dependencies = [ - "bevy_math", "bevy_ptr", "bevy_reflect_derive", "bevy_utils", "downcast-rs", "erased-serde", "glam", + "petgraph", "serde", + "smallvec", "smol_str", "thiserror", + "uuid", ] [[package]] name = "bevy_reflect_derive" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ce33051bd49036d4a5a62aa3f2068672ec55f3ebe92aa0d003a341f15cc37ac" +checksum = "967d5da1882ec3bb3675353915d3da909cafac033cbf31e58727824a1ad2a288" dependencies = [ "bevy_macro_utils", "proc-macro2", @@ -1094,19 +1207,20 @@ dependencies = [ [[package]] name = "bevy_render" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b2c4b644c739c0b474b6f8f7b0bc68ac13d83b59688781e9a7753c52780177" +checksum = "836cf8a513db013cbe7d55a331060088efd407e49fd5b05c8404700cd82e7619" dependencies = [ "async-channel", "bevy_app", "bevy_asset", + "bevy_color", "bevy_core", "bevy_derive", + "bevy_diagnostic", "bevy_ecs", "bevy_encase_derive", "bevy_hierarchy", - "bevy_log", "bevy_math", "bevy_mikktspace", "bevy_reflect", @@ -1123,25 +1237,27 @@ dependencies = [ "encase", "futures-lite 2.3.0", "hexasphere", - "image 0.24.9", + "image", "js-sys", "ktx2", - "naga 0.19.2", + "naga", "naga_oil", + "nonmax", "ruzstd", + "send_wrapper", "serde", + "smallvec", "thiserror", - "thread_local", "wasm-bindgen", "web-sys", - "wgpu 0.19.4", + "wgpu", ] [[package]] name = "bevy_render_macros" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "720b88406e786e378829b7d43c1ffb5300186912b99904d0d4d8ec6698a4f210" +checksum = "cbc24e0e95061a38a7744218b9c7e52e4c08b53f1499f33480e2b749f3864432" dependencies = [ "bevy_macro_utils", "proc-macro2", @@ -1151,9 +1267,9 @@ dependencies = [ [[package]] name = "bevy_scene" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3d2caa1bfe7542dbe2c62e1bcc10791ba181fb744d2fe6711d1d373354da7c" +checksum = "8ec57a72d75273bdbb6154390688fd07ba79ae9f6f99476d1937f799c736c2da" dependencies = [ "bevy_app", "bevy_asset", @@ -1171,16 +1287,16 @@ dependencies = [ [[package]] name = "bevy_sprite" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cad1b555161f50e5d62b7fdf7ebeef1b24338aae7a88e51985da9553cd60ddf" +checksum = "e045b4d8cc8e7422a4c29b1eadbe224f5cc42f170b88d43e7535892fcede3840" dependencies = [ "bevy_app", "bevy_asset", + "bevy_color", "bevy_core_pipeline", "bevy_derive", "bevy_ecs", - "bevy_log", "bevy_math", "bevy_reflect", "bevy_render", @@ -1188,22 +1304,47 @@ dependencies = [ "bevy_utils", "bitflags 2.6.0", "bytemuck", - "fixedbitset", + "fixedbitset 0.5.7", "guillotiere", "radsort", "rectangle-pack", "thiserror", ] +[[package]] +name = "bevy_state" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25335bfa58cc22371182335c3b133017293bc9b6d3308402fd4d1f978b83f937" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_hierarchy", + "bevy_reflect", + "bevy_state_macros", + "bevy_utils", +] + +[[package]] +name = "bevy_state_macros" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dee600b659c739f1911f997a81611fec0a1832cf731727956e5fa4e7532b4dd5" +dependencies = [ + "bevy_macro_utils", + "proc-macro2", + "quote", + "syn 2.0.74", +] + [[package]] name = "bevy_tasks" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f07fcc4969b357de143509925b39c9a2c56eaa8750828d97f319ca9ed41897cb" +checksum = "77865f310b1fc48fb05b7c4adbe76607ec01d0c14f8ab4caba4d714c86439946" dependencies = [ "async-channel", "async-executor", - "async-task", "concurrent-queue", "futures-lite 2.3.0", "wasm-bindgen-futures", @@ -1211,13 +1352,14 @@ dependencies = [ [[package]] name = "bevy_text" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4e8456ae0bea7d6b7621e42c1c12bf66c0891381e62c948ab23920673ce611c" +checksum = "b661db828fd423fc41a4ccf43aa4d1b8e50e75057ec40453317d0d761e8ad62d" dependencies = [ "ab_glyph", "bevy_app", "bevy_asset", + "bevy_color", "bevy_ecs", "bevy_math", "bevy_reflect", @@ -1233,9 +1375,9 @@ dependencies = [ [[package]] name = "bevy_time" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38ea5ae9fe7f56f555dbb05a88d34931907873e3f0c7dc426591839eef72fe3e" +checksum = "f4e4d53ec32a1b16492396951d04de0d2d90e924bf9adcb8d1adacab5ab6c17c" dependencies = [ "bevy_app", "bevy_ecs", @@ -1247,9 +1389,9 @@ dependencies = [ [[package]] name = "bevy_transform" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0d51a1f332cc00939d2f19ed6b909e5ed7037e39c7e25cc86930d79d432163e" +checksum = "d5493dce84427d00a9266e8e4386d738a72ee8640423b62dfcecb6dfccbfe0d2" dependencies = [ "bevy_app", "bevy_ecs", @@ -1261,19 +1403,19 @@ dependencies = [ [[package]] name = "bevy_ui" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bbc30be39cfbfa3a073b541d22aea43ab14452dea12d7411ce201df17ff7b1" +checksum = "56d2cba6603b39a3765f043212ae530e25550af168a7eec6b23b9b93c19bc5f7" dependencies = [ "bevy_a11y", "bevy_app", "bevy_asset", + "bevy_color", "bevy_core_pipeline", "bevy_derive", "bevy_ecs", "bevy_hierarchy", "bevy_input", - "bevy_log", "bevy_math", "bevy_reflect", "bevy_render", @@ -1283,34 +1425,32 @@ dependencies = [ "bevy_utils", "bevy_window", "bytemuck", + "nonmax", + "smallvec", "taffy", "thiserror", ] [[package]] name = "bevy_utils" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a9f845a985c00e0ee8dc2d8af3f417be925fb52aad4bda5b96e2e58a2b4d2eb" +checksum = "ffb0ec333b5965771153bd746f92ffd8aeeb9d008a8620ffd9ed474859381a5e" dependencies = [ "ahash", "bevy_utils_proc_macros", "getrandom", "hashbrown", - "nonmax", - "petgraph", - "smallvec", - "thiserror", + "thread_local", "tracing", - "uuid", - "web-time", + "web-time 1.1.0", ] [[package]] name = "bevy_utils_proc_macros" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef158627f30503d5c18c20c60b444829f698d343516eeaf6eeee078c9a45163" +checksum = "38f1ab8f2f6f58439d260081d89a42b02690e5fdd64f814edc9417d33fcf2857" dependencies = [ "proc-macro2", "quote", @@ -1319,14 +1459,13 @@ dependencies = [ [[package]] name = "bevy_window" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "976202d2ed838176595b550ac654b15ae236e0178a6f19a94ca6d58f2a96ca60" +checksum = "c89e88a20db64ea8204540afb4699295947c454738fd50293f7b32ab8be857a6" dependencies = [ "bevy_a11y", "bevy_app", "bevy_ecs", - "bevy_input", "bevy_math", "bevy_reflect", "bevy_utils", @@ -1336,11 +1475,11 @@ dependencies = [ [[package]] name = "bevy_winit" -version = "0.13.2" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa66539aa93d8522b146bf82de429714ea6370a6061fc1f1ff7bcacd4e64c6c4" +checksum = "d0bef8ec3e4b45db943ad4d1c0bf59b09e382ce0651a706e2f33a70fa955303c" dependencies = [ - "accesskit_winit 0.17.0", + "accesskit_winit 0.20.4", "approx", "bevy_a11y", "bevy_app", @@ -1348,15 +1487,18 @@ dependencies = [ "bevy_ecs", "bevy_hierarchy", "bevy_input", + "bevy_log", "bevy_math", + "bevy_reflect", "bevy_tasks", "bevy_utils", "bevy_window", + "cfg-if", "crossbeam-channel", "raw-window-handle 0.6.2", "wasm-bindgen", "web-sys", - "winit", + "winit 0.30.5", ] [[package]] @@ -1676,12 +1818,6 @@ dependencies = [ "unicode-width", ] -[[package]] -name = "color_quant" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" - [[package]] name = "colorchoice" version = "1.0.2" @@ -1865,7 +2001,7 @@ dependencies = [ "js-sys", "libc", "mach2", - "ndk", + "ndk 0.8.0", "ndk-context", "oboe", "wasm-bindgen", @@ -1966,9 +2102,9 @@ checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991" [[package]] name = "d3d12" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e3d747f100290a1ca24b752186f61f6637e1deffe3bf6320de6fcb29510a307" +checksum = "b28bfe653d79bd16c77f659305b195b82bb5ce0c0eb2a4846b82ddbd77586813" dependencies = [ "bitflags 2.6.0", "libloading 0.8.5", @@ -1993,8 +2129,8 @@ version = "0.1.0" dependencies = [ "crossbeam", "eframe", - "egui 0.28.1", - "egui_graphs 0.21.1", + "egui", + "egui_graphs", "fdg", "petgraph", "rand", @@ -2012,17 +2148,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "derive_more" -version = "0.99.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.74", -] - [[package]] name = "digest" version = "0.10.7" @@ -2064,13 +2189,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" [[package]] -name = "ecolor" -version = "0.26.2" +name = "dpi" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03cfe80b1890e1a8cdbffc6044d6872e814aaf6011835a2a5e2db0e5c5c4ef4e" -dependencies = [ - "bytemuck", -] +checksum = "f25c0e292a7ca6d6498557ff1df68f32c99850012b6ea401cf8daf771f22ff53" [[package]] name = "ecolor" @@ -2079,7 +2201,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e6b451ff1143f6de0f33fc7f1b68fecfd2c7de06e104de96c4514de3f5396f8" dependencies = [ "bytemuck", - "emath 0.28.1", + "emath", "serde", ] @@ -2092,14 +2214,14 @@ dependencies = [ "ahash", "bytemuck", "document-features", - "egui 0.28.1", + "egui", "egui-wgpu", "egui-winit", "egui_glow", "glow", "glutin", "glutin-winit", - "image 0.25.2", + "image", "js-sys", "log", "objc2 0.5.2", @@ -2113,20 +2235,9 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "web-time", + "web-time 0.2.4", "winapi", - "winit", -] - -[[package]] -name = "egui" -version = "0.26.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180f595432a5b615fc6b74afef3955249b86cfea72607b40740a4cd60d5297d0" -dependencies = [ - "ahash", - "epaint 0.26.2", - "nohash-hasher", + "winit 0.29.15", ] [[package]] @@ -2135,10 +2246,10 @@ version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20c97e70a2768de630f161bb5392cbd3874fcf72868f14df0e002e82e06cb798" dependencies = [ - "accesskit", + "accesskit 0.12.3", "ahash", - "emath 0.28.1", - "epaint 0.28.1", + "emath", + "epaint", "log", "nohash-hasher", "serde", @@ -2153,14 +2264,14 @@ dependencies = [ "ahash", "bytemuck", "document-features", - "egui 0.28.1", - "epaint 0.28.1", + "egui", + "epaint", "log", "thiserror", "type-map", - "web-time", - "wgpu 0.20.1", - "winit", + "web-time 0.2.4", + "wgpu", + "winit 0.29.15", ] [[package]] @@ -2172,13 +2283,13 @@ dependencies = [ "accesskit_winit 0.16.1", "ahash", "arboard", - "egui 0.28.1", + "egui", "log", "raw-window-handle 0.6.2", "smithay-clipboard", - "web-time", - "webbrowser 1.0.1", - "winit", + "web-time 0.2.4", + "webbrowser", + "winit 0.29.15", ] [[package]] @@ -2189,24 +2300,13 @@ checksum = "4e2bdc8b38cfa17cc712c4ae079e30c71c00cd4c2763c9e16dc7860a02769103" dependencies = [ "ahash", "bytemuck", - "egui 0.28.1", + "egui", "glow", "log", "memoffset 0.9.1", "wasm-bindgen", "web-sys", - "winit", -] - -[[package]] -name = "egui_graphs" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12dc4a9b44d5e54d2173e07dd67da1cfff199d6b3dd7f0ccb2c512dce548e280" -dependencies = [ - "egui 0.26.2", - "petgraph", - "rand", + "winit 0.29.15", ] [[package]] @@ -2214,7 +2314,7 @@ name = "egui_graphs" version = "0.21.1" dependencies = [ "crossbeam", - "egui 0.28.1", + "egui", "petgraph", "rand", "serde", @@ -2227,15 +2327,6 @@ version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" -[[package]] -name = "emath" -version = "0.26.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6916301ecf80448f786cdf3eb51d9dbdd831538732229d49119e2d4312eaaf09" -dependencies = [ - "bytemuck", -] - [[package]] name = "emath" version = "0.28.1" @@ -2248,9 +2339,9 @@ dependencies = [ [[package]] name = "encase" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95ed933078d2e659745df651f4c180511cd582e5b9414ff896e7d50d207e3103" +checksum = "5a9299a95fa5671ddf29ecc22b00e121843a65cb9ff24911e394b4ae556baf36" dependencies = [ "const_panic", "encase_derive", @@ -2260,18 +2351,18 @@ dependencies = [ [[package]] name = "encase_derive" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4ce1449c7d19eba6cc0abd231150ad81620a8dce29601d7f8d236e5d431d72a" +checksum = "07e09decb3beb1fe2db6940f598957b2e1f7df6206a804d438ff6cb2a9cddc10" dependencies = [ "encase_derive_impl", ] [[package]] name = "encase_derive_impl" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92959a9e8d13eaa13b8ae8c7b583c3bf1669ca7a8e7708a088d12587ba86effc" +checksum = "fd31dbbd9743684d339f907a87fe212cb7b51d75b9e8e74181fe363199ee9b47" dependencies = [ "proc-macro2", "quote", @@ -2333,21 +2424,6 @@ dependencies = [ "log", ] -[[package]] -name = "epaint" -version = "0.26.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77b9fdf617dd7f58b0c8e6e9e4a1281f730cde0831d40547da446b2bb76a47af" -dependencies = [ - "ab_glyph", - "ahash", - "bytemuck", - "ecolor 0.26.2", - "emath 0.26.2", - "nohash-hasher", - "parking_lot", -] - [[package]] name = "epaint" version = "0.28.1" @@ -2357,8 +2433,8 @@ dependencies = [ "ab_glyph", "ahash", "bytemuck", - "ecolor 0.28.1", - "emath 0.28.1", + "ecolor", + "emath", "log", "nohash-hasher", "parking_lot", @@ -2487,6 +2563,12 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" +[[package]] +name = "fixedbitset" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" + [[package]] name = "flate2" version = "1.0.31" @@ -2502,8 +2584,8 @@ name = "flex_nodes" version = "0.1.0" dependencies = [ "eframe", - "egui 0.28.1", - "egui_graphs 0.21.1", + "egui", + "egui_graphs", "petgraph", ] @@ -2697,11 +2779,12 @@ dependencies = [ [[package]] name = "glam" -version = "0.25.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "151665d9be52f9bb40fc7966565d39666f2d1e69233571b71b87791c7e0528b3" +checksum = "9e05e7e6723e3455f4818c7b26e855439f7546cf617ef669d1adedb8669e5cb9" dependencies = [ "bytemuck", + "rand", "serde", ] @@ -2792,7 +2875,7 @@ dependencies = [ "cfg_aliases 0.1.1", "glutin", "raw-window-handle 0.5.2", - "winit", + "winit 0.29.15", ] [[package]] @@ -2867,17 +2950,6 @@ dependencies = [ "windows 0.52.0", ] -[[package]] -name = "gpu-descriptor" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc11df1ace8e7e564511f53af41f3e42ddc95b56fd07b3f4445d2a6048bc682c" -dependencies = [ - "bitflags 2.6.0", - "gpu-descriptor-types 0.1.2", - "hashbrown", -] - [[package]] name = "gpu-descriptor" version = "0.3.0" @@ -2885,19 +2957,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c08c1f623a8d0b722b8b99f821eb0ba672a1618f0d3b16ddbee1cedd2dd8557" dependencies = [ "bitflags 2.6.0", - "gpu-descriptor-types 0.2.0", + "gpu-descriptor-types", "hashbrown", ] -[[package]] -name = "gpu-descriptor-types" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bf0b36e6f090b7e1d8a4b49c0cb81c1f8376f72198c65dd3ad9ff3556b8b78c" -dependencies = [ - "bitflags 2.6.0", -] - [[package]] name = "gpu-descriptor-types" version = "0.2.0" @@ -2909,9 +2972,9 @@ dependencies = [ [[package]] name = "grid" -version = "0.10.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eec1c01eb1de97451ee0d60de7d81cf1e72aabefb021616027f3d1c3ec1c723c" +checksum = "be136d9dacc2a13cc70bb6c8f902b414fb2641f8db1314637c6b7933411a8f82" [[package]] name = "guillotiere" @@ -2969,9 +3032,9 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "hexasphere" -version = "10.0.0" +version = "12.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f33ddb7f7143d9e703c072e88b98cd8b9719f174137a671429351bd2ee43c02a" +checksum = "edd6b038160f086b0a7496edae34169ae22f328793cbe2b627a5a3d8373748ec" dependencies = [ "constgebra", "glam", @@ -3021,28 +3084,24 @@ dependencies = [ [[package]] name = "image" -version = "0.24.9" +version = "0.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d" +checksum = "99314c8a2152b8ddb211f924cdae532d8c5e4c8bb54728e12fff1b0cd5963a10" dependencies = [ "bytemuck", - "byteorder", - "color_quant", + "byteorder-lite", "num-traits", "png", + "tiff", ] [[package]] -name = "image" -version = "0.25.2" +name = "immutable-chunkmap" +version = "2.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99314c8a2152b8ddb211f924cdae532d8c5e4c8bb54728e12fff1b0cd5963a10" +checksum = "4419f022e55cc63d5bbd6b44b71e1d226b9c9480a47824c706e9d54e5c40c5eb" dependencies = [ - "bytemuck", - "byteorder-lite", - "num-traits", - "png", - "tiff", + "arrayvec", ] [[package]] @@ -3098,8 +3157,8 @@ name = "interactive" version = "0.1.0" dependencies = [ "eframe", - "egui 0.28.1", - "egui_graphs 0.21.1", + "egui", + "egui_graphs", "petgraph", ] @@ -3222,8 +3281,8 @@ name = "label_change" version = "0.1.0" dependencies = [ "eframe", - "egui 0.28.1", - "egui_graphs 0.21.1", + "egui", + "egui_graphs", "petgraph", ] @@ -3407,21 +3466,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "metal" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c43f73953f8cbe511f021b58f18c3ce1c3d1ae13fe953293e13345bf83217f25" -dependencies = [ - "bitflags 2.6.0", - "block", - "core-graphics-types", - "foreign-types", - "log", - "objc", - "paste", -] - [[package]] name = "metal" version = "0.28.0" @@ -3458,32 +3502,11 @@ name = "multiple" version = "0.1.0" dependencies = [ "eframe", - "egui 0.28.1", - "egui_graphs 0.21.1", + "egui", + "egui_graphs", "petgraph", ] -[[package]] -name = "naga" -version = "0.19.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50e3524642f53d9af419ab5e8dd29d3ba155708267667c2f3f06c88c9e130843" -dependencies = [ - "bit-set", - "bitflags 2.6.0", - "codespan-reporting", - "hexf-parse", - "indexmap", - "log", - "num-traits", - "pp-rs", - "rustc-hash", - "spirv", - "termcolor", - "thiserror", - "unicode-xid", -] - [[package]] name = "naga" version = "0.20.0" @@ -3498,6 +3521,7 @@ dependencies = [ "indexmap", "log", "num-traits", + "pp-rs", "rustc-hash", "spirv", "termcolor", @@ -3507,15 +3531,15 @@ dependencies = [ [[package]] name = "naga_oil" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ea62ae0f2787456afca7209ca180522b41f00cbe159ee369eba1e07d365cd1" +checksum = "275d9720a7338eedac966141089232514c84d76a246a58ef501af88c5edf402f" dependencies = [ "bit-set", "codespan-reporting", "data-encoding", "indexmap", - "naga 0.19.2", + "naga", "once_cell", "regex", "regex-syntax 0.8.4", @@ -3563,13 +3587,28 @@ dependencies = [ "bitflags 2.6.0", "jni-sys", "log", - "ndk-sys", + "ndk-sys 0.5.0+25.2.9519653", "num_enum", "raw-window-handle 0.5.2", "raw-window-handle 0.6.2", "thiserror", ] +[[package]] +name = "ndk" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" +dependencies = [ + "bitflags 2.6.0", + "jni-sys", + "log", + "ndk-sys 0.6.0+11769913", + "num_enum", + "raw-window-handle 0.6.2", + "thiserror", +] + [[package]] name = "ndk-context" version = "0.1.1" @@ -3585,6 +3624,15 @@ dependencies = [ "jni-sys", ] +[[package]] +name = "ndk-sys" +version = "0.6.0+11769913" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" +dependencies = [ + "jni-sys", +] + [[package]] name = "nix" version = "0.26.4" @@ -3727,7 +3775,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" dependencies = [ "malloc_buf", - "objc_exception", ] [[package]] @@ -3789,6 +3836,30 @@ dependencies = [ "objc2-quartz-core", ] +[[package]] +name = "objc2-cloud-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" +dependencies = [ + "bitflags 2.6.0", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-core-location", + "objc2-foundation", +] + +[[package]] +name = "objc2-contacts" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889" +dependencies = [ + "block2 0.5.1", + "objc2 0.5.2", + "objc2-foundation", +] + [[package]] name = "objc2-core-data" version = "0.2.2" @@ -3813,6 +3884,18 @@ dependencies = [ "objc2-metal", ] +[[package]] +name = "objc2-core-location" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781" +dependencies = [ + "block2 0.5.1", + "objc2 0.5.2", + "objc2-contacts", + "objc2-foundation", +] + [[package]] name = "objc2-encode" version = "2.0.0-pre.2" @@ -3842,10 +3925,23 @@ checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" dependencies = [ "bitflags 2.6.0", "block2 0.5.1", + "dispatch", "libc", "objc2 0.5.2", ] +[[package]] +name = "objc2-link-presentation" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398" +dependencies = [ + "block2 0.5.1", + "objc2 0.5.2", + "objc2-app-kit", + "objc2-foundation", +] + [[package]] name = "objc2-metal" version = "0.2.2" @@ -3872,12 +3968,58 @@ dependencies = [ ] [[package]] -name = "objc_exception" -version = "0.1.2" +name = "objc2-symbols" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" +checksum = "0a684efe3dec1b305badae1a28f6555f6ddd3bb2c2267896782858d5a78404dc" dependencies = [ - "cc", + "objc2 0.5.2", + "objc2-foundation", +] + +[[package]] +name = "objc2-ui-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" +dependencies = [ + "bitflags 2.6.0", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-cloud-kit", + "objc2-core-data", + "objc2-core-image", + "objc2-core-location", + "objc2-foundation", + "objc2-link-presentation", + "objc2-quartz-core", + "objc2-symbols", + "objc2-uniform-type-identifiers", + "objc2-user-notifications", +] + +[[package]] +name = "objc2-uniform-type-identifiers" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe" +dependencies = [ + "block2 0.5.1", + "objc2 0.5.2", + "objc2-foundation", +] + +[[package]] +name = "objc2-user-notifications" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" +dependencies = [ + "bitflags 2.6.0", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-core-location", + "objc2-foundation", ] [[package]] @@ -3887,7 +4029,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8b61bebd49e5d43f5f8cc7ee2891c16e0f41ec7954d36bcb6c14c5e0de867fb" dependencies = [ "jni", - "ndk", + "ndk 0.8.0", "ndk-context", "num-derive", "num-traits", @@ -3999,12 +4141,32 @@ version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ - "fixedbitset", + "fixedbitset 0.4.2", "indexmap", "serde", "serde_derive", ] +[[package]] +name = "pin-project" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.74", +] + [[package]] name = "pin-project-lite" version = "0.2.14" @@ -4165,8 +4327,8 @@ name = "rainbow_edges" version = "0.1.0" dependencies = [ "eframe", - "egui 0.28.1", - "egui_graphs 0.21.1", + "egui", + "egui_graphs", "petgraph", ] @@ -4339,12 +4501,13 @@ checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832" [[package]] name = "rodio" -version = "0.17.3" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b1bb7b48ee48471f55da122c0044fcc7600cfcc85db88240b89cb832935e611" +checksum = "d1fceb9d127d515af1586d8d0cc601e1245bdb0af38e75c865a156290184f5b3" dependencies = [ "cpal", "lewton", + "thiserror", ] [[package]] @@ -4353,7 +4516,7 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" dependencies = [ - "base64", + "base64 0.21.7", "bitflags 2.6.0", "serde", "serde_derive", @@ -4394,12 +4557,10 @@ dependencies = [ [[package]] name = "ruzstd" -version = "0.5.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58c4eb8a81997cf040a091d1f7e1938aeab6749d3a0dfa73af43cdc32393483d" +checksum = "99c3938e133aac070997ddc684d4b393777d293ba170f2988c8fd5ea2ad4ce21" dependencies = [ - "byteorder", - "derive_more", "twox-hash", ] @@ -4452,6 +4613,25 @@ dependencies = [ "tiny-skia", ] +[[package]] +name = "sctk-adwaita" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6277f0217056f77f1d8f49f2950ac6c278c0d607c45f5ee99328d792ede24ec" +dependencies = [ + "ab_glyph", + "log", + "memmap2", + "smithay-client-toolkit 0.19.2", + "tiny-skia", +] + +[[package]] +name = "send_wrapper" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" + [[package]] name = "serde" version = "1.0.208" @@ -4572,9 +4752,6 @@ name = "smallvec" version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" -dependencies = [ - "serde", -] [[package]] name = "smithay-client-toolkit" @@ -4721,13 +4898,14 @@ dependencies = [ [[package]] name = "taffy" -version = "0.3.19" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1315457ccd9c3def787a18fae91914e623e4dcff019b64ce39f5268ded53d3d" +checksum = "9cb893bff0f80ae17d3a57e030622a967b8dbc90e38284d9b4b1442e23873c94" dependencies = [ "arrayvec", "grid", "num-traits", + "serde", "slotmap", ] @@ -4848,7 +5026,7 @@ checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ "indexmap", "toml_datetime", - "winnow", + "winnow 0.5.40", ] [[package]] @@ -4859,7 +5037,18 @@ checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ "indexmap", "toml_datetime", - "winnow", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b072cee73c449a636ffd6f32bd8de3a9f7119139aff882f44943ce2986dc5cf" +dependencies = [ + "indexmap", + "toml_datetime", + "winnow 0.6.18", ] [[package]] @@ -4894,17 +5083,6 @@ dependencies = [ "valuable", ] -[[package]] -name = "tracing-log" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" -dependencies = [ - "log", - "once_cell", - "tracing-core", -] - [[package]] name = "tracing-log" version = "0.2.0" @@ -4931,7 +5109,7 @@ dependencies = [ "thread_local", "tracing", "tracing-core", - "tracing-log 0.2.0", + "tracing-log", ] [[package]] @@ -4998,8 +5176,8 @@ name = "undirected" version = "0.1.0" dependencies = [ "eframe", - "egui 0.28.1", - "egui_graphs 0.21.1", + "egui", + "egui_graphs", "petgraph", ] @@ -5181,8 +5359,8 @@ name = "wasm_custom_draw" version = "0.1.0" dependencies = [ "eframe", - "egui 0.28.1", - "egui_graphs 0.21.1", + "egui", + "egui_graphs", "env_logger", "getrandom", "instant", @@ -5276,6 +5454,19 @@ dependencies = [ "wayland-scanner", ] +[[package]] +name = "wayland-protocols-plasma" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f79f2d57c7fcc6ab4d602adba364bf59a5c24de57bd194486bf9b8360e06bfc4" +dependencies = [ + "bitflags 2.6.0", + "wayland-backend", + "wayland-client", + "wayland-protocols 0.32.3", + "wayland-scanner", +] + [[package]] name = "wayland-protocols-wlr" version = "0.2.0" @@ -5346,20 +5537,13 @@ dependencies = [ ] [[package]] -name = "webbrowser" -version = "0.8.15" +name = "web-time" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db67ae75a9405634f5882791678772c94ff5f16a66535aae186e26aa0841fc8b" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" dependencies = [ - "core-foundation", - "home", - "jni", - "log", - "ndk-context", - "objc", - "raw-window-handle 0.5.2", - "url", - "web-sys", + "js-sys", + "wasm-bindgen", ] [[package]] @@ -5386,31 +5570,6 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082" -[[package]] -name = "wgpu" -version = "0.19.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbd7311dbd2abcfebaabf1841a2824ed7c8be443a0f29166e5d3c6a53a762c01" -dependencies = [ - "arrayvec", - "cfg-if", - "cfg_aliases 0.1.1", - "js-sys", - "log", - "naga 0.19.2", - "parking_lot", - "profiling", - "raw-window-handle 0.6.2", - "smallvec", - "static_assertions", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "wgpu-core 0.19.4", - "wgpu-hal 0.19.5", - "wgpu-types 0.19.2", -] - [[package]] name = "wgpu" version = "0.20.1" @@ -5423,6 +5582,7 @@ dependencies = [ "document-features", "js-sys", "log", + "naga", "parking_lot", "profiling", "raw-window-handle 0.6.2", @@ -5431,35 +5591,9 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "wgpu-core 0.21.1", - "wgpu-hal 0.21.1", - "wgpu-types 0.20.0", -] - -[[package]] -name = "wgpu-core" -version = "0.19.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28b94525fc99ba9e5c9a9e24764f2bc29bad0911a7446c12f446a8277369bf3a" -dependencies = [ - "arrayvec", - "bit-vec", - "bitflags 2.6.0", - "cfg_aliases 0.1.1", - "codespan-reporting", - "indexmap", - "log", - "naga 0.19.2", - "once_cell", - "parking_lot", - "profiling", - "raw-window-handle 0.6.2", - "rustc-hash", - "smallvec", - "thiserror", - "web-sys", - "wgpu-hal 0.19.5", - "wgpu-types 0.19.2", + "wgpu-core", + "wgpu-hal", + "wgpu-types", ] [[package]] @@ -5476,7 +5610,7 @@ dependencies = [ "document-features", "indexmap", "log", - "naga 0.20.0", + "naga", "once_cell", "parking_lot", "profiling", @@ -5485,15 +5619,15 @@ dependencies = [ "smallvec", "thiserror", "web-sys", - "wgpu-hal 0.21.1", - "wgpu-types 0.20.0", + "wgpu-hal", + "wgpu-types", ] [[package]] name = "wgpu-hal" -version = "0.19.5" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfabcfc55fd86611a855816326b2d54c3b2fd7972c27ce414291562650552703" +checksum = "172e490a87295564f3fcc0f165798d87386f6231b04d4548bca458cbbfd63222" dependencies = [ "android_system_properties", "arrayvec", @@ -5508,16 +5642,16 @@ dependencies = [ "glutin_wgl_sys", "gpu-alloc", "gpu-allocator", - "gpu-descriptor 0.2.4", + "gpu-descriptor", "hassle-rs", "js-sys", "khronos-egl", "libc", "libloading 0.8.5", "log", - "metal 0.27.0", - "naga 0.19.2", - "ndk-sys", + "metal", + "naga", + "ndk-sys 0.5.0+25.2.9519653", "objc", "once_cell", "parking_lot", @@ -5530,62 +5664,10 @@ dependencies = [ "thiserror", "wasm-bindgen", "web-sys", - "wgpu-types 0.19.2", + "wgpu-types", "winapi", ] -[[package]] -name = "wgpu-hal" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "172e490a87295564f3fcc0f165798d87386f6231b04d4548bca458cbbfd63222" -dependencies = [ - "android_system_properties", - "arrayvec", - "ash", - "bitflags 2.6.0", - "cfg_aliases 0.1.1", - "core-graphics-types", - "glow", - "glutin_wgl_sys", - "gpu-alloc", - "gpu-allocator", - "gpu-descriptor 0.3.0", - "hassle-rs", - "js-sys", - "khronos-egl", - "libc", - "libloading 0.8.5", - "log", - "metal 0.28.0", - "naga 0.20.0", - "ndk-sys", - "objc", - "once_cell", - "parking_lot", - "profiling", - "raw-window-handle 0.6.2", - "renderdoc-sys", - "rustc-hash", - "smallvec", - "thiserror", - "wasm-bindgen", - "web-sys", - "wgpu-types 0.20.0", - "winapi", -] - -[[package]] -name = "wgpu-types" -version = "0.19.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b671ff9fb03f78b46ff176494ee1ebe7d603393f42664be55b64dc8d53969805" -dependencies = [ - "bitflags 2.6.0", - "js-sys", - "web-sys", -] - [[package]] name = "wgpu-types" version = "0.20.0" @@ -5649,8 +5731,8 @@ name = "window" version = "0.1.0" dependencies = [ "eframe", - "egui 0.28.1", - "egui_graphs 0.21.1", + "egui", + "egui_graphs", "petgraph", ] @@ -5682,6 +5764,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9252e5725dbed82865af151df558e754e4a3c2c30818359eb17465f1346a1b49" dependencies = [ "windows-core 0.54.0", + "windows-implement 0.53.0", + "windows-interface 0.53.0", "windows-targets 0.52.6", ] @@ -5738,6 +5822,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "windows-implement" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "942ac266be9249c84ca862f0a164a39533dc2f6f33dc98ec89c8da99b82ea0bd" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.74", +] + [[package]] name = "windows-implement" version = "0.58.0" @@ -5760,6 +5855,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "windows-interface" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da33557140a288fae4e1d5f8873aaf9eb6613a9cf82c3e070223ff177f598b60" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.74", +] + [[package]] name = "windows-interface" version = "0.58.0" @@ -6020,7 +6126,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d59ad965a635657faf09c8f062badd885748428933dad8e8bdd64064d92e5ca" dependencies = [ "ahash", - "android-activity", + "android-activity 0.5.2", "atomic-waker", "bitflags 2.6.0", "bytemuck", @@ -6034,8 +6140,8 @@ dependencies = [ "libc", "log", "memmap2", - "ndk", - "ndk-sys", + "ndk 0.8.0", + "ndk-sys 0.5.0+25.2.9519653", "objc2 0.4.1", "once_cell", "orbclient", @@ -6044,7 +6150,7 @@ dependencies = [ "raw-window-handle 0.6.2", "redox_syscall 0.3.5", "rustix 0.38.34", - "sctk-adwaita", + "sctk-adwaita 0.8.3", "smithay-client-toolkit 0.18.1", "smol_str", "unicode-segmentation", @@ -6053,15 +6159,67 @@ dependencies = [ "wayland-backend", "wayland-client", "wayland-protocols 0.31.2", - "wayland-protocols-plasma", + "wayland-protocols-plasma 0.2.0", "web-sys", - "web-time", + "web-time 0.2.4", "windows-sys 0.48.0", "x11-dl", "x11rb", "xkbcommon-dl", ] +[[package]] +name = "winit" +version = "0.30.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0be9e76a1f1077e04a411f0b989cbd3c93339e1771cb41e71ac4aee95bfd2c67" +dependencies = [ + "ahash", + "android-activity 0.6.0", + "atomic-waker", + "bitflags 2.6.0", + "block2 0.5.1", + "bytemuck", + "calloop 0.13.0", + "cfg_aliases 0.2.1", + "concurrent-queue", + "core-foundation", + "core-graphics", + "cursor-icon", + "dpi", + "js-sys", + "libc", + "memmap2", + "ndk 0.9.0", + "objc2 0.5.2", + "objc2-app-kit", + "objc2-foundation", + "objc2-ui-kit", + "orbclient", + "percent-encoding", + "pin-project", + "raw-window-handle 0.6.2", + "redox_syscall 0.4.1", + "rustix 0.38.34", + "sctk-adwaita 0.10.1", + "smithay-client-toolkit 0.19.2", + "smol_str", + "tracing", + "unicode-segmentation", + "wasm-bindgen", + "wasm-bindgen-futures", + "wayland-backend", + "wayland-client", + "wayland-protocols 0.32.3", + "wayland-protocols-plasma 0.3.3", + "web-sys", + "web-time 1.1.0", + "windows-sys 0.52.0", + "x11-dl", + "x11rb", + "xkbcommon-dl", +] + [[package]] name = "winnow" version = "0.5.40" @@ -6071,6 +6229,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "winnow" +version = "0.6.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" +dependencies = [ + "memchr", +] + [[package]] name = "x11-dl" version = "2.21.0" diff --git a/Cargo.toml b/Cargo.toml index 5201da4..deffe19 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -28,3 +28,24 @@ serde = ["dep:serde", "egui/serde", "petgraph/serde", "petgraph/serde-1"] [workspace] members = ["examples/*"] + +[lints.rust] +unsafe_code = "forbid" + +[lints.clippy] +pedantic = { level = "deny", priority = 0 } +enum_glob_use = { level = "deny", priority = 1 } +perf = { level = "deny", priority = 2 } +style = { level = "deny", priority = 3 } +# unwrap_used = { level = "deny", priority = 4 } These should enabled in the future +# expect_used = { level = "deny", priority = 5 } +module_name_repetitions = { level = "allow", priority = 6 } +cast_precision_loss = { level = "allow", priority = 7 } +float_cmp = { level = "allow", priority = 8 } +cast_possible_truncation = { level = "allow", priority = 9 } +cast_sign_loss = { level = "allow", priority = 10 } +out_of_bounds_indexing = { level = "allow", priority = 11 } + +must_use_candidate = { level = "allow", priority = 12 } +struct_excessive_bools = { level = "allow", priority = 13 } +return_self_not_must_use = { level = "allow", priority = 14 } diff --git a/examples/bevy_basic/Cargo.toml b/examples/bevy_basic/Cargo.toml index d002a5b..bdba160 100644 --- a/examples/bevy_basic/Cargo.toml +++ b/examples/bevy_basic/Cargo.toml @@ -6,7 +6,7 @@ license = "MIT" edition = "2021" [dependencies] -bevy = "0.13" -bevy_egui = "0.26.0" -egui_graphs = "0.19.0" +egui_graphs = { path = "../../" } +bevy = "0.14.2" +bevy_egui = "0.29.0" petgraph = "0.6" diff --git a/src/draw/displays.rs b/src/draw/displays.rs index d5dc176..30a8187 100644 --- a/src/draw/displays.rs +++ b/src/draw/displays.rs @@ -26,7 +26,7 @@ where /// Use `ctx.painter` to have low level access to egui painting process. fn shapes(&mut self, ctx: &DrawContext) -> Vec; - /// Is called on every frame. Can be used for updating state of the implementation of [DisplayNode] + /// Is called on every frame. Can be used for updating state of the implementation of [`DisplayNode`] fn update(&mut self, state: &NodeProps); /// Checks if the provided `pos` is inside the shape. @@ -45,7 +45,7 @@ where Ix: IndexType, D: DisplayNode, { - /// Draws shapes of the edge. Uses [DisplayNode] implementation from node endpoints to get start and end coordinates using [closest_boundary_point](DisplayNode::closest_boundary_point). + /// Draws shapes of the edge. Uses [`DisplayNode`] implementation from node endpoints to get start and end coordinates using [`closest_boundary_point`](DisplayNode::closest_boundary_point). /// If the node is interacted these shapes will be used for drawing on foreground layer, otherwise on background layer. /// Has mutable reference to itself for possibility to change internal state for the visualizations where this is important. /// @@ -61,7 +61,7 @@ where ctx: &DrawContext, ) -> Vec; - /// Is called on every frame. Can be used for updating state of the implementation of [DisplayNode] + /// Is called on every frame. Can be used for updating state of the implementation of [`DisplayNode`] fn update(&mut self, state: &EdgeProps); /// Checks if the provided `pos` is inside the shape. diff --git a/src/draw/displays_default/edge.rs b/src/draw/displays_default/edge.rs index c7bfec9..65ee1c9 100644 --- a/src/draw/displays_default/edge.rs +++ b/src/draw/displays_default/edge.rs @@ -63,6 +63,7 @@ impl, @@ -73,9 +74,10 @@ impl ctx.ctx.style().visuals.widgets.active, - false => ctx.ctx.style().visuals.widgets.inactive, + let style = if self.selected { + ctx.ctx.style().visuals.widgets.active + } else { + ctx.ctx.style().visuals.widgets.inactive }; let color = style.fg_stroke.color; let stroke = Stroke::new(self.width, color); @@ -90,9 +92,8 @@ impl cubic, - _ => panic!("invalid shape type"), + let Shape::CubicBezier(line_looped) = line_looped_shapes.pop().unwrap() else { + panic!("invalid shape type") }; // TODO: export to func @@ -181,9 +182,8 @@ impl curve, - _ => panic!("invalid shape type"), + let Some(Shape::CubicBezier(line_curved)) = curved_shapes.first() else { + panic!("invalid shape type") }; res.extend(curved_shapes.clone()); @@ -237,7 +237,7 @@ impl DefaultEdgeShape { .build(); match shape.first() { - Some(Shape::CubicBezier(cubic)) => is_point_on_curve(pos, cubic.clone()), + Some(Shape::CubicBezier(cubic)) => is_point_on_curve(pos, cubic), _ => panic!("invalid shape type"), } } @@ -271,7 +271,7 @@ impl DefaultEdgeShape { _ => panic!("invalid shape type"), }; - is_point_on_curve(pos, curved_shape) + is_point_on_curve(pos, &curved_shape) } } @@ -287,7 +287,7 @@ fn node_size fn distance_segment_to_point(a: Pos2, b: Pos2, point: Pos2) -> f32 { let ac = point - a; let ab = b - a; @@ -322,7 +322,7 @@ fn proj(a: Vec2, b: Vec2) -> Vec2 { Vec2::new(k * b.x, k * b.y) } -fn is_point_on_curve(point: Pos2, curve: CubicBezierShape) -> bool { +fn is_point_on_curve(point: Pos2, curve: &CubicBezierShape) -> bool { for p in curve.flatten(None) { if p.distance(point) < curve.stroke.width { return true; diff --git a/src/draw/displays_default/node.rs b/src/draw/displays_default/node.rs index 8727eb9..b354509 100644 --- a/src/draw/displays_default/node.rs +++ b/src/draw/displays_default/node.rs @@ -52,9 +52,10 @@ impl DisplayNode let is_interacted = self.selected || self.dragged; - let style = match is_interacted { - true => ctx.ctx.style().visuals.widgets.active, - false => ctx.ctx.style().visuals.widgets.inactive, + let style = if is_interacted { + ctx.ctx.style().visuals.widgets.active + } else { + ctx.ctx.style().visuals.widgets.inactive }; let color = style.fg_stroke.color; diff --git a/src/draw/drawer.rs b/src/draw/drawer.rs index 0614b34..18e028b 100644 --- a/src/draw/drawer.rs +++ b/src/draw/drawer.rs @@ -77,13 +77,13 @@ where let shapes = display.shapes(self.ctx); if n.selected() || n.dragged() { - shapes.into_iter().for_each(|s| { + for s in shapes { self.postponed.push(s); - }); + } } else { - shapes.into_iter().for_each(|s| { + for s in shapes { self.ctx.painter.add(s); - }); + } } }); } @@ -109,13 +109,13 @@ where let shapes = display.shapes(&start, &end, self.ctx); if e.selected() { - shapes.into_iter().for_each(|s| { + for s in shapes { self.postponed.push(s); - }); + } } else { - shapes.into_iter().for_each(|s| { + for s in shapes { self.ctx.painter.add(s); - }); + } } }); } diff --git a/src/elements/edge.rs b/src/elements/edge.rs index f00c9b9..f86a45f 100644 --- a/src/elements/edge.rs +++ b/src/elements/edge.rs @@ -59,8 +59,8 @@ impl< props, display, - id: Default::default(), - _marker: Default::default(), + id: Option::default(), + _marker: PhantomData, } } @@ -82,6 +82,7 @@ impl< &mut self.display } + #[allow(clippy::missing_panics_doc)] // TODO: Add panic message pub fn id(&self) -> EdgeIndex { self.id.unwrap() } @@ -111,7 +112,7 @@ impl< } pub fn set_label(&mut self, label: String) { - self.props.label = label + self.props.label = label; } pub fn with_label(mut self, label: String) -> Self { diff --git a/src/elements/node.rs b/src/elements/node.rs index 9ffe4ac..ef5887c 100644 --- a/src/elements/node.rs +++ b/src/elements/node.rs @@ -37,6 +37,7 @@ where _marker: PhantomData<(E, Ty)>, } +#[allow(clippy::missing_fields_in_debug)] // TODO: add all fields or remove this and fix all warnings impl Debug for Node where N: Clone, @@ -97,8 +98,8 @@ where props, display, - id: Default::default(), - _marker: Default::default(), + id: Option::default(), + _marker: PhantomData, } } @@ -120,6 +121,7 @@ where self.props.location = location; } + #[allow(clippy::missing_panics_doc)] // TODO: Add panic message pub fn id(&self) -> NodeIndex { self.id.unwrap() } @@ -137,7 +139,7 @@ where } pub fn set_location(&mut self, loc: Pos2) { - self.props.location = loc + self.props.location = loc; } pub fn selected(&self) -> bool { @@ -161,7 +163,7 @@ where } pub fn set_label(&mut self, label: String) { - self.props.label = label + self.props.label = label; } pub fn with_label(mut self, label: String) -> Self { diff --git a/src/graph.rs b/src/graph.rs index 3022f0a..8686e7c 100644 --- a/src/graph.rs +++ b/src/graph.rs @@ -79,12 +79,12 @@ impl< } /// Finds edge by position. + #[allow(clippy::missing_panics_doc)] // TODO: add panics doc pub fn edge_by_screen_pos(&self, meta: &Metadata, screen_pos: Pos2) -> Option> { let pos_in_graph = meta.screen_to_canvas_pos(screen_pos); for (idx, e) in self.edges_iter() { - let (idx_start, idx_end) = match self.g.edge_endpoints(e.id()) { - Some(se) => se, - None => continue, + let Some((idx_start, idx_end)) = self.g.edge_endpoints(e.id()) else { + continue; }; let start = self.g.node_weight(idx_start).unwrap(); let end = self.g.node_weight(idx_end).unwrap(); @@ -101,6 +101,7 @@ impl< } /// Adds node to graph setting default location and default label values + #[allow(clippy::missing_panics_doc)] // TODO: add panics doc pub fn add_node(&mut self, payload: N) -> NodeIndex { let node = Node::new(payload); @@ -114,6 +115,7 @@ impl< } /// Adds node to graph setting custom location and default label value + #[allow(clippy::missing_panics_doc)] // TODO: add panics doc pub fn add_node_with_location(&mut self, payload: N, location: Pos2) -> NodeIndex { let node = Node::new(payload); @@ -132,6 +134,7 @@ impl< } /// Adds node to graph setting custom location and custom label value + #[allow(clippy::missing_panics_doc)] // TODO: add panics doc pub fn add_node_with_label_and_location( &mut self, payload: N, @@ -162,6 +165,7 @@ impl< } /// Removes all edges between start and end node. Returns removed edges count. + #[allow(clippy::missing_panics_doc)] // TODO: add panics doc pub fn remove_edges_between(&mut self, start: NodeIndex, end: NodeIndex) -> usize { let idxs = self .g @@ -173,15 +177,16 @@ impl< } let mut removed = 0; - idxs.iter().for_each(|e| { + for e in &idxs { self.g.remove_edge(*e).unwrap(); removed += 1; - }); + } removed } /// Adds edge between start and end node with default label. + #[allow(clippy::missing_panics_doc)] // TODO: add panics doc pub fn add_edge( &mut self, start: NodeIndex, @@ -200,6 +205,7 @@ impl< } /// Adds edge between start and end node with custom label setting correct order. + #[allow(clippy::missing_panics_doc)] // TODO: add panics doc pub fn add_edge_with_label( &mut self, start: NodeIndex, diff --git a/src/graph_view.rs b/src/graph_view.rs index 32553f7..53faa28 100644 --- a/src/graph_view.rs +++ b/src/graph_view.rs @@ -26,11 +26,11 @@ use petgraph::{stable_graph::NodeIndex, EdgeType}; /// Widget for visualizing and interacting with graphs. /// -/// It implements [egui::Widget] and can be used like any other widget. +/// It implements [`egui::Widget`] and can be used like any other widget. /// -/// The widget uses a mutable reference to the [petgraph::stable_graph::StableGraph, super::Edge>] +/// The widget uses a mutable reference to the [`petgraph::stable_graph::StableGraph`<`super::Node`, `super::Edge`>] /// struct to visualize and interact with the graph. `N` and `E` is arbitrary client data associated with nodes and edges. -/// You can customize the visualization and interaction behavior using [SettingsInteraction], [SettingsNavigation] and [SettingsStyle] structs. +/// You can customize the visualization and interaction behavior using [`SettingsInteraction`], [`SettingsNavigation`] and [`SettingsStyle`] structs. /// /// When any interaction or node property change occurs, the widget sends [Event] struct to the provided /// [Sender] channel, which can be set via the `with_interactions` method. The [Event] struct contains information about @@ -124,12 +124,12 @@ where Self { g, - settings_style: Default::default(), - settings_interaction: Default::default(), - settings_navigation: Default::default(), + settings_style: SettingsStyle::default(), + settings_interaction: SettingsInteraction::default(), + settings_navigation: SettingsNavigation::default(), #[cfg(feature = "events")] - events_publisher: Default::default(), + events_publisher: Option::default(), _marker: PhantomData, } @@ -219,9 +219,8 @@ where return; } - let cursor_pos = match resp.hover_pos() { - Some(pos) => pos, - None => return, + let Some(cursor_pos) = resp.hover_pos() else { + return; }; let found_edge = self.g.edge_by_screen_pos(meta, cursor_pos); let found_node = self.g.node_by_screen_pos(meta, cursor_pos); @@ -463,22 +462,22 @@ where self.publish_event(Event::NodeDeselect(PayloadNodeDeselect { id: idx.index() })); } - #[allow(unused_variables)] - fn set_node_clicked(&mut self, idx: NodeIndex) { + #[allow(unused_variables, clippy::unused_self)] + fn set_node_clicked(&self, idx: NodeIndex) { #[cfg(feature = "events")] self.publish_event(Event::NodeClick(PayloadNodeClick { id: idx.index() })); } - #[allow(unused_variables)] - fn set_node_double_clicked(&mut self, idx: NodeIndex) { + #[allow(unused_variables, clippy::unused_self)] + fn set_node_double_clicked(&self, idx: NodeIndex) { #[cfg(feature = "events")] self.publish_event(Event::NodeDoubleClick(PayloadNodeDoubleClick { id: idx.index(), })); } - #[allow(unused_variables)] - fn set_edge_clicked(&mut self, idx: EdgeIndex) { + #[allow(unused_variables, clippy::unused_self)] + fn set_edge_clicked(&self, idx: EdgeIndex) { #[cfg(feature = "events")] self.publish_event(Event::EdgeClick(PayloadEdgeClick { id: idx.index() })); } @@ -507,16 +506,16 @@ where fn deselect_all_nodes(&mut self) { let selected_nodes = self.g.selected_nodes().to_vec(); - selected_nodes.into_iter().for_each(|idx| { + for idx in selected_nodes { self.deselect_node(idx); - }); + } } fn deselect_all_edges(&mut self) { let selected_edges = self.g.selected_edges().to_vec(); - selected_edges.into_iter().for_each(|idx| { + for idx in selected_edges { self.deselect_edge(idx); - }); + } } fn move_node(&mut self, idx: NodeIndex, delta: Vec2) { @@ -550,7 +549,7 @@ where self.publish_event(Event::NodeDragEnd(PayloadNodeDragEnd { id: idx.index() })); } - #[allow(unused_variables)] + #[allow(unused_variables, clippy::unused_self)] fn set_pan(&self, new_pan: Vec2, meta: &mut Metadata) { let diff = new_pan - meta.pan; meta.pan = new_pan; @@ -562,7 +561,7 @@ where })); } - #[allow(unused_variables)] + #[allow(unused_variables, clippy::unused_self)] fn set_zoom(&self, new_zoom: f32, meta: &mut Metadata) { let diff = new_zoom - meta.zoom; meta.zoom = new_zoom; diff --git a/src/metadata.rs b/src/metadata.rs index 949cc05..a62204d 100644 --- a/src/metadata.rs +++ b/src/metadata.rs @@ -73,9 +73,9 @@ impl Default for Metadata { Self { first_frame: true, zoom: 1., - pan: Default::default(), - top_left: Default::default(), - bounds: Default::default(), + pan: Vec2::default(), + top_left: Pos2::default(), + bounds: Bounds::default(), } } } @@ -123,6 +123,6 @@ impl Metadata { /// Resets the bounds iterator. pub fn reset_bounds(&mut self) { - self.bounds = Default::default(); + self.bounds = Bounds::default(); } } diff --git a/src/transform.rs b/src/transform.rs index 745fa11..ff055c6 100644 --- a/src/transform.rs +++ b/src/transform.rs @@ -89,7 +89,7 @@ pub fn add_edge_custom< /// Helper function which transforms users [`petgraph::stable_graph::StableGraph`] isntance into the version required by the [`super::GraphView`] widget. /// -/// The function creates a new StableGraph where the nodes and edges are encapsulated into +/// The function creates a new `StableGraph` where the nodes and edges are encapsulated into /// Node and Edge structs respectively. New nodes and edges are created with [`default_node_transform`] and [`default_edge_transform`] /// functions. If you want to define custom transformation procedures (e.g. to use custom label for nodes), use [`to_graph_custom`] instead. ///