feat: add egui debug UI window with entity census, inspector, and log panel
Browse filesSpawns a floating egui/eframe window in the same process as WA.exe (DLL
injection) when OPENWA_DEBUG_UI=1. Shows a live entity census from the
SharedData hash table, a struct inspector with navigation history, and a
scrollable log stream.
- New crate: openwa-debugui (egui 0.28 + glow backend, winit any-thread)
- Entity type names resolved via vtable map with ClassType fallback
- Children tree reads sparse slot array (children_size = high-watermark)
- Add CTASK_MINE/OILDRUM/CLOUD_VTABLE constants to address.rs (derived
from runtime vtables: delta 0x6C0000)
- debug-ui feature gate in openwa-wormkit; deploy-debug.ps1 / start-debug.ps1
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Cargo.lock +2676 -93
- crates/openwa-core/src/address.rs +6 -0
- crates/openwa-debugui/Cargo.toml +10 -0
- crates/openwa-debugui/src/app.rs +403 -0
- crates/openwa-debugui/src/lib.rs +65 -0
- crates/openwa-debugui/src/log.rs +38 -0
- crates/openwa-wormkit/Cargo.toml +4 -0
- crates/openwa-wormkit/src/debug_ui.rs +13 -0
- crates/openwa-wormkit/src/lib.rs +4 -0
- deploy-debug.ps1 +13 -0
- start-debug.ps1 +4 -0
Cargo.lock
CHANGED
|
@@ -2,12 +2,250 @@
|
|
| 2 |
# It is not intended for manual editing.
|
| 3 |
version = 4
|
| 4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5 |
[[package]]
|
| 6 |
name = "byteorder"
|
| 7 |
version = "1.5.0"
|
| 8 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 9 |
checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
|
| 10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 11 |
[[package]]
|
| 12 |
name = "cc"
|
| 13 |
version = "1.2.56"
|
|
@@ -15,180 +253,2211 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
| 15 |
checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2"
|
| 16 |
dependencies = [
|
| 17 |
"find-msvc-tools",
|
|
|
|
|
|
|
| 18 |
"shlex",
|
| 19 |
]
|
| 20 |
|
| 21 |
[[package]]
|
| 22 |
-
name = "
|
| 23 |
-
version = "
|
| 24 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 25 |
-
checksum = "
|
| 26 |
|
| 27 |
[[package]]
|
| 28 |
-
name = "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
version = "0.3.1"
|
| 30 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 31 |
-
checksum = "
|
| 32 |
dependencies = [
|
| 33 |
-
"
|
|
|
|
| 34 |
]
|
| 35 |
|
| 36 |
[[package]]
|
| 37 |
-
name = "
|
| 38 |
-
version = "0.
|
| 39 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 40 |
-
checksum = "
|
| 41 |
dependencies = [
|
| 42 |
-
"
|
| 43 |
-
"
|
|
|
|
| 44 |
]
|
| 45 |
|
| 46 |
[[package]]
|
| 47 |
-
name = "
|
| 48 |
-
version = "0.
|
| 49 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 50 |
-
checksum = "
|
|
|
|
|
|
|
|
|
|
| 51 |
|
| 52 |
[[package]]
|
| 53 |
-
name = "
|
| 54 |
-
version = "0.
|
| 55 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 56 |
-
checksum = "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 57 |
|
| 58 |
[[package]]
|
| 59 |
-
name = "
|
| 60 |
-
version = "0.
|
| 61 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 62 |
-
checksum = "
|
| 63 |
dependencies = [
|
| 64 |
-
"
|
| 65 |
-
"
|
|
|
|
|
|
|
|
|
|
| 66 |
]
|
| 67 |
|
| 68 |
[[package]]
|
| 69 |
-
name = "
|
| 70 |
-
version = "
|
| 71 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 72 |
-
checksum = "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 73 |
|
| 74 |
[[package]]
|
| 75 |
-
name = "
|
| 76 |
-
version = "0.
|
|
|
|
|
|
|
| 77 |
dependencies = [
|
| 78 |
-
"
|
|
|
|
|
|
|
|
|
|
| 79 |
]
|
| 80 |
|
| 81 |
[[package]]
|
| 82 |
-
name = "
|
| 83 |
-
version = "0.
|
|
|
|
|
|
|
| 84 |
dependencies = [
|
| 85 |
-
"
|
| 86 |
-
"
|
| 87 |
-
"windows-sys",
|
| 88 |
]
|
| 89 |
|
| 90 |
[[package]]
|
| 91 |
-
name = "
|
| 92 |
-
version = "0.
|
|
|
|
|
|
|
| 93 |
dependencies = [
|
| 94 |
-
"
|
| 95 |
-
"
|
| 96 |
-
"openwa-core",
|
| 97 |
-
"windows-sys",
|
| 98 |
]
|
| 99 |
|
| 100 |
[[package]]
|
| 101 |
-
name = "
|
| 102 |
-
version = "
|
| 103 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 104 |
-
checksum = "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 105 |
|
| 106 |
[[package]]
|
| 107 |
-
name = "
|
| 108 |
-
version = "
|
| 109 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 110 |
-
checksum = "
|
| 111 |
dependencies = [
|
| 112 |
-
"
|
|
|
|
| 113 |
]
|
| 114 |
|
| 115 |
[[package]]
|
| 116 |
-
name = "
|
| 117 |
-
version = "
|
| 118 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 119 |
-
checksum = "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 120 |
dependencies = [
|
| 121 |
-
"
|
| 122 |
]
|
| 123 |
|
| 124 |
[[package]]
|
| 125 |
-
name = "
|
| 126 |
-
version = "
|
| 127 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 128 |
-
checksum = "
|
| 129 |
|
| 130 |
[[package]]
|
| 131 |
-
name = "
|
| 132 |
-
version = "
|
| 133 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 134 |
-
checksum = "
|
| 135 |
|
| 136 |
[[package]]
|
| 137 |
-
name = "
|
| 138 |
-
version = "
|
| 139 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 140 |
-
checksum = "
|
| 141 |
dependencies = [
|
| 142 |
-
"
|
| 143 |
-
"quote",
|
| 144 |
-
"unicode-ident",
|
| 145 |
]
|
| 146 |
|
| 147 |
[[package]]
|
| 148 |
-
name = "
|
| 149 |
-
version = "0.
|
| 150 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 151 |
-
checksum = "
|
| 152 |
dependencies = [
|
| 153 |
-
"
|
| 154 |
-
"pin-project-lite",
|
| 155 |
-
"tracing-attributes",
|
| 156 |
-
"tracing-core",
|
| 157 |
]
|
| 158 |
|
| 159 |
[[package]]
|
| 160 |
-
name = "
|
| 161 |
-
version = "0.
|
| 162 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 163 |
-
checksum = "
|
| 164 |
dependencies = [
|
| 165 |
-
"
|
| 166 |
-
"quote",
|
| 167 |
-
"syn",
|
| 168 |
]
|
| 169 |
|
| 170 |
[[package]]
|
| 171 |
-
name = "
|
| 172 |
-
version = "0.
|
| 173 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 174 |
-
checksum = "
|
| 175 |
dependencies = [
|
| 176 |
-
"
|
| 177 |
]
|
| 178 |
|
| 179 |
[[package]]
|
| 180 |
-
name = "
|
| 181 |
-
version = "
|
| 182 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 183 |
-
checksum = "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 184 |
|
| 185 |
[[package]]
|
| 186 |
-
name = "windows-
|
| 187 |
-
version = "0.
|
| 188 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 189 |
-
checksum = "
|
| 190 |
dependencies = [
|
| 191 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 192 |
]
|
| 193 |
|
| 194 |
[[package]]
|
|
@@ -197,28 +2466,64 @@ version = "0.52.6"
|
|
| 197 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 198 |
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
|
| 199 |
dependencies = [
|
| 200 |
-
"windows_aarch64_gnullvm",
|
| 201 |
-
"windows_aarch64_msvc",
|
| 202 |
-
"windows_i686_gnu",
|
| 203 |
"windows_i686_gnullvm",
|
| 204 |
-
"windows_i686_msvc",
|
| 205 |
-
"windows_x86_64_gnu",
|
| 206 |
-
"windows_x86_64_gnullvm",
|
| 207 |
-
"windows_x86_64_msvc",
|
| 208 |
]
|
| 209 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 210 |
[[package]]
|
| 211 |
name = "windows_aarch64_gnullvm"
|
| 212 |
version = "0.52.6"
|
| 213 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 214 |
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
|
| 215 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 216 |
[[package]]
|
| 217 |
name = "windows_aarch64_msvc"
|
| 218 |
version = "0.52.6"
|
| 219 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 220 |
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
|
| 221 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 222 |
[[package]]
|
| 223 |
name = "windows_i686_gnu"
|
| 224 |
version = "0.52.6"
|
|
@@ -231,26 +2536,304 @@ version = "0.52.6"
|
|
| 231 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 232 |
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
|
| 233 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 234 |
[[package]]
|
| 235 |
name = "windows_i686_msvc"
|
| 236 |
version = "0.52.6"
|
| 237 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 238 |
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
|
| 239 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 240 |
[[package]]
|
| 241 |
name = "windows_x86_64_gnu"
|
| 242 |
version = "0.52.6"
|
| 243 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 244 |
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
|
| 245 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 246 |
[[package]]
|
| 247 |
name = "windows_x86_64_gnullvm"
|
| 248 |
version = "0.52.6"
|
| 249 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 250 |
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
|
| 251 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 252 |
[[package]]
|
| 253 |
name = "windows_x86_64_msvc"
|
| 254 |
version = "0.52.6"
|
| 255 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 256 |
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2 |
# It is not intended for manual editing.
|
| 3 |
version = 4
|
| 4 |
|
| 5 |
+
[[package]]
|
| 6 |
+
name = "ab_glyph"
|
| 7 |
+
version = "0.2.32"
|
| 8 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 9 |
+
checksum = "01c0457472c38ea5bd1c3b5ada5e368271cb550be7a4ca4a0b4634e9913f6cc2"
|
| 10 |
+
dependencies = [
|
| 11 |
+
"ab_glyph_rasterizer",
|
| 12 |
+
"owned_ttf_parser",
|
| 13 |
+
]
|
| 14 |
+
|
| 15 |
+
[[package]]
|
| 16 |
+
name = "ab_glyph_rasterizer"
|
| 17 |
+
version = "0.1.10"
|
| 18 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 19 |
+
checksum = "366ffbaa4442f4684d91e2cd7c5ea7c4ed8add41959a31447066e279e432b618"
|
| 20 |
+
|
| 21 |
+
[[package]]
|
| 22 |
+
name = "adler2"
|
| 23 |
+
version = "2.0.1"
|
| 24 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 25 |
+
checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
|
| 26 |
+
|
| 27 |
+
[[package]]
|
| 28 |
+
name = "ahash"
|
| 29 |
+
version = "0.8.12"
|
| 30 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 31 |
+
checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75"
|
| 32 |
+
dependencies = [
|
| 33 |
+
"cfg-if",
|
| 34 |
+
"getrandom",
|
| 35 |
+
"once_cell",
|
| 36 |
+
"version_check",
|
| 37 |
+
"zerocopy",
|
| 38 |
+
]
|
| 39 |
+
|
| 40 |
+
[[package]]
|
| 41 |
+
name = "android-activity"
|
| 42 |
+
version = "0.5.2"
|
| 43 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 44 |
+
checksum = "ee91c0c2905bae44f84bfa4e044536541df26b7703fd0888deeb9060fcc44289"
|
| 45 |
+
dependencies = [
|
| 46 |
+
"android-properties",
|
| 47 |
+
"bitflags 2.11.0",
|
| 48 |
+
"cc",
|
| 49 |
+
"cesu8",
|
| 50 |
+
"jni 0.21.1",
|
| 51 |
+
"jni-sys 0.3.0",
|
| 52 |
+
"libc",
|
| 53 |
+
"log",
|
| 54 |
+
"ndk",
|
| 55 |
+
"ndk-context",
|
| 56 |
+
"ndk-sys",
|
| 57 |
+
"num_enum",
|
| 58 |
+
"thiserror 1.0.69",
|
| 59 |
+
]
|
| 60 |
+
|
| 61 |
+
[[package]]
|
| 62 |
+
name = "android-properties"
|
| 63 |
+
version = "0.2.2"
|
| 64 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 65 |
+
checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04"
|
| 66 |
+
|
| 67 |
+
[[package]]
|
| 68 |
+
name = "arboard"
|
| 69 |
+
version = "3.6.1"
|
| 70 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 71 |
+
checksum = "0348a1c054491f4bfe6ab86a7b6ab1e44e45d899005de92f58b3df180b36ddaf"
|
| 72 |
+
dependencies = [
|
| 73 |
+
"clipboard-win",
|
| 74 |
+
"log",
|
| 75 |
+
"objc2 0.6.4",
|
| 76 |
+
"objc2-app-kit 0.3.2",
|
| 77 |
+
"objc2-foundation 0.3.2",
|
| 78 |
+
"parking_lot",
|
| 79 |
+
"percent-encoding",
|
| 80 |
+
"windows-sys 0.59.0",
|
| 81 |
+
"x11rb",
|
| 82 |
+
]
|
| 83 |
+
|
| 84 |
+
[[package]]
|
| 85 |
+
name = "arrayref"
|
| 86 |
+
version = "0.3.9"
|
| 87 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 88 |
+
checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb"
|
| 89 |
+
|
| 90 |
+
[[package]]
|
| 91 |
+
name = "arrayvec"
|
| 92 |
+
version = "0.7.6"
|
| 93 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 94 |
+
checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
|
| 95 |
+
|
| 96 |
+
[[package]]
|
| 97 |
+
name = "as-raw-xcb-connection"
|
| 98 |
+
version = "1.0.1"
|
| 99 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 100 |
+
checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b"
|
| 101 |
+
|
| 102 |
+
[[package]]
|
| 103 |
+
name = "atomic-waker"
|
| 104 |
+
version = "1.1.2"
|
| 105 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 106 |
+
checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
|
| 107 |
+
|
| 108 |
+
[[package]]
|
| 109 |
+
name = "autocfg"
|
| 110 |
+
version = "1.5.0"
|
| 111 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 112 |
+
checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
|
| 113 |
+
|
| 114 |
+
[[package]]
|
| 115 |
+
name = "bitflags"
|
| 116 |
+
version = "1.3.2"
|
| 117 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 118 |
+
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
|
| 119 |
+
|
| 120 |
+
[[package]]
|
| 121 |
+
name = "bitflags"
|
| 122 |
+
version = "2.11.0"
|
| 123 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 124 |
+
checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af"
|
| 125 |
+
|
| 126 |
+
[[package]]
|
| 127 |
+
name = "block-sys"
|
| 128 |
+
version = "0.2.1"
|
| 129 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 130 |
+
checksum = "ae85a0696e7ea3b835a453750bf002770776609115e6d25c6d2ff28a8200f7e7"
|
| 131 |
+
dependencies = [
|
| 132 |
+
"objc-sys",
|
| 133 |
+
]
|
| 134 |
+
|
| 135 |
+
[[package]]
|
| 136 |
+
name = "block2"
|
| 137 |
+
version = "0.3.0"
|
| 138 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 139 |
+
checksum = "15b55663a85f33501257357e6421bb33e769d5c9ffb5ba0921c975a123e35e68"
|
| 140 |
+
dependencies = [
|
| 141 |
+
"block-sys",
|
| 142 |
+
"objc2 0.4.1",
|
| 143 |
+
]
|
| 144 |
+
|
| 145 |
+
[[package]]
|
| 146 |
+
name = "block2"
|
| 147 |
+
version = "0.5.1"
|
| 148 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 149 |
+
checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f"
|
| 150 |
+
dependencies = [
|
| 151 |
+
"objc2 0.5.2",
|
| 152 |
+
]
|
| 153 |
+
|
| 154 |
+
[[package]]
|
| 155 |
+
name = "bumpalo"
|
| 156 |
+
version = "3.20.2"
|
| 157 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 158 |
+
checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb"
|
| 159 |
+
|
| 160 |
+
[[package]]
|
| 161 |
+
name = "bytemuck"
|
| 162 |
+
version = "1.25.0"
|
| 163 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 164 |
+
checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec"
|
| 165 |
+
dependencies = [
|
| 166 |
+
"bytemuck_derive",
|
| 167 |
+
]
|
| 168 |
+
|
| 169 |
+
[[package]]
|
| 170 |
+
name = "bytemuck_derive"
|
| 171 |
+
version = "1.10.2"
|
| 172 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 173 |
+
checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff"
|
| 174 |
+
dependencies = [
|
| 175 |
+
"proc-macro2",
|
| 176 |
+
"quote",
|
| 177 |
+
"syn",
|
| 178 |
+
]
|
| 179 |
+
|
| 180 |
[[package]]
|
| 181 |
name = "byteorder"
|
| 182 |
version = "1.5.0"
|
| 183 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 184 |
checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
|
| 185 |
|
| 186 |
+
[[package]]
|
| 187 |
+
name = "byteorder-lite"
|
| 188 |
+
version = "0.1.0"
|
| 189 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 190 |
+
checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495"
|
| 191 |
+
|
| 192 |
+
[[package]]
|
| 193 |
+
name = "bytes"
|
| 194 |
+
version = "1.11.1"
|
| 195 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 196 |
+
checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"
|
| 197 |
+
|
| 198 |
+
[[package]]
|
| 199 |
+
name = "calloop"
|
| 200 |
+
version = "0.12.4"
|
| 201 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 202 |
+
checksum = "fba7adb4dd5aa98e5553510223000e7148f621165ec5f9acd7113f6ca4995298"
|
| 203 |
+
dependencies = [
|
| 204 |
+
"bitflags 2.11.0",
|
| 205 |
+
"log",
|
| 206 |
+
"polling",
|
| 207 |
+
"rustix 0.38.44",
|
| 208 |
+
"slab",
|
| 209 |
+
"thiserror 1.0.69",
|
| 210 |
+
]
|
| 211 |
+
|
| 212 |
+
[[package]]
|
| 213 |
+
name = "calloop"
|
| 214 |
+
version = "0.14.4"
|
| 215 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 216 |
+
checksum = "4dbf9978365bac10f54d1d4b04f7ce4427e51f71d61f2fe15e3fed5166474df7"
|
| 217 |
+
dependencies = [
|
| 218 |
+
"bitflags 2.11.0",
|
| 219 |
+
"polling",
|
| 220 |
+
"rustix 1.1.4",
|
| 221 |
+
"slab",
|
| 222 |
+
"tracing",
|
| 223 |
+
]
|
| 224 |
+
|
| 225 |
+
[[package]]
|
| 226 |
+
name = "calloop-wayland-source"
|
| 227 |
+
version = "0.2.0"
|
| 228 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 229 |
+
checksum = "0f0ea9b9476c7fad82841a8dbb380e2eae480c21910feba80725b46931ed8f02"
|
| 230 |
+
dependencies = [
|
| 231 |
+
"calloop 0.12.4",
|
| 232 |
+
"rustix 0.38.44",
|
| 233 |
+
"wayland-backend",
|
| 234 |
+
"wayland-client",
|
| 235 |
+
]
|
| 236 |
+
|
| 237 |
+
[[package]]
|
| 238 |
+
name = "calloop-wayland-source"
|
| 239 |
+
version = "0.4.1"
|
| 240 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 241 |
+
checksum = "138efcf0940a02ebf0cc8d1eff41a1682a46b431630f4c52450d6265876021fa"
|
| 242 |
+
dependencies = [
|
| 243 |
+
"calloop 0.14.4",
|
| 244 |
+
"rustix 1.1.4",
|
| 245 |
+
"wayland-backend",
|
| 246 |
+
"wayland-client",
|
| 247 |
+
]
|
| 248 |
+
|
| 249 |
[[package]]
|
| 250 |
name = "cc"
|
| 251 |
version = "1.2.56"
|
|
|
|
| 253 |
checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2"
|
| 254 |
dependencies = [
|
| 255 |
"find-msvc-tools",
|
| 256 |
+
"jobserver",
|
| 257 |
+
"libc",
|
| 258 |
"shlex",
|
| 259 |
]
|
| 260 |
|
| 261 |
[[package]]
|
| 262 |
+
name = "cesu8"
|
| 263 |
+
version = "1.1.0"
|
| 264 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 265 |
+
checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
|
| 266 |
|
| 267 |
[[package]]
|
| 268 |
+
name = "cfg-if"
|
| 269 |
+
version = "1.0.4"
|
| 270 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 271 |
+
checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
|
| 272 |
+
|
| 273 |
+
[[package]]
|
| 274 |
+
name = "cfg_aliases"
|
| 275 |
+
version = "0.1.1"
|
| 276 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 277 |
+
checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
|
| 278 |
+
|
| 279 |
+
[[package]]
|
| 280 |
+
name = "cgl"
|
| 281 |
+
version = "0.3.2"
|
| 282 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 283 |
+
checksum = "0ced0551234e87afee12411d535648dd89d2e7f34c78b753395567aff3d447ff"
|
| 284 |
+
dependencies = [
|
| 285 |
+
"libc",
|
| 286 |
+
]
|
| 287 |
+
|
| 288 |
+
[[package]]
|
| 289 |
+
name = "clipboard-win"
|
| 290 |
+
version = "5.4.1"
|
| 291 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 292 |
+
checksum = "bde03770d3df201d4fb868f2c9c59e66a3e4e2bd06692a0fe701e7103c7e84d4"
|
| 293 |
+
dependencies = [
|
| 294 |
+
"error-code",
|
| 295 |
+
]
|
| 296 |
+
|
| 297 |
+
[[package]]
|
| 298 |
+
name = "combine"
|
| 299 |
+
version = "4.6.7"
|
| 300 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 301 |
+
checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd"
|
| 302 |
+
dependencies = [
|
| 303 |
+
"bytes",
|
| 304 |
+
"memchr",
|
| 305 |
+
]
|
| 306 |
+
|
| 307 |
+
[[package]]
|
| 308 |
+
name = "concurrent-queue"
|
| 309 |
+
version = "2.5.0"
|
| 310 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 311 |
+
checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
|
| 312 |
+
dependencies = [
|
| 313 |
+
"crossbeam-utils",
|
| 314 |
+
]
|
| 315 |
+
|
| 316 |
+
[[package]]
|
| 317 |
+
name = "core-foundation"
|
| 318 |
+
version = "0.9.4"
|
| 319 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 320 |
+
checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
|
| 321 |
+
dependencies = [
|
| 322 |
+
"core-foundation-sys",
|
| 323 |
+
"libc",
|
| 324 |
+
]
|
| 325 |
+
|
| 326 |
+
[[package]]
|
| 327 |
+
name = "core-foundation"
|
| 328 |
+
version = "0.10.1"
|
| 329 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 330 |
+
checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6"
|
| 331 |
+
dependencies = [
|
| 332 |
+
"core-foundation-sys",
|
| 333 |
+
"libc",
|
| 334 |
+
]
|
| 335 |
+
|
| 336 |
+
[[package]]
|
| 337 |
+
name = "core-foundation-sys"
|
| 338 |
+
version = "0.8.7"
|
| 339 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 340 |
+
checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
|
| 341 |
+
|
| 342 |
+
[[package]]
|
| 343 |
+
name = "core-graphics"
|
| 344 |
+
version = "0.23.2"
|
| 345 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 346 |
+
checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081"
|
| 347 |
+
dependencies = [
|
| 348 |
+
"bitflags 1.3.2",
|
| 349 |
+
"core-foundation 0.9.4",
|
| 350 |
+
"core-graphics-types",
|
| 351 |
+
"foreign-types",
|
| 352 |
+
"libc",
|
| 353 |
+
]
|
| 354 |
+
|
| 355 |
+
[[package]]
|
| 356 |
+
name = "core-graphics-types"
|
| 357 |
+
version = "0.1.3"
|
| 358 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 359 |
+
checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf"
|
| 360 |
+
dependencies = [
|
| 361 |
+
"bitflags 1.3.2",
|
| 362 |
+
"core-foundation 0.9.4",
|
| 363 |
+
"libc",
|
| 364 |
+
]
|
| 365 |
+
|
| 366 |
+
[[package]]
|
| 367 |
+
name = "crc32fast"
|
| 368 |
+
version = "1.5.0"
|
| 369 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 370 |
+
checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511"
|
| 371 |
+
dependencies = [
|
| 372 |
+
"cfg-if",
|
| 373 |
+
]
|
| 374 |
+
|
| 375 |
+
[[package]]
|
| 376 |
+
name = "crossbeam-utils"
|
| 377 |
+
version = "0.8.21"
|
| 378 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 379 |
+
checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
|
| 380 |
+
|
| 381 |
+
[[package]]
|
| 382 |
+
name = "cursor-icon"
|
| 383 |
+
version = "1.2.0"
|
| 384 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 385 |
+
checksum = "f27ae1dd37df86211c42e150270f82743308803d90a6f6e6651cd730d5e1732f"
|
| 386 |
+
|
| 387 |
+
[[package]]
|
| 388 |
+
name = "dispatch"
|
| 389 |
+
version = "0.2.0"
|
| 390 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 391 |
+
checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b"
|
| 392 |
+
|
| 393 |
+
[[package]]
|
| 394 |
+
name = "dispatch2"
|
| 395 |
version = "0.3.1"
|
| 396 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 397 |
+
checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38"
|
| 398 |
dependencies = [
|
| 399 |
+
"bitflags 2.11.0",
|
| 400 |
+
"objc2 0.6.4",
|
| 401 |
]
|
| 402 |
|
| 403 |
[[package]]
|
| 404 |
+
name = "displaydoc"
|
| 405 |
+
version = "0.2.5"
|
| 406 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 407 |
+
checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
|
| 408 |
dependencies = [
|
| 409 |
+
"proc-macro2",
|
| 410 |
+
"quote",
|
| 411 |
+
"syn",
|
| 412 |
]
|
| 413 |
|
| 414 |
[[package]]
|
| 415 |
+
name = "dlib"
|
| 416 |
+
version = "0.5.3"
|
| 417 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 418 |
+
checksum = "ab8ecd87370524b461f8557c119c405552c396ed91fc0a8eec68679eab26f94a"
|
| 419 |
+
dependencies = [
|
| 420 |
+
"libloading",
|
| 421 |
+
]
|
| 422 |
|
| 423 |
[[package]]
|
| 424 |
+
name = "document-features"
|
| 425 |
+
version = "0.2.12"
|
| 426 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 427 |
+
checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61"
|
| 428 |
+
dependencies = [
|
| 429 |
+
"litrs",
|
| 430 |
+
]
|
| 431 |
+
|
| 432 |
+
[[package]]
|
| 433 |
+
name = "downcast-rs"
|
| 434 |
+
version = "1.2.1"
|
| 435 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 436 |
+
checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2"
|
| 437 |
+
|
| 438 |
+
[[package]]
|
| 439 |
+
name = "ecolor"
|
| 440 |
+
version = "0.28.1"
|
| 441 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 442 |
+
checksum = "2e6b451ff1143f6de0f33fc7f1b68fecfd2c7de06e104de96c4514de3f5396f8"
|
| 443 |
+
dependencies = [
|
| 444 |
+
"bytemuck",
|
| 445 |
+
"emath",
|
| 446 |
+
]
|
| 447 |
+
|
| 448 |
+
[[package]]
|
| 449 |
+
name = "eframe"
|
| 450 |
+
version = "0.28.1"
|
| 451 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 452 |
+
checksum = "6490ef800b2e41ee129b1f32f9ac15f713233fe3bc18e241a1afe1e4fb6811e0"
|
| 453 |
+
dependencies = [
|
| 454 |
+
"ahash",
|
| 455 |
+
"bytemuck",
|
| 456 |
+
"document-features",
|
| 457 |
+
"egui",
|
| 458 |
+
"egui-winit",
|
| 459 |
+
"egui_glow",
|
| 460 |
+
"glow",
|
| 461 |
+
"glutin",
|
| 462 |
+
"glutin-winit",
|
| 463 |
+
"image",
|
| 464 |
+
"js-sys",
|
| 465 |
+
"log",
|
| 466 |
+
"objc2 0.5.2",
|
| 467 |
+
"objc2-app-kit 0.2.2",
|
| 468 |
+
"objc2-foundation 0.2.2",
|
| 469 |
+
"parking_lot",
|
| 470 |
+
"percent-encoding",
|
| 471 |
+
"raw-window-handle 0.5.2",
|
| 472 |
+
"raw-window-handle 0.6.2",
|
| 473 |
+
"static_assertions",
|
| 474 |
+
"wasm-bindgen",
|
| 475 |
+
"wasm-bindgen-futures",
|
| 476 |
+
"web-sys",
|
| 477 |
+
"web-time",
|
| 478 |
+
"winapi",
|
| 479 |
+
"winit",
|
| 480 |
+
]
|
| 481 |
+
|
| 482 |
+
[[package]]
|
| 483 |
+
name = "egui"
|
| 484 |
+
version = "0.28.1"
|
| 485 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 486 |
+
checksum = "20c97e70a2768de630f161bb5392cbd3874fcf72868f14df0e002e82e06cb798"
|
| 487 |
+
dependencies = [
|
| 488 |
+
"ahash",
|
| 489 |
+
"emath",
|
| 490 |
+
"epaint",
|
| 491 |
+
"log",
|
| 492 |
+
"nohash-hasher",
|
| 493 |
+
]
|
| 494 |
+
|
| 495 |
+
[[package]]
|
| 496 |
+
name = "egui-winit"
|
| 497 |
+
version = "0.28.1"
|
| 498 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 499 |
+
checksum = "fac4e066af341bf92559f60dbdf2020b2a03c963415349af5f3f8d79ff7a4926"
|
| 500 |
+
dependencies = [
|
| 501 |
+
"ahash",
|
| 502 |
+
"arboard",
|
| 503 |
+
"egui",
|
| 504 |
+
"log",
|
| 505 |
+
"raw-window-handle 0.6.2",
|
| 506 |
+
"smithay-clipboard",
|
| 507 |
+
"web-time",
|
| 508 |
+
"webbrowser",
|
| 509 |
+
"winit",
|
| 510 |
+
]
|
| 511 |
+
|
| 512 |
+
[[package]]
|
| 513 |
+
name = "egui_glow"
|
| 514 |
+
version = "0.28.1"
|
| 515 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 516 |
+
checksum = "4e2bdc8b38cfa17cc712c4ae079e30c71c00cd4c2763c9e16dc7860a02769103"
|
| 517 |
+
dependencies = [
|
| 518 |
+
"ahash",
|
| 519 |
+
"bytemuck",
|
| 520 |
+
"egui",
|
| 521 |
+
"glow",
|
| 522 |
+
"log",
|
| 523 |
+
"memoffset",
|
| 524 |
+
"wasm-bindgen",
|
| 525 |
+
"web-sys",
|
| 526 |
+
]
|
| 527 |
+
|
| 528 |
+
[[package]]
|
| 529 |
+
name = "emath"
|
| 530 |
+
version = "0.28.1"
|
| 531 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 532 |
+
checksum = "0a6a21708405ea88f63d8309650b4d77431f4bc28fb9d8e6f77d3963b51249e6"
|
| 533 |
+
dependencies = [
|
| 534 |
+
"bytemuck",
|
| 535 |
+
]
|
| 536 |
+
|
| 537 |
+
[[package]]
|
| 538 |
+
name = "epaint"
|
| 539 |
+
version = "0.28.1"
|
| 540 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 541 |
+
checksum = "3f0dcc0a0771e7500e94cd1cb797bd13c9f23b9409bdc3c824e2cbc562b7fa01"
|
| 542 |
+
dependencies = [
|
| 543 |
+
"ab_glyph",
|
| 544 |
+
"ahash",
|
| 545 |
+
"bytemuck",
|
| 546 |
+
"ecolor",
|
| 547 |
+
"emath",
|
| 548 |
+
"log",
|
| 549 |
+
"nohash-hasher",
|
| 550 |
+
"parking_lot",
|
| 551 |
+
]
|
| 552 |
+
|
| 553 |
+
[[package]]
|
| 554 |
+
name = "equivalent"
|
| 555 |
+
version = "1.0.2"
|
| 556 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 557 |
+
checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
|
| 558 |
+
|
| 559 |
+
[[package]]
|
| 560 |
+
name = "errno"
|
| 561 |
+
version = "0.3.14"
|
| 562 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 563 |
+
checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
|
| 564 |
+
dependencies = [
|
| 565 |
+
"libc",
|
| 566 |
+
"windows-sys 0.59.0",
|
| 567 |
+
]
|
| 568 |
+
|
| 569 |
+
[[package]]
|
| 570 |
+
name = "error-code"
|
| 571 |
+
version = "3.3.2"
|
| 572 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 573 |
+
checksum = "dea2df4cf52843e0452895c455a1a2cfbb842a1e7329671acf418fdc53ed4c59"
|
| 574 |
+
|
| 575 |
+
[[package]]
|
| 576 |
+
name = "fdeflate"
|
| 577 |
+
version = "0.3.7"
|
| 578 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 579 |
+
checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c"
|
| 580 |
+
dependencies = [
|
| 581 |
+
"simd-adler32",
|
| 582 |
+
]
|
| 583 |
+
|
| 584 |
+
[[package]]
|
| 585 |
+
name = "find-msvc-tools"
|
| 586 |
+
version = "0.1.9"
|
| 587 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 588 |
+
checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
|
| 589 |
+
|
| 590 |
+
[[package]]
|
| 591 |
+
name = "flate2"
|
| 592 |
+
version = "1.1.9"
|
| 593 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 594 |
+
checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c"
|
| 595 |
+
dependencies = [
|
| 596 |
+
"crc32fast",
|
| 597 |
+
"miniz_oxide",
|
| 598 |
+
]
|
| 599 |
+
|
| 600 |
+
[[package]]
|
| 601 |
+
name = "foreign-types"
|
| 602 |
+
version = "0.5.0"
|
| 603 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 604 |
+
checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965"
|
| 605 |
+
dependencies = [
|
| 606 |
+
"foreign-types-macros",
|
| 607 |
+
"foreign-types-shared",
|
| 608 |
+
]
|
| 609 |
+
|
| 610 |
+
[[package]]
|
| 611 |
+
name = "foreign-types-macros"
|
| 612 |
+
version = "0.2.3"
|
| 613 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 614 |
+
checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
|
| 615 |
+
dependencies = [
|
| 616 |
+
"proc-macro2",
|
| 617 |
+
"quote",
|
| 618 |
+
"syn",
|
| 619 |
+
]
|
| 620 |
+
|
| 621 |
+
[[package]]
|
| 622 |
+
name = "foreign-types-shared"
|
| 623 |
+
version = "0.3.1"
|
| 624 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 625 |
+
checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
|
| 626 |
+
|
| 627 |
+
[[package]]
|
| 628 |
+
name = "form_urlencoded"
|
| 629 |
+
version = "1.2.2"
|
| 630 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 631 |
+
checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf"
|
| 632 |
+
dependencies = [
|
| 633 |
+
"percent-encoding",
|
| 634 |
+
]
|
| 635 |
+
|
| 636 |
+
[[package]]
|
| 637 |
+
name = "futures-core"
|
| 638 |
+
version = "0.3.32"
|
| 639 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 640 |
+
checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d"
|
| 641 |
+
|
| 642 |
+
[[package]]
|
| 643 |
+
name = "futures-task"
|
| 644 |
+
version = "0.3.32"
|
| 645 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 646 |
+
checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393"
|
| 647 |
+
|
| 648 |
+
[[package]]
|
| 649 |
+
name = "futures-util"
|
| 650 |
+
version = "0.3.32"
|
| 651 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 652 |
+
checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6"
|
| 653 |
+
dependencies = [
|
| 654 |
+
"futures-core",
|
| 655 |
+
"futures-task",
|
| 656 |
+
"pin-project-lite",
|
| 657 |
+
"slab",
|
| 658 |
+
]
|
| 659 |
+
|
| 660 |
+
[[package]]
|
| 661 |
+
name = "gethostname"
|
| 662 |
+
version = "1.1.0"
|
| 663 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 664 |
+
checksum = "1bd49230192a3797a9a4d6abe9b3eed6f7fa4c8a8a4947977c6f80025f92cbd8"
|
| 665 |
+
dependencies = [
|
| 666 |
+
"rustix 1.1.4",
|
| 667 |
+
"windows-link",
|
| 668 |
+
]
|
| 669 |
+
|
| 670 |
+
[[package]]
|
| 671 |
+
name = "getrandom"
|
| 672 |
+
version = "0.3.4"
|
| 673 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 674 |
+
checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"
|
| 675 |
+
dependencies = [
|
| 676 |
+
"cfg-if",
|
| 677 |
+
"libc",
|
| 678 |
+
"r-efi",
|
| 679 |
+
"wasip2",
|
| 680 |
+
]
|
| 681 |
+
|
| 682 |
+
[[package]]
|
| 683 |
+
name = "gl_generator"
|
| 684 |
+
version = "0.14.0"
|
| 685 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 686 |
+
checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d"
|
| 687 |
+
dependencies = [
|
| 688 |
+
"khronos_api",
|
| 689 |
+
"log",
|
| 690 |
+
"xml-rs",
|
| 691 |
+
]
|
| 692 |
+
|
| 693 |
+
[[package]]
|
| 694 |
+
name = "glow"
|
| 695 |
+
version = "0.13.1"
|
| 696 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 697 |
+
checksum = "bd348e04c43b32574f2de31c8bb397d96c9fcfa1371bd4ca6d8bdc464ab121b1"
|
| 698 |
+
dependencies = [
|
| 699 |
+
"js-sys",
|
| 700 |
+
"slotmap",
|
| 701 |
+
"wasm-bindgen",
|
| 702 |
+
"web-sys",
|
| 703 |
+
]
|
| 704 |
+
|
| 705 |
+
[[package]]
|
| 706 |
+
name = "glutin"
|
| 707 |
+
version = "0.31.3"
|
| 708 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 709 |
+
checksum = "18fcd4ae4e86d991ad1300b8f57166e5be0c95ef1f63f3f5b827f8a164548746"
|
| 710 |
+
dependencies = [
|
| 711 |
+
"bitflags 2.11.0",
|
| 712 |
+
"cfg_aliases",
|
| 713 |
+
"cgl",
|
| 714 |
+
"core-foundation 0.9.4",
|
| 715 |
+
"dispatch",
|
| 716 |
+
"glutin_egl_sys",
|
| 717 |
+
"glutin_glx_sys",
|
| 718 |
+
"glutin_wgl_sys",
|
| 719 |
+
"icrate",
|
| 720 |
+
"libloading",
|
| 721 |
+
"objc2 0.4.1",
|
| 722 |
+
"once_cell",
|
| 723 |
+
"raw-window-handle 0.5.2",
|
| 724 |
+
"wayland-sys",
|
| 725 |
+
"windows-sys 0.48.0",
|
| 726 |
+
"x11-dl",
|
| 727 |
+
]
|
| 728 |
+
|
| 729 |
+
[[package]]
|
| 730 |
+
name = "glutin-winit"
|
| 731 |
+
version = "0.4.2"
|
| 732 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 733 |
+
checksum = "1ebcdfba24f73b8412c5181e56f092b5eff16671c514ce896b258a0a64bd7735"
|
| 734 |
+
dependencies = [
|
| 735 |
+
"cfg_aliases",
|
| 736 |
+
"glutin",
|
| 737 |
+
"raw-window-handle 0.5.2",
|
| 738 |
+
"winit",
|
| 739 |
+
]
|
| 740 |
+
|
| 741 |
+
[[package]]
|
| 742 |
+
name = "glutin_egl_sys"
|
| 743 |
+
version = "0.6.0"
|
| 744 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 745 |
+
checksum = "77cc5623f5309ef433c3dd4ca1223195347fe62c413da8e2fdd0eb76db2d9bcd"
|
| 746 |
+
dependencies = [
|
| 747 |
+
"gl_generator",
|
| 748 |
+
"windows-sys 0.48.0",
|
| 749 |
+
]
|
| 750 |
+
|
| 751 |
+
[[package]]
|
| 752 |
+
name = "glutin_glx_sys"
|
| 753 |
+
version = "0.5.0"
|
| 754 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 755 |
+
checksum = "a165fd686c10dcc2d45380b35796e577eacfd43d4660ee741ec8ebe2201b3b4f"
|
| 756 |
+
dependencies = [
|
| 757 |
+
"gl_generator",
|
| 758 |
+
"x11-dl",
|
| 759 |
+
]
|
| 760 |
+
|
| 761 |
+
[[package]]
|
| 762 |
+
name = "glutin_wgl_sys"
|
| 763 |
+
version = "0.5.0"
|
| 764 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 765 |
+
checksum = "6c8098adac955faa2d31079b65dc48841251f69efd3ac25477903fc424362ead"
|
| 766 |
+
dependencies = [
|
| 767 |
+
"gl_generator",
|
| 768 |
+
]
|
| 769 |
+
|
| 770 |
+
[[package]]
|
| 771 |
+
name = "hash32"
|
| 772 |
+
version = "0.3.1"
|
| 773 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 774 |
+
checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606"
|
| 775 |
+
dependencies = [
|
| 776 |
+
"byteorder",
|
| 777 |
+
]
|
| 778 |
+
|
| 779 |
+
[[package]]
|
| 780 |
+
name = "hashbrown"
|
| 781 |
+
version = "0.16.1"
|
| 782 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 783 |
+
checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"
|
| 784 |
+
|
| 785 |
+
[[package]]
|
| 786 |
+
name = "heapless"
|
| 787 |
+
version = "0.9.2"
|
| 788 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 789 |
+
checksum = "2af2455f757db2b292a9b1768c4b70186d443bcb3b316252d6b540aec1cd89ed"
|
| 790 |
+
dependencies = [
|
| 791 |
+
"hash32",
|
| 792 |
+
"stable_deref_trait",
|
| 793 |
+
]
|
| 794 |
+
|
| 795 |
+
[[package]]
|
| 796 |
+
name = "hermit-abi"
|
| 797 |
+
version = "0.5.2"
|
| 798 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 799 |
+
checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c"
|
| 800 |
+
|
| 801 |
+
[[package]]
|
| 802 |
+
name = "icrate"
|
| 803 |
+
version = "0.0.4"
|
| 804 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 805 |
+
checksum = "99d3aaff8a54577104bafdf686ff18565c3b6903ca5782a2026ef06e2c7aa319"
|
| 806 |
+
dependencies = [
|
| 807 |
+
"block2 0.3.0",
|
| 808 |
+
"dispatch",
|
| 809 |
+
"objc2 0.4.1",
|
| 810 |
+
]
|
| 811 |
+
|
| 812 |
+
[[package]]
|
| 813 |
+
name = "icu_collections"
|
| 814 |
+
version = "2.1.1"
|
| 815 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 816 |
+
checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43"
|
| 817 |
+
dependencies = [
|
| 818 |
+
"displaydoc",
|
| 819 |
+
"potential_utf",
|
| 820 |
+
"yoke",
|
| 821 |
+
"zerofrom",
|
| 822 |
+
"zerovec",
|
| 823 |
+
]
|
| 824 |
+
|
| 825 |
+
[[package]]
|
| 826 |
+
name = "icu_locale_core"
|
| 827 |
+
version = "2.1.1"
|
| 828 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 829 |
+
checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6"
|
| 830 |
+
dependencies = [
|
| 831 |
+
"displaydoc",
|
| 832 |
+
"litemap",
|
| 833 |
+
"tinystr",
|
| 834 |
+
"writeable",
|
| 835 |
+
"zerovec",
|
| 836 |
+
]
|
| 837 |
+
|
| 838 |
+
[[package]]
|
| 839 |
+
name = "icu_normalizer"
|
| 840 |
+
version = "2.1.1"
|
| 841 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 842 |
+
checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599"
|
| 843 |
+
dependencies = [
|
| 844 |
+
"icu_collections",
|
| 845 |
+
"icu_normalizer_data",
|
| 846 |
+
"icu_properties",
|
| 847 |
+
"icu_provider",
|
| 848 |
+
"smallvec",
|
| 849 |
+
"zerovec",
|
| 850 |
+
]
|
| 851 |
+
|
| 852 |
+
[[package]]
|
| 853 |
+
name = "icu_normalizer_data"
|
| 854 |
+
version = "2.1.1"
|
| 855 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 856 |
+
checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a"
|
| 857 |
+
|
| 858 |
+
[[package]]
|
| 859 |
+
name = "icu_properties"
|
| 860 |
+
version = "2.1.2"
|
| 861 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 862 |
+
checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec"
|
| 863 |
+
dependencies = [
|
| 864 |
+
"icu_collections",
|
| 865 |
+
"icu_locale_core",
|
| 866 |
+
"icu_properties_data",
|
| 867 |
+
"icu_provider",
|
| 868 |
+
"zerotrie",
|
| 869 |
+
"zerovec",
|
| 870 |
+
]
|
| 871 |
+
|
| 872 |
+
[[package]]
|
| 873 |
+
name = "icu_properties_data"
|
| 874 |
+
version = "2.1.2"
|
| 875 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 876 |
+
checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af"
|
| 877 |
+
|
| 878 |
+
[[package]]
|
| 879 |
+
name = "icu_provider"
|
| 880 |
+
version = "2.1.1"
|
| 881 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 882 |
+
checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614"
|
| 883 |
+
dependencies = [
|
| 884 |
+
"displaydoc",
|
| 885 |
+
"icu_locale_core",
|
| 886 |
+
"writeable",
|
| 887 |
+
"yoke",
|
| 888 |
+
"zerofrom",
|
| 889 |
+
"zerotrie",
|
| 890 |
+
"zerovec",
|
| 891 |
+
]
|
| 892 |
+
|
| 893 |
+
[[package]]
|
| 894 |
+
name = "idna"
|
| 895 |
+
version = "1.1.0"
|
| 896 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 897 |
+
checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de"
|
| 898 |
+
dependencies = [
|
| 899 |
+
"idna_adapter",
|
| 900 |
+
"smallvec",
|
| 901 |
+
"utf8_iter",
|
| 902 |
+
]
|
| 903 |
+
|
| 904 |
+
[[package]]
|
| 905 |
+
name = "idna_adapter"
|
| 906 |
+
version = "1.2.1"
|
| 907 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 908 |
+
checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344"
|
| 909 |
+
dependencies = [
|
| 910 |
+
"icu_normalizer",
|
| 911 |
+
"icu_properties",
|
| 912 |
+
]
|
| 913 |
+
|
| 914 |
+
[[package]]
|
| 915 |
+
name = "image"
|
| 916 |
+
version = "0.25.10"
|
| 917 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 918 |
+
checksum = "85ab80394333c02fe689eaf900ab500fbd0c2213da414687ebf995a65d5a6104"
|
| 919 |
+
dependencies = [
|
| 920 |
+
"bytemuck",
|
| 921 |
+
"byteorder-lite",
|
| 922 |
+
"moxcms",
|
| 923 |
+
"num-traits",
|
| 924 |
+
"png",
|
| 925 |
+
]
|
| 926 |
+
|
| 927 |
+
[[package]]
|
| 928 |
+
name = "indexmap"
|
| 929 |
+
version = "2.13.0"
|
| 930 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 931 |
+
checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017"
|
| 932 |
+
dependencies = [
|
| 933 |
+
"equivalent",
|
| 934 |
+
"hashbrown",
|
| 935 |
+
]
|
| 936 |
+
|
| 937 |
+
[[package]]
|
| 938 |
+
name = "jni"
|
| 939 |
+
version = "0.21.1"
|
| 940 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 941 |
+
checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97"
|
| 942 |
+
dependencies = [
|
| 943 |
+
"cesu8",
|
| 944 |
+
"cfg-if",
|
| 945 |
+
"combine",
|
| 946 |
+
"jni-sys 0.3.0",
|
| 947 |
+
"log",
|
| 948 |
+
"thiserror 1.0.69",
|
| 949 |
+
"walkdir",
|
| 950 |
+
"windows-sys 0.45.0",
|
| 951 |
+
]
|
| 952 |
+
|
| 953 |
+
[[package]]
|
| 954 |
+
name = "jni"
|
| 955 |
+
version = "0.22.3"
|
| 956 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 957 |
+
checksum = "295dc9997acda1562fdf8d299f56063c936443b60f078e63a5d8d3c34ef2642b"
|
| 958 |
+
dependencies = [
|
| 959 |
+
"cfg-if",
|
| 960 |
+
"combine",
|
| 961 |
+
"jni-macros",
|
| 962 |
+
"jni-sys 0.4.1",
|
| 963 |
+
"log",
|
| 964 |
+
"simd_cesu8",
|
| 965 |
+
"thiserror 2.0.18",
|
| 966 |
+
"walkdir",
|
| 967 |
+
"windows-link",
|
| 968 |
+
]
|
| 969 |
+
|
| 970 |
+
[[package]]
|
| 971 |
+
name = "jni-macros"
|
| 972 |
+
version = "0.22.2"
|
| 973 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 974 |
+
checksum = "1c3d1da60c95c98847b26b9d45f4360fee718b31de746df016d9cd6de916a7ef"
|
| 975 |
+
dependencies = [
|
| 976 |
+
"proc-macro2",
|
| 977 |
+
"quote",
|
| 978 |
+
"rustc_version",
|
| 979 |
+
"simd_cesu8",
|
| 980 |
+
"syn",
|
| 981 |
+
]
|
| 982 |
+
|
| 983 |
+
[[package]]
|
| 984 |
+
name = "jni-sys"
|
| 985 |
+
version = "0.3.0"
|
| 986 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 987 |
+
checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
|
| 988 |
+
|
| 989 |
+
[[package]]
|
| 990 |
+
name = "jni-sys"
|
| 991 |
+
version = "0.4.1"
|
| 992 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 993 |
+
checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2"
|
| 994 |
+
dependencies = [
|
| 995 |
+
"jni-sys-macros",
|
| 996 |
+
]
|
| 997 |
+
|
| 998 |
+
[[package]]
|
| 999 |
+
name = "jni-sys-macros"
|
| 1000 |
+
version = "0.4.1"
|
| 1001 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1002 |
+
checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264"
|
| 1003 |
+
dependencies = [
|
| 1004 |
+
"quote",
|
| 1005 |
+
"syn",
|
| 1006 |
+
]
|
| 1007 |
+
|
| 1008 |
+
[[package]]
|
| 1009 |
+
name = "jobserver"
|
| 1010 |
+
version = "0.1.34"
|
| 1011 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1012 |
+
checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33"
|
| 1013 |
+
dependencies = [
|
| 1014 |
+
"getrandom",
|
| 1015 |
+
"libc",
|
| 1016 |
+
]
|
| 1017 |
+
|
| 1018 |
+
[[package]]
|
| 1019 |
+
name = "js-sys"
|
| 1020 |
+
version = "0.3.91"
|
| 1021 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1022 |
+
checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c"
|
| 1023 |
+
dependencies = [
|
| 1024 |
+
"once_cell",
|
| 1025 |
+
"wasm-bindgen",
|
| 1026 |
+
]
|
| 1027 |
+
|
| 1028 |
+
[[package]]
|
| 1029 |
+
name = "khronos_api"
|
| 1030 |
+
version = "3.1.0"
|
| 1031 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1032 |
+
checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc"
|
| 1033 |
+
|
| 1034 |
+
[[package]]
|
| 1035 |
+
name = "libc"
|
| 1036 |
+
version = "0.2.182"
|
| 1037 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1038 |
+
checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112"
|
| 1039 |
+
|
| 1040 |
+
[[package]]
|
| 1041 |
+
name = "libloading"
|
| 1042 |
+
version = "0.8.9"
|
| 1043 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1044 |
+
checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55"
|
| 1045 |
+
dependencies = [
|
| 1046 |
+
"cfg-if",
|
| 1047 |
+
"windows-link",
|
| 1048 |
+
]
|
| 1049 |
+
|
| 1050 |
+
[[package]]
|
| 1051 |
+
name = "libredox"
|
| 1052 |
+
version = "0.1.14"
|
| 1053 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1054 |
+
checksum = "1744e39d1d6a9948f4f388969627434e31128196de472883b39f148769bfe30a"
|
| 1055 |
+
dependencies = [
|
| 1056 |
+
"bitflags 2.11.0",
|
| 1057 |
+
"libc",
|
| 1058 |
+
"plain",
|
| 1059 |
+
"redox_syscall 0.7.3",
|
| 1060 |
+
]
|
| 1061 |
+
|
| 1062 |
+
[[package]]
|
| 1063 |
+
name = "linux-raw-sys"
|
| 1064 |
+
version = "0.4.15"
|
| 1065 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1066 |
+
checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab"
|
| 1067 |
+
|
| 1068 |
+
[[package]]
|
| 1069 |
+
name = "linux-raw-sys"
|
| 1070 |
+
version = "0.12.1"
|
| 1071 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1072 |
+
checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53"
|
| 1073 |
+
|
| 1074 |
+
[[package]]
|
| 1075 |
+
name = "litemap"
|
| 1076 |
+
version = "0.8.1"
|
| 1077 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1078 |
+
checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77"
|
| 1079 |
+
|
| 1080 |
+
[[package]]
|
| 1081 |
+
name = "litrs"
|
| 1082 |
+
version = "1.0.0"
|
| 1083 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1084 |
+
checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092"
|
| 1085 |
+
|
| 1086 |
+
[[package]]
|
| 1087 |
+
name = "lock_api"
|
| 1088 |
+
version = "0.4.14"
|
| 1089 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1090 |
+
checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965"
|
| 1091 |
+
dependencies = [
|
| 1092 |
+
"scopeguard",
|
| 1093 |
+
]
|
| 1094 |
+
|
| 1095 |
+
[[package]]
|
| 1096 |
+
name = "log"
|
| 1097 |
+
version = "0.4.29"
|
| 1098 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1099 |
+
checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897"
|
| 1100 |
+
|
| 1101 |
+
[[package]]
|
| 1102 |
+
name = "memchr"
|
| 1103 |
+
version = "2.8.0"
|
| 1104 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1105 |
+
checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
|
| 1106 |
+
|
| 1107 |
+
[[package]]
|
| 1108 |
+
name = "memmap2"
|
| 1109 |
+
version = "0.9.10"
|
| 1110 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1111 |
+
checksum = "714098028fe011992e1c3962653c96b2d578c4b4bce9036e15ff220319b1e0e3"
|
| 1112 |
+
dependencies = [
|
| 1113 |
+
"libc",
|
| 1114 |
+
]
|
| 1115 |
+
|
| 1116 |
+
[[package]]
|
| 1117 |
+
name = "memoffset"
|
| 1118 |
+
version = "0.9.1"
|
| 1119 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1120 |
+
checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
|
| 1121 |
+
dependencies = [
|
| 1122 |
+
"autocfg",
|
| 1123 |
+
]
|
| 1124 |
+
|
| 1125 |
+
[[package]]
|
| 1126 |
+
name = "minhook"
|
| 1127 |
+
version = "0.9.0"
|
| 1128 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1129 |
+
checksum = "455e088cb1600ffa5f1524c9702c9eeb0ba3604e0f4932efa165b99973272a8d"
|
| 1130 |
+
dependencies = [
|
| 1131 |
+
"cc",
|
| 1132 |
+
"tracing",
|
| 1133 |
+
]
|
| 1134 |
+
|
| 1135 |
+
[[package]]
|
| 1136 |
+
name = "miniz_oxide"
|
| 1137 |
+
version = "0.8.9"
|
| 1138 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1139 |
+
checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316"
|
| 1140 |
+
dependencies = [
|
| 1141 |
+
"adler2",
|
| 1142 |
+
"simd-adler32",
|
| 1143 |
+
]
|
| 1144 |
+
|
| 1145 |
+
[[package]]
|
| 1146 |
+
name = "moxcms"
|
| 1147 |
+
version = "0.8.1"
|
| 1148 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1149 |
+
checksum = "bb85c154ba489f01b25c0d36ae69a87e4a1c73a72631fc6c0eb6dde34a73e44b"
|
| 1150 |
+
dependencies = [
|
| 1151 |
+
"num-traits",
|
| 1152 |
+
"pxfm",
|
| 1153 |
+
]
|
| 1154 |
+
|
| 1155 |
+
[[package]]
|
| 1156 |
+
name = "ndk"
|
| 1157 |
+
version = "0.8.0"
|
| 1158 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1159 |
+
checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7"
|
| 1160 |
+
dependencies = [
|
| 1161 |
+
"bitflags 2.11.0",
|
| 1162 |
+
"jni-sys 0.3.0",
|
| 1163 |
+
"log",
|
| 1164 |
+
"ndk-sys",
|
| 1165 |
+
"num_enum",
|
| 1166 |
+
"raw-window-handle 0.5.2",
|
| 1167 |
+
"raw-window-handle 0.6.2",
|
| 1168 |
+
"thiserror 1.0.69",
|
| 1169 |
+
]
|
| 1170 |
+
|
| 1171 |
+
[[package]]
|
| 1172 |
+
name = "ndk-context"
|
| 1173 |
+
version = "0.1.1"
|
| 1174 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1175 |
+
checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b"
|
| 1176 |
+
|
| 1177 |
+
[[package]]
|
| 1178 |
+
name = "ndk-sys"
|
| 1179 |
+
version = "0.5.0+25.2.9519653"
|
| 1180 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1181 |
+
checksum = "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691"
|
| 1182 |
+
dependencies = [
|
| 1183 |
+
"jni-sys 0.3.0",
|
| 1184 |
+
]
|
| 1185 |
+
|
| 1186 |
+
[[package]]
|
| 1187 |
+
name = "nohash-hasher"
|
| 1188 |
+
version = "0.2.0"
|
| 1189 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1190 |
+
checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451"
|
| 1191 |
+
|
| 1192 |
+
[[package]]
|
| 1193 |
+
name = "num-traits"
|
| 1194 |
+
version = "0.2.19"
|
| 1195 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1196 |
+
checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
|
| 1197 |
+
dependencies = [
|
| 1198 |
+
"autocfg",
|
| 1199 |
+
]
|
| 1200 |
+
|
| 1201 |
+
[[package]]
|
| 1202 |
+
name = "num_enum"
|
| 1203 |
+
version = "0.7.5"
|
| 1204 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1205 |
+
checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c"
|
| 1206 |
+
dependencies = [
|
| 1207 |
+
"num_enum_derive",
|
| 1208 |
+
"rustversion",
|
| 1209 |
+
]
|
| 1210 |
+
|
| 1211 |
+
[[package]]
|
| 1212 |
+
name = "num_enum_derive"
|
| 1213 |
+
version = "0.7.5"
|
| 1214 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1215 |
+
checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7"
|
| 1216 |
+
dependencies = [
|
| 1217 |
+
"proc-macro-crate",
|
| 1218 |
+
"proc-macro2",
|
| 1219 |
+
"quote",
|
| 1220 |
+
"syn",
|
| 1221 |
+
]
|
| 1222 |
+
|
| 1223 |
+
[[package]]
|
| 1224 |
+
name = "objc-sys"
|
| 1225 |
+
version = "0.3.5"
|
| 1226 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1227 |
+
checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310"
|
| 1228 |
+
|
| 1229 |
+
[[package]]
|
| 1230 |
+
name = "objc2"
|
| 1231 |
+
version = "0.4.1"
|
| 1232 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1233 |
+
checksum = "559c5a40fdd30eb5e344fbceacf7595a81e242529fb4e21cf5f43fb4f11ff98d"
|
| 1234 |
+
dependencies = [
|
| 1235 |
+
"objc-sys",
|
| 1236 |
+
"objc2-encode 3.0.0",
|
| 1237 |
+
]
|
| 1238 |
+
|
| 1239 |
+
[[package]]
|
| 1240 |
+
name = "objc2"
|
| 1241 |
+
version = "0.5.2"
|
| 1242 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1243 |
+
checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804"
|
| 1244 |
+
dependencies = [
|
| 1245 |
+
"objc-sys",
|
| 1246 |
+
"objc2-encode 4.1.0",
|
| 1247 |
+
]
|
| 1248 |
+
|
| 1249 |
+
[[package]]
|
| 1250 |
+
name = "objc2"
|
| 1251 |
+
version = "0.6.4"
|
| 1252 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1253 |
+
checksum = "3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f"
|
| 1254 |
+
dependencies = [
|
| 1255 |
+
"objc2-encode 4.1.0",
|
| 1256 |
+
]
|
| 1257 |
+
|
| 1258 |
+
[[package]]
|
| 1259 |
+
name = "objc2-app-kit"
|
| 1260 |
+
version = "0.2.2"
|
| 1261 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1262 |
+
checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff"
|
| 1263 |
+
dependencies = [
|
| 1264 |
+
"bitflags 2.11.0",
|
| 1265 |
+
"block2 0.5.1",
|
| 1266 |
+
"libc",
|
| 1267 |
+
"objc2 0.5.2",
|
| 1268 |
+
"objc2-core-data",
|
| 1269 |
+
"objc2-core-image",
|
| 1270 |
+
"objc2-foundation 0.2.2",
|
| 1271 |
+
"objc2-quartz-core",
|
| 1272 |
+
]
|
| 1273 |
+
|
| 1274 |
+
[[package]]
|
| 1275 |
+
name = "objc2-app-kit"
|
| 1276 |
+
version = "0.3.2"
|
| 1277 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1278 |
+
checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c"
|
| 1279 |
+
dependencies = [
|
| 1280 |
+
"bitflags 2.11.0",
|
| 1281 |
+
"objc2 0.6.4",
|
| 1282 |
+
"objc2-core-graphics",
|
| 1283 |
+
"objc2-foundation 0.3.2",
|
| 1284 |
+
]
|
| 1285 |
+
|
| 1286 |
+
[[package]]
|
| 1287 |
+
name = "objc2-core-data"
|
| 1288 |
+
version = "0.2.2"
|
| 1289 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1290 |
+
checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef"
|
| 1291 |
+
dependencies = [
|
| 1292 |
+
"bitflags 2.11.0",
|
| 1293 |
+
"block2 0.5.1",
|
| 1294 |
+
"objc2 0.5.2",
|
| 1295 |
+
"objc2-foundation 0.2.2",
|
| 1296 |
+
]
|
| 1297 |
+
|
| 1298 |
+
[[package]]
|
| 1299 |
+
name = "objc2-core-foundation"
|
| 1300 |
+
version = "0.3.2"
|
| 1301 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1302 |
+
checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536"
|
| 1303 |
+
dependencies = [
|
| 1304 |
+
"bitflags 2.11.0",
|
| 1305 |
+
"dispatch2",
|
| 1306 |
+
"objc2 0.6.4",
|
| 1307 |
+
]
|
| 1308 |
+
|
| 1309 |
+
[[package]]
|
| 1310 |
+
name = "objc2-core-graphics"
|
| 1311 |
+
version = "0.3.2"
|
| 1312 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1313 |
+
checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807"
|
| 1314 |
+
dependencies = [
|
| 1315 |
+
"bitflags 2.11.0",
|
| 1316 |
+
"dispatch2",
|
| 1317 |
+
"objc2 0.6.4",
|
| 1318 |
+
"objc2-core-foundation",
|
| 1319 |
+
"objc2-io-surface",
|
| 1320 |
+
]
|
| 1321 |
+
|
| 1322 |
+
[[package]]
|
| 1323 |
+
name = "objc2-core-image"
|
| 1324 |
+
version = "0.2.2"
|
| 1325 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1326 |
+
checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80"
|
| 1327 |
+
dependencies = [
|
| 1328 |
+
"block2 0.5.1",
|
| 1329 |
+
"objc2 0.5.2",
|
| 1330 |
+
"objc2-foundation 0.2.2",
|
| 1331 |
+
"objc2-metal",
|
| 1332 |
+
]
|
| 1333 |
+
|
| 1334 |
+
[[package]]
|
| 1335 |
+
name = "objc2-encode"
|
| 1336 |
+
version = "3.0.0"
|
| 1337 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1338 |
+
checksum = "d079845b37af429bfe5dfa76e6d087d788031045b25cfc6fd898486fd9847666"
|
| 1339 |
+
|
| 1340 |
+
[[package]]
|
| 1341 |
+
name = "objc2-encode"
|
| 1342 |
+
version = "4.1.0"
|
| 1343 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1344 |
+
checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33"
|
| 1345 |
+
|
| 1346 |
+
[[package]]
|
| 1347 |
+
name = "objc2-foundation"
|
| 1348 |
+
version = "0.2.2"
|
| 1349 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1350 |
+
checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8"
|
| 1351 |
+
dependencies = [
|
| 1352 |
+
"bitflags 2.11.0",
|
| 1353 |
+
"block2 0.5.1",
|
| 1354 |
+
"libc",
|
| 1355 |
+
"objc2 0.5.2",
|
| 1356 |
+
]
|
| 1357 |
+
|
| 1358 |
+
[[package]]
|
| 1359 |
+
name = "objc2-foundation"
|
| 1360 |
+
version = "0.3.2"
|
| 1361 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1362 |
+
checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272"
|
| 1363 |
+
dependencies = [
|
| 1364 |
+
"bitflags 2.11.0",
|
| 1365 |
+
"objc2 0.6.4",
|
| 1366 |
+
"objc2-core-foundation",
|
| 1367 |
+
]
|
| 1368 |
+
|
| 1369 |
+
[[package]]
|
| 1370 |
+
name = "objc2-io-surface"
|
| 1371 |
+
version = "0.3.2"
|
| 1372 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1373 |
+
checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d"
|
| 1374 |
+
dependencies = [
|
| 1375 |
+
"bitflags 2.11.0",
|
| 1376 |
+
"objc2 0.6.4",
|
| 1377 |
+
"objc2-core-foundation",
|
| 1378 |
+
]
|
| 1379 |
+
|
| 1380 |
+
[[package]]
|
| 1381 |
+
name = "objc2-metal"
|
| 1382 |
+
version = "0.2.2"
|
| 1383 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1384 |
+
checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6"
|
| 1385 |
+
dependencies = [
|
| 1386 |
+
"bitflags 2.11.0",
|
| 1387 |
+
"block2 0.5.1",
|
| 1388 |
+
"objc2 0.5.2",
|
| 1389 |
+
"objc2-foundation 0.2.2",
|
| 1390 |
+
]
|
| 1391 |
+
|
| 1392 |
+
[[package]]
|
| 1393 |
+
name = "objc2-quartz-core"
|
| 1394 |
+
version = "0.2.2"
|
| 1395 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1396 |
+
checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a"
|
| 1397 |
+
dependencies = [
|
| 1398 |
+
"bitflags 2.11.0",
|
| 1399 |
+
"block2 0.5.1",
|
| 1400 |
+
"objc2 0.5.2",
|
| 1401 |
+
"objc2-foundation 0.2.2",
|
| 1402 |
+
"objc2-metal",
|
| 1403 |
+
]
|
| 1404 |
+
|
| 1405 |
+
[[package]]
|
| 1406 |
+
name = "once_cell"
|
| 1407 |
+
version = "1.21.3"
|
| 1408 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1409 |
+
checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
|
| 1410 |
+
|
| 1411 |
+
[[package]]
|
| 1412 |
+
name = "openwa-core"
|
| 1413 |
+
version = "0.1.0"
|
| 1414 |
+
dependencies = [
|
| 1415 |
+
"windows-sys 0.59.0",
|
| 1416 |
+
]
|
| 1417 |
+
|
| 1418 |
+
[[package]]
|
| 1419 |
+
name = "openwa-debugui"
|
| 1420 |
+
version = "0.1.0"
|
| 1421 |
+
dependencies = [
|
| 1422 |
+
"eframe",
|
| 1423 |
+
"openwa-core",
|
| 1424 |
+
"winit",
|
| 1425 |
+
]
|
| 1426 |
+
|
| 1427 |
+
[[package]]
|
| 1428 |
+
name = "openwa-harness"
|
| 1429 |
+
version = "0.1.0"
|
| 1430 |
+
dependencies = [
|
| 1431 |
+
"libc",
|
| 1432 |
+
"openwa-core",
|
| 1433 |
+
"windows-sys 0.59.0",
|
| 1434 |
+
]
|
| 1435 |
+
|
| 1436 |
+
[[package]]
|
| 1437 |
+
name = "openwa-wormkit"
|
| 1438 |
+
version = "0.1.0"
|
| 1439 |
+
dependencies = [
|
| 1440 |
+
"heapless",
|
| 1441 |
+
"minhook",
|
| 1442 |
+
"openwa-core",
|
| 1443 |
+
"openwa-debugui",
|
| 1444 |
+
"windows-sys 0.59.0",
|
| 1445 |
+
]
|
| 1446 |
+
|
| 1447 |
+
[[package]]
|
| 1448 |
+
name = "orbclient"
|
| 1449 |
+
version = "0.3.50"
|
| 1450 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1451 |
+
checksum = "52ad2c6bae700b7aa5d1cc30c59bdd3a1c180b09dbaea51e2ae2b8e1cf211fdd"
|
| 1452 |
+
dependencies = [
|
| 1453 |
+
"libc",
|
| 1454 |
+
"libredox",
|
| 1455 |
+
]
|
| 1456 |
+
|
| 1457 |
+
[[package]]
|
| 1458 |
+
name = "owned_ttf_parser"
|
| 1459 |
+
version = "0.25.1"
|
| 1460 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1461 |
+
checksum = "36820e9051aca1014ddc75770aab4d68bc1e9e632f0f5627c4086bc216fb583b"
|
| 1462 |
+
dependencies = [
|
| 1463 |
+
"ttf-parser",
|
| 1464 |
+
]
|
| 1465 |
+
|
| 1466 |
+
[[package]]
|
| 1467 |
+
name = "parking_lot"
|
| 1468 |
+
version = "0.12.5"
|
| 1469 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1470 |
+
checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a"
|
| 1471 |
+
dependencies = [
|
| 1472 |
+
"lock_api",
|
| 1473 |
+
"parking_lot_core",
|
| 1474 |
+
]
|
| 1475 |
+
|
| 1476 |
+
[[package]]
|
| 1477 |
+
name = "parking_lot_core"
|
| 1478 |
+
version = "0.9.12"
|
| 1479 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1480 |
+
checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1"
|
| 1481 |
+
dependencies = [
|
| 1482 |
+
"cfg-if",
|
| 1483 |
+
"libc",
|
| 1484 |
+
"redox_syscall 0.5.18",
|
| 1485 |
+
"smallvec",
|
| 1486 |
+
"windows-link",
|
| 1487 |
+
]
|
| 1488 |
+
|
| 1489 |
+
[[package]]
|
| 1490 |
+
name = "percent-encoding"
|
| 1491 |
+
version = "2.3.2"
|
| 1492 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1493 |
+
checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220"
|
| 1494 |
+
|
| 1495 |
+
[[package]]
|
| 1496 |
+
name = "pin-project-lite"
|
| 1497 |
+
version = "0.2.17"
|
| 1498 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1499 |
+
checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd"
|
| 1500 |
+
|
| 1501 |
+
[[package]]
|
| 1502 |
+
name = "pkg-config"
|
| 1503 |
+
version = "0.3.32"
|
| 1504 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1505 |
+
checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c"
|
| 1506 |
+
|
| 1507 |
+
[[package]]
|
| 1508 |
+
name = "plain"
|
| 1509 |
+
version = "0.2.3"
|
| 1510 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1511 |
+
checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6"
|
| 1512 |
+
|
| 1513 |
+
[[package]]
|
| 1514 |
+
name = "png"
|
| 1515 |
+
version = "0.18.1"
|
| 1516 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1517 |
+
checksum = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61"
|
| 1518 |
+
dependencies = [
|
| 1519 |
+
"bitflags 2.11.0",
|
| 1520 |
+
"crc32fast",
|
| 1521 |
+
"fdeflate",
|
| 1522 |
+
"flate2",
|
| 1523 |
+
"miniz_oxide",
|
| 1524 |
+
]
|
| 1525 |
+
|
| 1526 |
+
[[package]]
|
| 1527 |
+
name = "polling"
|
| 1528 |
+
version = "3.11.0"
|
| 1529 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1530 |
+
checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218"
|
| 1531 |
+
dependencies = [
|
| 1532 |
+
"cfg-if",
|
| 1533 |
+
"concurrent-queue",
|
| 1534 |
+
"hermit-abi",
|
| 1535 |
+
"pin-project-lite",
|
| 1536 |
+
"rustix 1.1.4",
|
| 1537 |
+
"windows-sys 0.61.2",
|
| 1538 |
+
]
|
| 1539 |
+
|
| 1540 |
+
[[package]]
|
| 1541 |
+
name = "potential_utf"
|
| 1542 |
+
version = "0.1.4"
|
| 1543 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1544 |
+
checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77"
|
| 1545 |
+
dependencies = [
|
| 1546 |
+
"zerovec",
|
| 1547 |
+
]
|
| 1548 |
+
|
| 1549 |
+
[[package]]
|
| 1550 |
+
name = "proc-macro-crate"
|
| 1551 |
+
version = "3.5.0"
|
| 1552 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1553 |
+
checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f"
|
| 1554 |
+
dependencies = [
|
| 1555 |
+
"toml_edit",
|
| 1556 |
+
]
|
| 1557 |
+
|
| 1558 |
+
[[package]]
|
| 1559 |
+
name = "proc-macro2"
|
| 1560 |
+
version = "1.0.106"
|
| 1561 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1562 |
+
checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
|
| 1563 |
+
dependencies = [
|
| 1564 |
+
"unicode-ident",
|
| 1565 |
+
]
|
| 1566 |
+
|
| 1567 |
+
[[package]]
|
| 1568 |
+
name = "pxfm"
|
| 1569 |
+
version = "0.1.28"
|
| 1570 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1571 |
+
checksum = "b5a041e753da8b807c9255f28de81879c78c876392ff2469cde94799b2896b9d"
|
| 1572 |
+
|
| 1573 |
+
[[package]]
|
| 1574 |
+
name = "quick-xml"
|
| 1575 |
+
version = "0.39.2"
|
| 1576 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1577 |
+
checksum = "958f21e8e7ceb5a1aa7fa87fab28e7c75976e0bfe7e23ff069e0a260f894067d"
|
| 1578 |
+
dependencies = [
|
| 1579 |
+
"memchr",
|
| 1580 |
+
]
|
| 1581 |
+
|
| 1582 |
+
[[package]]
|
| 1583 |
+
name = "quote"
|
| 1584 |
+
version = "1.0.45"
|
| 1585 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1586 |
+
checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
|
| 1587 |
+
dependencies = [
|
| 1588 |
+
"proc-macro2",
|
| 1589 |
+
]
|
| 1590 |
+
|
| 1591 |
+
[[package]]
|
| 1592 |
+
name = "r-efi"
|
| 1593 |
+
version = "5.3.0"
|
| 1594 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1595 |
+
checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
|
| 1596 |
+
|
| 1597 |
+
[[package]]
|
| 1598 |
+
name = "raw-window-handle"
|
| 1599 |
+
version = "0.5.2"
|
| 1600 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1601 |
+
checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
|
| 1602 |
+
|
| 1603 |
+
[[package]]
|
| 1604 |
+
name = "raw-window-handle"
|
| 1605 |
+
version = "0.6.2"
|
| 1606 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1607 |
+
checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539"
|
| 1608 |
+
|
| 1609 |
+
[[package]]
|
| 1610 |
+
name = "redox_syscall"
|
| 1611 |
+
version = "0.3.5"
|
| 1612 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1613 |
+
checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
|
| 1614 |
+
dependencies = [
|
| 1615 |
+
"bitflags 1.3.2",
|
| 1616 |
+
]
|
| 1617 |
+
|
| 1618 |
+
[[package]]
|
| 1619 |
+
name = "redox_syscall"
|
| 1620 |
+
version = "0.5.18"
|
| 1621 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1622 |
+
checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d"
|
| 1623 |
+
dependencies = [
|
| 1624 |
+
"bitflags 2.11.0",
|
| 1625 |
+
]
|
| 1626 |
+
|
| 1627 |
+
[[package]]
|
| 1628 |
+
name = "redox_syscall"
|
| 1629 |
+
version = "0.7.3"
|
| 1630 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1631 |
+
checksum = "6ce70a74e890531977d37e532c34d45e9055d2409ed08ddba14529471ed0be16"
|
| 1632 |
+
dependencies = [
|
| 1633 |
+
"bitflags 2.11.0",
|
| 1634 |
+
]
|
| 1635 |
+
|
| 1636 |
+
[[package]]
|
| 1637 |
+
name = "rustc_version"
|
| 1638 |
+
version = "0.4.1"
|
| 1639 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1640 |
+
checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
|
| 1641 |
+
dependencies = [
|
| 1642 |
+
"semver",
|
| 1643 |
+
]
|
| 1644 |
+
|
| 1645 |
+
[[package]]
|
| 1646 |
+
name = "rustix"
|
| 1647 |
+
version = "0.38.44"
|
| 1648 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1649 |
+
checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154"
|
| 1650 |
+
dependencies = [
|
| 1651 |
+
"bitflags 2.11.0",
|
| 1652 |
+
"errno",
|
| 1653 |
+
"libc",
|
| 1654 |
+
"linux-raw-sys 0.4.15",
|
| 1655 |
+
"windows-sys 0.59.0",
|
| 1656 |
+
]
|
| 1657 |
+
|
| 1658 |
+
[[package]]
|
| 1659 |
+
name = "rustix"
|
| 1660 |
+
version = "1.1.4"
|
| 1661 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1662 |
+
checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190"
|
| 1663 |
+
dependencies = [
|
| 1664 |
+
"bitflags 2.11.0",
|
| 1665 |
+
"errno",
|
| 1666 |
+
"libc",
|
| 1667 |
+
"linux-raw-sys 0.12.1",
|
| 1668 |
+
"windows-sys 0.59.0",
|
| 1669 |
+
]
|
| 1670 |
+
|
| 1671 |
+
[[package]]
|
| 1672 |
+
name = "rustversion"
|
| 1673 |
+
version = "1.0.22"
|
| 1674 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1675 |
+
checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
|
| 1676 |
+
|
| 1677 |
+
[[package]]
|
| 1678 |
+
name = "same-file"
|
| 1679 |
+
version = "1.0.6"
|
| 1680 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1681 |
+
checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
|
| 1682 |
+
dependencies = [
|
| 1683 |
+
"winapi-util",
|
| 1684 |
+
]
|
| 1685 |
+
|
| 1686 |
+
[[package]]
|
| 1687 |
+
name = "scoped-tls"
|
| 1688 |
+
version = "1.0.1"
|
| 1689 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1690 |
+
checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
|
| 1691 |
+
|
| 1692 |
+
[[package]]
|
| 1693 |
+
name = "scopeguard"
|
| 1694 |
+
version = "1.2.0"
|
| 1695 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1696 |
+
checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
|
| 1697 |
+
|
| 1698 |
+
[[package]]
|
| 1699 |
+
name = "sctk-adwaita"
|
| 1700 |
+
version = "0.8.3"
|
| 1701 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1702 |
+
checksum = "70b31447ca297092c5a9916fc3b955203157b37c19ca8edde4f52e9843e602c7"
|
| 1703 |
+
dependencies = [
|
| 1704 |
+
"ab_glyph",
|
| 1705 |
+
"log",
|
| 1706 |
+
"memmap2",
|
| 1707 |
+
"smithay-client-toolkit 0.18.1",
|
| 1708 |
+
"tiny-skia",
|
| 1709 |
+
]
|
| 1710 |
+
|
| 1711 |
+
[[package]]
|
| 1712 |
+
name = "semver"
|
| 1713 |
+
version = "1.0.27"
|
| 1714 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1715 |
+
checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2"
|
| 1716 |
+
|
| 1717 |
+
[[package]]
|
| 1718 |
+
name = "serde"
|
| 1719 |
+
version = "1.0.228"
|
| 1720 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1721 |
+
checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
|
| 1722 |
+
dependencies = [
|
| 1723 |
+
"serde_core",
|
| 1724 |
+
]
|
| 1725 |
+
|
| 1726 |
+
[[package]]
|
| 1727 |
+
name = "serde_core"
|
| 1728 |
+
version = "1.0.228"
|
| 1729 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1730 |
+
checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
|
| 1731 |
+
dependencies = [
|
| 1732 |
+
"serde_derive",
|
| 1733 |
+
]
|
| 1734 |
+
|
| 1735 |
+
[[package]]
|
| 1736 |
+
name = "serde_derive"
|
| 1737 |
+
version = "1.0.228"
|
| 1738 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1739 |
+
checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
|
| 1740 |
+
dependencies = [
|
| 1741 |
+
"proc-macro2",
|
| 1742 |
+
"quote",
|
| 1743 |
+
"syn",
|
| 1744 |
+
]
|
| 1745 |
+
|
| 1746 |
+
[[package]]
|
| 1747 |
+
name = "shlex"
|
| 1748 |
+
version = "1.3.0"
|
| 1749 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1750 |
+
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
|
| 1751 |
+
|
| 1752 |
+
[[package]]
|
| 1753 |
+
name = "simd-adler32"
|
| 1754 |
+
version = "0.3.8"
|
| 1755 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1756 |
+
checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2"
|
| 1757 |
+
|
| 1758 |
+
[[package]]
|
| 1759 |
+
name = "simd_cesu8"
|
| 1760 |
+
version = "1.1.1"
|
| 1761 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1762 |
+
checksum = "94f90157bb87cddf702797c5dadfa0be7d266cdf49e22da2fcaa32eff75b2c33"
|
| 1763 |
+
dependencies = [
|
| 1764 |
+
"rustc_version",
|
| 1765 |
+
"simdutf8",
|
| 1766 |
+
]
|
| 1767 |
+
|
| 1768 |
+
[[package]]
|
| 1769 |
+
name = "simdutf8"
|
| 1770 |
+
version = "0.1.5"
|
| 1771 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1772 |
+
checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e"
|
| 1773 |
+
|
| 1774 |
+
[[package]]
|
| 1775 |
+
name = "slab"
|
| 1776 |
+
version = "0.4.12"
|
| 1777 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1778 |
+
checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
|
| 1779 |
+
|
| 1780 |
+
[[package]]
|
| 1781 |
+
name = "slotmap"
|
| 1782 |
+
version = "1.1.1"
|
| 1783 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1784 |
+
checksum = "bdd58c3c93c3d278ca835519292445cb4b0d4dc59ccfdf7ceadaab3f8aeb4038"
|
| 1785 |
+
dependencies = [
|
| 1786 |
+
"version_check",
|
| 1787 |
+
]
|
| 1788 |
+
|
| 1789 |
+
[[package]]
|
| 1790 |
+
name = "smallvec"
|
| 1791 |
+
version = "1.15.1"
|
| 1792 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1793 |
+
checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
|
| 1794 |
+
|
| 1795 |
+
[[package]]
|
| 1796 |
+
name = "smithay-client-toolkit"
|
| 1797 |
+
version = "0.18.1"
|
| 1798 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1799 |
+
checksum = "922fd3eeab3bd820d76537ce8f582b1cf951eceb5475c28500c7457d9d17f53a"
|
| 1800 |
+
dependencies = [
|
| 1801 |
+
"bitflags 2.11.0",
|
| 1802 |
+
"calloop 0.12.4",
|
| 1803 |
+
"calloop-wayland-source 0.2.0",
|
| 1804 |
+
"cursor-icon",
|
| 1805 |
+
"libc",
|
| 1806 |
+
"log",
|
| 1807 |
+
"memmap2",
|
| 1808 |
+
"rustix 0.38.44",
|
| 1809 |
+
"thiserror 1.0.69",
|
| 1810 |
+
"wayland-backend",
|
| 1811 |
+
"wayland-client",
|
| 1812 |
+
"wayland-csd-frame",
|
| 1813 |
+
"wayland-cursor",
|
| 1814 |
+
"wayland-protocols 0.31.2",
|
| 1815 |
+
"wayland-protocols-wlr 0.2.0",
|
| 1816 |
+
"wayland-scanner",
|
| 1817 |
+
"xkeysym",
|
| 1818 |
+
]
|
| 1819 |
+
|
| 1820 |
+
[[package]]
|
| 1821 |
+
name = "smithay-client-toolkit"
|
| 1822 |
+
version = "0.20.0"
|
| 1823 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1824 |
+
checksum = "0512da38f5e2b31201a93524adb8d3136276fa4fe4aafab4e1f727a82b534cc0"
|
| 1825 |
+
dependencies = [
|
| 1826 |
+
"bitflags 2.11.0",
|
| 1827 |
+
"calloop 0.14.4",
|
| 1828 |
+
"calloop-wayland-source 0.4.1",
|
| 1829 |
+
"cursor-icon",
|
| 1830 |
+
"libc",
|
| 1831 |
+
"log",
|
| 1832 |
+
"memmap2",
|
| 1833 |
+
"rustix 1.1.4",
|
| 1834 |
+
"thiserror 2.0.18",
|
| 1835 |
+
"wayland-backend",
|
| 1836 |
+
"wayland-client",
|
| 1837 |
+
"wayland-csd-frame",
|
| 1838 |
+
"wayland-cursor",
|
| 1839 |
+
"wayland-protocols 0.32.11",
|
| 1840 |
+
"wayland-protocols-experimental",
|
| 1841 |
+
"wayland-protocols-misc",
|
| 1842 |
+
"wayland-protocols-wlr 0.3.11",
|
| 1843 |
+
"wayland-scanner",
|
| 1844 |
+
"xkeysym",
|
| 1845 |
+
]
|
| 1846 |
+
|
| 1847 |
+
[[package]]
|
| 1848 |
+
name = "smithay-clipboard"
|
| 1849 |
+
version = "0.7.3"
|
| 1850 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1851 |
+
checksum = "71704c03f739f7745053bde45fa203a46c58d25bc5c4efba1d9a60e9dba81226"
|
| 1852 |
+
dependencies = [
|
| 1853 |
+
"libc",
|
| 1854 |
+
"smithay-client-toolkit 0.20.0",
|
| 1855 |
+
"wayland-backend",
|
| 1856 |
+
]
|
| 1857 |
+
|
| 1858 |
+
[[package]]
|
| 1859 |
+
name = "smol_str"
|
| 1860 |
+
version = "0.2.2"
|
| 1861 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1862 |
+
checksum = "dd538fb6910ac1099850255cf94a94df6551fbdd602454387d0adb2d1ca6dead"
|
| 1863 |
+
dependencies = [
|
| 1864 |
+
"serde",
|
| 1865 |
+
]
|
| 1866 |
+
|
| 1867 |
+
[[package]]
|
| 1868 |
+
name = "stable_deref_trait"
|
| 1869 |
+
version = "1.2.1"
|
| 1870 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1871 |
+
checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596"
|
| 1872 |
+
|
| 1873 |
+
[[package]]
|
| 1874 |
+
name = "static_assertions"
|
| 1875 |
+
version = "1.1.0"
|
| 1876 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1877 |
+
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
|
| 1878 |
+
|
| 1879 |
+
[[package]]
|
| 1880 |
+
name = "strict-num"
|
| 1881 |
+
version = "0.1.1"
|
| 1882 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1883 |
+
checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731"
|
| 1884 |
+
|
| 1885 |
+
[[package]]
|
| 1886 |
+
name = "syn"
|
| 1887 |
+
version = "2.0.117"
|
| 1888 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1889 |
+
checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
|
| 1890 |
+
dependencies = [
|
| 1891 |
+
"proc-macro2",
|
| 1892 |
+
"quote",
|
| 1893 |
+
"unicode-ident",
|
| 1894 |
+
]
|
| 1895 |
+
|
| 1896 |
+
[[package]]
|
| 1897 |
+
name = "synstructure"
|
| 1898 |
+
version = "0.13.2"
|
| 1899 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1900 |
+
checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2"
|
| 1901 |
+
dependencies = [
|
| 1902 |
+
"proc-macro2",
|
| 1903 |
+
"quote",
|
| 1904 |
+
"syn",
|
| 1905 |
+
]
|
| 1906 |
+
|
| 1907 |
+
[[package]]
|
| 1908 |
+
name = "thiserror"
|
| 1909 |
+
version = "1.0.69"
|
| 1910 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1911 |
+
checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
|
| 1912 |
+
dependencies = [
|
| 1913 |
+
"thiserror-impl 1.0.69",
|
| 1914 |
+
]
|
| 1915 |
+
|
| 1916 |
+
[[package]]
|
| 1917 |
+
name = "thiserror"
|
| 1918 |
+
version = "2.0.18"
|
| 1919 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1920 |
+
checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4"
|
| 1921 |
+
dependencies = [
|
| 1922 |
+
"thiserror-impl 2.0.18",
|
| 1923 |
+
]
|
| 1924 |
+
|
| 1925 |
+
[[package]]
|
| 1926 |
+
name = "thiserror-impl"
|
| 1927 |
+
version = "1.0.69"
|
| 1928 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1929 |
+
checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
|
| 1930 |
+
dependencies = [
|
| 1931 |
+
"proc-macro2",
|
| 1932 |
+
"quote",
|
| 1933 |
+
"syn",
|
| 1934 |
+
]
|
| 1935 |
+
|
| 1936 |
+
[[package]]
|
| 1937 |
+
name = "thiserror-impl"
|
| 1938 |
+
version = "2.0.18"
|
| 1939 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1940 |
+
checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5"
|
| 1941 |
+
dependencies = [
|
| 1942 |
+
"proc-macro2",
|
| 1943 |
+
"quote",
|
| 1944 |
+
"syn",
|
| 1945 |
+
]
|
| 1946 |
+
|
| 1947 |
+
[[package]]
|
| 1948 |
+
name = "tiny-skia"
|
| 1949 |
+
version = "0.11.4"
|
| 1950 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1951 |
+
checksum = "83d13394d44dae3207b52a326c0c85a8bf87f1541f23b0d143811088497b09ab"
|
| 1952 |
+
dependencies = [
|
| 1953 |
+
"arrayref",
|
| 1954 |
+
"arrayvec",
|
| 1955 |
+
"bytemuck",
|
| 1956 |
+
"cfg-if",
|
| 1957 |
+
"log",
|
| 1958 |
+
"tiny-skia-path",
|
| 1959 |
+
]
|
| 1960 |
+
|
| 1961 |
+
[[package]]
|
| 1962 |
+
name = "tiny-skia-path"
|
| 1963 |
+
version = "0.11.4"
|
| 1964 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1965 |
+
checksum = "9c9e7fc0c2e86a30b117d0462aa261b72b7a99b7ebd7deb3a14ceda95c5bdc93"
|
| 1966 |
+
dependencies = [
|
| 1967 |
+
"arrayref",
|
| 1968 |
+
"bytemuck",
|
| 1969 |
+
"strict-num",
|
| 1970 |
+
]
|
| 1971 |
+
|
| 1972 |
+
[[package]]
|
| 1973 |
+
name = "tinystr"
|
| 1974 |
+
version = "0.8.2"
|
| 1975 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1976 |
+
checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869"
|
| 1977 |
+
dependencies = [
|
| 1978 |
+
"displaydoc",
|
| 1979 |
+
"zerovec",
|
| 1980 |
+
]
|
| 1981 |
+
|
| 1982 |
+
[[package]]
|
| 1983 |
+
name = "toml_datetime"
|
| 1984 |
+
version = "1.0.0+spec-1.1.0"
|
| 1985 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1986 |
+
checksum = "32c2555c699578a4f59f0cc68e5116c8d7cabbd45e1409b989d4be085b53f13e"
|
| 1987 |
+
dependencies = [
|
| 1988 |
+
"serde_core",
|
| 1989 |
+
]
|
| 1990 |
+
|
| 1991 |
+
[[package]]
|
| 1992 |
+
name = "toml_edit"
|
| 1993 |
+
version = "0.25.4+spec-1.1.0"
|
| 1994 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 1995 |
+
checksum = "7193cbd0ce53dc966037f54351dbbcf0d5a642c7f0038c382ef9e677ce8c13f2"
|
| 1996 |
+
dependencies = [
|
| 1997 |
+
"indexmap",
|
| 1998 |
+
"toml_datetime",
|
| 1999 |
+
"toml_parser",
|
| 2000 |
+
"winnow",
|
| 2001 |
+
]
|
| 2002 |
+
|
| 2003 |
+
[[package]]
|
| 2004 |
+
name = "toml_parser"
|
| 2005 |
+
version = "1.0.9+spec-1.1.0"
|
| 2006 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2007 |
+
checksum = "702d4415e08923e7e1ef96cd5727c0dfed80b4d2fa25db9647fe5eb6f7c5a4c4"
|
| 2008 |
+
dependencies = [
|
| 2009 |
+
"winnow",
|
| 2010 |
+
]
|
| 2011 |
+
|
| 2012 |
+
[[package]]
|
| 2013 |
+
name = "tracing"
|
| 2014 |
+
version = "0.1.44"
|
| 2015 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2016 |
+
checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100"
|
| 2017 |
+
dependencies = [
|
| 2018 |
+
"log",
|
| 2019 |
+
"pin-project-lite",
|
| 2020 |
+
"tracing-attributes",
|
| 2021 |
+
"tracing-core",
|
| 2022 |
+
]
|
| 2023 |
+
|
| 2024 |
+
[[package]]
|
| 2025 |
+
name = "tracing-attributes"
|
| 2026 |
+
version = "0.1.31"
|
| 2027 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2028 |
+
checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da"
|
| 2029 |
+
dependencies = [
|
| 2030 |
+
"proc-macro2",
|
| 2031 |
+
"quote",
|
| 2032 |
+
"syn",
|
| 2033 |
+
]
|
| 2034 |
+
|
| 2035 |
+
[[package]]
|
| 2036 |
+
name = "tracing-core"
|
| 2037 |
+
version = "0.1.36"
|
| 2038 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2039 |
+
checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a"
|
| 2040 |
+
dependencies = [
|
| 2041 |
+
"once_cell",
|
| 2042 |
+
]
|
| 2043 |
+
|
| 2044 |
+
[[package]]
|
| 2045 |
+
name = "ttf-parser"
|
| 2046 |
+
version = "0.25.1"
|
| 2047 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2048 |
+
checksum = "d2df906b07856748fa3f6e0ad0cbaa047052d4a7dd609e231c4f72cee8c36f31"
|
| 2049 |
+
|
| 2050 |
+
[[package]]
|
| 2051 |
+
name = "unicode-ident"
|
| 2052 |
+
version = "1.0.24"
|
| 2053 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2054 |
+
checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
|
| 2055 |
+
|
| 2056 |
+
[[package]]
|
| 2057 |
+
name = "unicode-segmentation"
|
| 2058 |
+
version = "1.12.0"
|
| 2059 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2060 |
+
checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493"
|
| 2061 |
+
|
| 2062 |
+
[[package]]
|
| 2063 |
+
name = "url"
|
| 2064 |
+
version = "2.5.8"
|
| 2065 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2066 |
+
checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed"
|
| 2067 |
+
dependencies = [
|
| 2068 |
+
"form_urlencoded",
|
| 2069 |
+
"idna",
|
| 2070 |
+
"percent-encoding",
|
| 2071 |
+
"serde",
|
| 2072 |
+
]
|
| 2073 |
+
|
| 2074 |
+
[[package]]
|
| 2075 |
+
name = "utf8_iter"
|
| 2076 |
+
version = "1.0.4"
|
| 2077 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2078 |
+
checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
|
| 2079 |
+
|
| 2080 |
+
[[package]]
|
| 2081 |
+
name = "version_check"
|
| 2082 |
+
version = "0.9.5"
|
| 2083 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2084 |
+
checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
|
| 2085 |
+
|
| 2086 |
+
[[package]]
|
| 2087 |
+
name = "walkdir"
|
| 2088 |
+
version = "2.5.0"
|
| 2089 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2090 |
+
checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
|
| 2091 |
+
dependencies = [
|
| 2092 |
+
"same-file",
|
| 2093 |
+
"winapi-util",
|
| 2094 |
+
]
|
| 2095 |
+
|
| 2096 |
+
[[package]]
|
| 2097 |
+
name = "wasip2"
|
| 2098 |
+
version = "1.0.2+wasi-0.2.9"
|
| 2099 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2100 |
+
checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5"
|
| 2101 |
+
dependencies = [
|
| 2102 |
+
"wit-bindgen",
|
| 2103 |
+
]
|
| 2104 |
+
|
| 2105 |
+
[[package]]
|
| 2106 |
+
name = "wasm-bindgen"
|
| 2107 |
+
version = "0.2.114"
|
| 2108 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2109 |
+
checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e"
|
| 2110 |
+
dependencies = [
|
| 2111 |
+
"cfg-if",
|
| 2112 |
+
"once_cell",
|
| 2113 |
+
"rustversion",
|
| 2114 |
+
"wasm-bindgen-macro",
|
| 2115 |
+
"wasm-bindgen-shared",
|
| 2116 |
+
]
|
| 2117 |
+
|
| 2118 |
+
[[package]]
|
| 2119 |
+
name = "wasm-bindgen-futures"
|
| 2120 |
+
version = "0.4.64"
|
| 2121 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2122 |
+
checksum = "e9c5522b3a28661442748e09d40924dfb9ca614b21c00d3fd135720e48b67db8"
|
| 2123 |
+
dependencies = [
|
| 2124 |
+
"cfg-if",
|
| 2125 |
+
"futures-util",
|
| 2126 |
+
"js-sys",
|
| 2127 |
+
"once_cell",
|
| 2128 |
+
"wasm-bindgen",
|
| 2129 |
+
"web-sys",
|
| 2130 |
+
]
|
| 2131 |
+
|
| 2132 |
+
[[package]]
|
| 2133 |
+
name = "wasm-bindgen-macro"
|
| 2134 |
+
version = "0.2.114"
|
| 2135 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2136 |
+
checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6"
|
| 2137 |
+
dependencies = [
|
| 2138 |
+
"quote",
|
| 2139 |
+
"wasm-bindgen-macro-support",
|
| 2140 |
+
]
|
| 2141 |
+
|
| 2142 |
+
[[package]]
|
| 2143 |
+
name = "wasm-bindgen-macro-support"
|
| 2144 |
+
version = "0.2.114"
|
| 2145 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2146 |
+
checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3"
|
| 2147 |
+
dependencies = [
|
| 2148 |
+
"bumpalo",
|
| 2149 |
+
"proc-macro2",
|
| 2150 |
+
"quote",
|
| 2151 |
+
"syn",
|
| 2152 |
+
"wasm-bindgen-shared",
|
| 2153 |
+
]
|
| 2154 |
+
|
| 2155 |
+
[[package]]
|
| 2156 |
+
name = "wasm-bindgen-shared"
|
| 2157 |
+
version = "0.2.114"
|
| 2158 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2159 |
+
checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16"
|
| 2160 |
+
dependencies = [
|
| 2161 |
+
"unicode-ident",
|
| 2162 |
+
]
|
| 2163 |
+
|
| 2164 |
+
[[package]]
|
| 2165 |
+
name = "wayland-backend"
|
| 2166 |
+
version = "0.3.14"
|
| 2167 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2168 |
+
checksum = "aa75f400b7f719bcd68b3f47cd939ba654cedeef690f486db71331eec4c6a406"
|
| 2169 |
+
dependencies = [
|
| 2170 |
+
"cc",
|
| 2171 |
+
"downcast-rs",
|
| 2172 |
+
"rustix 1.1.4",
|
| 2173 |
+
"scoped-tls",
|
| 2174 |
+
"smallvec",
|
| 2175 |
+
"wayland-sys",
|
| 2176 |
+
]
|
| 2177 |
+
|
| 2178 |
+
[[package]]
|
| 2179 |
+
name = "wayland-client"
|
| 2180 |
+
version = "0.31.13"
|
| 2181 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2182 |
+
checksum = "ab51d9f7c071abeee76007e2b742499e535148035bb835f97aaed1338cf516c3"
|
| 2183 |
+
dependencies = [
|
| 2184 |
+
"bitflags 2.11.0",
|
| 2185 |
+
"rustix 1.1.4",
|
| 2186 |
+
"wayland-backend",
|
| 2187 |
+
"wayland-scanner",
|
| 2188 |
+
]
|
| 2189 |
+
|
| 2190 |
+
[[package]]
|
| 2191 |
+
name = "wayland-csd-frame"
|
| 2192 |
+
version = "0.3.0"
|
| 2193 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2194 |
+
checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e"
|
| 2195 |
+
dependencies = [
|
| 2196 |
+
"bitflags 2.11.0",
|
| 2197 |
+
"cursor-icon",
|
| 2198 |
+
"wayland-backend",
|
| 2199 |
+
]
|
| 2200 |
+
|
| 2201 |
+
[[package]]
|
| 2202 |
+
name = "wayland-cursor"
|
| 2203 |
+
version = "0.31.13"
|
| 2204 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2205 |
+
checksum = "4b3298683470fbdc6ca40151dfc48c8f2fd4c41a26e13042f801f85002384091"
|
| 2206 |
+
dependencies = [
|
| 2207 |
+
"rustix 1.1.4",
|
| 2208 |
+
"wayland-client",
|
| 2209 |
+
"xcursor",
|
| 2210 |
+
]
|
| 2211 |
+
|
| 2212 |
+
[[package]]
|
| 2213 |
+
name = "wayland-protocols"
|
| 2214 |
+
version = "0.31.2"
|
| 2215 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2216 |
+
checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4"
|
| 2217 |
+
dependencies = [
|
| 2218 |
+
"bitflags 2.11.0",
|
| 2219 |
+
"wayland-backend",
|
| 2220 |
+
"wayland-client",
|
| 2221 |
+
"wayland-scanner",
|
| 2222 |
+
]
|
| 2223 |
+
|
| 2224 |
+
[[package]]
|
| 2225 |
+
name = "wayland-protocols"
|
| 2226 |
+
version = "0.32.11"
|
| 2227 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2228 |
+
checksum = "b23b5df31ceff1328f06ac607591d5ba360cf58f90c8fad4ac8d3a55a3c4aec7"
|
| 2229 |
+
dependencies = [
|
| 2230 |
+
"bitflags 2.11.0",
|
| 2231 |
+
"wayland-backend",
|
| 2232 |
+
"wayland-client",
|
| 2233 |
+
"wayland-scanner",
|
| 2234 |
+
]
|
| 2235 |
+
|
| 2236 |
+
[[package]]
|
| 2237 |
+
name = "wayland-protocols-experimental"
|
| 2238 |
+
version = "20250721.0.1"
|
| 2239 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2240 |
+
checksum = "40a1f863128dcaaec790d7b4b396cc9b9a7a079e878e18c47e6c2d2c5a8dcbb1"
|
| 2241 |
+
dependencies = [
|
| 2242 |
+
"bitflags 2.11.0",
|
| 2243 |
+
"wayland-backend",
|
| 2244 |
+
"wayland-client",
|
| 2245 |
+
"wayland-protocols 0.32.11",
|
| 2246 |
+
"wayland-scanner",
|
| 2247 |
+
]
|
| 2248 |
+
|
| 2249 |
+
[[package]]
|
| 2250 |
+
name = "wayland-protocols-misc"
|
| 2251 |
+
version = "0.3.11"
|
| 2252 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2253 |
+
checksum = "429b99200febaf95d4f4e46deff6fe4382bcff3280ee16a41cf887b3c3364984"
|
| 2254 |
+
dependencies = [
|
| 2255 |
+
"bitflags 2.11.0",
|
| 2256 |
+
"wayland-backend",
|
| 2257 |
+
"wayland-client",
|
| 2258 |
+
"wayland-protocols 0.32.11",
|
| 2259 |
+
"wayland-scanner",
|
| 2260 |
+
]
|
| 2261 |
+
|
| 2262 |
+
[[package]]
|
| 2263 |
+
name = "wayland-protocols-plasma"
|
| 2264 |
+
version = "0.2.0"
|
| 2265 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2266 |
+
checksum = "23803551115ff9ea9bce586860c5c5a971e360825a0309264102a9495a5ff479"
|
| 2267 |
+
dependencies = [
|
| 2268 |
+
"bitflags 2.11.0",
|
| 2269 |
+
"wayland-backend",
|
| 2270 |
+
"wayland-client",
|
| 2271 |
+
"wayland-protocols 0.31.2",
|
| 2272 |
+
"wayland-scanner",
|
| 2273 |
+
]
|
| 2274 |
+
|
| 2275 |
+
[[package]]
|
| 2276 |
+
name = "wayland-protocols-wlr"
|
| 2277 |
+
version = "0.2.0"
|
| 2278 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2279 |
+
checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6"
|
| 2280 |
+
dependencies = [
|
| 2281 |
+
"bitflags 2.11.0",
|
| 2282 |
+
"wayland-backend",
|
| 2283 |
+
"wayland-client",
|
| 2284 |
+
"wayland-protocols 0.31.2",
|
| 2285 |
+
"wayland-scanner",
|
| 2286 |
+
]
|
| 2287 |
|
| 2288 |
[[package]]
|
| 2289 |
+
name = "wayland-protocols-wlr"
|
| 2290 |
+
version = "0.3.11"
|
| 2291 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2292 |
+
checksum = "78248e4cc0eff8163370ba5c158630dcae1f3497a586b826eca2ef5f348d6235"
|
| 2293 |
dependencies = [
|
| 2294 |
+
"bitflags 2.11.0",
|
| 2295 |
+
"wayland-backend",
|
| 2296 |
+
"wayland-client",
|
| 2297 |
+
"wayland-protocols 0.32.11",
|
| 2298 |
+
"wayland-scanner",
|
| 2299 |
]
|
| 2300 |
|
| 2301 |
[[package]]
|
| 2302 |
+
name = "wayland-scanner"
|
| 2303 |
+
version = "0.31.9"
|
| 2304 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2305 |
+
checksum = "c86287151a309799b821ca709b7345a048a2956af05957c89cb824ab919fa4e3"
|
| 2306 |
+
dependencies = [
|
| 2307 |
+
"proc-macro2",
|
| 2308 |
+
"quick-xml",
|
| 2309 |
+
"quote",
|
| 2310 |
+
]
|
| 2311 |
|
| 2312 |
[[package]]
|
| 2313 |
+
name = "wayland-sys"
|
| 2314 |
+
version = "0.31.10"
|
| 2315 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2316 |
+
checksum = "374f6b70e8e0d6bf9461a32988fd553b59ff630964924dad6e4a4eb6bd538d17"
|
| 2317 |
dependencies = [
|
| 2318 |
+
"dlib",
|
| 2319 |
+
"log",
|
| 2320 |
+
"once_cell",
|
| 2321 |
+
"pkg-config",
|
| 2322 |
]
|
| 2323 |
|
| 2324 |
[[package]]
|
| 2325 |
+
name = "web-sys"
|
| 2326 |
+
version = "0.3.91"
|
| 2327 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2328 |
+
checksum = "854ba17bb104abfb26ba36da9729addc7ce7f06f5c0f90f3c391f8461cca21f9"
|
| 2329 |
dependencies = [
|
| 2330 |
+
"js-sys",
|
| 2331 |
+
"wasm-bindgen",
|
|
|
|
| 2332 |
]
|
| 2333 |
|
| 2334 |
[[package]]
|
| 2335 |
+
name = "web-time"
|
| 2336 |
+
version = "0.2.4"
|
| 2337 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2338 |
+
checksum = "aa30049b1c872b72c89866d458eae9f20380ab280ffd1b1e18df2d3e2d98cfe0"
|
| 2339 |
dependencies = [
|
| 2340 |
+
"js-sys",
|
| 2341 |
+
"wasm-bindgen",
|
|
|
|
|
|
|
| 2342 |
]
|
| 2343 |
|
| 2344 |
[[package]]
|
| 2345 |
+
name = "webbrowser"
|
| 2346 |
+
version = "1.2.0"
|
| 2347 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2348 |
+
checksum = "fe985f41e291eecef5e5c0770a18d28390addb03331c043964d9e916453d6f16"
|
| 2349 |
+
dependencies = [
|
| 2350 |
+
"core-foundation 0.10.1",
|
| 2351 |
+
"jni 0.22.3",
|
| 2352 |
+
"log",
|
| 2353 |
+
"ndk-context",
|
| 2354 |
+
"objc2 0.6.4",
|
| 2355 |
+
"objc2-foundation 0.3.2",
|
| 2356 |
+
"url",
|
| 2357 |
+
"web-sys",
|
| 2358 |
+
]
|
| 2359 |
|
| 2360 |
[[package]]
|
| 2361 |
+
name = "winapi"
|
| 2362 |
+
version = "0.3.9"
|
| 2363 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2364 |
+
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
|
| 2365 |
dependencies = [
|
| 2366 |
+
"winapi-i686-pc-windows-gnu",
|
| 2367 |
+
"winapi-x86_64-pc-windows-gnu",
|
| 2368 |
]
|
| 2369 |
|
| 2370 |
[[package]]
|
| 2371 |
+
name = "winapi-i686-pc-windows-gnu"
|
| 2372 |
+
version = "0.4.0"
|
| 2373 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2374 |
+
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
|
| 2375 |
+
|
| 2376 |
+
[[package]]
|
| 2377 |
+
name = "winapi-util"
|
| 2378 |
+
version = "0.1.11"
|
| 2379 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2380 |
+
checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
|
| 2381 |
dependencies = [
|
| 2382 |
+
"windows-sys 0.59.0",
|
| 2383 |
]
|
| 2384 |
|
| 2385 |
[[package]]
|
| 2386 |
+
name = "winapi-x86_64-pc-windows-gnu"
|
| 2387 |
+
version = "0.4.0"
|
| 2388 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2389 |
+
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
| 2390 |
|
| 2391 |
[[package]]
|
| 2392 |
+
name = "windows-link"
|
| 2393 |
+
version = "0.2.1"
|
| 2394 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2395 |
+
checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
|
| 2396 |
|
| 2397 |
[[package]]
|
| 2398 |
+
name = "windows-sys"
|
| 2399 |
+
version = "0.45.0"
|
| 2400 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2401 |
+
checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
|
| 2402 |
dependencies = [
|
| 2403 |
+
"windows-targets 0.42.2",
|
|
|
|
|
|
|
| 2404 |
]
|
| 2405 |
|
| 2406 |
[[package]]
|
| 2407 |
+
name = "windows-sys"
|
| 2408 |
+
version = "0.48.0"
|
| 2409 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2410 |
+
checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
|
| 2411 |
dependencies = [
|
| 2412 |
+
"windows-targets 0.48.5",
|
|
|
|
|
|
|
|
|
|
| 2413 |
]
|
| 2414 |
|
| 2415 |
[[package]]
|
| 2416 |
+
name = "windows-sys"
|
| 2417 |
+
version = "0.59.0"
|
| 2418 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2419 |
+
checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
|
| 2420 |
dependencies = [
|
| 2421 |
+
"windows-targets 0.52.6",
|
|
|
|
|
|
|
| 2422 |
]
|
| 2423 |
|
| 2424 |
[[package]]
|
| 2425 |
+
name = "windows-sys"
|
| 2426 |
+
version = "0.61.2"
|
| 2427 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2428 |
+
checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
|
| 2429 |
dependencies = [
|
| 2430 |
+
"windows-link",
|
| 2431 |
]
|
| 2432 |
|
| 2433 |
[[package]]
|
| 2434 |
+
name = "windows-targets"
|
| 2435 |
+
version = "0.42.2"
|
| 2436 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2437 |
+
checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
|
| 2438 |
+
dependencies = [
|
| 2439 |
+
"windows_aarch64_gnullvm 0.42.2",
|
| 2440 |
+
"windows_aarch64_msvc 0.42.2",
|
| 2441 |
+
"windows_i686_gnu 0.42.2",
|
| 2442 |
+
"windows_i686_msvc 0.42.2",
|
| 2443 |
+
"windows_x86_64_gnu 0.42.2",
|
| 2444 |
+
"windows_x86_64_gnullvm 0.42.2",
|
| 2445 |
+
"windows_x86_64_msvc 0.42.2",
|
| 2446 |
+
]
|
| 2447 |
|
| 2448 |
[[package]]
|
| 2449 |
+
name = "windows-targets"
|
| 2450 |
+
version = "0.48.5"
|
| 2451 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2452 |
+
checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
|
| 2453 |
dependencies = [
|
| 2454 |
+
"windows_aarch64_gnullvm 0.48.5",
|
| 2455 |
+
"windows_aarch64_msvc 0.48.5",
|
| 2456 |
+
"windows_i686_gnu 0.48.5",
|
| 2457 |
+
"windows_i686_msvc 0.48.5",
|
| 2458 |
+
"windows_x86_64_gnu 0.48.5",
|
| 2459 |
+
"windows_x86_64_gnullvm 0.48.5",
|
| 2460 |
+
"windows_x86_64_msvc 0.48.5",
|
| 2461 |
]
|
| 2462 |
|
| 2463 |
[[package]]
|
|
|
|
| 2466 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2467 |
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
|
| 2468 |
dependencies = [
|
| 2469 |
+
"windows_aarch64_gnullvm 0.52.6",
|
| 2470 |
+
"windows_aarch64_msvc 0.52.6",
|
| 2471 |
+
"windows_i686_gnu 0.52.6",
|
| 2472 |
"windows_i686_gnullvm",
|
| 2473 |
+
"windows_i686_msvc 0.52.6",
|
| 2474 |
+
"windows_x86_64_gnu 0.52.6",
|
| 2475 |
+
"windows_x86_64_gnullvm 0.52.6",
|
| 2476 |
+
"windows_x86_64_msvc 0.52.6",
|
| 2477 |
]
|
| 2478 |
|
| 2479 |
+
[[package]]
|
| 2480 |
+
name = "windows_aarch64_gnullvm"
|
| 2481 |
+
version = "0.42.2"
|
| 2482 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2483 |
+
checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
|
| 2484 |
+
|
| 2485 |
+
[[package]]
|
| 2486 |
+
name = "windows_aarch64_gnullvm"
|
| 2487 |
+
version = "0.48.5"
|
| 2488 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2489 |
+
checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
|
| 2490 |
+
|
| 2491 |
[[package]]
|
| 2492 |
name = "windows_aarch64_gnullvm"
|
| 2493 |
version = "0.52.6"
|
| 2494 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2495 |
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
|
| 2496 |
|
| 2497 |
+
[[package]]
|
| 2498 |
+
name = "windows_aarch64_msvc"
|
| 2499 |
+
version = "0.42.2"
|
| 2500 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2501 |
+
checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
|
| 2502 |
+
|
| 2503 |
+
[[package]]
|
| 2504 |
+
name = "windows_aarch64_msvc"
|
| 2505 |
+
version = "0.48.5"
|
| 2506 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2507 |
+
checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
|
| 2508 |
+
|
| 2509 |
[[package]]
|
| 2510 |
name = "windows_aarch64_msvc"
|
| 2511 |
version = "0.52.6"
|
| 2512 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2513 |
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
|
| 2514 |
|
| 2515 |
+
[[package]]
|
| 2516 |
+
name = "windows_i686_gnu"
|
| 2517 |
+
version = "0.42.2"
|
| 2518 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2519 |
+
checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
|
| 2520 |
+
|
| 2521 |
+
[[package]]
|
| 2522 |
+
name = "windows_i686_gnu"
|
| 2523 |
+
version = "0.48.5"
|
| 2524 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2525 |
+
checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
|
| 2526 |
+
|
| 2527 |
[[package]]
|
| 2528 |
name = "windows_i686_gnu"
|
| 2529 |
version = "0.52.6"
|
|
|
|
| 2536 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2537 |
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
|
| 2538 |
|
| 2539 |
+
[[package]]
|
| 2540 |
+
name = "windows_i686_msvc"
|
| 2541 |
+
version = "0.42.2"
|
| 2542 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2543 |
+
checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
|
| 2544 |
+
|
| 2545 |
+
[[package]]
|
| 2546 |
+
name = "windows_i686_msvc"
|
| 2547 |
+
version = "0.48.5"
|
| 2548 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2549 |
+
checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
|
| 2550 |
+
|
| 2551 |
[[package]]
|
| 2552 |
name = "windows_i686_msvc"
|
| 2553 |
version = "0.52.6"
|
| 2554 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2555 |
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
|
| 2556 |
|
| 2557 |
+
[[package]]
|
| 2558 |
+
name = "windows_x86_64_gnu"
|
| 2559 |
+
version = "0.42.2"
|
| 2560 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2561 |
+
checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
|
| 2562 |
+
|
| 2563 |
+
[[package]]
|
| 2564 |
+
name = "windows_x86_64_gnu"
|
| 2565 |
+
version = "0.48.5"
|
| 2566 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2567 |
+
checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
|
| 2568 |
+
|
| 2569 |
[[package]]
|
| 2570 |
name = "windows_x86_64_gnu"
|
| 2571 |
version = "0.52.6"
|
| 2572 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2573 |
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
|
| 2574 |
|
| 2575 |
+
[[package]]
|
| 2576 |
+
name = "windows_x86_64_gnullvm"
|
| 2577 |
+
version = "0.42.2"
|
| 2578 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2579 |
+
checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
|
| 2580 |
+
|
| 2581 |
+
[[package]]
|
| 2582 |
+
name = "windows_x86_64_gnullvm"
|
| 2583 |
+
version = "0.48.5"
|
| 2584 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2585 |
+
checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
|
| 2586 |
+
|
| 2587 |
[[package]]
|
| 2588 |
name = "windows_x86_64_gnullvm"
|
| 2589 |
version = "0.52.6"
|
| 2590 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2591 |
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
|
| 2592 |
|
| 2593 |
+
[[package]]
|
| 2594 |
+
name = "windows_x86_64_msvc"
|
| 2595 |
+
version = "0.42.2"
|
| 2596 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2597 |
+
checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
|
| 2598 |
+
|
| 2599 |
+
[[package]]
|
| 2600 |
+
name = "windows_x86_64_msvc"
|
| 2601 |
+
version = "0.48.5"
|
| 2602 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2603 |
+
checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
|
| 2604 |
+
|
| 2605 |
[[package]]
|
| 2606 |
name = "windows_x86_64_msvc"
|
| 2607 |
version = "0.52.6"
|
| 2608 |
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2609 |
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
|
| 2610 |
+
|
| 2611 |
+
[[package]]
|
| 2612 |
+
name = "winit"
|
| 2613 |
+
version = "0.29.15"
|
| 2614 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2615 |
+
checksum = "0d59ad965a635657faf09c8f062badd885748428933dad8e8bdd64064d92e5ca"
|
| 2616 |
+
dependencies = [
|
| 2617 |
+
"ahash",
|
| 2618 |
+
"android-activity",
|
| 2619 |
+
"atomic-waker",
|
| 2620 |
+
"bitflags 2.11.0",
|
| 2621 |
+
"bytemuck",
|
| 2622 |
+
"calloop 0.12.4",
|
| 2623 |
+
"cfg_aliases",
|
| 2624 |
+
"core-foundation 0.9.4",
|
| 2625 |
+
"core-graphics",
|
| 2626 |
+
"cursor-icon",
|
| 2627 |
+
"icrate",
|
| 2628 |
+
"js-sys",
|
| 2629 |
+
"libc",
|
| 2630 |
+
"log",
|
| 2631 |
+
"memmap2",
|
| 2632 |
+
"ndk",
|
| 2633 |
+
"ndk-sys",
|
| 2634 |
+
"objc2 0.4.1",
|
| 2635 |
+
"once_cell",
|
| 2636 |
+
"orbclient",
|
| 2637 |
+
"percent-encoding",
|
| 2638 |
+
"raw-window-handle 0.5.2",
|
| 2639 |
+
"raw-window-handle 0.6.2",
|
| 2640 |
+
"redox_syscall 0.3.5",
|
| 2641 |
+
"rustix 0.38.44",
|
| 2642 |
+
"sctk-adwaita",
|
| 2643 |
+
"smithay-client-toolkit 0.18.1",
|
| 2644 |
+
"smol_str",
|
| 2645 |
+
"unicode-segmentation",
|
| 2646 |
+
"wasm-bindgen",
|
| 2647 |
+
"wasm-bindgen-futures",
|
| 2648 |
+
"wayland-backend",
|
| 2649 |
+
"wayland-client",
|
| 2650 |
+
"wayland-protocols 0.31.2",
|
| 2651 |
+
"wayland-protocols-plasma",
|
| 2652 |
+
"web-sys",
|
| 2653 |
+
"web-time",
|
| 2654 |
+
"windows-sys 0.48.0",
|
| 2655 |
+
"x11-dl",
|
| 2656 |
+
"x11rb",
|
| 2657 |
+
"xkbcommon-dl",
|
| 2658 |
+
]
|
| 2659 |
+
|
| 2660 |
+
[[package]]
|
| 2661 |
+
name = "winnow"
|
| 2662 |
+
version = "0.7.15"
|
| 2663 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2664 |
+
checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945"
|
| 2665 |
+
dependencies = [
|
| 2666 |
+
"memchr",
|
| 2667 |
+
]
|
| 2668 |
+
|
| 2669 |
+
[[package]]
|
| 2670 |
+
name = "wit-bindgen"
|
| 2671 |
+
version = "0.51.0"
|
| 2672 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2673 |
+
checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5"
|
| 2674 |
+
|
| 2675 |
+
[[package]]
|
| 2676 |
+
name = "writeable"
|
| 2677 |
+
version = "0.6.2"
|
| 2678 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2679 |
+
checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9"
|
| 2680 |
+
|
| 2681 |
+
[[package]]
|
| 2682 |
+
name = "x11-dl"
|
| 2683 |
+
version = "2.21.0"
|
| 2684 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2685 |
+
checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f"
|
| 2686 |
+
dependencies = [
|
| 2687 |
+
"libc",
|
| 2688 |
+
"once_cell",
|
| 2689 |
+
"pkg-config",
|
| 2690 |
+
]
|
| 2691 |
+
|
| 2692 |
+
[[package]]
|
| 2693 |
+
name = "x11rb"
|
| 2694 |
+
version = "0.13.2"
|
| 2695 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2696 |
+
checksum = "9993aa5be5a26815fe2c3eacfc1fde061fc1a1f094bf1ad2a18bf9c495dd7414"
|
| 2697 |
+
dependencies = [
|
| 2698 |
+
"as-raw-xcb-connection",
|
| 2699 |
+
"gethostname",
|
| 2700 |
+
"libc",
|
| 2701 |
+
"libloading",
|
| 2702 |
+
"once_cell",
|
| 2703 |
+
"rustix 1.1.4",
|
| 2704 |
+
"x11rb-protocol",
|
| 2705 |
+
]
|
| 2706 |
+
|
| 2707 |
+
[[package]]
|
| 2708 |
+
name = "x11rb-protocol"
|
| 2709 |
+
version = "0.13.2"
|
| 2710 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2711 |
+
checksum = "ea6fc2961e4ef194dcbfe56bb845534d0dc8098940c7e5c012a258bfec6701bd"
|
| 2712 |
+
|
| 2713 |
+
[[package]]
|
| 2714 |
+
name = "xcursor"
|
| 2715 |
+
version = "0.3.10"
|
| 2716 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2717 |
+
checksum = "bec9e4a500ca8864c5b47b8b482a73d62e4237670e5b5f1d6b9e3cae50f28f2b"
|
| 2718 |
+
|
| 2719 |
+
[[package]]
|
| 2720 |
+
name = "xkbcommon-dl"
|
| 2721 |
+
version = "0.4.2"
|
| 2722 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2723 |
+
checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5"
|
| 2724 |
+
dependencies = [
|
| 2725 |
+
"bitflags 2.11.0",
|
| 2726 |
+
"dlib",
|
| 2727 |
+
"log",
|
| 2728 |
+
"once_cell",
|
| 2729 |
+
"xkeysym",
|
| 2730 |
+
]
|
| 2731 |
+
|
| 2732 |
+
[[package]]
|
| 2733 |
+
name = "xkeysym"
|
| 2734 |
+
version = "0.2.1"
|
| 2735 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2736 |
+
checksum = "b9cc00251562a284751c9973bace760d86c0276c471b4be569fe6b068ee97a56"
|
| 2737 |
+
|
| 2738 |
+
[[package]]
|
| 2739 |
+
name = "xml-rs"
|
| 2740 |
+
version = "0.8.28"
|
| 2741 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2742 |
+
checksum = "3ae8337f8a065cfc972643663ea4279e04e7256de865aa66fe25cec5fb912d3f"
|
| 2743 |
+
|
| 2744 |
+
[[package]]
|
| 2745 |
+
name = "yoke"
|
| 2746 |
+
version = "0.8.1"
|
| 2747 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2748 |
+
checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954"
|
| 2749 |
+
dependencies = [
|
| 2750 |
+
"stable_deref_trait",
|
| 2751 |
+
"yoke-derive",
|
| 2752 |
+
"zerofrom",
|
| 2753 |
+
]
|
| 2754 |
+
|
| 2755 |
+
[[package]]
|
| 2756 |
+
name = "yoke-derive"
|
| 2757 |
+
version = "0.8.1"
|
| 2758 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2759 |
+
checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d"
|
| 2760 |
+
dependencies = [
|
| 2761 |
+
"proc-macro2",
|
| 2762 |
+
"quote",
|
| 2763 |
+
"syn",
|
| 2764 |
+
"synstructure",
|
| 2765 |
+
]
|
| 2766 |
+
|
| 2767 |
+
[[package]]
|
| 2768 |
+
name = "zerocopy"
|
| 2769 |
+
version = "0.8.42"
|
| 2770 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2771 |
+
checksum = "f2578b716f8a7a858b7f02d5bd870c14bf4ddbbcf3a4c05414ba6503640505e3"
|
| 2772 |
+
dependencies = [
|
| 2773 |
+
"zerocopy-derive",
|
| 2774 |
+
]
|
| 2775 |
+
|
| 2776 |
+
[[package]]
|
| 2777 |
+
name = "zerocopy-derive"
|
| 2778 |
+
version = "0.8.42"
|
| 2779 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2780 |
+
checksum = "7e6cc098ea4d3bd6246687de65af3f920c430e236bee1e3bf2e441463f08a02f"
|
| 2781 |
+
dependencies = [
|
| 2782 |
+
"proc-macro2",
|
| 2783 |
+
"quote",
|
| 2784 |
+
"syn",
|
| 2785 |
+
]
|
| 2786 |
+
|
| 2787 |
+
[[package]]
|
| 2788 |
+
name = "zerofrom"
|
| 2789 |
+
version = "0.1.6"
|
| 2790 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2791 |
+
checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5"
|
| 2792 |
+
dependencies = [
|
| 2793 |
+
"zerofrom-derive",
|
| 2794 |
+
]
|
| 2795 |
+
|
| 2796 |
+
[[package]]
|
| 2797 |
+
name = "zerofrom-derive"
|
| 2798 |
+
version = "0.1.6"
|
| 2799 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2800 |
+
checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502"
|
| 2801 |
+
dependencies = [
|
| 2802 |
+
"proc-macro2",
|
| 2803 |
+
"quote",
|
| 2804 |
+
"syn",
|
| 2805 |
+
"synstructure",
|
| 2806 |
+
]
|
| 2807 |
+
|
| 2808 |
+
[[package]]
|
| 2809 |
+
name = "zerotrie"
|
| 2810 |
+
version = "0.2.3"
|
| 2811 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2812 |
+
checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851"
|
| 2813 |
+
dependencies = [
|
| 2814 |
+
"displaydoc",
|
| 2815 |
+
"yoke",
|
| 2816 |
+
"zerofrom",
|
| 2817 |
+
]
|
| 2818 |
+
|
| 2819 |
+
[[package]]
|
| 2820 |
+
name = "zerovec"
|
| 2821 |
+
version = "0.11.5"
|
| 2822 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2823 |
+
checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002"
|
| 2824 |
+
dependencies = [
|
| 2825 |
+
"yoke",
|
| 2826 |
+
"zerofrom",
|
| 2827 |
+
"zerovec-derive",
|
| 2828 |
+
]
|
| 2829 |
+
|
| 2830 |
+
[[package]]
|
| 2831 |
+
name = "zerovec-derive"
|
| 2832 |
+
version = "0.11.2"
|
| 2833 |
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
| 2834 |
+
checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3"
|
| 2835 |
+
dependencies = [
|
| 2836 |
+
"proc-macro2",
|
| 2837 |
+
"quote",
|
| 2838 |
+
"syn",
|
| 2839 |
+
]
|
crates/openwa-core/src/address.rs
CHANGED
|
@@ -63,6 +63,12 @@ pub mod va {
|
|
| 63 |
pub const CTASK_SPRITE_ANIM_VTABLE: u32 = 0x0066_9D00;
|
| 64 |
/// CTaskCPU vtable - AI/CPU bot controller (1 per game, constructor 0x548620)
|
| 65 |
pub const CTASK_CPU_VTABLE: u32 = 0x0066_9D54;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 66 |
/// Sprite vtable (0x70-byte objects, 8 entries)
|
| 67 |
pub const SPRITE_VTABLE: u32 = 0x0066_418C;
|
| 68 |
|
|
|
|
| 63 |
pub const CTASK_SPRITE_ANIM_VTABLE: u32 = 0x0066_9D00;
|
| 64 |
/// CTaskCPU vtable - AI/CPU bot controller (1 per game, constructor 0x548620)
|
| 65 |
pub const CTASK_CPU_VTABLE: u32 = 0x0066_9D54;
|
| 66 |
+
/// CTaskMine vtable - mine entity (constructor 0x506660)
|
| 67 |
+
pub const CTASK_MINE_VTABLE: u32 = 0x0066_43E8;
|
| 68 |
+
/// CTaskOilDrum vtable - oil drum entity (constructor 0x504AF0)
|
| 69 |
+
pub const CTASK_OILDRUM_VTABLE: u32 = 0x0066_4338;
|
| 70 |
+
/// CTaskCloud vtable - cloud/airstrike entity (constructor 0x5482E0)
|
| 71 |
+
pub const CTASK_CLOUD_VTABLE: u32 = 0x0066_9D38;
|
| 72 |
/// Sprite vtable (0x70-byte objects, 8 entries)
|
| 73 |
pub const SPRITE_VTABLE: u32 = 0x0066_418C;
|
| 74 |
|
crates/openwa-debugui/Cargo.toml
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[package]
|
| 2 |
+
name = "openwa-debugui"
|
| 3 |
+
version = "0.1.0"
|
| 4 |
+
edition = "2021"
|
| 5 |
+
description = "Immediate-mode debug UI for OpenWA (egui floating window)"
|
| 6 |
+
|
| 7 |
+
[dependencies]
|
| 8 |
+
openwa-core = { path = "../openwa-core" }
|
| 9 |
+
eframe = { version = "0.28", default-features = false, features = ["glow", "default_fonts"] }
|
| 10 |
+
winit = "0.29"
|
crates/openwa-debugui/src/app.rs
ADDED
|
@@ -0,0 +1,403 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
use eframe::egui;
|
| 2 |
+
use openwa_core::address::va;
|
| 3 |
+
use openwa_core::ddgame::DDGame;
|
| 4 |
+
use openwa_core::ddgame_wrapper::DDGameWrapper;
|
| 5 |
+
use openwa_core::rebase::rb;
|
| 6 |
+
use openwa_core::task::{CTask, CTaskWorm, SharedDataTable};
|
| 7 |
+
|
| 8 |
+
use crate::log;
|
| 9 |
+
|
| 10 |
+
// ---------------------------------------------------------------------------
|
| 11 |
+
// Known task types for census display
|
| 12 |
+
// ---------------------------------------------------------------------------
|
| 13 |
+
|
| 14 |
+
const KNOWN_VTABLES: &[(u32, &str)] = &[
|
| 15 |
+
(va::CTASK_WORM_VTABLE, "CTaskWorm"),
|
| 16 |
+
(va::CTASK_LAND_VTABLE, "CTaskLand"),
|
| 17 |
+
(va::CTASK_TURN_GAME_VTABLE, "CTaskTurnGame"),
|
| 18 |
+
(va::CTASK_TEAM_VTABLE, "CTaskTeam"),
|
| 19 |
+
(va::CTASK_FILTER_VTABLE, "CTaskFilter"),
|
| 20 |
+
(va::CTASK_DIRT_VTABLE, "CTaskDirt"),
|
| 21 |
+
(va::CTASK_SPRITE_ANIM_VTABLE, "CTaskSpriteAnim"),
|
| 22 |
+
(va::CTASK_CPU_VTABLE, "CTaskCPU"),
|
| 23 |
+
(va::CTASK_MINE_VTABLE, "CTaskMine"),
|
| 24 |
+
(va::CTASK_OILDRUM_VTABLE, "CTaskOilDrum"),
|
| 25 |
+
(va::CTASK_CLOUD_VTABLE, "CTaskCloud"),
|
| 26 |
+
];
|
| 27 |
+
|
| 28 |
+
fn vtable_name(runtime_vtable: u32) -> Option<&'static str> {
|
| 29 |
+
KNOWN_VTABLES.iter()
|
| 30 |
+
.find(|&&(ghidra_va, _)| rb(ghidra_va) == runtime_vtable)
|
| 31 |
+
.map(|&(_, name)| name)
|
| 32 |
+
}
|
| 33 |
+
|
| 34 |
+
/// Returns a display name for the entity at `addr`.
|
| 35 |
+
/// Tries the known-vtable map first; falls back to CTask.class_type.
|
| 36 |
+
unsafe fn entity_type_name(addr: u32) -> String {
|
| 37 |
+
if addr == 0 { return "(null)".to_owned(); }
|
| 38 |
+
let vtable = *(addr as *const u32);
|
| 39 |
+
if let Some(name) = vtable_name(vtable) {
|
| 40 |
+
return name.to_owned();
|
| 41 |
+
}
|
| 42 |
+
let task = addr as *const CTask;
|
| 43 |
+
format!("{:?}", (*task).class_type)
|
| 44 |
+
}
|
| 45 |
+
|
| 46 |
+
/// One-line label for a task: "TypeName @ 0xADDR"
|
| 47 |
+
unsafe fn entity_label(addr: u32) -> String {
|
| 48 |
+
if addr == 0 { return "(null)".to_owned(); }
|
| 49 |
+
format!("{} @ {:#010X}", entity_type_name(addr), addr)
|
| 50 |
+
}
|
| 51 |
+
|
| 52 |
+
// ---------------------------------------------------------------------------
|
| 53 |
+
// Game-memory helpers (all unsafe — call from the UI update function only)
|
| 54 |
+
// ---------------------------------------------------------------------------
|
| 55 |
+
|
| 56 |
+
/// Returns a pointer to DDGame, or None if not in-game.
|
| 57 |
+
unsafe fn get_ddgame() -> Option<*const DDGame> {
|
| 58 |
+
let session_ptr = *(rb(va::G_GAME_SESSION) as *const u32);
|
| 59 |
+
if session_ptr == 0 { return None; }
|
| 60 |
+
let wrapper_addr = *((session_ptr + 0xA0) as *const u32);
|
| 61 |
+
if wrapper_addr == 0 { return None; }
|
| 62 |
+
let ddgame_ptr = (*(wrapper_addr as *const DDGameWrapper)).ddgame;
|
| 63 |
+
if ddgame_ptr.is_null() { return None; }
|
| 64 |
+
Some(ddgame_ptr)
|
| 65 |
+
}
|
| 66 |
+
|
| 67 |
+
/// Returns a SharedDataTable via CTaskLand, or None if map not loaded.
|
| 68 |
+
unsafe fn get_shared_table(ddgame: *const DDGame) -> Option<SharedDataTable> {
|
| 69 |
+
let task_land = (*ddgame).task_land;
|
| 70 |
+
if task_land.is_null() { return None; }
|
| 71 |
+
let shared_data = (*(task_land as *const CTask)).shared_data;
|
| 72 |
+
if shared_data.is_null() { return None; }
|
| 73 |
+
Some(SharedDataTable::from_ptr(shared_data))
|
| 74 |
+
}
|
| 75 |
+
|
| 76 |
+
/// Read child task pointers from a CTask's children array.
|
| 77 |
+
///
|
| 78 |
+
/// The array is **sparse**: slots are nulled when a child is removed rather than
|
| 79 |
+
/// compacted. `children_size` is the slot high-watermark (loop upper bound used
|
| 80 |
+
/// by CTask::HandleMessage), not the live-child count. We return all slots up to
|
| 81 |
+
/// that bound so the caller can filter nulls and display the live set.
|
| 82 |
+
unsafe fn read_children(task: *const CTask) -> Vec<u32> {
|
| 83 |
+
let slots = (*task).children_size as usize;
|
| 84 |
+
let data = (*task).children_data as *const u32;
|
| 85 |
+
if data.is_null() || slots == 0 { return Vec::new(); }
|
| 86 |
+
// Hard safety cap: 4096 slots × 4 bytes = 16 KB max read
|
| 87 |
+
let slots = slots.min(4096);
|
| 88 |
+
(0..slots).map(|i| *data.add(i)).collect()
|
| 89 |
+
}
|
| 90 |
+
|
| 91 |
+
// ---------------------------------------------------------------------------
|
| 92 |
+
// DebugApp
|
| 93 |
+
// ---------------------------------------------------------------------------
|
| 94 |
+
|
| 95 |
+
pub struct DebugApp {
|
| 96 |
+
/// Currently selected entity address for the struct inspector.
|
| 97 |
+
selected_entity: Option<u32>,
|
| 98 |
+
/// Navigation history — addresses we came from (supports ← Back).
|
| 99 |
+
nav_history: Vec<u32>,
|
| 100 |
+
/// Whether the log panel should auto-scroll to the bottom.
|
| 101 |
+
log_auto_scroll: bool,
|
| 102 |
+
}
|
| 103 |
+
|
| 104 |
+
impl Default for DebugApp {
|
| 105 |
+
fn default() -> Self {
|
| 106 |
+
Self { selected_entity: None, nav_history: Vec::new(), log_auto_scroll: true }
|
| 107 |
+
}
|
| 108 |
+
}
|
| 109 |
+
|
| 110 |
+
impl DebugApp {
|
| 111 |
+
/// Navigate to `addr`, pushing the current selection onto the history stack.
|
| 112 |
+
fn navigate_to(&mut self, addr: u32) {
|
| 113 |
+
if let Some(cur) = self.selected_entity {
|
| 114 |
+
if cur != addr {
|
| 115 |
+
self.nav_history.push(cur);
|
| 116 |
+
}
|
| 117 |
+
}
|
| 118 |
+
self.selected_entity = Some(addr);
|
| 119 |
+
}
|
| 120 |
+
|
| 121 |
+
/// Navigate back to the previous address, if any.
|
| 122 |
+
fn navigate_back(&mut self) {
|
| 123 |
+
if let Some(prev) = self.nav_history.pop() {
|
| 124 |
+
self.selected_entity = Some(prev);
|
| 125 |
+
}
|
| 126 |
+
}
|
| 127 |
+
}
|
| 128 |
+
|
| 129 |
+
impl eframe::App for DebugApp {
|
| 130 |
+
fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) {
|
| 131 |
+
// Repaint at ~30 fps so the display stays live.
|
| 132 |
+
ctx.request_repaint_after(std::time::Duration::from_millis(33));
|
| 133 |
+
|
| 134 |
+
egui::SidePanel::right("inspector_panel")
|
| 135 |
+
.min_width(260.0)
|
| 136 |
+
.default_width(300.0)
|
| 137 |
+
.show(ctx, |ui| {
|
| 138 |
+
// Collect navigation actions from the inspector into local vars
|
| 139 |
+
// to avoid borrowing `self` twice inside the closure.
|
| 140 |
+
let mut navigate_to: Option<u32> = None;
|
| 141 |
+
let mut go_back = false;
|
| 142 |
+
self.show_inspector(ui, &mut navigate_to, &mut go_back);
|
| 143 |
+
if go_back { self.navigate_back(); }
|
| 144 |
+
if let Some(addr) = navigate_to { self.navigate_to(addr); }
|
| 145 |
+
});
|
| 146 |
+
|
| 147 |
+
egui::TopBottomPanel::bottom("log_panel")
|
| 148 |
+
.min_height(140.0)
|
| 149 |
+
.default_height(160.0)
|
| 150 |
+
.show(ctx, |ui| {
|
| 151 |
+
self.show_log(ui);
|
| 152 |
+
});
|
| 153 |
+
|
| 154 |
+
egui::CentralPanel::default().show(ctx, |ui| {
|
| 155 |
+
let mut navigate_to: Option<u32> = None;
|
| 156 |
+
self.show_census(ui, &mut navigate_to);
|
| 157 |
+
if let Some(addr) = navigate_to { self.navigate_to(addr); }
|
| 158 |
+
});
|
| 159 |
+
}
|
| 160 |
+
}
|
| 161 |
+
|
| 162 |
+
// ---------------------------------------------------------------------------
|
| 163 |
+
// Panel: Entity Census
|
| 164 |
+
// ---------------------------------------------------------------------------
|
| 165 |
+
|
| 166 |
+
impl DebugApp {
|
| 167 |
+
fn show_census(&mut self, ui: &mut egui::Ui, navigate_to: &mut Option<u32>) {
|
| 168 |
+
ui.heading("Entity Census");
|
| 169 |
+
|
| 170 |
+
let ddgame = unsafe { get_ddgame() };
|
| 171 |
+
let Some(ddgame) = ddgame else {
|
| 172 |
+
ui.colored_label(egui::Color32::YELLOW, "No game session — waiting...");
|
| 173 |
+
return;
|
| 174 |
+
};
|
| 175 |
+
|
| 176 |
+
let table = unsafe { get_shared_table(ddgame) };
|
| 177 |
+
let Some(table) = table else {
|
| 178 |
+
ui.colored_label(egui::Color32::YELLOW, "Map not loaded yet.");
|
| 179 |
+
return;
|
| 180 |
+
};
|
| 181 |
+
|
| 182 |
+
let mut rows: Vec<(u32, u32)> = Vec::new();
|
| 183 |
+
unsafe {
|
| 184 |
+
for node in table.iter() {
|
| 185 |
+
let entity = (*node).entity as u32;
|
| 186 |
+
if entity == 0 { continue; }
|
| 187 |
+
let vtable = *(entity as *const u32);
|
| 188 |
+
rows.push((vtable, entity));
|
| 189 |
+
}
|
| 190 |
+
}
|
| 191 |
+
|
| 192 |
+
ui.label(format!("{} entities total", rows.len()));
|
| 193 |
+
ui.separator();
|
| 194 |
+
|
| 195 |
+
egui::ScrollArea::vertical().show(ui, |ui| {
|
| 196 |
+
egui::Grid::new("census_grid")
|
| 197 |
+
.striped(true)
|
| 198 |
+
.min_col_width(60.0)
|
| 199 |
+
.show(ui, |ui| {
|
| 200 |
+
ui.strong("Type");
|
| 201 |
+
ui.strong("Address");
|
| 202 |
+
ui.strong("Vtable");
|
| 203 |
+
ui.end_row();
|
| 204 |
+
|
| 205 |
+
for &(vtable, entity) in &rows {
|
| 206 |
+
let name = unsafe { entity_type_name(entity) };
|
| 207 |
+
let is_selected = self.selected_entity == Some(entity);
|
| 208 |
+
if ui.selectable_label(is_selected, name).clicked() {
|
| 209 |
+
*navigate_to = Some(entity);
|
| 210 |
+
}
|
| 211 |
+
ui.label(format!("{:#010X}", entity));
|
| 212 |
+
ui.label(format!("{:#010X}", vtable));
|
| 213 |
+
ui.end_row();
|
| 214 |
+
}
|
| 215 |
+
});
|
| 216 |
+
});
|
| 217 |
+
}
|
| 218 |
+
}
|
| 219 |
+
|
| 220 |
+
// ---------------------------------------------------------------------------
|
| 221 |
+
// Panel: Struct Inspector
|
| 222 |
+
// ---------------------------------------------------------------------------
|
| 223 |
+
|
| 224 |
+
impl DebugApp {
|
| 225 |
+
fn show_inspector(
|
| 226 |
+
&mut self,
|
| 227 |
+
ui: &mut egui::Ui,
|
| 228 |
+
navigate_to: &mut Option<u32>,
|
| 229 |
+
go_back: &mut bool,
|
| 230 |
+
) {
|
| 231 |
+
// Navigation bar
|
| 232 |
+
ui.horizontal(|ui| {
|
| 233 |
+
ui.heading("Inspector");
|
| 234 |
+
ui.add_space(8.0);
|
| 235 |
+
if ui.add_enabled(!self.nav_history.is_empty(), egui::Button::new("← Back")).clicked() {
|
| 236 |
+
*go_back = true;
|
| 237 |
+
}
|
| 238 |
+
if !self.nav_history.is_empty() {
|
| 239 |
+
ui.weak(format!("({} deep)", self.nav_history.len()));
|
| 240 |
+
}
|
| 241 |
+
});
|
| 242 |
+
|
| 243 |
+
let Some(addr) = self.selected_entity else {
|
| 244 |
+
ui.colored_label(egui::Color32::GRAY, "Select an entity in the census.");
|
| 245 |
+
return;
|
| 246 |
+
};
|
| 247 |
+
|
| 248 |
+
if addr == 0 {
|
| 249 |
+
ui.label("(null entity)");
|
| 250 |
+
return;
|
| 251 |
+
}
|
| 252 |
+
|
| 253 |
+
unsafe {
|
| 254 |
+
let vtable = *(addr as *const u32);
|
| 255 |
+
let name = entity_type_name(addr);
|
| 256 |
+
|
| 257 |
+
ui.label(format!("Entity: {:#010X}", addr));
|
| 258 |
+
ui.label(format!("Type: {}", name));
|
| 259 |
+
ui.label(format!("Vtable: {:#010X}", vtable));
|
| 260 |
+
ui.separator();
|
| 261 |
+
|
| 262 |
+
let task = addr as *const CTask;
|
| 263 |
+
|
| 264 |
+
// --- CTask base ---
|
| 265 |
+
egui::CollapsingHeader::new("CTask base")
|
| 266 |
+
.default_open(true)
|
| 267 |
+
.show(ui, |ui| {
|
| 268 |
+
egui::Grid::new("ctask_grid").striped(true).show(ui, |ui| {
|
| 269 |
+
// Parent — clickable link
|
| 270 |
+
let parent = (*task).parent as u32;
|
| 271 |
+
ui.label("parent");
|
| 272 |
+
if parent != 0 {
|
| 273 |
+
if ui.link(entity_label(parent)).clicked() {
|
| 274 |
+
*navigate_to = Some(parent);
|
| 275 |
+
}
|
| 276 |
+
} else {
|
| 277 |
+
ui.label("(none)");
|
| 278 |
+
}
|
| 279 |
+
ui.end_row();
|
| 280 |
+
|
| 281 |
+
// children_size = slot high-watermark (sparse array); live = non-null slots
|
| 282 |
+
ui.label("child slots"); ui.label(format!("{} used / {} cap", (*task).children_size, (*task).children_max_size)); ui.end_row();
|
| 283 |
+
ui.label("class_type"); ui.label(format!("{:?}", (*task).class_type)); ui.end_row();
|
| 284 |
+
ui.label("shared_data"); ui.label(format!("{:#010X}", (*task).shared_data as u32)); ui.end_row();
|
| 285 |
+
ui.label("owns_data"); ui.label(format!("{}", (*task).owns_shared_data)); ui.end_row();
|
| 286 |
+
ui.label("ddgame"); ui.label(format!("{:#010X}", (*task).ddgame as u32)); ui.end_row();
|
| 287 |
+
});
|
| 288 |
+
});
|
| 289 |
+
|
| 290 |
+
// --- Children tree ---
|
| 291 |
+
// read_children returns all slots (sparse); filter nulls for live count.
|
| 292 |
+
let children = read_children(task);
|
| 293 |
+
let live_count = children.iter().filter(|&&a| a != 0).count();
|
| 294 |
+
let slot_count = (*task).children_size as usize;
|
| 295 |
+
if live_count > 0 || slot_count > 0 {
|
| 296 |
+
egui::CollapsingHeader::new(format!("Children ({} live / {} slots)", live_count, slot_count))
|
| 297 |
+
.default_open(true)
|
| 298 |
+
.show(ui, |ui| {
|
| 299 |
+
for child_addr in &children {
|
| 300 |
+
let child_addr = *child_addr;
|
| 301 |
+
if child_addr == 0 { continue; }
|
| 302 |
+
let child_name = entity_type_name(child_addr);
|
| 303 |
+
|
| 304 |
+
// Expand inline if the child itself has children
|
| 305 |
+
let child_task = child_addr as *const CTask;
|
| 306 |
+
let grandchild_count = (*child_task).children_size;
|
| 307 |
+
|
| 308 |
+
if grandchild_count > 0 {
|
| 309 |
+
// Show as a sub-collapsing header with its own children
|
| 310 |
+
let header_label = format!(
|
| 311 |
+
"{} @ {:#010X} ({} children)",
|
| 312 |
+
child_name, child_addr, grandchild_count
|
| 313 |
+
);
|
| 314 |
+
egui::CollapsingHeader::new(&header_label)
|
| 315 |
+
.id_source(child_addr)
|
| 316 |
+
.default_open(false)
|
| 317 |
+
.show(ui, |ui| {
|
| 318 |
+
// Link to inspect this child in detail
|
| 319 |
+
if ui.link("→ Inspect").clicked() {
|
| 320 |
+
*navigate_to = Some(child_addr);
|
| 321 |
+
}
|
| 322 |
+
// Show grandchildren
|
| 323 |
+
let grandchildren = read_children(child_task);
|
| 324 |
+
for gc_addr in &grandchildren {
|
| 325 |
+
let gc_addr = *gc_addr;
|
| 326 |
+
if gc_addr == 0 { continue; }
|
| 327 |
+
if ui.link(entity_label(gc_addr)).clicked() {
|
| 328 |
+
*navigate_to = Some(gc_addr);
|
| 329 |
+
}
|
| 330 |
+
}
|
| 331 |
+
});
|
| 332 |
+
} else {
|
| 333 |
+
// Leaf child — single clickable link
|
| 334 |
+
let label = format!(" {} @ {:#010X}", child_name, child_addr);
|
| 335 |
+
if ui.link(label).clicked() {
|
| 336 |
+
*navigate_to = Some(child_addr);
|
| 337 |
+
}
|
| 338 |
+
}
|
| 339 |
+
}
|
| 340 |
+
});
|
| 341 |
+
}
|
| 342 |
+
|
| 343 |
+
// --- CTaskWorm-specific fields ---
|
| 344 |
+
if name == "CTaskWorm" || (*task).class_type == openwa_core::class_type::ClassType::Worm {
|
| 345 |
+
let worm = addr as *const CTaskWorm;
|
| 346 |
+
egui::CollapsingHeader::new("CTaskWorm")
|
| 347 |
+
.default_open(true)
|
| 348 |
+
.show(ui, |ui| {
|
| 349 |
+
egui::Grid::new("worm_grid").striped(true).show(ui, |ui| {
|
| 350 |
+
ui.label("state"); ui.label(format!("{:#04X}", (*worm).state())); ui.end_row();
|
| 351 |
+
ui.label("team_index"); ui.label(format!("{}", (*worm).team_index)); ui.end_row();
|
| 352 |
+
ui.label("worm_index"); ui.label(format!("{}", (*worm).worm_index)); ui.end_row();
|
| 353 |
+
ui.label("pos_x"); ui.label(format!("{:.2}", (*worm).base.pos_x.to_f32())); ui.end_row();
|
| 354 |
+
ui.label("pos_y"); ui.label(format!("{:.2}", (*worm).base.pos_y.to_f32())); ui.end_row();
|
| 355 |
+
ui.label("speed_x"); ui.label(format!("{:.4}", (*worm).base.speed_x.to_f32())); ui.end_row();
|
| 356 |
+
ui.label("speed_y"); ui.label(format!("{:.4}", (*worm).base.speed_y.to_f32())); ui.end_row();
|
| 357 |
+
let name_bytes = &(*worm).worm_name;
|
| 358 |
+
let nul = name_bytes.iter().position(|&b| b == 0).unwrap_or(name_bytes.len());
|
| 359 |
+
let worm_name = std::str::from_utf8(&name_bytes[..nul]).unwrap_or("?");
|
| 360 |
+
ui.label("name"); ui.label(worm_name); ui.end_row();
|
| 361 |
+
});
|
| 362 |
+
});
|
| 363 |
+
}
|
| 364 |
+
|
| 365 |
+
}
|
| 366 |
+
}
|
| 367 |
+
}
|
| 368 |
+
|
| 369 |
+
// ---------------------------------------------------------------------------
|
| 370 |
+
// Panel: Log Stream
|
| 371 |
+
// ---------------------------------------------------------------------------
|
| 372 |
+
|
| 373 |
+
impl DebugApp {
|
| 374 |
+
fn show_log(&mut self, ui: &mut egui::Ui) {
|
| 375 |
+
ui.horizontal(|ui| {
|
| 376 |
+
ui.heading("Log");
|
| 377 |
+
ui.checkbox(&mut self.log_auto_scroll, "auto-scroll");
|
| 378 |
+
if ui.button("Clear").clicked() {
|
| 379 |
+
log::clear();
|
| 380 |
+
}
|
| 381 |
+
});
|
| 382 |
+
ui.separator();
|
| 383 |
+
|
| 384 |
+
let entries = log::snapshot(200);
|
| 385 |
+
|
| 386 |
+
egui::ScrollArea::vertical()
|
| 387 |
+
.auto_shrink([false; 2])
|
| 388 |
+
.stick_to_bottom(self.log_auto_scroll)
|
| 389 |
+
.show(ui, |ui| {
|
| 390 |
+
for (ts, text) in &entries {
|
| 391 |
+
let elapsed = ts.elapsed().as_secs_f32();
|
| 392 |
+
let color = if elapsed < 1.0 {
|
| 393 |
+
egui::Color32::WHITE
|
| 394 |
+
} else if elapsed < 5.0 {
|
| 395 |
+
egui::Color32::LIGHT_GRAY
|
| 396 |
+
} else {
|
| 397 |
+
egui::Color32::GRAY
|
| 398 |
+
};
|
| 399 |
+
ui.colored_label(color, text);
|
| 400 |
+
}
|
| 401 |
+
});
|
| 402 |
+
}
|
| 403 |
+
}
|
crates/openwa-debugui/src/lib.rs
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
//! OpenWA immediate-mode debug UI.
|
| 2 |
+
//!
|
| 3 |
+
//! Spawns a floating egui window (backed by OpenGL via eframe) in a background
|
| 4 |
+
//! thread. The window is in the same process as WA.exe, so it can read game
|
| 5 |
+
//! memory directly through the `openwa-core` typed structs.
|
| 6 |
+
//!
|
| 7 |
+
//! # Usage
|
| 8 |
+
//!
|
| 9 |
+
//! ```rust
|
| 10 |
+
//! // In openwa-wormkit lib.rs, after rebase::init() and hook installation:
|
| 11 |
+
//! if std::env::var("OPENWA_DEBUG_UI").is_ok() {
|
| 12 |
+
//! openwa_debugui::spawn();
|
| 13 |
+
//! }
|
| 14 |
+
//! ```
|
| 15 |
+
//!
|
| 16 |
+
//! # Log integration
|
| 17 |
+
//!
|
| 18 |
+
//! Any crate that depends on `openwa-debugui` can push events to the log panel:
|
| 19 |
+
//!
|
| 20 |
+
//! ```rust
|
| 21 |
+
//! openwa_debugui::log::push("some hook fired");
|
| 22 |
+
//! ```
|
| 23 |
+
|
| 24 |
+
mod app;
|
| 25 |
+
pub mod log;
|
| 26 |
+
|
| 27 |
+
use app::DebugApp;
|
| 28 |
+
|
| 29 |
+
/// Spawn the debug UI window in a background thread.
|
| 30 |
+
///
|
| 31 |
+
/// Returns immediately. The window runs until closed by the user.
|
| 32 |
+
/// This must be called *after* `openwa_core::rebase::init()`.
|
| 33 |
+
pub fn spawn() {
|
| 34 |
+
std::thread::spawn(|| {
|
| 35 |
+
if let Err(e) = run_window() {
|
| 36 |
+
// Not much we can do here; the window just won't appear.
|
| 37 |
+
eprintln!("[openwa-debugui] fatal: {e:?}");
|
| 38 |
+
}
|
| 39 |
+
});
|
| 40 |
+
}
|
| 41 |
+
|
| 42 |
+
fn run_window() -> Result<(), eframe::Error> {
|
| 43 |
+
let mut options = eframe::NativeOptions {
|
| 44 |
+
viewport: eframe::egui::ViewportBuilder::default()
|
| 45 |
+
.with_title("OpenWA Debug")
|
| 46 |
+
.with_inner_size([760.0, 560.0]),
|
| 47 |
+
..Default::default()
|
| 48 |
+
};
|
| 49 |
+
|
| 50 |
+
// On Windows we run in a background thread (DLL injection), so we need
|
| 51 |
+
// to allow the event loop to be created on a non-main thread.
|
| 52 |
+
#[cfg(target_os = "windows")]
|
| 53 |
+
{
|
| 54 |
+
options.event_loop_builder = Some(Box::new(|builder| {
|
| 55 |
+
use winit::platform::windows::EventLoopBuilderExtWindows;
|
| 56 |
+
builder.with_any_thread(true);
|
| 57 |
+
}));
|
| 58 |
+
}
|
| 59 |
+
|
| 60 |
+
eframe::run_native(
|
| 61 |
+
"OpenWA Debug",
|
| 62 |
+
options,
|
| 63 |
+
Box::new(|_cc| Ok(Box::new(DebugApp::default()))),
|
| 64 |
+
)
|
| 65 |
+
}
|
crates/openwa-debugui/src/log.rs
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
use std::collections::VecDeque;
|
| 2 |
+
use std::sync::{Mutex, OnceLock};
|
| 3 |
+
use std::time::Instant;
|
| 4 |
+
|
| 5 |
+
pub struct LogEntry {
|
| 6 |
+
pub ts: Instant,
|
| 7 |
+
pub text: String,
|
| 8 |
+
}
|
| 9 |
+
|
| 10 |
+
static LOG_BUF: OnceLock<Mutex<VecDeque<LogEntry>>> = OnceLock::new();
|
| 11 |
+
|
| 12 |
+
fn buf() -> &'static Mutex<VecDeque<LogEntry>> {
|
| 13 |
+
LOG_BUF.get_or_init(|| Mutex::new(VecDeque::with_capacity(500)))
|
| 14 |
+
}
|
| 15 |
+
|
| 16 |
+
/// Push a message to the debug log ring buffer (max 500 entries).
|
| 17 |
+
pub fn push(msg: impl Into<String>) {
|
| 18 |
+
if let Ok(mut b) = buf().lock() {
|
| 19 |
+
if b.len() >= 500 {
|
| 20 |
+
b.pop_front();
|
| 21 |
+
}
|
| 22 |
+
b.push_back(LogEntry { ts: Instant::now(), text: msg.into() });
|
| 23 |
+
}
|
| 24 |
+
}
|
| 25 |
+
|
| 26 |
+
/// Snapshot up to `max` of the most recent entries (cloned).
|
| 27 |
+
pub fn snapshot(max: usize) -> Vec<(Instant, String)> {
|
| 28 |
+
let Ok(b) = buf().lock() else { return Vec::new() };
|
| 29 |
+
let start = b.len().saturating_sub(max);
|
| 30 |
+
b.range(start..).map(|e| (e.ts, e.text.clone())).collect()
|
| 31 |
+
}
|
| 32 |
+
|
| 33 |
+
/// Clear all log entries.
|
| 34 |
+
pub fn clear() {
|
| 35 |
+
if let Ok(mut b) = buf().lock() {
|
| 36 |
+
b.clear();
|
| 37 |
+
}
|
| 38 |
+
}
|
crates/openwa-wormkit/Cargo.toml
CHANGED
|
@@ -7,8 +7,12 @@ description = "WormKit DLL that replaces WA.exe functions with Rust reimplementa
|
|
| 7 |
[lib]
|
| 8 |
crate-type = ["cdylib"]
|
| 9 |
|
|
|
|
|
|
|
|
|
|
| 10 |
[dependencies]
|
| 11 |
openwa-core = { path = "../openwa-core" }
|
|
|
|
| 12 |
heapless = "0.9"
|
| 13 |
minhook = "0.9"
|
| 14 |
|
|
|
|
| 7 |
[lib]
|
| 8 |
crate-type = ["cdylib"]
|
| 9 |
|
| 10 |
+
[features]
|
| 11 |
+
debug-ui = ["dep:openwa-debugui"]
|
| 12 |
+
|
| 13 |
[dependencies]
|
| 14 |
openwa-core = { path = "../openwa-core" }
|
| 15 |
+
openwa-debugui = { path = "../openwa-debugui", optional = true }
|
| 16 |
heapless = "0.9"
|
| 17 |
minhook = "0.9"
|
| 18 |
|
crates/openwa-wormkit/src/debug_ui.rs
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
//! Wrapper that spawns the openwa-debugui window when OPENWA_DEBUG_UI=1.
|
| 2 |
+
//!
|
| 3 |
+
//! Only compiled when the "debug-ui" feature is enabled.
|
| 4 |
+
|
| 5 |
+
#[cfg(feature = "debug-ui")]
|
| 6 |
+
pub fn maybe_spawn() {
|
| 7 |
+
if std::env::var("OPENWA_DEBUG_UI").is_ok() {
|
| 8 |
+
openwa_debugui::spawn();
|
| 9 |
+
}
|
| 10 |
+
}
|
| 11 |
+
|
| 12 |
+
#[cfg(not(feature = "debug-ui"))]
|
| 13 |
+
pub fn maybe_spawn() {}
|
crates/openwa-wormkit/src/lib.rs
CHANGED
|
@@ -3,6 +3,7 @@
|
|
| 3 |
use std::ffi::c_void;
|
| 4 |
|
| 5 |
pub mod hook;
|
|
|
|
| 6 |
mod replacements;
|
| 7 |
mod validation;
|
| 8 |
|
|
@@ -74,5 +75,8 @@ fn run() -> Result<(), String> {
|
|
| 74 |
// Debug hotkeys (F9/F10) are always available, even without OPENWA_VALIDATE
|
| 75 |
validation::start_hotkeys();
|
| 76 |
|
|
|
|
|
|
|
|
|
|
| 77 |
Ok(())
|
| 78 |
}
|
|
|
|
| 3 |
use std::ffi::c_void;
|
| 4 |
|
| 5 |
pub mod hook;
|
| 6 |
+
mod debug_ui;
|
| 7 |
mod replacements;
|
| 8 |
mod validation;
|
| 9 |
|
|
|
|
| 75 |
// Debug hotkeys (F9/F10) are always available, even without OPENWA_VALIDATE
|
| 76 |
validation::start_hotkeys();
|
| 77 |
|
| 78 |
+
// Debug UI window (requires "debug-ui" feature + OPENWA_DEBUG_UI=1)
|
| 79 |
+
debug_ui::maybe_spawn();
|
| 80 |
+
|
| 81 |
Ok(())
|
| 82 |
}
|
deploy-debug.ps1
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
$dest = "I:\games\SteamLibrary\steamapps\common\Worms Armageddon"
|
| 2 |
+
|
| 3 |
+
cargo build --release -p openwa-wormkit --features debug-ui
|
| 4 |
+
if ($LASTEXITCODE -ne 0) { exit 1 }
|
| 5 |
+
|
| 6 |
+
$src = "target\i686-pc-windows-msvc\release"
|
| 7 |
+
Copy-Item "$src\openwa_wormkit.dll" "$dest\wkOpenWA.dll"
|
| 8 |
+
|
| 9 |
+
Write-Host "Deployed debug-ui build to $dest"
|
| 10 |
+
Write-Host "Launch WA.exe with OPENWA_DEBUG_UI=1 to show the debug window."
|
| 11 |
+
Write-Host ""
|
| 12 |
+
Write-Host "Example:"
|
| 13 |
+
Write-Host ' $env:OPENWA_DEBUG_UI=1; & "I:\games\SteamLibrary\steamapps\common\Worms Armageddon\WA.exe"'
|
start-debug.ps1
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
$wa = "I:\games\SteamLibrary\steamapps\common\Worms Armageddon\WA.exe"
|
| 2 |
+
|
| 3 |
+
$env:OPENWA_DEBUG_UI = "1"
|
| 4 |
+
& $wa
|