this repo has no description
2
fork

Configure Feed

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

feat: tiny skia

dusk 5ba89399

+3005
+1
.gitignore
··· 1 + /target
+2617
Cargo.lock
··· 1 + # This file is automatically @generated by Cargo. 2 + # It is not intended for manual editing. 3 + version = 4 4 + 5 + [[package]] 6 + name = "ab_glyph" 7 + version = "0.2.31" 8 + source = "registry+https://github.com/rust-lang/crates.io-index" 9 + checksum = "e074464580a518d16a7126262fffaaa47af89d4099d4cb403f8ed938ba12ee7d" 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 = "addr2line" 23 + version = "0.24.2" 24 + source = "registry+https://github.com/rust-lang/crates.io-index" 25 + checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" 26 + dependencies = [ 27 + "gimli", 28 + ] 29 + 30 + [[package]] 31 + name = "adler2" 32 + version = "2.0.1" 33 + source = "registry+https://github.com/rust-lang/crates.io-index" 34 + checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" 35 + 36 + [[package]] 37 + name = "ahash" 38 + version = "0.8.12" 39 + source = "registry+https://github.com/rust-lang/crates.io-index" 40 + checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" 41 + dependencies = [ 42 + "cfg-if", 43 + "getrandom", 44 + "once_cell", 45 + "version_check", 46 + "zerocopy", 47 + ] 48 + 49 + [[package]] 50 + name = "allocator-api2" 51 + version = "0.2.21" 52 + source = "registry+https://github.com/rust-lang/crates.io-index" 53 + checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" 54 + 55 + [[package]] 56 + name = "android-activity" 57 + version = "0.6.0" 58 + source = "registry+https://github.com/rust-lang/crates.io-index" 59 + checksum = "ef6978589202a00cd7e118380c448a08b6ed394c3a8df3a430d0898e3a42d046" 60 + dependencies = [ 61 + "android-properties", 62 + "bitflags 2.9.3", 63 + "cc", 64 + "cesu8", 65 + "jni", 66 + "jni-sys", 67 + "libc", 68 + "log", 69 + "ndk", 70 + "ndk-context", 71 + "ndk-sys 0.6.0+11769913", 72 + "num_enum", 73 + "thiserror", 74 + ] 75 + 76 + [[package]] 77 + name = "android-properties" 78 + version = "0.2.2" 79 + source = "registry+https://github.com/rust-lang/crates.io-index" 80 + checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04" 81 + 82 + [[package]] 83 + name = "android_system_properties" 84 + version = "0.1.5" 85 + source = "registry+https://github.com/rust-lang/crates.io-index" 86 + checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 87 + dependencies = [ 88 + "libc", 89 + ] 90 + 91 + [[package]] 92 + name = "annoyance" 93 + version = "0.1.0" 94 + dependencies = [ 95 + "ahash", 96 + "pixels", 97 + "quanta", 98 + "tiny-skia", 99 + "tokio", 100 + "winapi", 101 + "winit", 102 + ] 103 + 104 + [[package]] 105 + name = "arrayref" 106 + version = "0.3.9" 107 + source = "registry+https://github.com/rust-lang/crates.io-index" 108 + checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" 109 + 110 + [[package]] 111 + name = "arrayvec" 112 + version = "0.7.6" 113 + source = "registry+https://github.com/rust-lang/crates.io-index" 114 + checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" 115 + 116 + [[package]] 117 + name = "as-raw-xcb-connection" 118 + version = "1.0.1" 119 + source = "registry+https://github.com/rust-lang/crates.io-index" 120 + checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b" 121 + 122 + [[package]] 123 + name = "ash" 124 + version = "0.37.3+1.3.251" 125 + source = "registry+https://github.com/rust-lang/crates.io-index" 126 + checksum = "39e9c3835d686b0a6084ab4234fcd1b07dbf6e4767dce60874b12356a25ecd4a" 127 + dependencies = [ 128 + "libloading 0.7.4", 129 + ] 130 + 131 + [[package]] 132 + name = "atomic-waker" 133 + version = "1.1.2" 134 + source = "registry+https://github.com/rust-lang/crates.io-index" 135 + checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" 136 + 137 + [[package]] 138 + name = "autocfg" 139 + version = "1.5.0" 140 + source = "registry+https://github.com/rust-lang/crates.io-index" 141 + checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" 142 + 143 + [[package]] 144 + name = "backtrace" 145 + version = "0.3.75" 146 + source = "registry+https://github.com/rust-lang/crates.io-index" 147 + checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" 148 + dependencies = [ 149 + "addr2line", 150 + "cfg-if", 151 + "libc", 152 + "miniz_oxide", 153 + "object", 154 + "rustc-demangle", 155 + "windows-targets 0.52.6", 156 + ] 157 + 158 + [[package]] 159 + name = "bit-set" 160 + version = "0.5.3" 161 + source = "registry+https://github.com/rust-lang/crates.io-index" 162 + checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" 163 + dependencies = [ 164 + "bit-vec", 165 + ] 166 + 167 + [[package]] 168 + name = "bit-vec" 169 + version = "0.6.3" 170 + source = "registry+https://github.com/rust-lang/crates.io-index" 171 + checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" 172 + 173 + [[package]] 174 + name = "bitflags" 175 + version = "1.3.2" 176 + source = "registry+https://github.com/rust-lang/crates.io-index" 177 + checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 178 + 179 + [[package]] 180 + name = "bitflags" 181 + version = "2.9.3" 182 + source = "registry+https://github.com/rust-lang/crates.io-index" 183 + checksum = "34efbcccd345379ca2868b2b2c9d3782e9cc58ba87bc7d79d5b53d9c9ae6f25d" 184 + 185 + [[package]] 186 + name = "block" 187 + version = "0.1.6" 188 + source = "registry+https://github.com/rust-lang/crates.io-index" 189 + checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" 190 + 191 + [[package]] 192 + name = "block2" 193 + version = "0.5.1" 194 + source = "registry+https://github.com/rust-lang/crates.io-index" 195 + checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" 196 + dependencies = [ 197 + "objc2", 198 + ] 199 + 200 + [[package]] 201 + name = "bumpalo" 202 + version = "3.19.0" 203 + source = "registry+https://github.com/rust-lang/crates.io-index" 204 + checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" 205 + 206 + [[package]] 207 + name = "bytemuck" 208 + version = "1.23.2" 209 + source = "registry+https://github.com/rust-lang/crates.io-index" 210 + checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" 211 + 212 + [[package]] 213 + name = "bytes" 214 + version = "1.10.1" 215 + source = "registry+https://github.com/rust-lang/crates.io-index" 216 + checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" 217 + 218 + [[package]] 219 + name = "calloop" 220 + version = "0.13.0" 221 + source = "registry+https://github.com/rust-lang/crates.io-index" 222 + checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec" 223 + dependencies = [ 224 + "bitflags 2.9.3", 225 + "log", 226 + "polling", 227 + "rustix 0.38.44", 228 + "slab", 229 + "thiserror", 230 + ] 231 + 232 + [[package]] 233 + name = "calloop-wayland-source" 234 + version = "0.3.0" 235 + source = "registry+https://github.com/rust-lang/crates.io-index" 236 + checksum = "95a66a987056935f7efce4ab5668920b5d0dac4a7c99991a67395f13702ddd20" 237 + dependencies = [ 238 + "calloop", 239 + "rustix 0.38.44", 240 + "wayland-backend", 241 + "wayland-client", 242 + ] 243 + 244 + [[package]] 245 + name = "cc" 246 + version = "1.2.34" 247 + source = "registry+https://github.com/rust-lang/crates.io-index" 248 + checksum = "42bc4aea80032b7bf409b0bc7ccad88853858911b7713a8062fdc0623867bedc" 249 + dependencies = [ 250 + "jobserver", 251 + "libc", 252 + "shlex", 253 + ] 254 + 255 + [[package]] 256 + name = "cesu8" 257 + version = "1.1.0" 258 + source = "registry+https://github.com/rust-lang/crates.io-index" 259 + checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" 260 + 261 + [[package]] 262 + name = "cfg-if" 263 + version = "1.0.3" 264 + source = "registry+https://github.com/rust-lang/crates.io-index" 265 + checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" 266 + 267 + [[package]] 268 + name = "cfg_aliases" 269 + version = "0.1.1" 270 + source = "registry+https://github.com/rust-lang/crates.io-index" 271 + checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" 272 + 273 + [[package]] 274 + name = "cfg_aliases" 275 + version = "0.2.1" 276 + source = "registry+https://github.com/rust-lang/crates.io-index" 277 + checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" 278 + 279 + [[package]] 280 + name = "codespan-reporting" 281 + version = "0.11.1" 282 + source = "registry+https://github.com/rust-lang/crates.io-index" 283 + checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" 284 + dependencies = [ 285 + "termcolor", 286 + "unicode-width", 287 + ] 288 + 289 + [[package]] 290 + name = "com" 291 + version = "0.6.0" 292 + source = "registry+https://github.com/rust-lang/crates.io-index" 293 + checksum = "7e17887fd17353b65b1b2ef1c526c83e26cd72e74f598a8dc1bee13a48f3d9f6" 294 + dependencies = [ 295 + "com_macros", 296 + ] 297 + 298 + [[package]] 299 + name = "com_macros" 300 + version = "0.6.0" 301 + source = "registry+https://github.com/rust-lang/crates.io-index" 302 + checksum = "d375883580a668c7481ea6631fc1a8863e33cc335bf56bfad8d7e6d4b04b13a5" 303 + dependencies = [ 304 + "com_macros_support", 305 + "proc-macro2", 306 + "syn 1.0.109", 307 + ] 308 + 309 + [[package]] 310 + name = "com_macros_support" 311 + version = "0.6.0" 312 + source = "registry+https://github.com/rust-lang/crates.io-index" 313 + checksum = "ad899a1087a9296d5644792d7cb72b8e34c1bec8e7d4fbc002230169a6e8710c" 314 + dependencies = [ 315 + "proc-macro2", 316 + "quote", 317 + "syn 1.0.109", 318 + ] 319 + 320 + [[package]] 321 + name = "combine" 322 + version = "4.6.7" 323 + source = "registry+https://github.com/rust-lang/crates.io-index" 324 + checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" 325 + dependencies = [ 326 + "bytes", 327 + "memchr", 328 + ] 329 + 330 + [[package]] 331 + name = "concurrent-queue" 332 + version = "2.5.0" 333 + source = "registry+https://github.com/rust-lang/crates.io-index" 334 + checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" 335 + dependencies = [ 336 + "crossbeam-utils", 337 + ] 338 + 339 + [[package]] 340 + name = "core-foundation" 341 + version = "0.9.4" 342 + source = "registry+https://github.com/rust-lang/crates.io-index" 343 + checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" 344 + dependencies = [ 345 + "core-foundation-sys", 346 + "libc", 347 + ] 348 + 349 + [[package]] 350 + name = "core-foundation-sys" 351 + version = "0.8.7" 352 + source = "registry+https://github.com/rust-lang/crates.io-index" 353 + checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 354 + 355 + [[package]] 356 + name = "core-graphics" 357 + version = "0.23.2" 358 + source = "registry+https://github.com/rust-lang/crates.io-index" 359 + checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" 360 + dependencies = [ 361 + "bitflags 1.3.2", 362 + "core-foundation", 363 + "core-graphics-types", 364 + "foreign-types", 365 + "libc", 366 + ] 367 + 368 + [[package]] 369 + name = "core-graphics-types" 370 + version = "0.1.3" 371 + source = "registry+https://github.com/rust-lang/crates.io-index" 372 + checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" 373 + dependencies = [ 374 + "bitflags 1.3.2", 375 + "core-foundation", 376 + "libc", 377 + ] 378 + 379 + [[package]] 380 + name = "crossbeam-utils" 381 + version = "0.8.21" 382 + source = "registry+https://github.com/rust-lang/crates.io-index" 383 + checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" 384 + 385 + [[package]] 386 + name = "cursor-icon" 387 + version = "1.2.0" 388 + source = "registry+https://github.com/rust-lang/crates.io-index" 389 + checksum = "f27ae1dd37df86211c42e150270f82743308803d90a6f6e6651cd730d5e1732f" 390 + 391 + [[package]] 392 + name = "d3d12" 393 + version = "0.19.0" 394 + source = "registry+https://github.com/rust-lang/crates.io-index" 395 + checksum = "3e3d747f100290a1ca24b752186f61f6637e1deffe3bf6320de6fcb29510a307" 396 + dependencies = [ 397 + "bitflags 2.9.3", 398 + "libloading 0.8.8", 399 + "winapi", 400 + ] 401 + 402 + [[package]] 403 + name = "dispatch" 404 + version = "0.2.0" 405 + source = "registry+https://github.com/rust-lang/crates.io-index" 406 + checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" 407 + 408 + [[package]] 409 + name = "dlib" 410 + version = "0.5.2" 411 + source = "registry+https://github.com/rust-lang/crates.io-index" 412 + checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" 413 + dependencies = [ 414 + "libloading 0.8.8", 415 + ] 416 + 417 + [[package]] 418 + name = "downcast-rs" 419 + version = "1.2.1" 420 + source = "registry+https://github.com/rust-lang/crates.io-index" 421 + checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" 422 + 423 + [[package]] 424 + name = "dpi" 425 + version = "0.1.2" 426 + source = "registry+https://github.com/rust-lang/crates.io-index" 427 + checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" 428 + 429 + [[package]] 430 + name = "equivalent" 431 + version = "1.0.2" 432 + source = "registry+https://github.com/rust-lang/crates.io-index" 433 + checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" 434 + 435 + [[package]] 436 + name = "errno" 437 + version = "0.3.13" 438 + source = "registry+https://github.com/rust-lang/crates.io-index" 439 + checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" 440 + dependencies = [ 441 + "libc", 442 + "windows-sys 0.60.2", 443 + ] 444 + 445 + [[package]] 446 + name = "foreign-types" 447 + version = "0.5.0" 448 + source = "registry+https://github.com/rust-lang/crates.io-index" 449 + checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" 450 + dependencies = [ 451 + "foreign-types-macros", 452 + "foreign-types-shared", 453 + ] 454 + 455 + [[package]] 456 + name = "foreign-types-macros" 457 + version = "0.2.3" 458 + source = "registry+https://github.com/rust-lang/crates.io-index" 459 + checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" 460 + dependencies = [ 461 + "proc-macro2", 462 + "quote", 463 + "syn 2.0.106", 464 + ] 465 + 466 + [[package]] 467 + name = "foreign-types-shared" 468 + version = "0.3.1" 469 + source = "registry+https://github.com/rust-lang/crates.io-index" 470 + checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" 471 + 472 + [[package]] 473 + name = "gethostname" 474 + version = "0.4.3" 475 + source = "registry+https://github.com/rust-lang/crates.io-index" 476 + checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818" 477 + dependencies = [ 478 + "libc", 479 + "windows-targets 0.48.5", 480 + ] 481 + 482 + [[package]] 483 + name = "getrandom" 484 + version = "0.3.3" 485 + source = "registry+https://github.com/rust-lang/crates.io-index" 486 + checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" 487 + dependencies = [ 488 + "cfg-if", 489 + "libc", 490 + "r-efi", 491 + "wasi 0.14.2+wasi-0.2.4", 492 + ] 493 + 494 + [[package]] 495 + name = "gimli" 496 + version = "0.31.1" 497 + source = "registry+https://github.com/rust-lang/crates.io-index" 498 + checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" 499 + 500 + [[package]] 501 + name = "gl_generator" 502 + version = "0.14.0" 503 + source = "registry+https://github.com/rust-lang/crates.io-index" 504 + checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d" 505 + dependencies = [ 506 + "khronos_api", 507 + "log", 508 + "xml-rs", 509 + ] 510 + 511 + [[package]] 512 + name = "glow" 513 + version = "0.13.1" 514 + source = "registry+https://github.com/rust-lang/crates.io-index" 515 + checksum = "bd348e04c43b32574f2de31c8bb397d96c9fcfa1371bd4ca6d8bdc464ab121b1" 516 + dependencies = [ 517 + "js-sys", 518 + "slotmap", 519 + "wasm-bindgen", 520 + "web-sys", 521 + ] 522 + 523 + [[package]] 524 + name = "glutin_wgl_sys" 525 + version = "0.5.0" 526 + source = "registry+https://github.com/rust-lang/crates.io-index" 527 + checksum = "6c8098adac955faa2d31079b65dc48841251f69efd3ac25477903fc424362ead" 528 + dependencies = [ 529 + "gl_generator", 530 + ] 531 + 532 + [[package]] 533 + name = "gpu-alloc" 534 + version = "0.6.0" 535 + source = "registry+https://github.com/rust-lang/crates.io-index" 536 + checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171" 537 + dependencies = [ 538 + "bitflags 2.9.3", 539 + "gpu-alloc-types", 540 + ] 541 + 542 + [[package]] 543 + name = "gpu-alloc-types" 544 + version = "0.3.0" 545 + source = "registry+https://github.com/rust-lang/crates.io-index" 546 + checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4" 547 + dependencies = [ 548 + "bitflags 2.9.3", 549 + ] 550 + 551 + [[package]] 552 + name = "gpu-allocator" 553 + version = "0.25.0" 554 + source = "registry+https://github.com/rust-lang/crates.io-index" 555 + checksum = "6f56f6318968d03c18e1bcf4857ff88c61157e9da8e47c5f29055d60e1228884" 556 + dependencies = [ 557 + "log", 558 + "presser", 559 + "thiserror", 560 + "winapi", 561 + "windows", 562 + ] 563 + 564 + [[package]] 565 + name = "gpu-descriptor" 566 + version = "0.2.4" 567 + source = "registry+https://github.com/rust-lang/crates.io-index" 568 + checksum = "cc11df1ace8e7e564511f53af41f3e42ddc95b56fd07b3f4445d2a6048bc682c" 569 + dependencies = [ 570 + "bitflags 2.9.3", 571 + "gpu-descriptor-types", 572 + "hashbrown 0.14.5", 573 + ] 574 + 575 + [[package]] 576 + name = "gpu-descriptor-types" 577 + version = "0.1.2" 578 + source = "registry+https://github.com/rust-lang/crates.io-index" 579 + checksum = "6bf0b36e6f090b7e1d8a4b49c0cb81c1f8376f72198c65dd3ad9ff3556b8b78c" 580 + dependencies = [ 581 + "bitflags 2.9.3", 582 + ] 583 + 584 + [[package]] 585 + name = "hashbrown" 586 + version = "0.14.5" 587 + source = "registry+https://github.com/rust-lang/crates.io-index" 588 + checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" 589 + dependencies = [ 590 + "ahash", 591 + "allocator-api2", 592 + ] 593 + 594 + [[package]] 595 + name = "hashbrown" 596 + version = "0.15.5" 597 + source = "registry+https://github.com/rust-lang/crates.io-index" 598 + checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" 599 + 600 + [[package]] 601 + name = "hassle-rs" 602 + version = "0.11.0" 603 + source = "registry+https://github.com/rust-lang/crates.io-index" 604 + checksum = "af2a7e73e1f34c48da31fb668a907f250794837e08faa144fd24f0b8b741e890" 605 + dependencies = [ 606 + "bitflags 2.9.3", 607 + "com", 608 + "libc", 609 + "libloading 0.8.8", 610 + "thiserror", 611 + "widestring", 612 + "winapi", 613 + ] 614 + 615 + [[package]] 616 + name = "hermit-abi" 617 + version = "0.5.2" 618 + source = "registry+https://github.com/rust-lang/crates.io-index" 619 + checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" 620 + 621 + [[package]] 622 + name = "hexf-parse" 623 + version = "0.2.1" 624 + source = "registry+https://github.com/rust-lang/crates.io-index" 625 + checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" 626 + 627 + [[package]] 628 + name = "indexmap" 629 + version = "2.11.0" 630 + source = "registry+https://github.com/rust-lang/crates.io-index" 631 + checksum = "f2481980430f9f78649238835720ddccc57e52df14ffce1c6f37391d61b563e9" 632 + dependencies = [ 633 + "equivalent", 634 + "hashbrown 0.15.5", 635 + ] 636 + 637 + [[package]] 638 + name = "io-uring" 639 + version = "0.7.10" 640 + source = "registry+https://github.com/rust-lang/crates.io-index" 641 + checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" 642 + dependencies = [ 643 + "bitflags 2.9.3", 644 + "cfg-if", 645 + "libc", 646 + ] 647 + 648 + [[package]] 649 + name = "jni" 650 + version = "0.21.1" 651 + source = "registry+https://github.com/rust-lang/crates.io-index" 652 + checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" 653 + dependencies = [ 654 + "cesu8", 655 + "cfg-if", 656 + "combine", 657 + "jni-sys", 658 + "log", 659 + "thiserror", 660 + "walkdir", 661 + "windows-sys 0.45.0", 662 + ] 663 + 664 + [[package]] 665 + name = "jni-sys" 666 + version = "0.3.0" 667 + source = "registry+https://github.com/rust-lang/crates.io-index" 668 + checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" 669 + 670 + [[package]] 671 + name = "jobserver" 672 + version = "0.1.34" 673 + source = "registry+https://github.com/rust-lang/crates.io-index" 674 + checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" 675 + dependencies = [ 676 + "getrandom", 677 + "libc", 678 + ] 679 + 680 + [[package]] 681 + name = "js-sys" 682 + version = "0.3.77" 683 + source = "registry+https://github.com/rust-lang/crates.io-index" 684 + checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" 685 + dependencies = [ 686 + "once_cell", 687 + "wasm-bindgen", 688 + ] 689 + 690 + [[package]] 691 + name = "khronos-egl" 692 + version = "6.0.0" 693 + source = "registry+https://github.com/rust-lang/crates.io-index" 694 + checksum = "6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76" 695 + dependencies = [ 696 + "libc", 697 + "libloading 0.8.8", 698 + "pkg-config", 699 + ] 700 + 701 + [[package]] 702 + name = "khronos_api" 703 + version = "3.1.0" 704 + source = "registry+https://github.com/rust-lang/crates.io-index" 705 + checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" 706 + 707 + [[package]] 708 + name = "libc" 709 + version = "0.2.175" 710 + source = "registry+https://github.com/rust-lang/crates.io-index" 711 + checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" 712 + 713 + [[package]] 714 + name = "libloading" 715 + version = "0.7.4" 716 + source = "registry+https://github.com/rust-lang/crates.io-index" 717 + checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" 718 + dependencies = [ 719 + "cfg-if", 720 + "winapi", 721 + ] 722 + 723 + [[package]] 724 + name = "libloading" 725 + version = "0.8.8" 726 + source = "registry+https://github.com/rust-lang/crates.io-index" 727 + checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" 728 + dependencies = [ 729 + "cfg-if", 730 + "windows-targets 0.53.3", 731 + ] 732 + 733 + [[package]] 734 + name = "libredox" 735 + version = "0.1.9" 736 + source = "registry+https://github.com/rust-lang/crates.io-index" 737 + checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" 738 + dependencies = [ 739 + "bitflags 2.9.3", 740 + "libc", 741 + "redox_syscall 0.5.17", 742 + ] 743 + 744 + [[package]] 745 + name = "linux-raw-sys" 746 + version = "0.4.15" 747 + source = "registry+https://github.com/rust-lang/crates.io-index" 748 + checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" 749 + 750 + [[package]] 751 + name = "linux-raw-sys" 752 + version = "0.9.4" 753 + source = "registry+https://github.com/rust-lang/crates.io-index" 754 + checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" 755 + 756 + [[package]] 757 + name = "lock_api" 758 + version = "0.4.13" 759 + source = "registry+https://github.com/rust-lang/crates.io-index" 760 + checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" 761 + dependencies = [ 762 + "autocfg", 763 + "scopeguard", 764 + ] 765 + 766 + [[package]] 767 + name = "log" 768 + version = "0.4.27" 769 + source = "registry+https://github.com/rust-lang/crates.io-index" 770 + checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" 771 + 772 + [[package]] 773 + name = "malloc_buf" 774 + version = "0.0.6" 775 + source = "registry+https://github.com/rust-lang/crates.io-index" 776 + checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" 777 + dependencies = [ 778 + "libc", 779 + ] 780 + 781 + [[package]] 782 + name = "memchr" 783 + version = "2.7.5" 784 + source = "registry+https://github.com/rust-lang/crates.io-index" 785 + checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" 786 + 787 + [[package]] 788 + name = "memmap2" 789 + version = "0.9.8" 790 + source = "registry+https://github.com/rust-lang/crates.io-index" 791 + checksum = "843a98750cd611cc2965a8213b53b43e715f13c37a9e096c6408e69990961db7" 792 + dependencies = [ 793 + "libc", 794 + ] 795 + 796 + [[package]] 797 + name = "metal" 798 + version = "0.27.0" 799 + source = "registry+https://github.com/rust-lang/crates.io-index" 800 + checksum = "c43f73953f8cbe511f021b58f18c3ce1c3d1ae13fe953293e13345bf83217f25" 801 + dependencies = [ 802 + "bitflags 2.9.3", 803 + "block", 804 + "core-graphics-types", 805 + "foreign-types", 806 + "log", 807 + "objc", 808 + "paste", 809 + ] 810 + 811 + [[package]] 812 + name = "miniz_oxide" 813 + version = "0.8.9" 814 + source = "registry+https://github.com/rust-lang/crates.io-index" 815 + checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" 816 + dependencies = [ 817 + "adler2", 818 + ] 819 + 820 + [[package]] 821 + name = "mio" 822 + version = "1.0.4" 823 + source = "registry+https://github.com/rust-lang/crates.io-index" 824 + checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" 825 + dependencies = [ 826 + "libc", 827 + "wasi 0.11.1+wasi-snapshot-preview1", 828 + "windows-sys 0.59.0", 829 + ] 830 + 831 + [[package]] 832 + name = "naga" 833 + version = "0.19.2" 834 + source = "registry+https://github.com/rust-lang/crates.io-index" 835 + checksum = "50e3524642f53d9af419ab5e8dd29d3ba155708267667c2f3f06c88c9e130843" 836 + dependencies = [ 837 + "bit-set", 838 + "bitflags 2.9.3", 839 + "codespan-reporting", 840 + "hexf-parse", 841 + "indexmap", 842 + "log", 843 + "num-traits", 844 + "rustc-hash", 845 + "spirv", 846 + "termcolor", 847 + "thiserror", 848 + "unicode-xid", 849 + ] 850 + 851 + [[package]] 852 + name = "ndk" 853 + version = "0.9.0" 854 + source = "registry+https://github.com/rust-lang/crates.io-index" 855 + checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" 856 + dependencies = [ 857 + "bitflags 2.9.3", 858 + "jni-sys", 859 + "log", 860 + "ndk-sys 0.6.0+11769913", 861 + "num_enum", 862 + "raw-window-handle", 863 + "thiserror", 864 + ] 865 + 866 + [[package]] 867 + name = "ndk-context" 868 + version = "0.1.1" 869 + source = "registry+https://github.com/rust-lang/crates.io-index" 870 + checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" 871 + 872 + [[package]] 873 + name = "ndk-sys" 874 + version = "0.5.0+25.2.9519653" 875 + source = "registry+https://github.com/rust-lang/crates.io-index" 876 + checksum = "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691" 877 + dependencies = [ 878 + "jni-sys", 879 + ] 880 + 881 + [[package]] 882 + name = "ndk-sys" 883 + version = "0.6.0+11769913" 884 + source = "registry+https://github.com/rust-lang/crates.io-index" 885 + checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" 886 + dependencies = [ 887 + "jni-sys", 888 + ] 889 + 890 + [[package]] 891 + name = "num-traits" 892 + version = "0.2.19" 893 + source = "registry+https://github.com/rust-lang/crates.io-index" 894 + checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 895 + dependencies = [ 896 + "autocfg", 897 + ] 898 + 899 + [[package]] 900 + name = "num_enum" 901 + version = "0.7.4" 902 + source = "registry+https://github.com/rust-lang/crates.io-index" 903 + checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a" 904 + dependencies = [ 905 + "num_enum_derive", 906 + "rustversion", 907 + ] 908 + 909 + [[package]] 910 + name = "num_enum_derive" 911 + version = "0.7.4" 912 + source = "registry+https://github.com/rust-lang/crates.io-index" 913 + checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" 914 + dependencies = [ 915 + "proc-macro-crate", 916 + "proc-macro2", 917 + "quote", 918 + "syn 2.0.106", 919 + ] 920 + 921 + [[package]] 922 + name = "objc" 923 + version = "0.2.7" 924 + source = "registry+https://github.com/rust-lang/crates.io-index" 925 + checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" 926 + dependencies = [ 927 + "malloc_buf", 928 + "objc_exception", 929 + ] 930 + 931 + [[package]] 932 + name = "objc-sys" 933 + version = "0.3.5" 934 + source = "registry+https://github.com/rust-lang/crates.io-index" 935 + checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310" 936 + 937 + [[package]] 938 + name = "objc2" 939 + version = "0.5.2" 940 + source = "registry+https://github.com/rust-lang/crates.io-index" 941 + checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804" 942 + dependencies = [ 943 + "objc-sys", 944 + "objc2-encode", 945 + ] 946 + 947 + [[package]] 948 + name = "objc2-app-kit" 949 + version = "0.2.2" 950 + source = "registry+https://github.com/rust-lang/crates.io-index" 951 + checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" 952 + dependencies = [ 953 + "bitflags 2.9.3", 954 + "block2", 955 + "libc", 956 + "objc2", 957 + "objc2-core-data", 958 + "objc2-core-image", 959 + "objc2-foundation", 960 + "objc2-quartz-core", 961 + ] 962 + 963 + [[package]] 964 + name = "objc2-cloud-kit" 965 + version = "0.2.2" 966 + source = "registry+https://github.com/rust-lang/crates.io-index" 967 + checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" 968 + dependencies = [ 969 + "bitflags 2.9.3", 970 + "block2", 971 + "objc2", 972 + "objc2-core-location", 973 + "objc2-foundation", 974 + ] 975 + 976 + [[package]] 977 + name = "objc2-contacts" 978 + version = "0.2.2" 979 + source = "registry+https://github.com/rust-lang/crates.io-index" 980 + checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889" 981 + dependencies = [ 982 + "block2", 983 + "objc2", 984 + "objc2-foundation", 985 + ] 986 + 987 + [[package]] 988 + name = "objc2-core-data" 989 + version = "0.2.2" 990 + source = "registry+https://github.com/rust-lang/crates.io-index" 991 + checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" 992 + dependencies = [ 993 + "bitflags 2.9.3", 994 + "block2", 995 + "objc2", 996 + "objc2-foundation", 997 + ] 998 + 999 + [[package]] 1000 + name = "objc2-core-image" 1001 + version = "0.2.2" 1002 + source = "registry+https://github.com/rust-lang/crates.io-index" 1003 + checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80" 1004 + dependencies = [ 1005 + "block2", 1006 + "objc2", 1007 + "objc2-foundation", 1008 + "objc2-metal", 1009 + ] 1010 + 1011 + [[package]] 1012 + name = "objc2-core-location" 1013 + version = "0.2.2" 1014 + source = "registry+https://github.com/rust-lang/crates.io-index" 1015 + checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781" 1016 + dependencies = [ 1017 + "block2", 1018 + "objc2", 1019 + "objc2-contacts", 1020 + "objc2-foundation", 1021 + ] 1022 + 1023 + [[package]] 1024 + name = "objc2-encode" 1025 + version = "4.1.0" 1026 + source = "registry+https://github.com/rust-lang/crates.io-index" 1027 + checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" 1028 + 1029 + [[package]] 1030 + name = "objc2-foundation" 1031 + version = "0.2.2" 1032 + source = "registry+https://github.com/rust-lang/crates.io-index" 1033 + checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" 1034 + dependencies = [ 1035 + "bitflags 2.9.3", 1036 + "block2", 1037 + "dispatch", 1038 + "libc", 1039 + "objc2", 1040 + ] 1041 + 1042 + [[package]] 1043 + name = "objc2-link-presentation" 1044 + version = "0.2.2" 1045 + source = "registry+https://github.com/rust-lang/crates.io-index" 1046 + checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398" 1047 + dependencies = [ 1048 + "block2", 1049 + "objc2", 1050 + "objc2-app-kit", 1051 + "objc2-foundation", 1052 + ] 1053 + 1054 + [[package]] 1055 + name = "objc2-metal" 1056 + version = "0.2.2" 1057 + source = "registry+https://github.com/rust-lang/crates.io-index" 1058 + checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" 1059 + dependencies = [ 1060 + "bitflags 2.9.3", 1061 + "block2", 1062 + "objc2", 1063 + "objc2-foundation", 1064 + ] 1065 + 1066 + [[package]] 1067 + name = "objc2-quartz-core" 1068 + version = "0.2.2" 1069 + source = "registry+https://github.com/rust-lang/crates.io-index" 1070 + checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" 1071 + dependencies = [ 1072 + "bitflags 2.9.3", 1073 + "block2", 1074 + "objc2", 1075 + "objc2-foundation", 1076 + "objc2-metal", 1077 + ] 1078 + 1079 + [[package]] 1080 + name = "objc2-symbols" 1081 + version = "0.2.2" 1082 + source = "registry+https://github.com/rust-lang/crates.io-index" 1083 + checksum = "0a684efe3dec1b305badae1a28f6555f6ddd3bb2c2267896782858d5a78404dc" 1084 + dependencies = [ 1085 + "objc2", 1086 + "objc2-foundation", 1087 + ] 1088 + 1089 + [[package]] 1090 + name = "objc2-ui-kit" 1091 + version = "0.2.2" 1092 + source = "registry+https://github.com/rust-lang/crates.io-index" 1093 + checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" 1094 + dependencies = [ 1095 + "bitflags 2.9.3", 1096 + "block2", 1097 + "objc2", 1098 + "objc2-cloud-kit", 1099 + "objc2-core-data", 1100 + "objc2-core-image", 1101 + "objc2-core-location", 1102 + "objc2-foundation", 1103 + "objc2-link-presentation", 1104 + "objc2-quartz-core", 1105 + "objc2-symbols", 1106 + "objc2-uniform-type-identifiers", 1107 + "objc2-user-notifications", 1108 + ] 1109 + 1110 + [[package]] 1111 + name = "objc2-uniform-type-identifiers" 1112 + version = "0.2.2" 1113 + source = "registry+https://github.com/rust-lang/crates.io-index" 1114 + checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe" 1115 + dependencies = [ 1116 + "block2", 1117 + "objc2", 1118 + "objc2-foundation", 1119 + ] 1120 + 1121 + [[package]] 1122 + name = "objc2-user-notifications" 1123 + version = "0.2.2" 1124 + source = "registry+https://github.com/rust-lang/crates.io-index" 1125 + checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" 1126 + dependencies = [ 1127 + "bitflags 2.9.3", 1128 + "block2", 1129 + "objc2", 1130 + "objc2-core-location", 1131 + "objc2-foundation", 1132 + ] 1133 + 1134 + [[package]] 1135 + name = "objc_exception" 1136 + version = "0.1.2" 1137 + source = "registry+https://github.com/rust-lang/crates.io-index" 1138 + checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" 1139 + dependencies = [ 1140 + "cc", 1141 + ] 1142 + 1143 + [[package]] 1144 + name = "object" 1145 + version = "0.36.7" 1146 + source = "registry+https://github.com/rust-lang/crates.io-index" 1147 + checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" 1148 + dependencies = [ 1149 + "memchr", 1150 + ] 1151 + 1152 + [[package]] 1153 + name = "once_cell" 1154 + version = "1.21.3" 1155 + source = "registry+https://github.com/rust-lang/crates.io-index" 1156 + checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" 1157 + 1158 + [[package]] 1159 + name = "orbclient" 1160 + version = "0.3.48" 1161 + source = "registry+https://github.com/rust-lang/crates.io-index" 1162 + checksum = "ba0b26cec2e24f08ed8bb31519a9333140a6599b867dac464bb150bdb796fd43" 1163 + dependencies = [ 1164 + "libredox", 1165 + ] 1166 + 1167 + [[package]] 1168 + name = "owned_ttf_parser" 1169 + version = "0.25.1" 1170 + source = "registry+https://github.com/rust-lang/crates.io-index" 1171 + checksum = "36820e9051aca1014ddc75770aab4d68bc1e9e632f0f5627c4086bc216fb583b" 1172 + dependencies = [ 1173 + "ttf-parser", 1174 + ] 1175 + 1176 + [[package]] 1177 + name = "parking_lot" 1178 + version = "0.12.4" 1179 + source = "registry+https://github.com/rust-lang/crates.io-index" 1180 + checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" 1181 + dependencies = [ 1182 + "lock_api", 1183 + "parking_lot_core", 1184 + ] 1185 + 1186 + [[package]] 1187 + name = "parking_lot_core" 1188 + version = "0.9.11" 1189 + source = "registry+https://github.com/rust-lang/crates.io-index" 1190 + checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" 1191 + dependencies = [ 1192 + "cfg-if", 1193 + "libc", 1194 + "redox_syscall 0.5.17", 1195 + "smallvec", 1196 + "windows-targets 0.52.6", 1197 + ] 1198 + 1199 + [[package]] 1200 + name = "paste" 1201 + version = "1.0.15" 1202 + source = "registry+https://github.com/rust-lang/crates.io-index" 1203 + checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" 1204 + 1205 + [[package]] 1206 + name = "percent-encoding" 1207 + version = "2.3.2" 1208 + source = "registry+https://github.com/rust-lang/crates.io-index" 1209 + checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" 1210 + 1211 + [[package]] 1212 + name = "pin-project" 1213 + version = "1.1.10" 1214 + source = "registry+https://github.com/rust-lang/crates.io-index" 1215 + checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" 1216 + dependencies = [ 1217 + "pin-project-internal", 1218 + ] 1219 + 1220 + [[package]] 1221 + name = "pin-project-internal" 1222 + version = "1.1.10" 1223 + source = "registry+https://github.com/rust-lang/crates.io-index" 1224 + checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" 1225 + dependencies = [ 1226 + "proc-macro2", 1227 + "quote", 1228 + "syn 2.0.106", 1229 + ] 1230 + 1231 + [[package]] 1232 + name = "pin-project-lite" 1233 + version = "0.2.16" 1234 + source = "registry+https://github.com/rust-lang/crates.io-index" 1235 + checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" 1236 + 1237 + [[package]] 1238 + name = "pixels" 1239 + version = "0.15.0" 1240 + source = "registry+https://github.com/rust-lang/crates.io-index" 1241 + checksum = "518d43cd70c5381d4c7bd4bf47ee344beee99b58b0587adcb198cc713ff0dfb5" 1242 + dependencies = [ 1243 + "bytemuck", 1244 + "pollster", 1245 + "raw-window-handle", 1246 + "thiserror", 1247 + "ultraviolet", 1248 + "wgpu", 1249 + ] 1250 + 1251 + [[package]] 1252 + name = "pkg-config" 1253 + version = "0.3.32" 1254 + source = "registry+https://github.com/rust-lang/crates.io-index" 1255 + checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" 1256 + 1257 + [[package]] 1258 + name = "polling" 1259 + version = "3.10.0" 1260 + source = "registry+https://github.com/rust-lang/crates.io-index" 1261 + checksum = "b5bd19146350fe804f7cb2669c851c03d69da628803dab0d98018142aaa5d829" 1262 + dependencies = [ 1263 + "cfg-if", 1264 + "concurrent-queue", 1265 + "hermit-abi", 1266 + "pin-project-lite", 1267 + "rustix 1.0.8", 1268 + "windows-sys 0.60.2", 1269 + ] 1270 + 1271 + [[package]] 1272 + name = "pollster" 1273 + version = "0.3.0" 1274 + source = "registry+https://github.com/rust-lang/crates.io-index" 1275 + checksum = "22686f4785f02a4fcc856d3b3bb19bf6c8160d103f7a99cc258bddd0251dc7f2" 1276 + 1277 + [[package]] 1278 + name = "presser" 1279 + version = "0.3.1" 1280 + source = "registry+https://github.com/rust-lang/crates.io-index" 1281 + checksum = "e8cf8e6a8aa66ce33f63993ffc4ea4271eb5b0530a9002db8455ea6050c77bfa" 1282 + 1283 + [[package]] 1284 + name = "proc-macro-crate" 1285 + version = "3.3.0" 1286 + source = "registry+https://github.com/rust-lang/crates.io-index" 1287 + checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" 1288 + dependencies = [ 1289 + "toml_edit", 1290 + ] 1291 + 1292 + [[package]] 1293 + name = "proc-macro2" 1294 + version = "1.0.101" 1295 + source = "registry+https://github.com/rust-lang/crates.io-index" 1296 + checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" 1297 + dependencies = [ 1298 + "unicode-ident", 1299 + ] 1300 + 1301 + [[package]] 1302 + name = "profiling" 1303 + version = "1.0.17" 1304 + source = "registry+https://github.com/rust-lang/crates.io-index" 1305 + checksum = "3eb8486b569e12e2c32ad3e204dbaba5e4b5b216e9367044f25f1dba42341773" 1306 + 1307 + [[package]] 1308 + name = "quanta" 1309 + version = "0.12.6" 1310 + source = "registry+https://github.com/rust-lang/crates.io-index" 1311 + checksum = "f3ab5a9d756f0d97bdc89019bd2e4ea098cf9cde50ee7564dde6b81ccc8f06c7" 1312 + dependencies = [ 1313 + "crossbeam-utils", 1314 + "libc", 1315 + "once_cell", 1316 + "raw-cpuid", 1317 + "wasi 0.11.1+wasi-snapshot-preview1", 1318 + "web-sys", 1319 + "winapi", 1320 + ] 1321 + 1322 + [[package]] 1323 + name = "quick-xml" 1324 + version = "0.37.5" 1325 + source = "registry+https://github.com/rust-lang/crates.io-index" 1326 + checksum = "331e97a1af0bf59823e6eadffe373d7b27f485be8748f71471c662c1f269b7fb" 1327 + dependencies = [ 1328 + "memchr", 1329 + ] 1330 + 1331 + [[package]] 1332 + name = "quote" 1333 + version = "1.0.40" 1334 + source = "registry+https://github.com/rust-lang/crates.io-index" 1335 + checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" 1336 + dependencies = [ 1337 + "proc-macro2", 1338 + ] 1339 + 1340 + [[package]] 1341 + name = "r-efi" 1342 + version = "5.3.0" 1343 + source = "registry+https://github.com/rust-lang/crates.io-index" 1344 + checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" 1345 + 1346 + [[package]] 1347 + name = "range-alloc" 1348 + version = "0.1.4" 1349 + source = "registry+https://github.com/rust-lang/crates.io-index" 1350 + checksum = "c3d6831663a5098ea164f89cff59c6284e95f4e3c76ce9848d4529f5ccca9bde" 1351 + 1352 + [[package]] 1353 + name = "raw-cpuid" 1354 + version = "11.5.0" 1355 + source = "registry+https://github.com/rust-lang/crates.io-index" 1356 + checksum = "c6df7ab838ed27997ba19a4664507e6f82b41fe6e20be42929332156e5e85146" 1357 + dependencies = [ 1358 + "bitflags 2.9.3", 1359 + ] 1360 + 1361 + [[package]] 1362 + name = "raw-window-handle" 1363 + version = "0.6.2" 1364 + source = "registry+https://github.com/rust-lang/crates.io-index" 1365 + checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" 1366 + 1367 + [[package]] 1368 + name = "redox_syscall" 1369 + version = "0.4.1" 1370 + source = "registry+https://github.com/rust-lang/crates.io-index" 1371 + checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" 1372 + dependencies = [ 1373 + "bitflags 1.3.2", 1374 + ] 1375 + 1376 + [[package]] 1377 + name = "redox_syscall" 1378 + version = "0.5.17" 1379 + source = "registry+https://github.com/rust-lang/crates.io-index" 1380 + checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" 1381 + dependencies = [ 1382 + "bitflags 2.9.3", 1383 + ] 1384 + 1385 + [[package]] 1386 + name = "renderdoc-sys" 1387 + version = "1.1.0" 1388 + source = "registry+https://github.com/rust-lang/crates.io-index" 1389 + checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832" 1390 + 1391 + [[package]] 1392 + name = "rustc-demangle" 1393 + version = "0.1.26" 1394 + source = "registry+https://github.com/rust-lang/crates.io-index" 1395 + checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" 1396 + 1397 + [[package]] 1398 + name = "rustc-hash" 1399 + version = "1.1.0" 1400 + source = "registry+https://github.com/rust-lang/crates.io-index" 1401 + checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" 1402 + 1403 + [[package]] 1404 + name = "rustix" 1405 + version = "0.38.44" 1406 + source = "registry+https://github.com/rust-lang/crates.io-index" 1407 + checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" 1408 + dependencies = [ 1409 + "bitflags 2.9.3", 1410 + "errno", 1411 + "libc", 1412 + "linux-raw-sys 0.4.15", 1413 + "windows-sys 0.59.0", 1414 + ] 1415 + 1416 + [[package]] 1417 + name = "rustix" 1418 + version = "1.0.8" 1419 + source = "registry+https://github.com/rust-lang/crates.io-index" 1420 + checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" 1421 + dependencies = [ 1422 + "bitflags 2.9.3", 1423 + "errno", 1424 + "libc", 1425 + "linux-raw-sys 0.9.4", 1426 + "windows-sys 0.60.2", 1427 + ] 1428 + 1429 + [[package]] 1430 + name = "rustversion" 1431 + version = "1.0.22" 1432 + source = "registry+https://github.com/rust-lang/crates.io-index" 1433 + checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" 1434 + 1435 + [[package]] 1436 + name = "safe_arch" 1437 + version = "0.7.4" 1438 + source = "registry+https://github.com/rust-lang/crates.io-index" 1439 + checksum = "96b02de82ddbe1b636e6170c21be622223aea188ef2e139be0a5b219ec215323" 1440 + dependencies = [ 1441 + "bytemuck", 1442 + ] 1443 + 1444 + [[package]] 1445 + name = "same-file" 1446 + version = "1.0.6" 1447 + source = "registry+https://github.com/rust-lang/crates.io-index" 1448 + checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 1449 + dependencies = [ 1450 + "winapi-util", 1451 + ] 1452 + 1453 + [[package]] 1454 + name = "scoped-tls" 1455 + version = "1.0.1" 1456 + source = "registry+https://github.com/rust-lang/crates.io-index" 1457 + checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" 1458 + 1459 + [[package]] 1460 + name = "scopeguard" 1461 + version = "1.2.0" 1462 + source = "registry+https://github.com/rust-lang/crates.io-index" 1463 + checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 1464 + 1465 + [[package]] 1466 + name = "sctk-adwaita" 1467 + version = "0.10.1" 1468 + source = "registry+https://github.com/rust-lang/crates.io-index" 1469 + checksum = "b6277f0217056f77f1d8f49f2950ac6c278c0d607c45f5ee99328d792ede24ec" 1470 + dependencies = [ 1471 + "ab_glyph", 1472 + "log", 1473 + "memmap2", 1474 + "smithay-client-toolkit", 1475 + "tiny-skia", 1476 + ] 1477 + 1478 + [[package]] 1479 + name = "serde" 1480 + version = "1.0.219" 1481 + source = "registry+https://github.com/rust-lang/crates.io-index" 1482 + checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" 1483 + dependencies = [ 1484 + "serde_derive", 1485 + ] 1486 + 1487 + [[package]] 1488 + name = "serde_derive" 1489 + version = "1.0.219" 1490 + source = "registry+https://github.com/rust-lang/crates.io-index" 1491 + checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" 1492 + dependencies = [ 1493 + "proc-macro2", 1494 + "quote", 1495 + "syn 2.0.106", 1496 + ] 1497 + 1498 + [[package]] 1499 + name = "shlex" 1500 + version = "1.3.0" 1501 + source = "registry+https://github.com/rust-lang/crates.io-index" 1502 + checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 1503 + 1504 + [[package]] 1505 + name = "signal-hook-registry" 1506 + version = "1.4.6" 1507 + source = "registry+https://github.com/rust-lang/crates.io-index" 1508 + checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" 1509 + dependencies = [ 1510 + "libc", 1511 + ] 1512 + 1513 + [[package]] 1514 + name = "slab" 1515 + version = "0.4.11" 1516 + source = "registry+https://github.com/rust-lang/crates.io-index" 1517 + checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" 1518 + 1519 + [[package]] 1520 + name = "slotmap" 1521 + version = "1.0.7" 1522 + source = "registry+https://github.com/rust-lang/crates.io-index" 1523 + checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" 1524 + dependencies = [ 1525 + "version_check", 1526 + ] 1527 + 1528 + [[package]] 1529 + name = "smallvec" 1530 + version = "1.15.1" 1531 + source = "registry+https://github.com/rust-lang/crates.io-index" 1532 + checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" 1533 + 1534 + [[package]] 1535 + name = "smithay-client-toolkit" 1536 + version = "0.19.2" 1537 + source = "registry+https://github.com/rust-lang/crates.io-index" 1538 + checksum = "3457dea1f0eb631b4034d61d4d8c32074caa6cd1ab2d59f2327bd8461e2c0016" 1539 + dependencies = [ 1540 + "bitflags 2.9.3", 1541 + "calloop", 1542 + "calloop-wayland-source", 1543 + "cursor-icon", 1544 + "libc", 1545 + "log", 1546 + "memmap2", 1547 + "rustix 0.38.44", 1548 + "thiserror", 1549 + "wayland-backend", 1550 + "wayland-client", 1551 + "wayland-csd-frame", 1552 + "wayland-cursor", 1553 + "wayland-protocols", 1554 + "wayland-protocols-wlr", 1555 + "wayland-scanner", 1556 + "xkeysym", 1557 + ] 1558 + 1559 + [[package]] 1560 + name = "smol_str" 1561 + version = "0.2.2" 1562 + source = "registry+https://github.com/rust-lang/crates.io-index" 1563 + checksum = "dd538fb6910ac1099850255cf94a94df6551fbdd602454387d0adb2d1ca6dead" 1564 + dependencies = [ 1565 + "serde", 1566 + ] 1567 + 1568 + [[package]] 1569 + name = "socket2" 1570 + version = "0.6.0" 1571 + source = "registry+https://github.com/rust-lang/crates.io-index" 1572 + checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" 1573 + dependencies = [ 1574 + "libc", 1575 + "windows-sys 0.59.0", 1576 + ] 1577 + 1578 + [[package]] 1579 + name = "spirv" 1580 + version = "0.3.0+sdk-1.3.268.0" 1581 + source = "registry+https://github.com/rust-lang/crates.io-index" 1582 + checksum = "eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844" 1583 + dependencies = [ 1584 + "bitflags 2.9.3", 1585 + ] 1586 + 1587 + [[package]] 1588 + name = "static_assertions" 1589 + version = "1.1.0" 1590 + source = "registry+https://github.com/rust-lang/crates.io-index" 1591 + checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 1592 + 1593 + [[package]] 1594 + name = "strict-num" 1595 + version = "0.1.1" 1596 + source = "registry+https://github.com/rust-lang/crates.io-index" 1597 + checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731" 1598 + 1599 + [[package]] 1600 + name = "syn" 1601 + version = "1.0.109" 1602 + source = "registry+https://github.com/rust-lang/crates.io-index" 1603 + checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 1604 + dependencies = [ 1605 + "proc-macro2", 1606 + "quote", 1607 + "unicode-ident", 1608 + ] 1609 + 1610 + [[package]] 1611 + name = "syn" 1612 + version = "2.0.106" 1613 + source = "registry+https://github.com/rust-lang/crates.io-index" 1614 + checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" 1615 + dependencies = [ 1616 + "proc-macro2", 1617 + "quote", 1618 + "unicode-ident", 1619 + ] 1620 + 1621 + [[package]] 1622 + name = "termcolor" 1623 + version = "1.4.1" 1624 + source = "registry+https://github.com/rust-lang/crates.io-index" 1625 + checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" 1626 + dependencies = [ 1627 + "winapi-util", 1628 + ] 1629 + 1630 + [[package]] 1631 + name = "thiserror" 1632 + version = "1.0.69" 1633 + source = "registry+https://github.com/rust-lang/crates.io-index" 1634 + checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" 1635 + dependencies = [ 1636 + "thiserror-impl", 1637 + ] 1638 + 1639 + [[package]] 1640 + name = "thiserror-impl" 1641 + version = "1.0.69" 1642 + source = "registry+https://github.com/rust-lang/crates.io-index" 1643 + checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" 1644 + dependencies = [ 1645 + "proc-macro2", 1646 + "quote", 1647 + "syn 2.0.106", 1648 + ] 1649 + 1650 + [[package]] 1651 + name = "tiny-skia" 1652 + version = "0.11.4" 1653 + source = "registry+https://github.com/rust-lang/crates.io-index" 1654 + checksum = "83d13394d44dae3207b52a326c0c85a8bf87f1541f23b0d143811088497b09ab" 1655 + dependencies = [ 1656 + "arrayref", 1657 + "arrayvec", 1658 + "bytemuck", 1659 + "cfg-if", 1660 + "log", 1661 + "tiny-skia-path", 1662 + ] 1663 + 1664 + [[package]] 1665 + name = "tiny-skia-path" 1666 + version = "0.11.4" 1667 + source = "registry+https://github.com/rust-lang/crates.io-index" 1668 + checksum = "9c9e7fc0c2e86a30b117d0462aa261b72b7a99b7ebd7deb3a14ceda95c5bdc93" 1669 + dependencies = [ 1670 + "arrayref", 1671 + "bytemuck", 1672 + "strict-num", 1673 + ] 1674 + 1675 + [[package]] 1676 + name = "tokio" 1677 + version = "1.47.1" 1678 + source = "registry+https://github.com/rust-lang/crates.io-index" 1679 + checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" 1680 + dependencies = [ 1681 + "backtrace", 1682 + "bytes", 1683 + "io-uring", 1684 + "libc", 1685 + "mio", 1686 + "parking_lot", 1687 + "pin-project-lite", 1688 + "signal-hook-registry", 1689 + "slab", 1690 + "socket2", 1691 + "tokio-macros", 1692 + "windows-sys 0.59.0", 1693 + ] 1694 + 1695 + [[package]] 1696 + name = "tokio-macros" 1697 + version = "2.5.0" 1698 + source = "registry+https://github.com/rust-lang/crates.io-index" 1699 + checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" 1700 + dependencies = [ 1701 + "proc-macro2", 1702 + "quote", 1703 + "syn 2.0.106", 1704 + ] 1705 + 1706 + [[package]] 1707 + name = "toml_datetime" 1708 + version = "0.6.11" 1709 + source = "registry+https://github.com/rust-lang/crates.io-index" 1710 + checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" 1711 + 1712 + [[package]] 1713 + name = "toml_edit" 1714 + version = "0.22.27" 1715 + source = "registry+https://github.com/rust-lang/crates.io-index" 1716 + checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" 1717 + dependencies = [ 1718 + "indexmap", 1719 + "toml_datetime", 1720 + "winnow", 1721 + ] 1722 + 1723 + [[package]] 1724 + name = "tracing" 1725 + version = "0.1.41" 1726 + source = "registry+https://github.com/rust-lang/crates.io-index" 1727 + checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" 1728 + dependencies = [ 1729 + "pin-project-lite", 1730 + "tracing-core", 1731 + ] 1732 + 1733 + [[package]] 1734 + name = "tracing-core" 1735 + version = "0.1.34" 1736 + source = "registry+https://github.com/rust-lang/crates.io-index" 1737 + checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" 1738 + 1739 + [[package]] 1740 + name = "ttf-parser" 1741 + version = "0.25.1" 1742 + source = "registry+https://github.com/rust-lang/crates.io-index" 1743 + checksum = "d2df906b07856748fa3f6e0ad0cbaa047052d4a7dd609e231c4f72cee8c36f31" 1744 + 1745 + [[package]] 1746 + name = "ultraviolet" 1747 + version = "0.9.2" 1748 + source = "registry+https://github.com/rust-lang/crates.io-index" 1749 + checksum = "6a28554d13eb5daba527cc1b91b6c341372a0ae45ed277ffb2c6fbc04f319d7e" 1750 + dependencies = [ 1751 + "wide", 1752 + ] 1753 + 1754 + [[package]] 1755 + name = "unicode-ident" 1756 + version = "1.0.18" 1757 + source = "registry+https://github.com/rust-lang/crates.io-index" 1758 + checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" 1759 + 1760 + [[package]] 1761 + name = "unicode-segmentation" 1762 + version = "1.12.0" 1763 + source = "registry+https://github.com/rust-lang/crates.io-index" 1764 + checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" 1765 + 1766 + [[package]] 1767 + name = "unicode-width" 1768 + version = "0.1.14" 1769 + source = "registry+https://github.com/rust-lang/crates.io-index" 1770 + checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" 1771 + 1772 + [[package]] 1773 + name = "unicode-xid" 1774 + version = "0.2.6" 1775 + source = "registry+https://github.com/rust-lang/crates.io-index" 1776 + checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" 1777 + 1778 + [[package]] 1779 + name = "version_check" 1780 + version = "0.9.5" 1781 + source = "registry+https://github.com/rust-lang/crates.io-index" 1782 + checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 1783 + 1784 + [[package]] 1785 + name = "walkdir" 1786 + version = "2.5.0" 1787 + source = "registry+https://github.com/rust-lang/crates.io-index" 1788 + checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" 1789 + dependencies = [ 1790 + "same-file", 1791 + "winapi-util", 1792 + ] 1793 + 1794 + [[package]] 1795 + name = "wasi" 1796 + version = "0.11.1+wasi-snapshot-preview1" 1797 + source = "registry+https://github.com/rust-lang/crates.io-index" 1798 + checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" 1799 + 1800 + [[package]] 1801 + name = "wasi" 1802 + version = "0.14.2+wasi-0.2.4" 1803 + source = "registry+https://github.com/rust-lang/crates.io-index" 1804 + checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" 1805 + dependencies = [ 1806 + "wit-bindgen-rt", 1807 + ] 1808 + 1809 + [[package]] 1810 + name = "wasm-bindgen" 1811 + version = "0.2.100" 1812 + source = "registry+https://github.com/rust-lang/crates.io-index" 1813 + checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" 1814 + dependencies = [ 1815 + "cfg-if", 1816 + "once_cell", 1817 + "rustversion", 1818 + "wasm-bindgen-macro", 1819 + ] 1820 + 1821 + [[package]] 1822 + name = "wasm-bindgen-backend" 1823 + version = "0.2.100" 1824 + source = "registry+https://github.com/rust-lang/crates.io-index" 1825 + checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" 1826 + dependencies = [ 1827 + "bumpalo", 1828 + "log", 1829 + "proc-macro2", 1830 + "quote", 1831 + "syn 2.0.106", 1832 + "wasm-bindgen-shared", 1833 + ] 1834 + 1835 + [[package]] 1836 + name = "wasm-bindgen-futures" 1837 + version = "0.4.45" 1838 + source = "registry+https://github.com/rust-lang/crates.io-index" 1839 + checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" 1840 + dependencies = [ 1841 + "cfg-if", 1842 + "js-sys", 1843 + "wasm-bindgen", 1844 + "web-sys", 1845 + ] 1846 + 1847 + [[package]] 1848 + name = "wasm-bindgen-macro" 1849 + version = "0.2.100" 1850 + source = "registry+https://github.com/rust-lang/crates.io-index" 1851 + checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" 1852 + dependencies = [ 1853 + "quote", 1854 + "wasm-bindgen-macro-support", 1855 + ] 1856 + 1857 + [[package]] 1858 + name = "wasm-bindgen-macro-support" 1859 + version = "0.2.100" 1860 + source = "registry+https://github.com/rust-lang/crates.io-index" 1861 + checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" 1862 + dependencies = [ 1863 + "proc-macro2", 1864 + "quote", 1865 + "syn 2.0.106", 1866 + "wasm-bindgen-backend", 1867 + "wasm-bindgen-shared", 1868 + ] 1869 + 1870 + [[package]] 1871 + name = "wasm-bindgen-shared" 1872 + version = "0.2.100" 1873 + source = "registry+https://github.com/rust-lang/crates.io-index" 1874 + checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" 1875 + dependencies = [ 1876 + "unicode-ident", 1877 + ] 1878 + 1879 + [[package]] 1880 + name = "wayland-backend" 1881 + version = "0.3.11" 1882 + source = "registry+https://github.com/rust-lang/crates.io-index" 1883 + checksum = "673a33c33048a5ade91a6b139580fa174e19fb0d23f396dca9fa15f2e1e49b35" 1884 + dependencies = [ 1885 + "cc", 1886 + "downcast-rs", 1887 + "rustix 1.0.8", 1888 + "scoped-tls", 1889 + "smallvec", 1890 + "wayland-sys", 1891 + ] 1892 + 1893 + [[package]] 1894 + name = "wayland-client" 1895 + version = "0.31.11" 1896 + source = "registry+https://github.com/rust-lang/crates.io-index" 1897 + checksum = "c66a47e840dc20793f2264eb4b3e4ecb4b75d91c0dd4af04b456128e0bdd449d" 1898 + dependencies = [ 1899 + "bitflags 2.9.3", 1900 + "rustix 1.0.8", 1901 + "wayland-backend", 1902 + "wayland-scanner", 1903 + ] 1904 + 1905 + [[package]] 1906 + name = "wayland-csd-frame" 1907 + version = "0.3.0" 1908 + source = "registry+https://github.com/rust-lang/crates.io-index" 1909 + checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" 1910 + dependencies = [ 1911 + "bitflags 2.9.3", 1912 + "cursor-icon", 1913 + "wayland-backend", 1914 + ] 1915 + 1916 + [[package]] 1917 + name = "wayland-cursor" 1918 + version = "0.31.11" 1919 + source = "registry+https://github.com/rust-lang/crates.io-index" 1920 + checksum = "447ccc440a881271b19e9989f75726d60faa09b95b0200a9b7eb5cc47c3eeb29" 1921 + dependencies = [ 1922 + "rustix 1.0.8", 1923 + "wayland-client", 1924 + "xcursor", 1925 + ] 1926 + 1927 + [[package]] 1928 + name = "wayland-protocols" 1929 + version = "0.32.9" 1930 + source = "registry+https://github.com/rust-lang/crates.io-index" 1931 + checksum = "efa790ed75fbfd71283bd2521a1cfdc022aabcc28bdcff00851f9e4ae88d9901" 1932 + dependencies = [ 1933 + "bitflags 2.9.3", 1934 + "wayland-backend", 1935 + "wayland-client", 1936 + "wayland-scanner", 1937 + ] 1938 + 1939 + [[package]] 1940 + name = "wayland-protocols-plasma" 1941 + version = "0.3.9" 1942 + source = "registry+https://github.com/rust-lang/crates.io-index" 1943 + checksum = "a07a14257c077ab3279987c4f8bb987851bf57081b93710381daea94f2c2c032" 1944 + dependencies = [ 1945 + "bitflags 2.9.3", 1946 + "wayland-backend", 1947 + "wayland-client", 1948 + "wayland-protocols", 1949 + "wayland-scanner", 1950 + ] 1951 + 1952 + [[package]] 1953 + name = "wayland-protocols-wlr" 1954 + version = "0.3.9" 1955 + source = "registry+https://github.com/rust-lang/crates.io-index" 1956 + checksum = "efd94963ed43cf9938a090ca4f7da58eb55325ec8200c3848963e98dc25b78ec" 1957 + dependencies = [ 1958 + "bitflags 2.9.3", 1959 + "wayland-backend", 1960 + "wayland-client", 1961 + "wayland-protocols", 1962 + "wayland-scanner", 1963 + ] 1964 + 1965 + [[package]] 1966 + name = "wayland-scanner" 1967 + version = "0.31.7" 1968 + source = "registry+https://github.com/rust-lang/crates.io-index" 1969 + checksum = "54cb1e9dc49da91950bdfd8b848c49330536d9d1fb03d4bfec8cae50caa50ae3" 1970 + dependencies = [ 1971 + "proc-macro2", 1972 + "quick-xml", 1973 + "quote", 1974 + ] 1975 + 1976 + [[package]] 1977 + name = "wayland-sys" 1978 + version = "0.31.7" 1979 + source = "registry+https://github.com/rust-lang/crates.io-index" 1980 + checksum = "34949b42822155826b41db8e5d0c1be3a2bd296c747577a43a3e6daefc296142" 1981 + dependencies = [ 1982 + "dlib", 1983 + "log", 1984 + "once_cell", 1985 + "pkg-config", 1986 + ] 1987 + 1988 + [[package]] 1989 + name = "web-sys" 1990 + version = "0.3.72" 1991 + source = "registry+https://github.com/rust-lang/crates.io-index" 1992 + checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" 1993 + dependencies = [ 1994 + "js-sys", 1995 + "wasm-bindgen", 1996 + ] 1997 + 1998 + [[package]] 1999 + name = "web-time" 2000 + version = "1.1.0" 2001 + source = "registry+https://github.com/rust-lang/crates.io-index" 2002 + checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" 2003 + dependencies = [ 2004 + "js-sys", 2005 + "wasm-bindgen", 2006 + ] 2007 + 2008 + [[package]] 2009 + name = "wgpu" 2010 + version = "0.19.4" 2011 + source = "registry+https://github.com/rust-lang/crates.io-index" 2012 + checksum = "cbd7311dbd2abcfebaabf1841a2824ed7c8be443a0f29166e5d3c6a53a762c01" 2013 + dependencies = [ 2014 + "arrayvec", 2015 + "cfg-if", 2016 + "cfg_aliases 0.1.1", 2017 + "js-sys", 2018 + "log", 2019 + "naga", 2020 + "parking_lot", 2021 + "profiling", 2022 + "raw-window-handle", 2023 + "smallvec", 2024 + "static_assertions", 2025 + "wasm-bindgen", 2026 + "wasm-bindgen-futures", 2027 + "web-sys", 2028 + "wgpu-core", 2029 + "wgpu-hal", 2030 + "wgpu-types", 2031 + ] 2032 + 2033 + [[package]] 2034 + name = "wgpu-core" 2035 + version = "0.19.4" 2036 + source = "registry+https://github.com/rust-lang/crates.io-index" 2037 + checksum = "28b94525fc99ba9e5c9a9e24764f2bc29bad0911a7446c12f446a8277369bf3a" 2038 + dependencies = [ 2039 + "arrayvec", 2040 + "bit-vec", 2041 + "bitflags 2.9.3", 2042 + "cfg_aliases 0.1.1", 2043 + "codespan-reporting", 2044 + "indexmap", 2045 + "log", 2046 + "naga", 2047 + "once_cell", 2048 + "parking_lot", 2049 + "profiling", 2050 + "raw-window-handle", 2051 + "rustc-hash", 2052 + "smallvec", 2053 + "thiserror", 2054 + "web-sys", 2055 + "wgpu-hal", 2056 + "wgpu-types", 2057 + ] 2058 + 2059 + [[package]] 2060 + name = "wgpu-hal" 2061 + version = "0.19.5" 2062 + source = "registry+https://github.com/rust-lang/crates.io-index" 2063 + checksum = "bfabcfc55fd86611a855816326b2d54c3b2fd7972c27ce414291562650552703" 2064 + dependencies = [ 2065 + "android_system_properties", 2066 + "arrayvec", 2067 + "ash", 2068 + "bit-set", 2069 + "bitflags 2.9.3", 2070 + "block", 2071 + "cfg_aliases 0.1.1", 2072 + "core-graphics-types", 2073 + "d3d12", 2074 + "glow", 2075 + "glutin_wgl_sys", 2076 + "gpu-alloc", 2077 + "gpu-allocator", 2078 + "gpu-descriptor", 2079 + "hassle-rs", 2080 + "js-sys", 2081 + "khronos-egl", 2082 + "libc", 2083 + "libloading 0.8.8", 2084 + "log", 2085 + "metal", 2086 + "naga", 2087 + "ndk-sys 0.5.0+25.2.9519653", 2088 + "objc", 2089 + "once_cell", 2090 + "parking_lot", 2091 + "profiling", 2092 + "range-alloc", 2093 + "raw-window-handle", 2094 + "renderdoc-sys", 2095 + "rustc-hash", 2096 + "smallvec", 2097 + "thiserror", 2098 + "wasm-bindgen", 2099 + "web-sys", 2100 + "wgpu-types", 2101 + "winapi", 2102 + ] 2103 + 2104 + [[package]] 2105 + name = "wgpu-types" 2106 + version = "0.19.2" 2107 + source = "registry+https://github.com/rust-lang/crates.io-index" 2108 + checksum = "b671ff9fb03f78b46ff176494ee1ebe7d603393f42664be55b64dc8d53969805" 2109 + dependencies = [ 2110 + "bitflags 2.9.3", 2111 + "js-sys", 2112 + "web-sys", 2113 + ] 2114 + 2115 + [[package]] 2116 + name = "wide" 2117 + version = "0.7.33" 2118 + source = "registry+https://github.com/rust-lang/crates.io-index" 2119 + checksum = "0ce5da8ecb62bcd8ec8b7ea19f69a51275e91299be594ea5cc6ef7819e16cd03" 2120 + dependencies = [ 2121 + "bytemuck", 2122 + "safe_arch", 2123 + ] 2124 + 2125 + [[package]] 2126 + name = "widestring" 2127 + version = "1.2.0" 2128 + source = "registry+https://github.com/rust-lang/crates.io-index" 2129 + checksum = "dd7cf3379ca1aac9eea11fba24fd7e315d621f8dfe35c8d7d2be8b793726e07d" 2130 + 2131 + [[package]] 2132 + name = "winapi" 2133 + version = "0.3.9" 2134 + source = "registry+https://github.com/rust-lang/crates.io-index" 2135 + checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 2136 + dependencies = [ 2137 + "winapi-i686-pc-windows-gnu", 2138 + "winapi-x86_64-pc-windows-gnu", 2139 + ] 2140 + 2141 + [[package]] 2142 + name = "winapi-i686-pc-windows-gnu" 2143 + version = "0.4.0" 2144 + source = "registry+https://github.com/rust-lang/crates.io-index" 2145 + checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 2146 + 2147 + [[package]] 2148 + name = "winapi-util" 2149 + version = "0.1.10" 2150 + source = "registry+https://github.com/rust-lang/crates.io-index" 2151 + checksum = "0978bf7171b3d90bac376700cb56d606feb40f251a475a5d6634613564460b22" 2152 + dependencies = [ 2153 + "windows-sys 0.60.2", 2154 + ] 2155 + 2156 + [[package]] 2157 + name = "winapi-x86_64-pc-windows-gnu" 2158 + version = "0.4.0" 2159 + source = "registry+https://github.com/rust-lang/crates.io-index" 2160 + checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 2161 + 2162 + [[package]] 2163 + name = "windows" 2164 + version = "0.52.0" 2165 + source = "registry+https://github.com/rust-lang/crates.io-index" 2166 + checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" 2167 + dependencies = [ 2168 + "windows-core", 2169 + "windows-targets 0.52.6", 2170 + ] 2171 + 2172 + [[package]] 2173 + name = "windows-core" 2174 + version = "0.52.0" 2175 + source = "registry+https://github.com/rust-lang/crates.io-index" 2176 + checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" 2177 + dependencies = [ 2178 + "windows-targets 0.52.6", 2179 + ] 2180 + 2181 + [[package]] 2182 + name = "windows-link" 2183 + version = "0.1.3" 2184 + source = "registry+https://github.com/rust-lang/crates.io-index" 2185 + checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" 2186 + 2187 + [[package]] 2188 + name = "windows-sys" 2189 + version = "0.45.0" 2190 + source = "registry+https://github.com/rust-lang/crates.io-index" 2191 + checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" 2192 + dependencies = [ 2193 + "windows-targets 0.42.2", 2194 + ] 2195 + 2196 + [[package]] 2197 + name = "windows-sys" 2198 + version = "0.52.0" 2199 + source = "registry+https://github.com/rust-lang/crates.io-index" 2200 + checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 2201 + dependencies = [ 2202 + "windows-targets 0.52.6", 2203 + ] 2204 + 2205 + [[package]] 2206 + name = "windows-sys" 2207 + version = "0.59.0" 2208 + source = "registry+https://github.com/rust-lang/crates.io-index" 2209 + checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 2210 + dependencies = [ 2211 + "windows-targets 0.52.6", 2212 + ] 2213 + 2214 + [[package]] 2215 + name = "windows-sys" 2216 + version = "0.60.2" 2217 + source = "registry+https://github.com/rust-lang/crates.io-index" 2218 + checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" 2219 + dependencies = [ 2220 + "windows-targets 0.53.3", 2221 + ] 2222 + 2223 + [[package]] 2224 + name = "windows-targets" 2225 + version = "0.42.2" 2226 + source = "registry+https://github.com/rust-lang/crates.io-index" 2227 + checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" 2228 + dependencies = [ 2229 + "windows_aarch64_gnullvm 0.42.2", 2230 + "windows_aarch64_msvc 0.42.2", 2231 + "windows_i686_gnu 0.42.2", 2232 + "windows_i686_msvc 0.42.2", 2233 + "windows_x86_64_gnu 0.42.2", 2234 + "windows_x86_64_gnullvm 0.42.2", 2235 + "windows_x86_64_msvc 0.42.2", 2236 + ] 2237 + 2238 + [[package]] 2239 + name = "windows-targets" 2240 + version = "0.48.5" 2241 + source = "registry+https://github.com/rust-lang/crates.io-index" 2242 + checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 2243 + dependencies = [ 2244 + "windows_aarch64_gnullvm 0.48.5", 2245 + "windows_aarch64_msvc 0.48.5", 2246 + "windows_i686_gnu 0.48.5", 2247 + "windows_i686_msvc 0.48.5", 2248 + "windows_x86_64_gnu 0.48.5", 2249 + "windows_x86_64_gnullvm 0.48.5", 2250 + "windows_x86_64_msvc 0.48.5", 2251 + ] 2252 + 2253 + [[package]] 2254 + name = "windows-targets" 2255 + version = "0.52.6" 2256 + source = "registry+https://github.com/rust-lang/crates.io-index" 2257 + checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 2258 + dependencies = [ 2259 + "windows_aarch64_gnullvm 0.52.6", 2260 + "windows_aarch64_msvc 0.52.6", 2261 + "windows_i686_gnu 0.52.6", 2262 + "windows_i686_gnullvm 0.52.6", 2263 + "windows_i686_msvc 0.52.6", 2264 + "windows_x86_64_gnu 0.52.6", 2265 + "windows_x86_64_gnullvm 0.52.6", 2266 + "windows_x86_64_msvc 0.52.6", 2267 + ] 2268 + 2269 + [[package]] 2270 + name = "windows-targets" 2271 + version = "0.53.3" 2272 + source = "registry+https://github.com/rust-lang/crates.io-index" 2273 + checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" 2274 + dependencies = [ 2275 + "windows-link", 2276 + "windows_aarch64_gnullvm 0.53.0", 2277 + "windows_aarch64_msvc 0.53.0", 2278 + "windows_i686_gnu 0.53.0", 2279 + "windows_i686_gnullvm 0.53.0", 2280 + "windows_i686_msvc 0.53.0", 2281 + "windows_x86_64_gnu 0.53.0", 2282 + "windows_x86_64_gnullvm 0.53.0", 2283 + "windows_x86_64_msvc 0.53.0", 2284 + ] 2285 + 2286 + [[package]] 2287 + name = "windows_aarch64_gnullvm" 2288 + version = "0.42.2" 2289 + source = "registry+https://github.com/rust-lang/crates.io-index" 2290 + checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" 2291 + 2292 + [[package]] 2293 + name = "windows_aarch64_gnullvm" 2294 + version = "0.48.5" 2295 + source = "registry+https://github.com/rust-lang/crates.io-index" 2296 + checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 2297 + 2298 + [[package]] 2299 + name = "windows_aarch64_gnullvm" 2300 + version = "0.52.6" 2301 + source = "registry+https://github.com/rust-lang/crates.io-index" 2302 + checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 2303 + 2304 + [[package]] 2305 + name = "windows_aarch64_gnullvm" 2306 + version = "0.53.0" 2307 + source = "registry+https://github.com/rust-lang/crates.io-index" 2308 + checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" 2309 + 2310 + [[package]] 2311 + name = "windows_aarch64_msvc" 2312 + version = "0.42.2" 2313 + source = "registry+https://github.com/rust-lang/crates.io-index" 2314 + checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" 2315 + 2316 + [[package]] 2317 + name = "windows_aarch64_msvc" 2318 + version = "0.48.5" 2319 + source = "registry+https://github.com/rust-lang/crates.io-index" 2320 + checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 2321 + 2322 + [[package]] 2323 + name = "windows_aarch64_msvc" 2324 + version = "0.52.6" 2325 + source = "registry+https://github.com/rust-lang/crates.io-index" 2326 + checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 2327 + 2328 + [[package]] 2329 + name = "windows_aarch64_msvc" 2330 + version = "0.53.0" 2331 + source = "registry+https://github.com/rust-lang/crates.io-index" 2332 + checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" 2333 + 2334 + [[package]] 2335 + name = "windows_i686_gnu" 2336 + version = "0.42.2" 2337 + source = "registry+https://github.com/rust-lang/crates.io-index" 2338 + checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" 2339 + 2340 + [[package]] 2341 + name = "windows_i686_gnu" 2342 + version = "0.48.5" 2343 + source = "registry+https://github.com/rust-lang/crates.io-index" 2344 + checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 2345 + 2346 + [[package]] 2347 + name = "windows_i686_gnu" 2348 + version = "0.52.6" 2349 + source = "registry+https://github.com/rust-lang/crates.io-index" 2350 + checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 2351 + 2352 + [[package]] 2353 + name = "windows_i686_gnu" 2354 + version = "0.53.0" 2355 + source = "registry+https://github.com/rust-lang/crates.io-index" 2356 + checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" 2357 + 2358 + [[package]] 2359 + name = "windows_i686_gnullvm" 2360 + version = "0.52.6" 2361 + source = "registry+https://github.com/rust-lang/crates.io-index" 2362 + checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 2363 + 2364 + [[package]] 2365 + name = "windows_i686_gnullvm" 2366 + version = "0.53.0" 2367 + source = "registry+https://github.com/rust-lang/crates.io-index" 2368 + checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" 2369 + 2370 + [[package]] 2371 + name = "windows_i686_msvc" 2372 + version = "0.42.2" 2373 + source = "registry+https://github.com/rust-lang/crates.io-index" 2374 + checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" 2375 + 2376 + [[package]] 2377 + name = "windows_i686_msvc" 2378 + version = "0.48.5" 2379 + source = "registry+https://github.com/rust-lang/crates.io-index" 2380 + checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 2381 + 2382 + [[package]] 2383 + name = "windows_i686_msvc" 2384 + version = "0.52.6" 2385 + source = "registry+https://github.com/rust-lang/crates.io-index" 2386 + checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 2387 + 2388 + [[package]] 2389 + name = "windows_i686_msvc" 2390 + version = "0.53.0" 2391 + source = "registry+https://github.com/rust-lang/crates.io-index" 2392 + checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" 2393 + 2394 + [[package]] 2395 + name = "windows_x86_64_gnu" 2396 + version = "0.42.2" 2397 + source = "registry+https://github.com/rust-lang/crates.io-index" 2398 + checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" 2399 + 2400 + [[package]] 2401 + name = "windows_x86_64_gnu" 2402 + version = "0.48.5" 2403 + source = "registry+https://github.com/rust-lang/crates.io-index" 2404 + checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 2405 + 2406 + [[package]] 2407 + name = "windows_x86_64_gnu" 2408 + version = "0.52.6" 2409 + source = "registry+https://github.com/rust-lang/crates.io-index" 2410 + checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 2411 + 2412 + [[package]] 2413 + name = "windows_x86_64_gnu" 2414 + version = "0.53.0" 2415 + source = "registry+https://github.com/rust-lang/crates.io-index" 2416 + checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" 2417 + 2418 + [[package]] 2419 + name = "windows_x86_64_gnullvm" 2420 + version = "0.42.2" 2421 + source = "registry+https://github.com/rust-lang/crates.io-index" 2422 + checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" 2423 + 2424 + [[package]] 2425 + name = "windows_x86_64_gnullvm" 2426 + version = "0.48.5" 2427 + source = "registry+https://github.com/rust-lang/crates.io-index" 2428 + checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 2429 + 2430 + [[package]] 2431 + name = "windows_x86_64_gnullvm" 2432 + version = "0.52.6" 2433 + source = "registry+https://github.com/rust-lang/crates.io-index" 2434 + checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 2435 + 2436 + [[package]] 2437 + name = "windows_x86_64_gnullvm" 2438 + version = "0.53.0" 2439 + source = "registry+https://github.com/rust-lang/crates.io-index" 2440 + checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" 2441 + 2442 + [[package]] 2443 + name = "windows_x86_64_msvc" 2444 + version = "0.42.2" 2445 + source = "registry+https://github.com/rust-lang/crates.io-index" 2446 + checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" 2447 + 2448 + [[package]] 2449 + name = "windows_x86_64_msvc" 2450 + version = "0.48.5" 2451 + source = "registry+https://github.com/rust-lang/crates.io-index" 2452 + checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 2453 + 2454 + [[package]] 2455 + name = "windows_x86_64_msvc" 2456 + version = "0.52.6" 2457 + source = "registry+https://github.com/rust-lang/crates.io-index" 2458 + checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 2459 + 2460 + [[package]] 2461 + name = "windows_x86_64_msvc" 2462 + version = "0.53.0" 2463 + source = "registry+https://github.com/rust-lang/crates.io-index" 2464 + checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" 2465 + 2466 + [[package]] 2467 + name = "winit" 2468 + version = "0.30.12" 2469 + source = "registry+https://github.com/rust-lang/crates.io-index" 2470 + checksum = "c66d4b9ed69c4009f6321f762d6e61ad8a2389cd431b97cb1e146812e9e6c732" 2471 + dependencies = [ 2472 + "ahash", 2473 + "android-activity", 2474 + "atomic-waker", 2475 + "bitflags 2.9.3", 2476 + "block2", 2477 + "bytemuck", 2478 + "calloop", 2479 + "cfg_aliases 0.2.1", 2480 + "concurrent-queue", 2481 + "core-foundation", 2482 + "core-graphics", 2483 + "cursor-icon", 2484 + "dpi", 2485 + "js-sys", 2486 + "libc", 2487 + "memmap2", 2488 + "ndk", 2489 + "objc2", 2490 + "objc2-app-kit", 2491 + "objc2-foundation", 2492 + "objc2-ui-kit", 2493 + "orbclient", 2494 + "percent-encoding", 2495 + "pin-project", 2496 + "raw-window-handle", 2497 + "redox_syscall 0.4.1", 2498 + "rustix 0.38.44", 2499 + "sctk-adwaita", 2500 + "smithay-client-toolkit", 2501 + "smol_str", 2502 + "tracing", 2503 + "unicode-segmentation", 2504 + "wasm-bindgen", 2505 + "wasm-bindgen-futures", 2506 + "wayland-backend", 2507 + "wayland-client", 2508 + "wayland-protocols", 2509 + "wayland-protocols-plasma", 2510 + "web-sys", 2511 + "web-time", 2512 + "windows-sys 0.52.0", 2513 + "x11-dl", 2514 + "x11rb", 2515 + "xkbcommon-dl", 2516 + ] 2517 + 2518 + [[package]] 2519 + name = "winnow" 2520 + version = "0.7.13" 2521 + source = "registry+https://github.com/rust-lang/crates.io-index" 2522 + checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" 2523 + dependencies = [ 2524 + "memchr", 2525 + ] 2526 + 2527 + [[package]] 2528 + name = "wit-bindgen-rt" 2529 + version = "0.39.0" 2530 + source = "registry+https://github.com/rust-lang/crates.io-index" 2531 + checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" 2532 + dependencies = [ 2533 + "bitflags 2.9.3", 2534 + ] 2535 + 2536 + [[package]] 2537 + name = "x11-dl" 2538 + version = "2.21.0" 2539 + source = "registry+https://github.com/rust-lang/crates.io-index" 2540 + checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" 2541 + dependencies = [ 2542 + "libc", 2543 + "once_cell", 2544 + "pkg-config", 2545 + ] 2546 + 2547 + [[package]] 2548 + name = "x11rb" 2549 + version = "0.13.1" 2550 + source = "registry+https://github.com/rust-lang/crates.io-index" 2551 + checksum = "5d91ffca73ee7f68ce055750bf9f6eca0780b8c85eff9bc046a3b0da41755e12" 2552 + dependencies = [ 2553 + "as-raw-xcb-connection", 2554 + "gethostname", 2555 + "libc", 2556 + "libloading 0.8.8", 2557 + "once_cell", 2558 + "rustix 0.38.44", 2559 + "x11rb-protocol", 2560 + ] 2561 + 2562 + [[package]] 2563 + name = "x11rb-protocol" 2564 + version = "0.13.1" 2565 + source = "registry+https://github.com/rust-lang/crates.io-index" 2566 + checksum = "ec107c4503ea0b4a98ef47356329af139c0a4f7750e621cf2973cd3385ebcb3d" 2567 + 2568 + [[package]] 2569 + name = "xcursor" 2570 + version = "0.3.10" 2571 + source = "registry+https://github.com/rust-lang/crates.io-index" 2572 + checksum = "bec9e4a500ca8864c5b47b8b482a73d62e4237670e5b5f1d6b9e3cae50f28f2b" 2573 + 2574 + [[package]] 2575 + name = "xkbcommon-dl" 2576 + version = "0.4.2" 2577 + source = "registry+https://github.com/rust-lang/crates.io-index" 2578 + checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5" 2579 + dependencies = [ 2580 + "bitflags 2.9.3", 2581 + "dlib", 2582 + "log", 2583 + "once_cell", 2584 + "xkeysym", 2585 + ] 2586 + 2587 + [[package]] 2588 + name = "xkeysym" 2589 + version = "0.2.1" 2590 + source = "registry+https://github.com/rust-lang/crates.io-index" 2591 + checksum = "b9cc00251562a284751c9973bace760d86c0276c471b4be569fe6b068ee97a56" 2592 + 2593 + [[package]] 2594 + name = "xml-rs" 2595 + version = "0.8.27" 2596 + source = "registry+https://github.com/rust-lang/crates.io-index" 2597 + checksum = "6fd8403733700263c6eb89f192880191f1b83e332f7a20371ddcf421c4a337c7" 2598 + 2599 + [[package]] 2600 + name = "zerocopy" 2601 + version = "0.8.26" 2602 + source = "registry+https://github.com/rust-lang/crates.io-index" 2603 + checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" 2604 + dependencies = [ 2605 + "zerocopy-derive", 2606 + ] 2607 + 2608 + [[package]] 2609 + name = "zerocopy-derive" 2610 + version = "0.8.26" 2611 + source = "registry+https://github.com/rust-lang/crates.io-index" 2612 + checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" 2613 + dependencies = [ 2614 + "proc-macro2", 2615 + "quote", 2616 + "syn 2.0.106", 2617 + ]
+15
Cargo.toml
··· 1 + [package] 2 + name = "annoyance" 3 + version = "0.1.0" 4 + edition = "2024" 5 + 6 + [dependencies] 7 + winit = "0.30" 8 + pixels = "0.15" 9 + tokio = { version = "1", features = ["full"] } 10 + ahash = "0.8.12" 11 + tiny-skia = { version = "0.11", default-features = false, features = ["simd", "std"] } 12 + quanta = "0.12.6" 13 + 14 + [target.'cfg(windows)'.dependencies] 15 + winapi = "0.3"
+3
rust-toolchain.toml
··· 1 + [toolchain] 2 + channel = "stable" 3 + components = ["rust-src", "rust-analyzer"]
+369
src/main.rs
··· 1 + use pixels::Pixels; 2 + use quanta::{Clock, Instant}; 3 + use std::collections::HashMap; 4 + use std::sync::Arc; 5 + use std::time::Duration; 6 + use tiny_skia::{Color, *}; 7 + use tokio::sync::mpsc; 8 + use winit::dpi::PhysicalSize; 9 + use winit::platform::windows::WindowAttributesExtWindows; 10 + use winit::{ 11 + application::ApplicationHandler, 12 + event::{ElementState, MouseButton, WindowEvent}, 13 + event_loop::{ActiveEventLoop, ControlFlow, EventLoop}, 14 + window::{Window, WindowAttributes, WindowId, WindowLevel}, 15 + }; 16 + 17 + const BASE_MAX_AGE: Duration = Duration::from_millis(500); // Base lifetime for newest points 18 + const MIN_AGE: Duration = Duration::from_millis(50); // Minimum lifetime for oldest points 19 + const MAX_POINTS_PER_LINE: usize = 1000; // Maximum points to keep per line 20 + const FAST_DECAY_THRESHOLD: usize = 50; // Points beyond this count start decaying faster 21 + 22 + #[derive(Debug, Clone)] 23 + pub struct LaserMessage { 24 + pub x: f32, 25 + pub y: f32, 26 + pub color: [u8; 3], 27 + pub id: u32, 28 + } 29 + 30 + #[derive(Clone)] 31 + struct LaserPoint { 32 + x: f32, 33 + y: f32, 34 + color: [u8; 3], // RGB 35 + created_at: Instant, 36 + } 37 + 38 + impl LaserPoint { 39 + fn new(msg: LaserMessage, now: Instant) -> Self { 40 + Self { 41 + x: msg.x, 42 + y: msg.y, 43 + color: msg.color, 44 + created_at: now, 45 + } 46 + } 47 + } 48 + 49 + pub struct LaserOverlay { 50 + window: Option<Arc<Window>>, 51 + pixels: Option<Pixels<'static>>, 52 + laser_points: HashMap<u32, Vec<LaserPoint>, ahash::RandomState>, 53 + rx: mpsc::Receiver<LaserMessage>, 54 + tx: mpsc::Sender<LaserMessage>, 55 + width: u32, 56 + height: u32, 57 + last_render: Instant, 58 + clock: Clock, 59 + // Mouse state 60 + mouse_pressed: bool, 61 + mouse_pos: (f32, f32), 62 + current_line_id: u32, 63 + next_line_id: u32, 64 + } 65 + 66 + impl LaserOverlay { 67 + pub fn new() -> (Self, mpsc::Sender<LaserMessage>) { 68 + let (tx, rx) = mpsc::channel(512); 69 + let clock = Clock::new(); 70 + let this = Self { 71 + window: None, 72 + pixels: None, 73 + laser_points: Default::default(), 74 + rx, 75 + tx: tx.clone(), 76 + width: 1920, 77 + height: 1080, 78 + last_render: clock.now(), 79 + clock, 80 + mouse_pressed: false, 81 + mouse_pos: (0.0, 0.0), 82 + current_line_id: 0, 83 + next_line_id: 1, 84 + }; 85 + (this, tx) 86 + } 87 + 88 + pub fn init_graphics(&mut self, window: Arc<Window>) { 89 + let window_size = window.inner_size(); 90 + self.width = window_size.width; 91 + self.height = window_size.height; 92 + 93 + let surface = pixels::SurfaceTexture::new(self.width, self.height, window.clone()); 94 + let pixels = pixels::PixelsBuilder::new(self.width, self.height, surface) 95 + .build() 96 + .unwrap(); 97 + 98 + self.pixels = Some(pixels); 99 + self.window = Some(window); 100 + } 101 + 102 + fn handle_mouse_press(&mut self, position: (f32, f32)) { 103 + self.mouse_pressed = true; 104 + self.mouse_pos = position; 105 + self.current_line_id = self.next_line_id; 106 + self.next_line_id += 1; 107 + 108 + // Send initial point 109 + let _ = self.tx.try_send(LaserMessage { 110 + x: position.0, 111 + y: position.1, 112 + color: [255, 0, 0], // Red laser 113 + id: self.current_line_id, 114 + }); 115 + } 116 + 117 + fn handle_mouse_move(&mut self, position: (f32, f32)) { 118 + if self.mouse_pressed { 119 + // Only add point if mouse moved enough to avoid too many points 120 + let dx = position.0 - self.mouse_pos.0; 121 + let dy = position.1 - self.mouse_pos.1; 122 + let distance = (dx * dx + dy * dy).sqrt(); 123 + 124 + if distance > 3.0 { 125 + // Minimum distance threshold 126 + self.mouse_pos = position; 127 + let _ = self.tx.try_send(LaserMessage { 128 + x: position.0, 129 + y: position.1, 130 + color: [255, 0, 0], // Red laser 131 + id: self.current_line_id, 132 + }); 133 + } 134 + } 135 + } 136 + 137 + fn handle_mouse_release(&mut self) { 138 + self.mouse_pressed = false; 139 + } 140 + 141 + fn calculate_point_max_age(point_index: usize, total_points: usize) -> Duration { 142 + if total_points <= FAST_DECAY_THRESHOLD { 143 + // If we have few points, use base aging for all 144 + return BASE_MAX_AGE; 145 + } 146 + 147 + // Points are ordered oldest first (index 0) to newest last 148 + // Older points (lower indices) should have shorter lifespans 149 + 150 + if point_index < FAST_DECAY_THRESHOLD { 151 + // These are the "far away" points that should decay faster 152 + // Create a gradient from MIN_AGE (oldest) to BASE_MAX_AGE (at threshold) 153 + let progress = point_index as f32 / FAST_DECAY_THRESHOLD as f32; 154 + let age_range = BASE_MAX_AGE.as_millis() - MIN_AGE.as_millis(); 155 + let calculated_age = MIN_AGE.as_millis() + (age_range as f32 * progress) as u128; 156 + Duration::from_millis(calculated_age as u64) 157 + } else { 158 + // Recent points get full lifespan 159 + BASE_MAX_AGE 160 + } 161 + } 162 + 163 + fn ingest_points(&mut self) { 164 + let now = self.clock.now(); 165 + 166 + // Clean up old points with variable aging 167 + for (_, points) in self.laser_points.iter_mut() { 168 + let original_len = points.len(); 169 + 170 + // Create a new vector with points that should be kept 171 + let mut new_points = Vec::with_capacity(points.len()); 172 + for (index, point) in points.iter().enumerate() { 173 + let max_age = Self::calculate_point_max_age(index, original_len); 174 + if now.duration_since(point.created_at) < max_age { 175 + new_points.push(point.clone()); 176 + } 177 + } 178 + *points = new_points; 179 + 180 + // Also enforce maximum point limit by removing oldest points 181 + if points.len() > MAX_POINTS_PER_LINE { 182 + let excess = points.len() - MAX_POINTS_PER_LINE; 183 + points.drain(0..excess); 184 + } 185 + } 186 + 187 + // Remove empty lines 188 + self.laser_points.retain(|_, points| !points.is_empty()); 189 + 190 + // Add new points 191 + while let Ok(msg) = self.rx.try_recv() { 192 + self.laser_points 193 + .entry(msg.id) 194 + .or_default() 195 + .push(LaserPoint::new(msg, self.clock.now())); 196 + } 197 + } 198 + 199 + fn draw_tapering_laser_line(pixmap: &mut PixmapMut, points: &[LaserPoint], now: Instant) { 200 + if points.len() < 2 { 201 + return; 202 + } 203 + 204 + Self::draw_with_multiple_strokes(pixmap, points, now); 205 + } 206 + 207 + fn draw_with_multiple_strokes(pixmap: &mut PixmapMut, points: &[LaserPoint], now: Instant) { 208 + let max_width = 8.0; 209 + let min_width = 0.5; 210 + 211 + // Use chunks to create line segments from consecutive points 212 + for (i, chunk) in points.windows(2).enumerate() { 213 + let current = &chunk[0]; 214 + let next = &chunk[1]; 215 + 216 + // Calculate thickness based on position in line 217 + // i=0 (oldest) should be thinnest, i=len-1 (newest) should be thickest 218 + let progress = i as f32 / (points.len() - 2) as f32; // -2 because windows(2) has len-1 elements 219 + let width = min_width + (max_width - min_width) * progress; 220 + 221 + // Calculate alpha based on age and position for smoother fading 222 + let point_index = i; 223 + let max_age = Self::calculate_point_max_age(point_index, points.len()); 224 + let age = now.duration_since(current.created_at); 225 + let age_progress = age.as_millis() as f32 / max_age.as_millis() as f32; 226 + let alpha = (255.0 * (1.0 - age_progress.clamp(0.0, 1.0))) as u8; 227 + 228 + // Create path for this single segment 229 + let mut pb = PathBuilder::new(); 230 + pb.move_to(current.x, current.y); 231 + pb.line_to(next.x, next.y); 232 + 233 + if let Some(path) = pb.finish() { 234 + // Main stroke with calculated alpha 235 + let mut paint = Paint::default(); 236 + paint.set_color_rgba8( 237 + next.color[0], 238 + next.color[1], 239 + next.color[2], 240 + alpha.max(10), // Ensure minimum visibility 241 + ); 242 + paint.anti_alias = true; 243 + 244 + let mut stroke = Stroke::default(); 245 + stroke.width = width; 246 + stroke.line_cap = LineCap::Round; 247 + stroke.line_join = LineJoin::Round; 248 + 249 + pixmap.stroke_path(&path, &paint, &stroke, Transform::identity(), None); 250 + } 251 + } 252 + } 253 + 254 + pub fn render(&mut self) { 255 + let Some(pixels) = self.pixels.as_mut() else { 256 + return; 257 + }; 258 + 259 + let frame = pixels.frame_mut(); 260 + 261 + // Create tiny-skia pixmap from the frame buffer 262 + if let Some(mut pixmap) = PixmapMut::from_bytes(frame, self.width, self.height) { 263 + // Clear to transparent 264 + pixmap.fill(Color::TRANSPARENT); 265 + 266 + // Draw all laser lines 267 + for points in self.laser_points.values() { 268 + Self::draw_tapering_laser_line(&mut pixmap, points, self.clock.now()); 269 + } 270 + } 271 + 272 + if let Some(window) = self.window.as_ref() { 273 + window.pre_present_notify(); 274 + } 275 + 276 + // Render to screen 277 + if let Err(err) = pixels.render() { 278 + eprintln!("Render error: {err}"); 279 + } 280 + 281 + self.last_render = self.clock.now(); 282 + } 283 + } 284 + 285 + impl ApplicationHandler for LaserOverlay { 286 + fn resumed(&mut self, event_loop: &ActiveEventLoop) { 287 + let window_attributes = WindowAttributes::default() 288 + .with_title("Laser Overlay") 289 + .with_transparent(true) 290 + .with_decorations(true) 291 + .with_skip_taskbar(false) 292 + .with_window_level(WindowLevel::AlwaysOnTop) 293 + .with_inner_size(PhysicalSize::new(800, 600)); 294 + 295 + let window = event_loop.create_window(window_attributes).unwrap(); 296 + let _ = window.set_cursor_hittest(true); 297 + 298 + self.init_graphics(window.into()); 299 + } 300 + 301 + fn window_event( 302 + &mut self, 303 + event_loop: &ActiveEventLoop, 304 + _window_id: WindowId, 305 + event: WindowEvent, 306 + ) { 307 + match event { 308 + WindowEvent::CloseRequested => { 309 + event_loop.exit(); 310 + return; 311 + } 312 + WindowEvent::MouseInput { state, button, .. } => { 313 + if button == MouseButton::Left { 314 + match state { 315 + ElementState::Pressed => { 316 + self.handle_mouse_press(self.mouse_pos); 317 + } 318 + ElementState::Released => { 319 + self.handle_mouse_release(); 320 + } 321 + } 322 + } 323 + } 324 + WindowEvent::CursorMoved { position, .. } => { 325 + let pos = (position.x as f32, position.y as f32); 326 + self.handle_mouse_move(pos); 327 + // Always update mouse position for when clicking starts 328 + if !self.mouse_pressed { 329 + self.mouse_pos = pos; 330 + } 331 + } 332 + WindowEvent::RedrawRequested if self.last_render.elapsed().as_millis() >= 16 => { 333 + self.ingest_points(); 334 + self.render(); 335 + } 336 + _ => {} 337 + } 338 + 339 + // Request redraw if mouse is pressed (for continuous drawing) 340 + if self.mouse_pressed { 341 + if let Some(window) = self.window.as_ref() { 342 + window.request_redraw(); 343 + } 344 + } 345 + 346 + match event_loop.control_flow() { 347 + ControlFlow::WaitUntil(instant) if instant.elapsed().as_millis() >= 16 => { 348 + event_loop.set_control_flow(ControlFlow::wait_duration(Duration::from_millis(16))); 349 + } 350 + _ => {} 351 + } 352 + } 353 + } 354 + 355 + // Example usage 356 + pub async fn run_laser_overlay() -> Result<(), Box<dyn std::error::Error>> { 357 + let event_loop = EventLoop::new()?; 358 + event_loop.set_control_flow(ControlFlow::wait_duration(Duration::from_millis(16))); 359 + 360 + let (mut app, _tx) = LaserOverlay::new(); 361 + 362 + event_loop.run_app(&mut app)?; 363 + Ok(()) 364 + } 365 + 366 + #[tokio::main] 367 + async fn main() -> Result<(), Box<dyn std::error::Error>> { 368 + run_laser_overlay().await 369 + }