From d4126675bd99166b4afe009828eb43056260b720 Mon Sep 17 00:00:00 2001 From: Tiago Batista Cardoso Date: Tue, 4 Nov 2025 23:26:45 +0100 Subject: [PATCH] initial --- Cargo.lock | 4510 +++++++++++++++++++++++ Cargo.toml | 17 + assets/bg.png | Bin 0 -> 5952 bytes assets/button_bg_32x16.png | Bin 0 -> 269 bytes assets/button_bg_50x50.png | Bin 0 -> 529 bytes assets/button_bg_65x30.png | Bin 0 -> 503 bytes assets/close_icon.png | Bin 0 -> 318 bytes assets/cursor.png | Bin 0 -> 792 bytes assets/dialog_icon.png | Bin 0 -> 405 bytes assets/fonts/MSW98UI-Bold.ttf | Bin 0 -> 52908 bytes assets/fonts/MSW98UI-Regular.ttf | Bin 0 -> 286104 bytes assets/games_icon.png | Bin 0 -> 532 bytes assets/games_icon2.png | Bin 0 -> 421 bytes assets/minimize_button.png | Bin 0 -> 168 bytes assets/network.png | Bin 0 -> 1146 bytes assets/no.png | Bin 0 -> 402 bytes assets/settings_icon.png | Bin 0 -> 572 bytes assets/start_button.png | Bin 0 -> 2099 bytes assets/start_menu.png | Bin 0 -> 3033 bytes src/main.rs | 154 + src/net/mod.rs | 1 + src/net/networkmanager.rs | 120 + src/ui/elements/button.rs | 298 ++ src/ui/elements/mod.rs | 2 + src/ui/elements/start_menu.rs | 127 + src/ui/mod.rs | 3 + src/ui/utils/assets.rs | 13 + src/ui/utils/mod.rs | 1 + src/ui/windows/dialogs/mod.rs | 1 + src/ui/windows/dialogs/yes_no_dialog.rs | 139 + src/ui/windows/games/mod.rs | 0 src/ui/windows/mod.rs | 6 + src/ui/windows/settings/mod.rs | 0 src/ui/windows/social/mod.rs | 0 src/ui/windows/window.rs | 12 + src/ui/windows/window_manager.rs | 42 + 36 files changed, 5446 insertions(+) create mode 100644 Cargo.lock create mode 100644 Cargo.toml create mode 100644 assets/bg.png create mode 100644 assets/button_bg_32x16.png create mode 100644 assets/button_bg_50x50.png create mode 100644 assets/button_bg_65x30.png create mode 100644 assets/close_icon.png create mode 100644 assets/cursor.png create mode 100644 assets/dialog_icon.png create mode 100644 assets/fonts/MSW98UI-Bold.ttf create mode 100644 assets/fonts/MSW98UI-Regular.ttf create mode 100644 assets/games_icon.png create mode 100644 assets/games_icon2.png create mode 100644 assets/minimize_button.png create mode 100644 assets/network.png create mode 100644 assets/no.png create mode 100644 assets/settings_icon.png create mode 100644 assets/start_button.png create mode 100644 assets/start_menu.png create mode 100644 src/main.rs create mode 100644 src/net/mod.rs create mode 100644 src/net/networkmanager.rs create mode 100644 src/ui/elements/button.rs create mode 100644 src/ui/elements/mod.rs create mode 100644 src/ui/elements/start_menu.rs create mode 100644 src/ui/mod.rs create mode 100644 src/ui/utils/assets.rs create mode 100644 src/ui/utils/mod.rs create mode 100644 src/ui/windows/dialogs/mod.rs create mode 100644 src/ui/windows/dialogs/yes_no_dialog.rs create mode 100644 src/ui/windows/games/mod.rs create mode 100644 src/ui/windows/mod.rs create mode 100644 src/ui/windows/settings/mod.rs create mode 100644 src/ui/windows/social/mod.rs create mode 100644 src/ui/windows/window.rs create mode 100644 src/ui/windows/window_manager.rs diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..eee4c6c --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,4510 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "ab_glyph" +version = "0.2.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e074464580a518d16a7126262fffaaa47af89d4099d4cb403f8ed938ba12ee7d" +dependencies = [ + "ab_glyph_rasterizer", + "owned_ttf_parser", +] + +[[package]] +name = "ab_glyph_rasterizer" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "366ffbaa4442f4684d91e2cd7c5ea7c4ed8add41959a31447066e279e432b618" + +[[package]] +name = "addr2line" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + +[[package]] +name = "ahash" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + +[[package]] +name = "alsa" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed7572b7ba83a31e20d1b48970ee402d2e3e0537dcfe0a3ff4d6eb7508617d43" +dependencies = [ + "alsa-sys", + "bitflags 2.9.3", + "cfg-if", + "libc", +] + +[[package]] +name = "alsa-sys" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db8fee663d06c4e303404ef5f40488a53e062f89ba8bfed81f42325aafad1527" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "android-activity" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64529721f27c2314ced0890ce45e469574a73e5e6fdd6e9da1860eb29285f5e0" +dependencies = [ + "android-properties", + "bitflags 1.3.2", + "cc", + "jni-sys", + "libc", + "log", + "ndk 0.7.0", + "ndk-context", + "ndk-sys 0.4.1+23.1.7779620", + "num_enum 0.6.1", +] + +[[package]] +name = "android-properties" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" + +[[package]] +name = "approx" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" +dependencies = [ + "num-traits", +] + +[[package]] +name = "arrayref" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" + +[[package]] +name = "arrayvec" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" + +[[package]] +name = "ash" +version = "0.37.3+1.3.251" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39e9c3835d686b0a6084ab4234fcd1b07dbf6e4767dce60874b12356a25ecd4a" +dependencies = [ + "libloading 0.7.4", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" + +[[package]] +name = "backtrace" +version = "0.3.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-targets 0.52.6", +] + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bindgen" +version = "0.72.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" +dependencies = [ + "bitflags 2.9.3", + "cexpr", + "clang-sys", + "itertools", + "proc-macro2", + "quote", + "regex", + "rustc-hash 2.1.1", + "shlex", + "syn 2.0.106", +] + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34efbcccd345379ca2868b2b2c9d3782e9cc58ba87bc7d79d5b53d9c9ae6f25d" + +[[package]] +name = "block" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-sys" +version = "0.1.0-beta.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa55741ee90902547802152aaf3f8e5248aab7e21468089560d4c8840561146" +dependencies = [ + "objc-sys", +] + +[[package]] +name = "block2" +version = "0.2.0-alpha.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8dd9e63c1744f755c2f60332b88de39d341e5e86239014ad839bd71c106dec42" +dependencies = [ + "block-sys", + "objc2-encode", +] + +[[package]] +name = "bumpalo" +version = "3.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" + +[[package]] +name = "bytecount" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e" + +[[package]] +name = "bytemuck" +version = "1.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f154e572231cb6ba2bd1176980827e3d5dc04cc183a75dea38109fbdd672d29" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" + +[[package]] +name = "bzip2" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" +dependencies = [ + "bzip2-sys", + "libc", +] + +[[package]] +name = "bzip2-sys" +version = "0.1.13+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225bff33b2141874fe80d71e07d6eec4f85c5c216453dd96388240f96e1acc14" +dependencies = [ + "cc", + "pkg-config", +] + +[[package]] +name = "calloop" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52e0d00eb1ea24371a97d2da6201c6747a633dc6dc1988ef503403b4c59504a8" +dependencies = [ + "bitflags 1.3.2", + "log", + "nix 0.25.1", + "slotmap", + "thiserror 1.0.69", + "vec_map", +] + +[[package]] +name = "camino" +version = "1.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0b03af37dad7a14518b7691d81acb0f8222604ad3d1b02f6b4bed5188c0cd5" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", +] + +[[package]] +name = "cc" +version = "1.2.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42bc4aea80032b7bf409b0bc7ccad88853858911b7713a8062fdc0623867bedc" +dependencies = [ + "jobserver", + "libc", + "shlex", +] + +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + +[[package]] +name = "cfg-if" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" + +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + +[[package]] +name = "clang-sys" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" +dependencies = [ + "glob", + "libc", + "libloading 0.8.8", +] + +[[package]] +name = "claxon" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bfbf56724aa9eca8afa4fcfadeb479e722935bb2a0900c2d37e0cc477af0688" + +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "termcolor", + "unicode-width", +] + +[[package]] +name = "color_quant" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + +[[package]] +name = "com-rs" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf43edc576402991846b093a7ca18a3477e0ef9c588cde84964b5d3e43016642" + +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "core-graphics" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "libc", +] + +[[package]] +name = "coreaudio-rs" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "321077172d79c662f64f5071a03120748d5bb652f5231570141be24cfcd2bace" +dependencies = [ + "bitflags 1.3.2", + "core-foundation-sys", + "coreaudio-sys", +] + +[[package]] +name = "coreaudio-sys" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ceec7a6067e62d6f931a2baf6f3a751f4a892595bcec1461a3c94ef9949864b6" +dependencies = [ + "bindgen", +] + +[[package]] +name = "cpal" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "873dab07c8f743075e57f524c583985fbaf745602acbe916a01539364369a779" +dependencies = [ + "alsa", + "core-foundation-sys", + "coreaudio-rs", + "dasp_sample", + "jni", + "js-sys", + "libc", + "mach2", + "ndk 0.8.0", + "ndk-context", + "oboe", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "windows 0.54.0", +] + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crevice" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ca0647ab3b3b1554ec55f24ba8821123474c60c78964a214f5f9195bf632df4" +dependencies = [ + "bytemuck", + "crevice-derive", + "mint", +] + +[[package]] +name = "crevice-derive" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2320c07ceb3e491e2bd09ade90a91c29a42d9553f1bde60c945cb5c34958b26e" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "d3d12" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8f0de2f5a8e7bd4a9eec0e3c781992a4ce1724f68aec7d7a3715344de8b39da" +dependencies = [ + "bitflags 1.3.2", + "libloading 0.7.4", + "winapi", +] + +[[package]] +name = "dasp_sample" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f" + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "directories" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35" +dependencies = [ + "dirs-sys 0.4.1", +] + +[[package]] +name = "dirs" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" +dependencies = [ + "dirs-sys 0.5.0", +] + +[[package]] +name = "dirs-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +dependencies = [ + "libc", + "option-ext", + "redox_users 0.4.6", + "windows-sys 0.48.0", +] + +[[package]] +name = "dirs-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" +dependencies = [ + "libc", + "option-ext", + "redox_users 0.5.2", + "windows-sys 0.61.2", +] + +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "dlib" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" +dependencies = [ + "libloading 0.8.8", +] + +[[package]] +name = "downcast-rs" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" + +[[package]] +name = "either" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" + +[[package]] +name = "encoding_rs" +version = "0.8.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "enxos" +version = "0.1.0" +dependencies = [ + "anyhow", + "dirs", + "ggez", + "hex", + "once_cell", + "rand", + "reqwest", + "rust-embed", + "serde", + "serde_json", + "tokio", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "errno" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" +dependencies = [ + "libc", + "windows-sys 0.60.2", +] + +[[package]] +name = "error-chain" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc" +dependencies = [ + "version_check", +] + +[[package]] +name = "euclid" +version = "0.22.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad9cdb4b747e485a12abb0e6566612956c7a1bafa3bdb8d682c5b6d403589e48" +dependencies = [ + "num-traits", +] + +[[package]] +name = "fastrand" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" + +[[package]] +name = "fdeflate" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "flate2" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "float_next_after" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bf7cc16383c4b8d58b9905a8509f02926ce3058053c056376248d958c9df1e8" + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futures-channel" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + +[[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-task", + "pin-project-lite", + "pin-utils", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasi 0.14.3+wasi-0.2.4", +] + +[[package]] +name = "ggez" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faa9c608ac25c61dd7dc4b04201179373e8fe0cfa0a3801690d1341e2149c871" +dependencies = [ + "approx", + "bitflags 2.9.3", + "bytemuck", + "crevice", + "directories", + "gilrs", + "glam", + "glyph_brush", + "image", + "log", + "lyon", + "memoffset 0.8.0", + "mint", + "ordered-float 3.9.2", + "pollster", + "rodio", + "serde", + "skeptic", + "smart-default", + "toml", + "typed-arena", + "wgpu", + "winit", + "zip", +] + +[[package]] +name = "gif" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ae047235e33e2829703574b54fdec96bfbad892062d97fed2f76022287de61b" +dependencies = [ + "color_quant", + "weezl", +] + +[[package]] +name = "gilrs" +version = "0.10.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a556964c6d62458084356ce9770676f5104bd667e12e9a795691076e8a17c5cf" +dependencies = [ + "fnv", + "gilrs-core", + "log", + "uuid", + "vec_map", +] + +[[package]] +name = "gilrs-core" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "732dadc05170599ddec9a89653f10d7a2af54da9181b3fa6e2bd49907ec8f7e4" +dependencies = [ + "core-foundation", + "inotify", + "io-kit-sys", + "js-sys", + "libc", + "libudev-sys", + "log", + "nix 0.29.0", + "uuid", + "vec_map", + "wasm-bindgen", + "web-sys", + "windows 0.58.0", +] + +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + +[[package]] +name = "glam" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5418c17512bdf42730f9032c74e1ae39afc408745ebb2acf72fbc4691c17945" +dependencies = [ + "mint", +] + +[[package]] +name = "glob" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" + +[[package]] +name = "glow" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca0fe580e4b60a8ab24a868bc08e2f03cbcb20d3d676601fa909386713333728" +dependencies = [ + "js-sys", + "slotmap", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "glyph_brush" +version = "0.7.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0060f4ed4ef64a5876d9836d7d6c9ed43a463f3ca431682bec1c326064c8c93e" +dependencies = [ + "glyph_brush_draw_cache", + "glyph_brush_layout", + "ordered-float 5.0.0", + "rustc-hash 2.1.1", + "twox-hash", +] + +[[package]] +name = "glyph_brush_draw_cache" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bb6c910def52365fef3f439a6b50a4d5c11b28eec4cf6c191f6dfea18e88d7f" +dependencies = [ + "ab_glyph", + "crossbeam-channel", + "crossbeam-deque", + "linked-hash-map", + "rayon", + "rustc-hash 2.1.1", +] + +[[package]] +name = "glyph_brush_layout" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b1e288bfd2f6c0313f78bf5aa538356ad481a3bb97e9b7f93220ab0066c5992" +dependencies = [ + "ab_glyph", + "approx", + "xi-unicode", +] + +[[package]] +name = "gpu-alloc" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22beaafc29b38204457ea030f6fb7a84c9e4dd1b86e311ba0542533453d87f62" +dependencies = [ + "bitflags 1.3.2", + "gpu-alloc-types", +] + +[[package]] +name = "gpu-alloc-types" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54804d0d6bc9d7f26db4eaec1ad10def69b599315f487d32c334a80d1efe67a5" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "gpu-allocator" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce95f9e2e11c2c6fadfce42b5af60005db06576f231f5c92550fdded43c423e8" +dependencies = [ + "backtrace", + "log", + "thiserror 1.0.69", + "winapi", + "windows 0.44.0", +] + +[[package]] +name = "gpu-descriptor" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc11df1ace8e7e564511f53af41f3e42ddc95b56fd07b3f4445d2a6048bc682c" +dependencies = [ + "bitflags 2.9.3", + "gpu-descriptor-types", + "hashbrown 0.14.5", +] + +[[package]] +name = "gpu-descriptor-types" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bf0b36e6f090b7e1d8a4b49c0cb81c1f8376f72198c65dd3ad9ff3556b8b78c" +dependencies = [ + "bitflags 2.9.3", +] + +[[package]] +name = "h2" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http", + "indexmap 2.11.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash", + "allocator-api2", +] + +[[package]] +name = "hashbrown" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" + +[[package]] +name = "hassle-rs" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1397650ee315e8891a0df210707f0fc61771b0cc518c3023896064c5407cb3b0" +dependencies = [ + "bitflags 1.3.2", + "com-rs", + "libc", + "libloading 0.7.4", + "thiserror 1.0.69", + "widestring", + "winapi", +] + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hexf-parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" + +[[package]] +name = "hound" +version = "3.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62adaabb884c94955b19907d60019f4e145d091c75345379e70d1ee696f7854f" + +[[package]] +name = "http" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "hyper" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" +dependencies = [ + "atomic-waker", + "bytes", + "futures-channel", + "futures-core", + "h2", + "http", + "http-body", + "httparse", + "itoa", + "pin-project-lite", + "pin-utils", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" +dependencies = [ + "http", + "hyper", + "hyper-util", + "rustls", + "rustls-pki-types", + "tokio", + "tokio-rustls", + "tower-service", +] + +[[package]] +name = "hyper-tls" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" +dependencies = [ + "bytes", + "http-body-util", + "hyper", + "hyper-util", + "native-tls", + "tokio", + "tokio-native-tls", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8" +dependencies = [ + "base64", + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "http", + "http-body", + "hyper", + "ipnet", + "libc", + "percent-encoding", + "pin-project-lite", + "socket2", + "system-configuration", + "tokio", + "tower-service", + "tracing", + "windows-registry", +] + +[[package]] +name = "icu_collections" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" +dependencies = [ + "displaydoc", + "potential_utf", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locale_core" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_normalizer" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" + +[[package]] +name = "icu_properties" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "potential_utf", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" + +[[package]] +name = "icu_provider" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" +dependencies = [ + "displaydoc", + "icu_locale_core", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", +] + +[[package]] +name = "idna" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "image" +version = "0.24.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "gif", + "jpeg-decoder", + "num-traits", + "png", + "tiff", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", +] + +[[package]] +name = "indexmap" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2481980430f9f78649238835720ddccc57e52df14ffce1c6f37391d61b563e9" +dependencies = [ + "equivalent", + "hashbrown 0.15.5", +] + +[[package]] +name = "inotify" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdd168d97690d0b8c412d6b6c10360277f4d7ee495c5d0d5d5fe0854923255cc" +dependencies = [ + "bitflags 1.3.2", + "inotify-sys", + "libc", +] + +[[package]] +name = "inotify-sys" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" +dependencies = [ + "libc", +] + +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "io-kit-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "617ee6cf8e3f66f3b4ea67a4058564628cde41901316e19f559e14c7c72c5e7b" +dependencies = [ + "core-foundation-sys", + "mach2", +] + +[[package]] +name = "ipnet" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" + +[[package]] +name = "iri-string" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + +[[package]] +name = "jni" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +dependencies = [ + "cesu8", + "cfg-if", + "combine", + "jni-sys", + "log", + "thiserror 1.0.69", + "walkdir", + "windows-sys 0.45.0", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + +[[package]] +name = "jobserver" +version = "0.1.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" +dependencies = [ + "getrandom 0.3.3", + "libc", +] + +[[package]] +name = "jpeg-decoder" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00810f1d8b74be64b13dbf3db89ac67740615d6c891f0e7b6179326533011a07" + +[[package]] +name = "js-sys" +version = "0.3.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "khronos-egl" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c2352bd1d0bceb871cb9d40f24360c8133c11d7486b68b5381c1dd1a32015e3" +dependencies = [ + "libc", + "libloading 0.7.4", + "pkg-config", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "lewton" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "777b48df9aaab155475a83a7df3070395ea1ac6902f5cd062b8f2b028075c030" +dependencies = [ + "byteorder", + "ogg", + "tinyvec", +] + +[[package]] +name = "libc" +version = "0.2.175" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "libloading" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" +dependencies = [ + "cfg-if", + "windows-targets 0.53.3", +] + +[[package]] +name = "libm" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" + +[[package]] +name = "libredox" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" +dependencies = [ + "bitflags 2.9.3", + "libc", + "redox_syscall 0.5.17", +] + +[[package]] +name = "libudev-sys" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c8469b4a23b962c1396b9b451dda50ef5b283e8dd309d69033475fa9b334324" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "linked-hash-map" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" + +[[package]] +name = "linux-raw-sys" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" + +[[package]] +name = "litemap" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" + +[[package]] +name = "lock_api" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" + +[[package]] +name = "lyon" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e7f9cda98b5430809e63ca5197b06c7d191bf7e26dfc467d5a3f0290e2a74f" +dependencies = [ + "lyon_algorithms", + "lyon_tessellation", +] + +[[package]] +name = "lyon_algorithms" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f13c9be19d257c7d37e70608ed858e8eab4b2afcea2e3c9a622e892acbf43c08" +dependencies = [ + "lyon_path", + "num-traits", +] + +[[package]] +name = "lyon_geom" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8af69edc087272df438b3ee436c4bb6d7c04aa8af665cfd398feae627dbd8570" +dependencies = [ + "arrayvec", + "euclid", + "num-traits", +] + +[[package]] +name = "lyon_path" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0047f508cd7a85ad6bad9518f68cce7b1bf6b943fb71f6da0ee3bc1e8cb75f25" +dependencies = [ + "lyon_geom", + "num-traits", +] + +[[package]] +name = "lyon_tessellation" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579d42360a4b09846eff2feef28f538696c7d6c7439bfa65874ff3cbe0951b2c" +dependencies = [ + "float_next_after", + "lyon_path", + "num-traits", +] + +[[package]] +name = "mach2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d640282b302c0bb0a2a8e0233ead9035e3bed871f0b7e81fe4a1ec829765db44" +dependencies = [ + "libc", +] + +[[package]] +name = "malloc_buf" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" +dependencies = [ + "libc", +] + +[[package]] +name = "memchr" +version = "2.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" + +[[package]] +name = "memmap2" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" +dependencies = [ + "libc", +] + +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + +[[package]] +name = "memoffset" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" +dependencies = [ + "autocfg", +] + +[[package]] +name = "metal" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de11355d1f6781482d027a3b4d4de7825dcedb197bf573e0596d00008402d060" +dependencies = [ + "bitflags 1.3.2", + "block", + "core-graphics-types", + "foreign-types", + "log", + "objc", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", + "simd-adler32", +] + +[[package]] +name = "mint" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e53debba6bda7a793e5f99b8dacf19e626084f525f7829104ba9898f367d85ff" + +[[package]] +name = "mio" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +dependencies = [ + "libc", + "log", + "wasi 0.11.1+wasi-snapshot-preview1", + "windows-sys 0.48.0", +] + +[[package]] +name = "mio" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873" +dependencies = [ + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", + "windows-sys 0.61.2", +] + +[[package]] +name = "naga" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbcc2e0513220fd2b598e6068608d4462db20322c0e77e47f6f488dfcfc279cb" +dependencies = [ + "bit-set", + "bitflags 1.3.2", + "codespan-reporting", + "hexf-parse", + "indexmap 1.9.3", + "log", + "num-traits", + "rustc-hash 1.1.0", + "spirv", + "termcolor", + "thiserror 1.0.69", + "unicode-xid", +] + +[[package]] +name = "native-tls" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" +dependencies = [ + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "ndk" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0" +dependencies = [ + "bitflags 1.3.2", + "jni-sys", + "ndk-sys 0.4.1+23.1.7779620", + "num_enum 0.5.11", + "raw-window-handle", + "thiserror 1.0.69", +] + +[[package]] +name = "ndk" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7" +dependencies = [ + "bitflags 2.9.3", + "jni-sys", + "log", + "ndk-sys 0.5.0+25.2.9519653", + "num_enum 0.7.4", + "thiserror 1.0.69", +] + +[[package]] +name = "ndk-context" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" + +[[package]] +name = "ndk-sys" +version = "0.4.1+23.1.7779620" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cf2aae958bd232cac5069850591667ad422d263686d75b52a065f9badeee5a3" +dependencies = [ + "jni-sys", +] + +[[package]] +name = "ndk-sys" +version = "0.5.0+25.2.9519653" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691" +dependencies = [ + "jni-sys", +] + +[[package]] +name = "nix" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" +dependencies = [ + "bitflags 1.3.2", + "cfg-if", + "libc", + "memoffset 0.6.5", +] + +[[package]] +name = "nix" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4" +dependencies = [ + "autocfg", + "bitflags 1.3.2", + "cfg-if", + "libc", + "memoffset 0.6.5", +] + +[[package]] +name = "nix" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" +dependencies = [ + "bitflags 2.9.3", + "cfg-if", + "cfg_aliases 0.2.1", + "libc", +] + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "num-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "num_enum" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" +dependencies = [ + "num_enum_derive 0.5.11", +] + +[[package]] +name = "num_enum" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" +dependencies = [ + "num_enum_derive 0.6.1", +] + +[[package]] +name = "num_enum" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a" +dependencies = [ + "num_enum_derive 0.7.4", + "rustversion", +] + +[[package]] +name = "num_enum_derive" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "num_enum_derive" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" +dependencies = [ + "proc-macro-crate 3.3.0", + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "objc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +dependencies = [ + "malloc_buf", + "objc_exception", +] + +[[package]] +name = "objc-sys" +version = "0.2.0-beta.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b9834c1e95694a05a828b59f55fa2afec6288359cda67146126b3f90a55d7" + +[[package]] +name = "objc2" +version = "0.3.0-beta.3.patch-leaks.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e01640f9f2cb1220bbe80325e179e532cb3379ebcd1bf2279d703c19fe3a468" +dependencies = [ + "block2", + "objc-sys", + "objc2-encode", +] + +[[package]] +name = "objc2-encode" +version = "2.0.0-pre.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abfcac41015b00a120608fdaa6938c44cb983fee294351cc4bac7638b4e50512" +dependencies = [ + "objc-sys", +] + +[[package]] +name = "objc_exception" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" +dependencies = [ + "cc", +] + +[[package]] +name = "object" +version = "0.36.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +dependencies = [ + "memchr", +] + +[[package]] +name = "oboe" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8b61bebd49e5d43f5f8cc7ee2891c16e0f41ec7954d36bcb6c14c5e0de867fb" +dependencies = [ + "jni", + "ndk 0.8.0", + "ndk-context", + "num-derive", + "num-traits", + "oboe-sys", +] + +[[package]] +name = "oboe-sys" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8bb09a4a2b1d668170cfe0a7d5bc103f8999fb316c98099b6a9939c9f2e79d" +dependencies = [ + "cc", +] + +[[package]] +name = "ogg" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6951b4e8bf21c8193da321bcce9c9dd2e13c858fe078bf9054a288b419ae5d6e" +dependencies = [ + "byteorder", +] + +[[package]] +name = "once_cell" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "openssl" +version = "0.10.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24ad14dd45412269e1a30f52ad8f0664f0f4f4a89ee8fe28c3b3527021ebb654" +dependencies = [ + "bitflags 2.9.3", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "openssl-probe" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" + +[[package]] +name = "openssl-sys" +version = "0.9.110" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a9f0075ba3c21b09f8e8b2026584b1d18d49388648f2fbbf3c97ea8deced8e2" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "orbclient" +version = "0.3.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba0b26cec2e24f08ed8bb31519a9333140a6599b867dac464bb150bdb796fd43" +dependencies = [ + "libredox", +] + +[[package]] +name = "ordered-float" +version = "3.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1e1c390732d15f1d48471625cd92d154e66db2c56645e29a9cd26f4699f72dc" +dependencies = [ + "num-traits", +] + +[[package]] +name = "ordered-float" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2c1f9f56e534ac6a9b8a4600bdf0f530fb393b5f393e7b4d03489c3cf0c3f01" +dependencies = [ + "num-traits", +] + +[[package]] +name = "owned_ttf_parser" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36820e9051aca1014ddc75770aab4d68bc1e9e632f0f5627c4086bc216fb583b" +dependencies = [ + "ttf-parser", +] + +[[package]] +name = "parking_lot" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.5.17", + "smallvec", + "windows-targets 0.52.6", +] + +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[package]] +name = "pin-project-lite" +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 = "pkg-config" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + +[[package]] +name = "png" +version = "0.17.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "pollster" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22686f4785f02a4fcc856d3b3bb19bf6c8160d103f7a99cc258bddd0251dc7f2" + +[[package]] +name = "potential_utf" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" +dependencies = [ + "zerovec", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-crate" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" +dependencies = [ + "toml_edit 0.22.27", +] + +[[package]] +name = "proc-macro2" +version = "1.0.101" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "profiling" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eb8486b569e12e2c32ad3e204dbaba5e4b5b216e9367044f25f1dba42341773" + +[[package]] +name = "pulldown-cmark" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57206b407293d2bcd3af849ce869d52068623f19e1b5ff8e8778e3309439682b" +dependencies = [ + "bitflags 2.9.3", + "memchr", + "unicase", +] + +[[package]] +name = "quote" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + +[[package]] +name = "rand" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +dependencies = [ + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +dependencies = [ + "getrandom 0.3.3", +] + +[[package]] +name = "range-alloc" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d6831663a5098ea164f89cff59c6284e95f4e3c76ce9848d4529f5ccca9bde" + +[[package]] +name = "raw-window-handle" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" + +[[package]] +name = "rayon" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "redox_syscall" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.5.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" +dependencies = [ + "bitflags 2.9.3", +] + +[[package]] +name = "redox_users" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" +dependencies = [ + "getrandom 0.2.16", + "libredox", + "thiserror 1.0.69", +] + +[[package]] +name = "redox_users" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" +dependencies = [ + "getrandom 0.2.16", + "libredox", + "thiserror 2.0.17", +] + +[[package]] +name = "regex" +version = "1.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" + +[[package]] +name = "renderdoc-sys" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832" + +[[package]] +name = "reqwest" +version = "0.12.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f" +dependencies = [ + "base64", + "bytes", + "encoding_rs", + "futures-core", + "h2", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-rustls", + "hyper-tls", + "hyper-util", + "js-sys", + "log", + "mime", + "native-tls", + "percent-encoding", + "pin-project-lite", + "rustls-pki-types", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tokio-native-tls", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "ring" +version = "0.17.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.16", + "libc", + "untrusted", + "windows-sys 0.52.0", +] + +[[package]] +name = "rodio" +version = "0.17.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b1bb7b48ee48471f55da122c0044fcc7600cfcc85db88240b89cb832935e611" +dependencies = [ + "claxon", + "cpal", + "hound", + "lewton", + "symphonia", +] + +[[package]] +name = "rust-embed" +version = "8.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "025908b8682a26ba8d12f6f2d66b987584a4a87bc024abc5bbc12553a8cd178a" +dependencies = [ + "rust-embed-impl", + "rust-embed-utils", + "walkdir", +] + +[[package]] +name = "rust-embed-impl" +version = "8.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6065f1a4392b71819ec1ea1df1120673418bf386f50de1d6f54204d836d4349c" +dependencies = [ + "proc-macro2", + "quote", + "rust-embed-utils", + "syn 2.0.106", + "walkdir", +] + +[[package]] +name = "rust-embed-utils" +version = "8.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6cc0c81648b20b70c491ff8cce00c1c3b223bb8ed2b5d41f0e54c6c4c0a3594" +dependencies = [ + "sha2", + "walkdir", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc-hash" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" + +[[package]] +name = "rustix" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" +dependencies = [ + "bitflags 2.9.3", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.60.2", +] + +[[package]] +name = "rustls" +version = "0.23.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a9586e9ee2b4f8fab52a0048ca7334d7024eef48e2cb9407e3497bb7cab7fa7" +dependencies = [ + "once_cell", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-pki-types" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" +dependencies = [ + "zeroize", +] + +[[package]] +name = "rustls-webpki" +version = "0.103.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e10b3f4191e8a80e6b43eebabfac91e5dcecebb27a71f04e820c47ec41d314bf" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + +[[package]] +name = "ryu" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schannel" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "sctk-adwaita" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cda4e97be1fd174ccc2aae81c8b694e803fa99b34e8fd0f057a9d70698e3ed09" +dependencies = [ + "ab_glyph", + "log", + "memmap2", + "smithay-client-toolkit", + "tiny-skia", +] + +[[package]] +name = "security-framework" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +dependencies = [ + "bitflags 2.9.3", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" +dependencies = [ + "serde", +] + +[[package]] +name = "serde" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "serde_json" +version = "1.0.145" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", + "serde_core", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signal-hook-registry" +version = "1.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" +dependencies = [ + "libc", +] + +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + +[[package]] +name = "skeptic" +version = "0.13.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16d23b015676c90a0f01c197bfdc786c20342c73a0afdda9025adb0bc42940a8" +dependencies = [ + "bytecount", + "cargo_metadata", + "error-chain", + "glob", + "pulldown-cmark", + "tempfile", + "walkdir", +] + +[[package]] +name = "slab" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" + +[[package]] +name = "slotmap" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" +dependencies = [ + "version_check", +] + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" + +[[package]] +name = "smart-default" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eb01866308440fc64d6c44d9e86c5cc17adfe33c4d6eed55da9145044d0ffc1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "smithay-client-toolkit" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "870427e30b8f2cbe64bf43ec4b86e88fe39b0a84b3f15efd9c9c2d020bc86eb9" +dependencies = [ + "bitflags 1.3.2", + "calloop", + "dlib", + "lazy_static", + "log", + "memmap2", + "nix 0.24.3", + "pkg-config", + "wayland-client", + "wayland-cursor", + "wayland-protocols", +] + +[[package]] +name = "socket2" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" +dependencies = [ + "libc", + "windows-sys 0.60.2", +] + +[[package]] +name = "spirv" +version = "0.2.0+1.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "246bfa38fe3db3f1dfc8ca5a2cdeb7348c78be2112740cc0ec8ef18b6d94f830" +dependencies = [ + "bitflags 1.3.2", + "num-traits", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strict-num" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731" + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "symphonia" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "815c942ae7ee74737bb00f965fa5b5a2ac2ce7b6c01c0cc169bbeaf7abd5f5a9" +dependencies = [ + "lazy_static", + "symphonia-bundle-mp3", + "symphonia-core", + "symphonia-metadata", +] + +[[package]] +name = "symphonia-bundle-mp3" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c01c2aae70f0f1fb096b6f0ff112a930b1fb3626178fba3ae68b09dce71706d4" +dependencies = [ + "lazy_static", + "log", + "symphonia-core", + "symphonia-metadata", +] + +[[package]] +name = "symphonia-core" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "798306779e3dc7d5231bd5691f5a813496dc79d3f56bf82e25789f2094e022c3" +dependencies = [ + "arrayvec", + "bitflags 1.3.2", + "bytemuck", + "lazy_static", + "log", +] + +[[package]] +name = "symphonia-metadata" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc622b9841a10089c5b18e99eb904f4341615d5aa55bbf4eedde1be721a4023c" +dependencies = [ + "encoding_rs", + "lazy_static", + "log", + "symphonia-core", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] + +[[package]] +name = "synstructure" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "system-configuration" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" +dependencies = [ + "bitflags 2.9.3", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "tempfile" +version = "3.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e" +dependencies = [ + "fastrand", + "getrandom 0.3.3", + "once_cell", + "rustix", + "windows-sys 0.60.2", +] + +[[package]] +name = "termcolor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" +dependencies = [ + "thiserror-impl 2.0.17", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "tiff" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e" +dependencies = [ + "flate2", + "jpeg-decoder", + "weezl", +] + +[[package]] +name = "tiny-skia" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df8493a203431061e901613751931f047d1971337153f96d0e5e363d6dbf6a67" +dependencies = [ + "arrayref", + "arrayvec", + "bytemuck", + "cfg-if", + "png", + "tiny-skia-path", +] + +[[package]] +name = "tiny-skia-path" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adbfb5d3f3dd57a0e11d12f4f13d4ebbbc1b5c15b7ab0a156d030b21da5f677c" +dependencies = [ + "arrayref", + "bytemuck", + "strict-num", +] + +[[package]] +name = "tinystr" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinyvec" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" +dependencies = [ + "bytes", + "libc", + "mio 1.1.0", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys 0.61.2", +] + +[[package]] +name = "tokio-macros" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" +dependencies = [ + "rustls", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_datetime" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.11.0", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" +dependencies = [ + "indexmap 2.11.0", + "toml_datetime", + "winnow 0.7.13", +] + +[[package]] +name = "tower" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper", + "tokio", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-http" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" +dependencies = [ + "bitflags 2.9.3", + "bytes", + "futures-util", + "http", + "http-body", + "iri-string", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +dependencies = [ + "pin-project-lite", + "tracing-core", +] + +[[package]] +name = "tracing-core" +version = "0.1.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" +dependencies = [ + "once_cell", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "ttf-parser" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2df906b07856748fa3f6e0ad0cbaa047052d4a7dd609e231c4f72cee8c36f31" + +[[package]] +name = "twox-hash" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b907da542cbced5261bd3256de1b3a1bf340a3d37f93425a07362a1d687de56" +dependencies = [ + "rand", +] + +[[package]] +name = "typed-arena" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a" + +[[package]] +name = "typenum" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" + +[[package]] +name = "unicase" +version = "2.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" + +[[package]] +name = "unicode-ident" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" + +[[package]] +name = "unicode-width" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", +] + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "uuid" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f33196643e165781c20a5ead5582283a7dacbb87855d867fbc2df3f81eddc1be" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wasi" +version = "0.14.3+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a51ae83037bdd272a9e28ce236db8c07016dd0d50c27038b3f407533c030c95" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +dependencies = [ + "bumpalo", + "log", + "proc-macro2", + "quote", + "syn 2.0.106", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "wayland-client" +version = "0.29.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f3b068c05a039c9f755f881dc50f01732214f5685e379829759088967c46715" +dependencies = [ + "bitflags 1.3.2", + "downcast-rs", + "libc", + "nix 0.24.3", + "scoped-tls", + "wayland-commons", + "wayland-scanner", + "wayland-sys", +] + +[[package]] +name = "wayland-commons" +version = "0.29.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8691f134d584a33a6606d9d717b95c4fa20065605f798a3f350d78dced02a902" +dependencies = [ + "nix 0.24.3", + "once_cell", + "smallvec", + "wayland-sys", +] + +[[package]] +name = "wayland-cursor" +version = "0.29.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6865c6b66f13d6257bef1cd40cbfe8ef2f150fb8ebbdb1e8e873455931377661" +dependencies = [ + "nix 0.24.3", + "wayland-client", + "xcursor", +] + +[[package]] +name = "wayland-protocols" +version = "0.29.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6" +dependencies = [ + "bitflags 1.3.2", + "wayland-client", + "wayland-commons", + "wayland-scanner", +] + +[[package]] +name = "wayland-scanner" +version = "0.29.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53" +dependencies = [ + "proc-macro2", + "quote", + "xml-rs", +] + +[[package]] +name = "wayland-sys" +version = "0.29.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be12ce1a3c39ec7dba25594b97b42cb3195d54953ddb9d3d95a7c3902bc6e9d4" +dependencies = [ + "dlib", + "lazy_static", + "pkg-config", +] + +[[package]] +name = "web-sys" +version = "0.3.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "weezl" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a751b3277700db47d3e574514de2eced5e54dc8a5436a3bf7a0b248b2cee16f3" + +[[package]] +name = "wgpu" +version = "0.16.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "480c965c9306872eb6255fa55e4b4953be55a8b64d57e61d7ff840d3dcc051cd" +dependencies = [ + "arrayvec", + "cfg-if", + "js-sys", + "log", + "naga", + "parking_lot", + "profiling", + "raw-window-handle", + "smallvec", + "static_assertions", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "wgpu-core", + "wgpu-hal", + "wgpu-types", +] + +[[package]] +name = "wgpu-core" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f478237b4bf0d5b70a39898a66fa67ca3a007d79f2520485b8b0c3dfc46f8c2" +dependencies = [ + "arrayvec", + "bit-vec", + "bitflags 2.9.3", + "codespan-reporting", + "log", + "naga", + "parking_lot", + "profiling", + "raw-window-handle", + "rustc-hash 1.1.0", + "smallvec", + "thiserror 1.0.69", + "web-sys", + "wgpu-hal", + "wgpu-types", +] + +[[package]] +name = "wgpu-hal" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ecb3258078e936deee14fd4e0febe1cfe9bbb5ffef165cb60218d2ee5eb4448" +dependencies = [ + "android_system_properties", + "arrayvec", + "ash", + "bit-set", + "bitflags 2.9.3", + "block", + "core-graphics-types", + "d3d12", + "foreign-types", + "glow", + "gpu-alloc", + "gpu-allocator", + "gpu-descriptor", + "hassle-rs", + "js-sys", + "khronos-egl", + "libc", + "libloading 0.8.8", + "log", + "metal", + "naga", + "objc", + "parking_lot", + "profiling", + "range-alloc", + "raw-window-handle", + "renderdoc-sys", + "rustc-hash 1.1.0", + "smallvec", + "thiserror 1.0.69", + "wasm-bindgen", + "web-sys", + "wgpu-types", + "winapi", +] + +[[package]] +name = "wgpu-types" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0c153280bb108c2979eb5c7391cb18c56642dd3c072e55f52065e13e2a1252a" +dependencies = [ + "bitflags 2.9.3", + "js-sys", + "web-sys", +] + +[[package]] +name = "widestring" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd7cf3379ca1aac9eea11fba24fd7e315d621f8dfe35c8d7d2be8b793726e07d" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0978bf7171b3d90bac376700cb56d606feb40f251a475a5d6634613564460b22" +dependencies = [ + "windows-sys 0.60.2", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows" +version = "0.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e745dab35a0c4c77aa3ce42d595e13d2003d6902d6b08c9ef5fc326d08da12b" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows" +version = "0.54.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9252e5725dbed82865af151df558e754e4a3c2c30818359eb17465f1346a1b49" +dependencies = [ + "windows-core 0.54.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" +dependencies = [ + "windows-core 0.58.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-core" +version = "0.54.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65" +dependencies = [ + "windows-result 0.1.2", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-core" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-result 0.2.0", + "windows-strings 0.1.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-implement" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "windows-interface" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "windows-link" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-registry" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" +dependencies = [ + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", +] + +[[package]] +name = "windows-result" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-result" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-result" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-strings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result 0.2.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-strings" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.3", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link 0.2.1", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" +dependencies = [ + "windows-link 0.1.3", + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_i686_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" + +[[package]] +name = "winit" +version = "0.28.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9596d90b45384f5281384ab204224876e8e8bf7d58366d9b795ad99aa9894b94" +dependencies = [ + "android-activity", + "bitflags 1.3.2", + "cfg_aliases 0.1.1", + "core-foundation", + "core-graphics", + "dispatch", + "instant", + "libc", + "log", + "mio 0.8.11", + "ndk 0.7.0", + "objc2", + "once_cell", + "orbclient", + "percent-encoding", + "raw-window-handle", + "redox_syscall 0.3.5", + "sctk-adwaita", + "serde", + "smithay-client-toolkit", + "wasm-bindgen", + "wayland-client", + "wayland-commons", + "wayland-protocols", + "wayland-scanner", + "web-sys", + "windows-sys 0.45.0", + "x11-dl", +] + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.7.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" +dependencies = [ + "memchr", +] + +[[package]] +name = "wit-bindgen" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "052283831dbae3d879dc7f51f3d92703a316ca49f91540417d38591826127814" + +[[package]] +name = "writeable" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" + +[[package]] +name = "x11-dl" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" +dependencies = [ + "libc", + "once_cell", + "pkg-config", +] + +[[package]] +name = "xcursor" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bec9e4a500ca8864c5b47b8b482a73d62e4237670e5b5f1d6b9e3cae50f28f2b" + +[[package]] +name = "xi-unicode" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a67300977d3dc3f8034dae89778f502b6ba20b269527b3223ba59c0cf393bb8a" + +[[package]] +name = "xml-rs" +version = "0.8.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fd8403733700263c6eb89f192880191f1b83e332f7a20371ddcf421c4a337c7" + +[[package]] +name = "yoke" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", + "synstructure", +] + +[[package]] +name = "zerocopy" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "zerofrom" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", + "synstructure", +] + +[[package]] +name = "zeroize" +version = "1.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" + +[[package]] +name = "zerotrie" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "zip" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" +dependencies = [ + "byteorder", + "bzip2", + "crc32fast", + "crossbeam-utils", + "flate2", + "zstd", +] + +[[package]] +name = "zstd" +version = "0.11.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "5.0.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.15+zstd.1.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" +dependencies = [ + "cc", + "pkg-config", +] diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..4e33ea0 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,17 @@ +[package] +name = "enxos" +version = "0.1.0" +edition = "2024" + +[dependencies] +anyhow = "1.0.100" +dirs = "6.0.0" +ggez = "0.9.3" +hex = "0.4.3" +once_cell = "1.21.3" +rand = "0.9.2" +reqwest = { version = "0.12.24", features = ["json"] } +rust-embed = "8.7.2" +serde = "1.0.228" +serde_json = "1.0.145" +tokio = { version = "1.48.0", features = ["full"] } diff --git a/assets/bg.png b/assets/bg.png new file mode 100644 index 0000000000000000000000000000000000000000..1aa3ecbeea0a14ca0e91c743b93c6f287e5a8026 GIT binary patch literal 5952 zcmeHL`&W|L8vZ~n%kE8PUURxx;$W6zR%$s;)}hcGQ%O@t1E);9;{`;g*38rtU^50@ z!^yN1FL@tS(2nJ#sFaF|hE5R@AYM>JK;?YR%s+6}I%}O@{NY>s+k3xzzt4W&eSPkD zBRw~+H(d_^z{YcDJ$wK_Z#Muy0}R)ICAqkpF<`PT<}4~60F1VO`XE4Vz6n?eiTCkz z2P%8bC16HB;`D{n08mXaTKd)i0E~I(JWl&2L*#-h_ku)ef6PX(BCBR^M%{z(uWej+ zFq%|wXbsQ$(yhLd3jH7IE@p1?y%e=0YwS(TCFSSLiqtEPH%nLtOFa-~hIKyceDDU_ zhP}&;&F!D>|M%hQ=N-eZWV9aF+HyGzkHN@u=t&W-R&_NlC*mi#Im~0@@xA%GP-!~7 zZ$KcsLs1X_Fx+ z9c1@K=RJuCfYtgY3YK0Da)Sm?#{H3X!((s&(fLZMwaPvOd{u@$N|g9l+9stdn&Q+i zJW$nPU&|sA66)^VyH_`L#L@8*^5IDo@_cjv5{aZbjl1|h9BXbosq7e2EL4XV`%7Vo z!unJxLlrcSlBSkguIT(Pr>{t=q7IG^FUWRAQC})d?Wib#dI$pDP|;+quFu25{DW|) zob0jea4gf@AAjEPRNc zN2$Vw7N6#Z6=DM_gP1jhxE^T@QM8y+AahHiBDws>R<-#ujZ)V9bLI<}(c$lEfelcQ zmH^ zi(IxElQPjm&r%&Yz=?2LR(zdi z$M+5`ZQf65=UA!9gGOm=z2;|PTyWqJ&D29J+Q2NUqq7z9v zqPip8&Bkj|b5Yh1o%U|wt^>z?Z-hjNUlW?S__=$i%>av^H(1eJ7{9o^c7PF*h&L$5 zNi7#r>q}CZ!*d121*X=z`3G>?#(wU_Js-wAEepo-(w81}J20^GNh32}Jqs}J}M~$!#~Ed))h2Q=eurG zc&Ohzzg6KTYlWLx(ZS%XL9={~nD^qIsEpbQWA*h-l1IP9+O#Ho?{6>lOC#4a{OZ~J z@FtiXQfBJjt6#cH#qJZDDe}%PRWPwQ);YMy(I7Oya7*Z)QK(k7GKzOldBUn8YS{Zn zG?jAZ)n=l#yCq>tt$00mB;@Mv>MmtkL2)2L zQf4E$C4IkpFNxBs>ES-mHr$xf!UO?_sQ+t2JTQDIcVn#v2(H6o98%lXsv;xn(>L)7hl zgvmT|rc~B=!!Btoraeb|zNZh_tc>Fdy{JajuNm3(d0-#TQ0O!Lg!nuBm+$EzBPsh` z%MK*Tb5*w_z=i{048He=M;~`|+%eit)XYmd5M`S*FfnmLm`B&%;Li@S72|HiB4tiy z>xuwQo!$2=*pewD$H_ZLcf-Kh^}*24erCbSWl+QZA?w!zUR1$Pn`qzWiQX4SYc>>XR66-Q~{vBd=la*`GN>nP}D~aiZFYT?#T>Pkl z8P#V+Kuq=)2}iM79K>YXsH*kKAf?JC?~4K(p-{MU2_2v4wSb>y`L76hLtW$SnO39J zNq0=jN431dZMr!zk{M77n}6jQ#!3kH2El#?f<4Y{sjn(GNBLEv63;~z#qn$APM8qh zzqm7a?Wj(psGJ+ip2Sg+kiKb@@iwbYWnZUHuBa29Uiub4M~Wb_RSH{himlrcYQu9G z)lw|&%t}<)s{FA+b2BqpYI_Yad2v}a4%a?$+OLZh>#ofF80J)a)ZlCwwRN0bBtytc zh7i9NA48DHjLN36^XJdkRg(9e$~f)l2mI*E(!B1~TiX>KHR8)omX|219V0K}f0uQL z6e12cAN!40Ua8rA#VhQD6gqa=i8qs7Iu|fOP!(LC(=t_(1zmL6 z-O-5^cGd*Hq{}meh7F;ssYk}+dsK_K_{7|zYy1ncZ_C=f`okw&iEObHBcOe$if$wt zYZjRl`Gn(C-4{(MUUhhOiPp)E(W$PSMslPRF3#iQqjpJbG_9}2HTPk29W%Z8FE3ML zTtUlVaeLeZzEW*DF4yAN&bd@Uon^`KrK2vGDWMo&i5*P47O%s}B7URLwZqt8AyW1z zPvy}pj%-TrugT4y)=brvW5<4-TV@I3#DTbjJ+dMR6OpHFY>t|mMo6ZX-}XdaISz|p zi*u)E1?*^X-hVxeis}11LkO|bc}YL|dYM2Eln=jn8$hCfSG73lKq+{{z4i)MzVak( z{-h+%j|Th}k&6sB+qLT;s4fDM97Yv8bpjr5`hnyUowdW(FYC>lH=tpAFFF~2^{S?| zwEvr8VhLs;t3eY#^XKz8@X7&JAA|O7R}L@+)BDp0ho5eBkS)#%T|@K$z-rrW7hk=r z3x=YkZ~vmodr`e!#M ztl#h?1Ol{efb`jJiUZGRPw3;dBNp$TdV1#H1clO1Hg!gS+n~Uz%lF^B-bE$?KpU9j znnNH!My>wY3_~#81%2$Fe+_J7u`bi{JC*Zh`aiXF=Veev?ge4KKImX>@V6=V#aaN! z-*-w=ZfOx~Y7C+VA-=y0c2u|r#ImvA-N(NTp#QYk+jema0AyRAN-Y#@C7W82L2dRE zY&|(SW?(T!9~5aZhMB>!J756t@odKY&%GeqWDr{sc=fRV3bY1q9*_MAz2*RL+|)Mc zS?bTchb(;8^IK~A16?tCJsTF-P_8@y pa+EQD-lZ$Hb06(904U^hA*0@>A6r-jD?t~)xv!BPmF}T8{{z@AmT>?8 literal 0 HcmV?d00001 diff --git a/assets/button_bg_32x16.png b/assets/button_bg_32x16.png new file mode 100644 index 0000000000000000000000000000000000000000..0f59d222f7f823b2f5d7fec4cfaa36a39d934899 GIT binary patch literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^ia;#L!3HFQ=N&x+q&N#aB8wRqxP?KOkzv*x37{Zj zage(c!@6@aFM%AEbVpxD28NCO+K4#Q7GZk>jra zW;~bJTMj%`@Cal-@zJwW(Z0Z{SSs0s@$o;4=g({MYwL|SX6+TSXzNf@c&@WGOmRbg z2D3~fJ&_d0r{TE9eHfMb_%LaXt{7Gdut$(-sv?~Zh6%oGf?YfIbX z#NqChnV;Nh8^HeV@qSCcNpYg*tAlS_@4oh;^xX6P-}9F>l-1ThS?}$3-9953=voF( LS3j3^P61qpcC?$X`=3|ycuNWjaqNen#yNmvm@dxl?p5)cq1bsRfRTvyk%3JB-J za{IXDP1AfQxKUNnN&WSxm@w~lxd(wvm|+-XnkG3g*Q%;635FUp17XH-lq1u&txJT2 zG)*PTGI6!WsT=DDeAmm3WQ~iocdEHQ4w4zwQR_qmESvJay*Ad$RsL))tCCc6|K;?`F&Y T_kI}>00000NkvXXu0mjfw{zZT literal 0 HcmV?d00001 diff --git a/assets/button_bg_65x30.png b/assets/button_bg_65x30.png new file mode 100644 index 0000000000000000000000000000000000000000..6fa44b16768dee2ca90b9f7fbc740acde5093807 GIT binary patch literal 503 zcmVvop4~?A z_!Z6o5W^Mmux)m`U2vAgmS>R!{3SzX849zEKfGB+#Gg(lvkZZ{u5+bXMwm_f;czg^ z06d!n%P^l2kwupQWYJ};m>9zOd?s_C3bPEMZChJ`3O1W4;4H|*aBDonB3*!2p!S;N zm>7{@8KpCV�=(9H`*qI>T0=Kt9xL(G{ZO7WPvhxZ`=lb>H{>br^=dlWn%F97!JO zYj8R;KPNdo=dF7X={$jabv;j$q`hu4mCznFRxF+}c)CS7v{;4{?Scg}6yWK`U zd5z;(LY-9k@p$wMNnTN!A!IIR`X4DAkF*2 tVGy_{7bO==JuJjH^RehLO^?Up=NCQ9*);cNSj7MU002ovPDHLkV1mkj+G79! literal 0 HcmV?d00001 diff --git a/assets/close_icon.png b/assets/close_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3f01a1a7d5b7f842c0dd71635ce8dae65535faa2 GIT binary patch literal 318 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP>``W z$lZxy-8q?;Kn_c~qpu?a!^VE@KZ&eB{$)=W$B+ufrNNB6Ee1R~>lrvb9GHaKm~PLG{y{id6Ca^Yp&#?oqqKb}c{nlEU&3l~l-{$4#fAY@Ly|hL~_q{mKdkmhg KelF{r5}E)_D|xp7 literal 0 HcmV?d00001 diff --git a/assets/cursor.png b/assets/cursor.png new file mode 100644 index 0000000000000000000000000000000000000000..673fabbf614fe37505f7bd8625c3aa4631de8632 GIT binary patch literal 792 zcmV+z1LypSP)P000>X1^@s6#OZ}&00001b5ch_0olnc ze*gdg1ZP1_K>z@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUy24YJ`L;(K){{a7>y{D4^000SaNLh0L04^f{04^f|c%?sf00007 zbV*G`2k8hO761}1heBuo00LY|L_t(Y$F-GBNEBfh$A9mPteVy4ir^k12>Q5~Uyh`_lE}p#9DF{S56u6om)(8?4FSg8LAFj0QE>go}wX@^Q`*ay$ zZ??nwS|2!t}3-}Fu1^&_^NeFlZoNoodR7yR`X0!2FEY`QRwN(QufDG1pf@)+_4xSsI`9BU zL=HJtCX?}JW@cUk_nRGtwvz(J#>Pyo^=;R6&AGX`Lm(UWE4oaMmCa`T{{H^=z;(cA z2}DH1vMddhfGdrFPAu2#?5v;5V~UFdfpXgCwgvh?!uG6x3-DwRsrf8~G-P;6>~j~{z`dwO+swJFMd8KpMCT3?-AvKx?fYyId}dZQFl<&p<64j7ar7Tpw%AH2xpY WPNRQY@&3>N0000NSwWJ?9znhg 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� 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

YA7NQdc!sg?o-xl| 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

@go{XM~o{pZ0o{gT1o{wILUW{IfUXEUgUX5Oh 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 literal 0 HcmV?d00001 diff --git a/assets/games_icon2.png b/assets/games_icon2.png new file mode 100644 index 0000000000000000000000000000000000000000..161d7b4965f92f78054842bdc12502bf8c16b4c0 GIT binary patch literal 421 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvmUKs7M+SzC{oH>NSwWJ?9znhg z3{`3j3=J&|48MRv4KElNN(~qoUL`OvSj}Ky5HFasE6@fgAsXNl;tHgJ;Q#;s4Gj$k z4jgCz@fsMCC#?q3j3q&S!3+-1Zlr-YN#5=*OljOTDL@W;iKnkC`y)09aSpXU4uzi} zO`a}}AsXkC6Ao~(C^DQ&4{2gx+|gjjB5`PH$Bu?ZcSTkW{{2SB9WEM;HS`=Q-;MVc!ikfo@SPag8WRNi0dVN-jzT zQVd20h8DU8X1YcuAx6el1{PMvK(2|Efx*|q)kje@mdK II;Vst06B_vM*si- literal 0 HcmV?d00001 diff --git a/assets/minimize_button.png b/assets/minimize_button.png new file mode 100644 index 0000000000000000000000000000000000000000..ebcc0862165264e3ce1a477d2926633261ecff7b GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP>``W z$lZxy-8q?;Kn_c~qpu?a!^VE@KZ&eBzOAQ=V@L(#+esUF85B5J% z3QWc;idHtMxDbmHz>v-`Jiw2NNU#bckg_z>VW}{H5&vEu`_P$t?^(X@obQ~6`=cn5 zZ)fdd4FIqcgz=)0b=$o(bM*3Bs)vxFrUwgy0qCl+d7t#rE|?M)Ed-$WC;-ZG0N$aL zatVNZCIH4n0N9rS_&ED&?->pN6gSbA;!s4u2#h32fS} zZEX$V1VOsGxXT&_?kB>pBb90QQV2-JaqB#EPge3Ze7w&7LO z7$|{mN=KSj36cajv9+~@v@t}$&=^EvVIhuTR4SDqA;1ArARvJOK%>!c)ENK>5spt! zPh$jrr=xa7KeV{09~l{$oSc+Or4oq*vGCpLF$mFs5JF6+)4995tJP|>DB2AYNS8z| z!jYttlM`au+S)oeI4G6CXf)F4bc4YFaa^fXLP#oVDFK!RMLb zHs7YAz)~R)hFZ>9xB!ns{l>7n0GNdfc){X;5qbT0C3Pa_A(kcOX|V1^dA_sTLBR=) z+E;NxK9TCKpNbJqzWeazW*(6CPVHo$d!Iu#H7@q+ax_7oFBefjQIjVK-oumePZe~5 z%M3S=ZO^ zw^dg0D;va1z1L1R8+w`MujEE`DX;2yb$}=$JSG$Jwf4IBg>ib*(t+vv!dG#b)KB|8 zH;Xk-OSq3sv->V^Z2F1^0t4ECvufmr^G3%kAD4;NkUhDYRMOiK^+MmPQ@Kj zJfFSgy)Ck`Pf9=hvypN0%#DNw!ySvd8Cl#syEA5D*gqw_EXB5?K|Fd?oNr(BAhp=t ze!lv!bgWsYkgUye#y8E)i)f>M$vXRP-lksd+CHx7l9|P=vz}teG!opzCzGu1tlnK$7dw&$mbq=#pRnc6p{f!9CV+P*z7_Q%R^`6n$n zy!Nk-1-RDC*OzdbmUkp&>�pzSf9U>#Yx;Y*MW5#U#Z!%5ooDW}lS#UOPN%Na6U_ z1x7`g29`69NGk;1+A2#&16!|2uN}xGemxiw_56Y^kV4NYd$f{_zAHGQ2#r;wCMnX` zDY?EJAP9}* J-Q^};{1+NSwWJ?9znhg z3{`3j3=J&|48MRv4KElNN(~qoUL`OvSj}Ky5HFasE6@fg!5QEa;tHhy1JVEg>5?gO zKn`O`kY6x^!?PP{AWo9Ey9-kqcTEbA!(QU)>&pI!O^QKB?M%ZSMW9fnr;B5V#AVkB z2L%r(aIl-6wLkwQ7KkAbfc(XX? zlx~9fXVDK6H#J^o5o?+=zoJ=%Q56iAHcn&fVU?K_bm0>BKH+8i-p`n{dUvqrhWqP( z*3U71AomdKI;Vst0P#tGF#rGn literal 0 HcmV?d00001 diff --git a/assets/settings_icon.png b/assets/settings_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..e49022d3c9d5599c71719d1a0d6e799abcad7858 GIT binary patch literal 572 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10!ZpAr#1%--oH&!1mAaNt0Bd3k(%yo`(tP?m#(LsL`p)vH&bp`pIMzG-O;XFwqB%o(6YhX4O( z{{R19YFDEnP$^?ckY6x^!?PP{AWo9EyNg)O#TAl34tt5GuPgf_HYo;Ui37XWivWe5 zd%8G=Se!n4@nK%G0S`-pl|in4a;fa|zwuk2r_2sg*l(`fC{jPed&aW*py{!-G6(*I zo#veIwJLU+^lLrkhL#oQ6+M)s*RTJ`A{eRIZ+PRtzD>u3H@wvO6f&o2_NtC!h5{?( z8fP(@_%}_FO+U~xU*W{f&vFJ0Q9l{q%xBnepMmv~b;sR}`n(<;b!?4=b%rm(oM)we z)_b1n*0W&4581G$Rm)@@W(!T9y6Zw?$nTx+mbl!JxY#UO(0}w&oLQSs?Fm!C1y4KL zt6%Xab#gV#>Mj3%n1A*jIlt3w#uw~<$;uu7r!W2e-o=IEp!dcbdAhH3=FJH4Xun!bPY_b3=CHEOD{*!kei>9nO2Eg!_7;J RrGXk4JYD@<);T3K0RXqg)Y1R| literal 0 HcmV?d00001 diff --git a/assets/start_button.png b/assets/start_button.png new file mode 100644 index 0000000000000000000000000000000000000000..8356b3b63dd0af648ae916d3bcc84922f2eabd0e GIT binary patch literal 2099 zcmV-32+a41P)Tb$P?lUg#xy4b9g)+O@t zg(xzc&2A{uYTqf=*Vo|?2nmW>uDom4uEFQ?p|Y|P!C(*-6&3pXilS_^)9Eyl$s{tF z3|uakZnn`$vbX`tTp!2p_v_<20o%51Ln4vT)NK9xVVVdUVja~3NNzk><{?SSl@uy+#CjnhN!wRgxUWfuhr6` zY+n@8_OQ`L6ZiHNFh4bq!OsTuDZFq0KJ3}O2X`|p;siG3J^ReF7#<$R5D9wo)F~{) zVo<$aR7E1Fp%tm3g@pyZZxihwv=-Xiv~PsGeQX@1t@zqxQsky_BGF6rk$tdguEdRIZqu<^5kJ- z^>uqmtOGL{8+pN}pGJCo9O*M3;=#T?)GjQc=v7f93*meo8LI9Q`wf`=KcRh0OTr{i zNE3^(Jxcp6MLWV{3QmJ!TQK7Bb^I_}V9Zv7sir1`7zD3#!B|eE;7@SgEiWOe6>yq; z=NYVAVO*l2if5D5^DyoY=CLCJWSDe(OJ-w~sx}RgtNoX{J7F=V*`DXZF_?oKWiG<R~fssF-24Tz`uHdShx`FdK98S{=!(h7li6(q5ts z@jQzw4ESDrk<^mg_I5BQX0}qTP{Gb9@e6VEd5Yol%5ePnakRAD$1+kk9`C&$O-)l= zFpBu%%N*4h)X9^jQ`3fEaQ`XoecBA)%jv3{o|aV`=ajnuX(FBk%7$M}%1}7N;>VFo2bn z75#m2ly0|5|K~$0HLF)mI`iJq)e(W7 zV#ay)3_~CnJK8%icX&=$oRp+Op|HNM;b-2PH0NOZ-gfNTwd?w*%5`#@o15{_p@&cv zt|Hkfem(@3+Zj=^8Ru#0jkX?JT3W!JaaNJDaJ$?a8$CjhwK=}Af3XRqpAg%`6i+e~ zH|v9?5LZyT8BRM<=MtT(%@x3afrq_AuJbuJb)jVxh7JE$xdkLS0thNF<^xEiGv`x{vZP ztp0M;Z-UQpqx+RUmd}#=llwH=*0{ENwmv6EevhyzyV9HfrA#S1{#v-z@sv%D%1y5S dTDa|Te**I3ba!BBJw^Zk002ovPDHLkV1fu)`a=K! literal 0 HcmV?d00001 diff --git a/assets/start_menu.png b/assets/start_menu.png new file mode 100644 index 0000000000000000000000000000000000000000..d63c679e97c6db786ba4fdf2a62dd3cbc6c3e76a GIT binary patch literal 3033 zcmeHJ`BM^#76#2S4e3R;n8vkzA$?vmb0wFiOs)IU6mlg^Q(Q0=id51}vtClKQWKZV zmzknTW-6#?3r_g5z zRX6C3o7s%H)i>6)C9mE4U)u?*4U%cpHOLXlS%3X3<5@ReuT{MOnqs(s{ME2u3Zj7y z%gnFYA`Y$UGdg3sZnaO#t{|p8IWbGkSd~3aZ}ORd<2;)Ub(;*|bi%=ULTJ=mPDUkOyGm45BiN4} z4-`%Nl#bA)>3HqaRHw7>koz^%qW8q!QPY6?<+p+uL|qqW)Hv-evlTtsS?UQQ?sY^_`t( zOr+08TJsB~j~ikpkD{ZC4)?i+)O+r>f00xkMbNc%C!vwOclo6J0pcmP^_MN!k47vr zUg^Q$8ef*}-+J%X$}*s?!8Ougds4Q~8`Y!|+ht6XuHtzX?pf9UWLd&>1dwJu*Os42 zev@F>cxXkTQK9Rx7BK?Ur@cZlnwudN84Cis`Ke3Ao8yPg#%WvE`+rJNZ z4Xv^0Zz$&3b6X5ljf&sfdM)yZDboQBYMgm`cFr{zHIn<#rp9Qh+=l$HI7A1l@v*#Y zkNSFCIp3D2n2O@(&i`iek+Y88%^YsMlJ0B(SWqw^v_Nm4yN8skn`pLf093pu$FGF@ z){k)&pEN1sr<5+!*##UxNQH|8rgL|D9gHQ?vLf?V#SyFnCXnFe%mGRBlqynOVfe zwkD4}BPRf-r4u_o{nrBQLXj7mQVe~ar|B2IKD;QO3Y5=_Xbb4y~=40rruy-u$r7{;=6iV+r<%l)(C`w2~{^EA$9!U;>rAP6c;Ob)qZ zFMdJMUhBm0r{xN~C`-W&y)zPFNG5bVk&7izt08^Hs1vI|A1BT!w~9*=7SyqaCvSp+ z#(SPf#xgez)D4U#+c;*rQL6{D!q-_mjqFbBQB9HFNj8!WD9*BM;^vdxrUwWrx*b?6 zkw~U=8s(Kx?6Dx+@UUtG9@+kwpj8sF6?EN#0O?>wbEL7?^ti4Lnh29pQ`L?O#3d8+ z(8&pe1H{c9RyH!c5L@Y-sUPi-QIlgF$AzD8{m%``e%lFn#uy@asvvqsTQgVz>7)$q zm4A(+C5-iC3*2+G9TAJgAh%4H^k#H*n&-#>fnw*c{RZ#50^Piyq$FWMkKAYI2EC@z zze^J`zX;WT^>G`U)W~`?%{HlaLHAcsRUNx1_%9#5814=OD6T&(Wp~;GVEPqs)8p>6|K0k7a@^-pX_j}32h7T8q zvM8kd-4MKV<6b-VaBDepJ%qgAmE)Xzhj+4|>Uv?Z3U$9Dex=(J$cHue)P5V}j9-yx z#J#&KlUE*NX)$GFCvtB>@||0!37!YwFo*_*;^e>J4cX+n21s|Hu4B6z|It45`PqGa zVUcLoBD`ue@Z~Fp)%!?;>GTdfG{pP4TDCnl@OJsqm>GuE8eWLI{~v3A4AHdAZ`Sxh zIz7GVExwPch%E46Z1S2A`z^FvXoRvIH3tO~, + start_menu: StartMenu, +} + +impl State { + pub fn new(ctx: &mut Context) -> GameResult { + let bg = Image::from_bytes(ctx, &get_asset("bg.png").expect("Couldn't load bg.png"))?; + let cursor = Image::from_bytes( + ctx, + &get_asset("cursor.png").expect("Couldn't load cursor.png"), + )?; + + let network = Image::from_bytes( + ctx, + &get_asset("network.png").expect("Couldn't load network.png"), + )?; + let network_no = + Image::from_bytes(ctx, &get_asset("no.png").expect("Couldn't load no.png"))?; + + let start_button = + Button::new(START_BUTTON, ctx, None, None).expect("Error initializing start button")?; + + let start_menu = StartMenu::new(ctx)?; + + let window_manager = WindowManager::new(); + + Ok(State { + cursor, + bg, + network, + network_no, + window_manager, + start_button, + mouse_pos: Point2::from([0.0, 0.0]), + start_menu, + }) + } +} + +impl event::EventHandler for State { + fn update(&mut self, ctx: &mut Context) -> GameResult<()> { + self.mouse_pos = mouse::MouseContext::position(&ctx.mouse); + + if ctx.mouse.button_just_pressed(mouse::MouseButton::Left) { + let res = self.start_button.update(&ctx.mouse); + if res { + self.start_menu.toggle(); + } else { + if self.start_menu.visible() && !self.start_menu.click_in_bounds(self.mouse_pos) { + self.start_menu.toggle(); + } + } + } + + if self.start_menu.visible() { + self.start_menu.update(ctx, &mut self.window_manager); + } + + self.window_manager.update(ctx); + + Ok(()) + } + + fn draw(&mut self, ctx: &mut Context) -> GameResult<()> { + let mut canvas = graphics::Canvas::from_frame(ctx, Color::from([0.0, 0.0, 0.0, 1.0])); + + canvas.draw(&self.bg, DrawParam::default()); + + self.start_menu.draw(&mut canvas); + + self.window_manager.draw(&mut canvas); + + self.start_button.draw(&mut canvas); + + let network_drawparam = DrawParam::default().dest([750.0, 565.0]); + canvas.draw(&self.network, network_drawparam); + if !NETWORK_MANAGER.is_online() { + canvas.draw(&self.network_no, network_drawparam); + } + + // Cursor is drawn last + canvas.draw( + &self.cursor, + DrawParam::default().dest([self.mouse_pos.x, self.mouse_pos.y]), + ); + + Ok(canvas.finish(ctx)?) + } +} + +fn main() -> GameResult { + //unsafe { env::set_var("RUST_BACKTRACE", "1") }; + + let resource_path = if env::var_os("CARGO_MANIFEST_DIR").is_some() { + path::PathBuf::from(env::var_os("CARGO_MANIFEST_DIR").unwrap()) + } else { + path::PathBuf::from(".") + }; + + let (mut ctx, event_loop) = ggez::ContextBuilder::new("enxos", "enx") + .window_setup(ggez::conf::WindowSetup::default().title("enxos")) + .window_mode( + ggez::conf::WindowMode::default() + .dimensions(800.0, 600.0) + .resizable(false), + ) + .add_resource_path(resource_path) + .build()?; + + //mouse::set_cursor_grabbed(&mut ctx, true)?; + mouse::set_cursor_hidden(&mut ctx, true); + + let msw98reg = FontData::from_vec( + get_asset_vec("fonts/MSW98UI-Regular.ttf").expect("Couldn't load font."), + )?; + let msw98bold = + FontData::from_vec(get_asset_vec("fonts/MSW98UI-Bold.ttf").expect("Couldn't load font."))?; + + ctx.gfx.add_font("msw98-bold", msw98bold); + ctx.gfx.add_font("msw98-reg", msw98reg); + + let state = State::new(&mut ctx)?; + + event::run(ctx, event_loop, state); +} diff --git a/src/net/mod.rs b/src/net/mod.rs new file mode 100644 index 0000000..3ee86d1 --- /dev/null +++ b/src/net/mod.rs @@ -0,0 +1 @@ +pub(crate) mod networkmanager; diff --git a/src/net/networkmanager.rs b/src/net/networkmanager.rs new file mode 100644 index 0000000..ca33f83 --- /dev/null +++ b/src/net/networkmanager.rs @@ -0,0 +1,120 @@ +use std::{ + fs::{self, File}, + io::Read, + sync::{ + Arc, + atomic::{AtomicBool, Ordering}, + }, +}; + +use once_cell::sync::Lazy; +use reqwest::Client; +use serde::{Deserialize, Serialize}; +use tokio::{runtime::Runtime, time}; + +pub(crate) static NETWORK_MANAGER: Lazy> = + Lazy::new(|| Arc::new(NetworkManager::new())); + +pub(crate) static SERVER_STATUS: Lazy> = + Lazy::new(|| Arc::new(AtomicBool::new(false))); + +#[derive(Clone, Serialize, Deserialize, Debug)] +pub struct UserName { + pub(crate) username: String, +} + +#[derive(Clone, Serialize, Deserialize, Debug)] +pub struct UID { + user_id: String, +} + +pub struct NetworkManager { + client: Client, + runtime: Runtime, +} + +impl NetworkManager { + fn new() -> Self { + let runtime = tokio::runtime::Builder::new_current_thread() + .enable_all() + .build() + .unwrap(); + + let nwm = Self { + client: Client::new(), + runtime, + }; + + nwm + } + + async fn fetch_user_data(&self) -> Result> { + let mut userid_path = dirs::home_dir().expect("Couldn't find home directory"); + userid_path.push(".enxos"); + fs::create_dir_all(&userid_path)?; + userid_path.push(".userid"); + let user_id = if userid_path.exists() { + let mut file = File::open(&userid_path)?; + let mut user_id = String::new(); + file.read_to_string(&mut user_id)?; + user_id.trim().to_string() + } else { + // no ~/.enxos/.userid folder, user is not registered, we need to register to the + // server + let response = self + .client + .post("http://localhost:8801/u/register") + .send() + .await?; + + let body_bytes = response.bytes().await?; + let response: UID = serde_json::from_slice(&body_bytes).expect("json error"); + + fs::write(&userid_path, &response.user_id)?; + response.user_id + }; + + let response = self + .client + .post("http://localhost:8801/u/profile") + .json(&UID { user_id }) + .send() + .await?; + + let body_bytes = response.bytes().await?; + let user_profile: UserName = serde_json::from_slice(&body_bytes).expect("json error"); + + Ok(user_profile) + } + + async fn ping(&self) -> Result> { + let response = self.client.get("http://localhost:8801/").send().await?; + + println!("response : {}", response.status().as_str()); + + Ok(response.status().as_str().contains("200")) + } + + pub fn get_user_data(&self) -> UserName { + let user_profile = self.fetch_user_data(); + SERVER_STATUS.store(true, Ordering::SeqCst); + self.runtime.block_on(async { + match user_profile.await { + Ok(up) => { + SERVER_STATUS.store(true, Ordering::SeqCst); + up + } + Err(_) => { + SERVER_STATUS.store(false, Ordering::SeqCst); + UserName { + username: "offline".to_owned(), + } + } + } + }) + } + + pub fn is_online(&self) -> bool { + SERVER_STATUS.load(Ordering::SeqCst) + } +} diff --git a/src/ui/elements/button.rs b/src/ui/elements/button.rs new file mode 100644 index 0000000..7563121 --- /dev/null +++ b/src/ui/elements/button.rs @@ -0,0 +1,298 @@ +use ggez::{ + Context, GameResult, + graphics::{Canvas, Color, DrawParam, Image, Text, TextFragment}, + input::mouse::MouseContext, +}; + +use crate::ui::utils::assets::*; + +pub(crate) static START_BUTTON: i32 = 1000; +pub(crate) static GAMES_BUTTON: i32 = 1001; +pub(crate) static SETTINGS_BUTTON: i32 = 1002; +pub(crate) static SHUTDOWN_BUTTON: i32 = 1003; +pub(crate) static PROFILE_BUTTON: i32 = 1004; +pub(crate) static YES_BUTTON: i32 = 1005; +pub(crate) static NO_BUTTON: i32 = 1006; + +pub struct Button { + x: f32, + y: f32, + w: f32, + h: f32, + bid: i32, + sprite: Image, + text: Option, + last_press: f32, +} + +fn create_start_button(ctx: &mut Context) -> GameResult

hRz~a$)WQO}Vntt(DUpHho%A7Adjz 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