├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── LICENSE.md ├── README.md ├── clippy.toml ├── examples ├── desktop.rs ├── nested_store.rs ├── props.rs ├── pub.rs ├── pub_store.rs ├── readme.rs └── resource.rs ├── justfile ├── rustfmt.toml ├── src └── lib.rs └── taplo.toml /.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | -------------------------------------------------------------------------------- /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 = "addr2line" 7 | version = "0.24.2" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" 10 | dependencies = [ 11 | "gimli", 12 | ] 13 | 14 | [[package]] 15 | name = "adler2" 16 | version = "2.0.0" 17 | source = "registry+https://github.com/rust-lang/crates.io-index" 18 | checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" 19 | 20 | [[package]] 21 | name = "aho-corasick" 22 | version = "1.1.3" 23 | source = "registry+https://github.com/rust-lang/crates.io-index" 24 | checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" 25 | dependencies = [ 26 | "memchr", 27 | ] 28 | 29 | [[package]] 30 | name = "ashpd" 31 | version = "0.8.1" 32 | source = "registry+https://github.com/rust-lang/crates.io-index" 33 | checksum = "dd884d7c72877a94102c3715f3b1cd09ff4fac28221add3e57cfbe25c236d093" 34 | dependencies = [ 35 | "enumflags2", 36 | "futures-channel", 37 | "futures-util", 38 | "rand 0.8.5", 39 | "serde", 40 | "serde_repr", 41 | "tokio", 42 | "url", 43 | "zbus", 44 | ] 45 | 46 | [[package]] 47 | name = "async-broadcast" 48 | version = "0.7.2" 49 | source = "registry+https://github.com/rust-lang/crates.io-index" 50 | checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" 51 | dependencies = [ 52 | "event-listener", 53 | "event-listener-strategy", 54 | "futures-core", 55 | "pin-project-lite", 56 | ] 57 | 58 | [[package]] 59 | name = "async-channel" 60 | version = "2.3.1" 61 | source = "registry+https://github.com/rust-lang/crates.io-index" 62 | checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" 63 | dependencies = [ 64 | "concurrent-queue", 65 | "event-listener-strategy", 66 | "futures-core", 67 | "pin-project-lite", 68 | ] 69 | 70 | [[package]] 71 | name = "async-io" 72 | version = "2.4.0" 73 | source = "registry+https://github.com/rust-lang/crates.io-index" 74 | checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059" 75 | dependencies = [ 76 | "async-lock", 77 | "cfg-if", 78 | "concurrent-queue", 79 | "futures-io", 80 | "futures-lite", 81 | "parking", 82 | "polling", 83 | "rustix 0.38.44", 84 | "slab", 85 | "tracing", 86 | "windows-sys 0.59.0", 87 | ] 88 | 89 | [[package]] 90 | name = "async-lock" 91 | version = "3.4.0" 92 | source = "registry+https://github.com/rust-lang/crates.io-index" 93 | checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" 94 | dependencies = [ 95 | "event-listener", 96 | "event-listener-strategy", 97 | "pin-project-lite", 98 | ] 99 | 100 | [[package]] 101 | name = "async-process" 102 | version = "2.3.0" 103 | source = "registry+https://github.com/rust-lang/crates.io-index" 104 | checksum = "63255f1dc2381611000436537bbedfe83183faa303a5a0edaf191edef06526bb" 105 | dependencies = [ 106 | "async-channel", 107 | "async-io", 108 | "async-lock", 109 | "async-signal", 110 | "async-task", 111 | "blocking", 112 | "cfg-if", 113 | "event-listener", 114 | "futures-lite", 115 | "rustix 0.38.44", 116 | "tracing", 117 | ] 118 | 119 | [[package]] 120 | name = "async-recursion" 121 | version = "1.1.1" 122 | source = "registry+https://github.com/rust-lang/crates.io-index" 123 | checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" 124 | dependencies = [ 125 | "proc-macro2", 126 | "quote", 127 | "syn 2.0.100", 128 | ] 129 | 130 | [[package]] 131 | name = "async-signal" 132 | version = "0.2.10" 133 | source = "registry+https://github.com/rust-lang/crates.io-index" 134 | checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3" 135 | dependencies = [ 136 | "async-io", 137 | "async-lock", 138 | "atomic-waker", 139 | "cfg-if", 140 | "futures-core", 141 | "futures-io", 142 | "rustix 0.38.44", 143 | "signal-hook-registry", 144 | "slab", 145 | "windows-sys 0.59.0", 146 | ] 147 | 148 | [[package]] 149 | name = "async-task" 150 | version = "4.7.1" 151 | source = "registry+https://github.com/rust-lang/crates.io-index" 152 | checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" 153 | 154 | [[package]] 155 | name = "async-trait" 156 | version = "0.1.88" 157 | source = "registry+https://github.com/rust-lang/crates.io-index" 158 | checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" 159 | dependencies = [ 160 | "proc-macro2", 161 | "quote", 162 | "syn 2.0.100", 163 | ] 164 | 165 | [[package]] 166 | name = "atk" 167 | version = "0.18.2" 168 | source = "registry+https://github.com/rust-lang/crates.io-index" 169 | checksum = "241b621213072e993be4f6f3a9e4b45f65b7e6faad43001be957184b7bb1824b" 170 | dependencies = [ 171 | "atk-sys", 172 | "glib", 173 | "libc", 174 | ] 175 | 176 | [[package]] 177 | name = "atk-sys" 178 | version = "0.18.2" 179 | source = "registry+https://github.com/rust-lang/crates.io-index" 180 | checksum = "c5e48b684b0ca77d2bbadeef17424c2ea3c897d44d566a1617e7e8f30614d086" 181 | dependencies = [ 182 | "glib-sys", 183 | "gobject-sys", 184 | "libc", 185 | "system-deps", 186 | ] 187 | 188 | [[package]] 189 | name = "atomic-waker" 190 | version = "1.1.2" 191 | source = "registry+https://github.com/rust-lang/crates.io-index" 192 | checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" 193 | 194 | [[package]] 195 | name = "autocfg" 196 | version = "1.4.0" 197 | source = "registry+https://github.com/rust-lang/crates.io-index" 198 | checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" 199 | 200 | [[package]] 201 | name = "backtrace" 202 | version = "0.3.74" 203 | source = "registry+https://github.com/rust-lang/crates.io-index" 204 | checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" 205 | dependencies = [ 206 | "addr2line", 207 | "cfg-if", 208 | "libc", 209 | "miniz_oxide", 210 | "object", 211 | "rustc-demangle", 212 | "windows-targets 0.52.6", 213 | ] 214 | 215 | [[package]] 216 | name = "base64" 217 | version = "0.22.1" 218 | source = "registry+https://github.com/rust-lang/crates.io-index" 219 | checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 220 | 221 | [[package]] 222 | name = "bitflags" 223 | version = "1.3.2" 224 | source = "registry+https://github.com/rust-lang/crates.io-index" 225 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 226 | 227 | [[package]] 228 | name = "bitflags" 229 | version = "2.9.0" 230 | source = "registry+https://github.com/rust-lang/crates.io-index" 231 | checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" 232 | dependencies = [ 233 | "serde", 234 | ] 235 | 236 | [[package]] 237 | name = "block" 238 | version = "0.1.6" 239 | source = "registry+https://github.com/rust-lang/crates.io-index" 240 | checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" 241 | 242 | [[package]] 243 | name = "block-buffer" 244 | version = "0.10.4" 245 | source = "registry+https://github.com/rust-lang/crates.io-index" 246 | checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 247 | dependencies = [ 248 | "generic-array", 249 | ] 250 | 251 | [[package]] 252 | name = "block2" 253 | version = "0.5.1" 254 | source = "registry+https://github.com/rust-lang/crates.io-index" 255 | checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" 256 | dependencies = [ 257 | "objc2 0.5.2", 258 | ] 259 | 260 | [[package]] 261 | name = "block2" 262 | version = "0.6.0" 263 | source = "registry+https://github.com/rust-lang/crates.io-index" 264 | checksum = "1d59b4c170e16f0405a2e95aff44432a0d41aa97675f3d52623effe95792a037" 265 | dependencies = [ 266 | "objc2 0.6.0", 267 | ] 268 | 269 | [[package]] 270 | name = "blocking" 271 | version = "1.6.1" 272 | source = "registry+https://github.com/rust-lang/crates.io-index" 273 | checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" 274 | dependencies = [ 275 | "async-channel", 276 | "async-task", 277 | "futures-io", 278 | "futures-lite", 279 | "piper", 280 | ] 281 | 282 | [[package]] 283 | name = "bumpalo" 284 | version = "3.17.0" 285 | source = "registry+https://github.com/rust-lang/crates.io-index" 286 | checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" 287 | 288 | [[package]] 289 | name = "byteorder" 290 | version = "1.5.0" 291 | source = "registry+https://github.com/rust-lang/crates.io-index" 292 | checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 293 | 294 | [[package]] 295 | name = "bytes" 296 | version = "1.10.1" 297 | source = "registry+https://github.com/rust-lang/crates.io-index" 298 | checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" 299 | 300 | [[package]] 301 | name = "cairo-rs" 302 | version = "0.18.5" 303 | source = "registry+https://github.com/rust-lang/crates.io-index" 304 | checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" 305 | dependencies = [ 306 | "bitflags 2.9.0", 307 | "cairo-sys-rs", 308 | "glib", 309 | "libc", 310 | "once_cell", 311 | "thiserror 1.0.69", 312 | ] 313 | 314 | [[package]] 315 | name = "cairo-sys-rs" 316 | version = "0.18.2" 317 | source = "registry+https://github.com/rust-lang/crates.io-index" 318 | checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51" 319 | dependencies = [ 320 | "glib-sys", 321 | "libc", 322 | "system-deps", 323 | ] 324 | 325 | [[package]] 326 | name = "cc" 327 | version = "1.2.19" 328 | source = "registry+https://github.com/rust-lang/crates.io-index" 329 | checksum = "8e3a13707ac958681c13b39b458c073d0d9bc8a22cb1b2f4c8e55eb72c13f362" 330 | dependencies = [ 331 | "shlex", 332 | ] 333 | 334 | [[package]] 335 | name = "cesu8" 336 | version = "1.1.0" 337 | source = "registry+https://github.com/rust-lang/crates.io-index" 338 | checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" 339 | 340 | [[package]] 341 | name = "cfb" 342 | version = "0.7.3" 343 | source = "registry+https://github.com/rust-lang/crates.io-index" 344 | checksum = "d38f2da7a0a2c4ccf0065be06397cc26a81f4e528be095826eee9d4adbb8c60f" 345 | dependencies = [ 346 | "byteorder", 347 | "fnv", 348 | "uuid", 349 | ] 350 | 351 | [[package]] 352 | name = "cfg-expr" 353 | version = "0.15.8" 354 | source = "registry+https://github.com/rust-lang/crates.io-index" 355 | checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" 356 | dependencies = [ 357 | "smallvec", 358 | "target-lexicon", 359 | ] 360 | 361 | [[package]] 362 | name = "cfg-if" 363 | version = "1.0.0" 364 | source = "registry+https://github.com/rust-lang/crates.io-index" 365 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 366 | 367 | [[package]] 368 | name = "ciborium" 369 | version = "0.2.2" 370 | source = "registry+https://github.com/rust-lang/crates.io-index" 371 | checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" 372 | dependencies = [ 373 | "ciborium-io", 374 | "ciborium-ll", 375 | "serde", 376 | ] 377 | 378 | [[package]] 379 | name = "ciborium-io" 380 | version = "0.2.2" 381 | source = "registry+https://github.com/rust-lang/crates.io-index" 382 | checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" 383 | 384 | [[package]] 385 | name = "ciborium-ll" 386 | version = "0.2.2" 387 | source = "registry+https://github.com/rust-lang/crates.io-index" 388 | checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" 389 | dependencies = [ 390 | "ciborium-io", 391 | "half", 392 | ] 393 | 394 | [[package]] 395 | name = "cocoa" 396 | version = "0.25.0" 397 | source = "registry+https://github.com/rust-lang/crates.io-index" 398 | checksum = "f6140449f97a6e97f9511815c5632d84c8aacf8ac271ad77c559218161a1373c" 399 | dependencies = [ 400 | "bitflags 1.3.2", 401 | "block", 402 | "cocoa-foundation 0.1.2", 403 | "core-foundation 0.9.4", 404 | "core-graphics 0.23.2", 405 | "foreign-types 0.5.0", 406 | "libc", 407 | "objc", 408 | ] 409 | 410 | [[package]] 411 | name = "cocoa" 412 | version = "0.26.0" 413 | source = "registry+https://github.com/rust-lang/crates.io-index" 414 | checksum = "f79398230a6e2c08f5c9760610eb6924b52aa9e7950a619602baba59dcbbdbb2" 415 | dependencies = [ 416 | "bitflags 2.9.0", 417 | "block", 418 | "cocoa-foundation 0.2.0", 419 | "core-foundation 0.10.0", 420 | "core-graphics 0.24.0", 421 | "foreign-types 0.5.0", 422 | "libc", 423 | "objc", 424 | ] 425 | 426 | [[package]] 427 | name = "cocoa-foundation" 428 | version = "0.1.2" 429 | source = "registry+https://github.com/rust-lang/crates.io-index" 430 | checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7" 431 | dependencies = [ 432 | "bitflags 1.3.2", 433 | "block", 434 | "core-foundation 0.9.4", 435 | "core-graphics-types 0.1.3", 436 | "libc", 437 | "objc", 438 | ] 439 | 440 | [[package]] 441 | name = "cocoa-foundation" 442 | version = "0.2.0" 443 | source = "registry+https://github.com/rust-lang/crates.io-index" 444 | checksum = "e14045fb83be07b5acf1c0884b2180461635b433455fa35d1cd6f17f1450679d" 445 | dependencies = [ 446 | "bitflags 2.9.0", 447 | "block", 448 | "core-foundation 0.10.0", 449 | "core-graphics-types 0.2.0", 450 | "libc", 451 | "objc", 452 | ] 453 | 454 | [[package]] 455 | name = "combine" 456 | version = "4.6.7" 457 | source = "registry+https://github.com/rust-lang/crates.io-index" 458 | checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" 459 | dependencies = [ 460 | "bytes", 461 | "memchr", 462 | ] 463 | 464 | [[package]] 465 | name = "concurrent-queue" 466 | version = "2.5.0" 467 | source = "registry+https://github.com/rust-lang/crates.io-index" 468 | checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" 469 | dependencies = [ 470 | "crossbeam-utils", 471 | ] 472 | 473 | [[package]] 474 | name = "console_error_panic_hook" 475 | version = "0.1.7" 476 | source = "registry+https://github.com/rust-lang/crates.io-index" 477 | checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" 478 | dependencies = [ 479 | "cfg-if", 480 | "wasm-bindgen", 481 | ] 482 | 483 | [[package]] 484 | name = "const-serialize" 485 | version = "0.6.2" 486 | source = "registry+https://github.com/rust-lang/crates.io-index" 487 | checksum = "08259976d62c715c4826cb4a3d64a3a9e5c5f68f964ff6087319857f569f93a6" 488 | dependencies = [ 489 | "const-serialize-macro", 490 | "serde", 491 | ] 492 | 493 | [[package]] 494 | name = "const-serialize-macro" 495 | version = "0.6.2" 496 | source = "registry+https://github.com/rust-lang/crates.io-index" 497 | checksum = "04382d0d9df7434af6b1b49ea1a026ef39df1b0738b1cc373368cf175354f6eb" 498 | dependencies = [ 499 | "proc-macro2", 500 | "quote", 501 | "syn 2.0.100", 502 | ] 503 | 504 | [[package]] 505 | name = "const_format" 506 | version = "0.2.34" 507 | source = "registry+https://github.com/rust-lang/crates.io-index" 508 | checksum = "126f97965c8ad46d6d9163268ff28432e8f6a1196a55578867832e3049df63dd" 509 | dependencies = [ 510 | "const_format_proc_macros", 511 | ] 512 | 513 | [[package]] 514 | name = "const_format_proc_macros" 515 | version = "0.2.34" 516 | source = "registry+https://github.com/rust-lang/crates.io-index" 517 | checksum = "1d57c2eccfb16dbac1f4e61e206105db5820c9d26c3c472bc17c774259ef7744" 518 | dependencies = [ 519 | "proc-macro2", 520 | "quote", 521 | "unicode-xid", 522 | ] 523 | 524 | [[package]] 525 | name = "convert_case" 526 | version = "0.4.0" 527 | source = "registry+https://github.com/rust-lang/crates.io-index" 528 | checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" 529 | 530 | [[package]] 531 | name = "convert_case" 532 | version = "0.6.0" 533 | source = "registry+https://github.com/rust-lang/crates.io-index" 534 | checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" 535 | dependencies = [ 536 | "unicode-segmentation", 537 | ] 538 | 539 | [[package]] 540 | name = "core-foundation" 541 | version = "0.9.4" 542 | source = "registry+https://github.com/rust-lang/crates.io-index" 543 | checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" 544 | dependencies = [ 545 | "core-foundation-sys", 546 | "libc", 547 | ] 548 | 549 | [[package]] 550 | name = "core-foundation" 551 | version = "0.10.0" 552 | source = "registry+https://github.com/rust-lang/crates.io-index" 553 | checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" 554 | dependencies = [ 555 | "core-foundation-sys", 556 | "libc", 557 | ] 558 | 559 | [[package]] 560 | name = "core-foundation-sys" 561 | version = "0.8.7" 562 | source = "registry+https://github.com/rust-lang/crates.io-index" 563 | checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 564 | 565 | [[package]] 566 | name = "core-graphics" 567 | version = "0.23.2" 568 | source = "registry+https://github.com/rust-lang/crates.io-index" 569 | checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" 570 | dependencies = [ 571 | "bitflags 1.3.2", 572 | "core-foundation 0.9.4", 573 | "core-graphics-types 0.1.3", 574 | "foreign-types 0.5.0", 575 | "libc", 576 | ] 577 | 578 | [[package]] 579 | name = "core-graphics" 580 | version = "0.24.0" 581 | source = "registry+https://github.com/rust-lang/crates.io-index" 582 | checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1" 583 | dependencies = [ 584 | "bitflags 2.9.0", 585 | "core-foundation 0.10.0", 586 | "core-graphics-types 0.2.0", 587 | "foreign-types 0.5.0", 588 | "libc", 589 | ] 590 | 591 | [[package]] 592 | name = "core-graphics-types" 593 | version = "0.1.3" 594 | source = "registry+https://github.com/rust-lang/crates.io-index" 595 | checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" 596 | dependencies = [ 597 | "bitflags 1.3.2", 598 | "core-foundation 0.9.4", 599 | "libc", 600 | ] 601 | 602 | [[package]] 603 | name = "core-graphics-types" 604 | version = "0.2.0" 605 | source = "registry+https://github.com/rust-lang/crates.io-index" 606 | checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" 607 | dependencies = [ 608 | "bitflags 2.9.0", 609 | "core-foundation 0.10.0", 610 | "libc", 611 | ] 612 | 613 | [[package]] 614 | name = "cpufeatures" 615 | version = "0.2.17" 616 | source = "registry+https://github.com/rust-lang/crates.io-index" 617 | checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" 618 | dependencies = [ 619 | "libc", 620 | ] 621 | 622 | [[package]] 623 | name = "crc32fast" 624 | version = "1.4.2" 625 | source = "registry+https://github.com/rust-lang/crates.io-index" 626 | checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" 627 | dependencies = [ 628 | "cfg-if", 629 | ] 630 | 631 | [[package]] 632 | name = "crossbeam-channel" 633 | version = "0.5.15" 634 | source = "registry+https://github.com/rust-lang/crates.io-index" 635 | checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" 636 | dependencies = [ 637 | "crossbeam-utils", 638 | ] 639 | 640 | [[package]] 641 | name = "crossbeam-utils" 642 | version = "0.8.21" 643 | source = "registry+https://github.com/rust-lang/crates.io-index" 644 | checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" 645 | 646 | [[package]] 647 | name = "crunchy" 648 | version = "0.2.3" 649 | source = "registry+https://github.com/rust-lang/crates.io-index" 650 | checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" 651 | 652 | [[package]] 653 | name = "crypto-common" 654 | version = "0.1.6" 655 | source = "registry+https://github.com/rust-lang/crates.io-index" 656 | checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 657 | dependencies = [ 658 | "generic-array", 659 | "typenum", 660 | ] 661 | 662 | [[package]] 663 | name = "cssparser" 664 | version = "0.27.2" 665 | source = "registry+https://github.com/rust-lang/crates.io-index" 666 | checksum = "754b69d351cdc2d8ee09ae203db831e005560fc6030da058f86ad60c92a9cb0a" 667 | dependencies = [ 668 | "cssparser-macros", 669 | "dtoa-short", 670 | "itoa 0.4.8", 671 | "matches", 672 | "phf 0.8.0", 673 | "proc-macro2", 674 | "quote", 675 | "smallvec", 676 | "syn 1.0.109", 677 | ] 678 | 679 | [[package]] 680 | name = "cssparser-macros" 681 | version = "0.6.1" 682 | source = "registry+https://github.com/rust-lang/crates.io-index" 683 | checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" 684 | dependencies = [ 685 | "quote", 686 | "syn 2.0.100", 687 | ] 688 | 689 | [[package]] 690 | name = "darling" 691 | version = "0.20.11" 692 | source = "registry+https://github.com/rust-lang/crates.io-index" 693 | checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" 694 | dependencies = [ 695 | "darling_core", 696 | "darling_macro", 697 | ] 698 | 699 | [[package]] 700 | name = "darling_core" 701 | version = "0.20.11" 702 | source = "registry+https://github.com/rust-lang/crates.io-index" 703 | checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" 704 | dependencies = [ 705 | "fnv", 706 | "ident_case", 707 | "proc-macro2", 708 | "quote", 709 | "syn 2.0.100", 710 | ] 711 | 712 | [[package]] 713 | name = "darling_macro" 714 | version = "0.20.11" 715 | source = "registry+https://github.com/rust-lang/crates.io-index" 716 | checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" 717 | dependencies = [ 718 | "darling_core", 719 | "quote", 720 | "syn 2.0.100", 721 | ] 722 | 723 | [[package]] 724 | name = "dashmap" 725 | version = "5.5.3" 726 | source = "registry+https://github.com/rust-lang/crates.io-index" 727 | checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" 728 | dependencies = [ 729 | "cfg-if", 730 | "hashbrown 0.14.5", 731 | "lock_api", 732 | "once_cell", 733 | "parking_lot_core", 734 | ] 735 | 736 | [[package]] 737 | name = "data-encoding" 738 | version = "2.9.0" 739 | source = "registry+https://github.com/rust-lang/crates.io-index" 740 | checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" 741 | 742 | [[package]] 743 | name = "derivative" 744 | version = "2.2.0" 745 | source = "registry+https://github.com/rust-lang/crates.io-index" 746 | checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" 747 | dependencies = [ 748 | "proc-macro2", 749 | "quote", 750 | "syn 1.0.109", 751 | ] 752 | 753 | [[package]] 754 | name = "derive_more" 755 | version = "0.99.19" 756 | source = "registry+https://github.com/rust-lang/crates.io-index" 757 | checksum = "3da29a38df43d6f156149c9b43ded5e018ddff2a855cf2cfd62e8cd7d079c69f" 758 | dependencies = [ 759 | "convert_case 0.4.0", 760 | "proc-macro2", 761 | "quote", 762 | "rustc_version", 763 | "syn 2.0.100", 764 | ] 765 | 766 | [[package]] 767 | name = "digest" 768 | version = "0.10.7" 769 | source = "registry+https://github.com/rust-lang/crates.io-index" 770 | checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 771 | dependencies = [ 772 | "block-buffer", 773 | "crypto-common", 774 | ] 775 | 776 | [[package]] 777 | name = "dioxus" 778 | version = "0.6.3" 779 | source = "registry+https://github.com/rust-lang/crates.io-index" 780 | checksum = "60a247114500f1a78e87022defa8173de847accfada8e8809dfae23a118a580c" 781 | dependencies = [ 782 | "dioxus-cli-config", 783 | "dioxus-config-macro", 784 | "dioxus-core", 785 | "dioxus-core-macro", 786 | "dioxus-desktop", 787 | "dioxus-devtools", 788 | "dioxus-document", 789 | "dioxus-fullstack", 790 | "dioxus-history", 791 | "dioxus-hooks", 792 | "dioxus-html", 793 | "dioxus-logger", 794 | "dioxus-signals", 795 | "dioxus-web", 796 | "manganis", 797 | "warnings", 798 | ] 799 | 800 | [[package]] 801 | name = "dioxus-cli-config" 802 | version = "0.6.3" 803 | source = "registry+https://github.com/rust-lang/crates.io-index" 804 | checksum = "cdd16948f1ffdb068dd9a64812158073a4250e2af4e98ea31fdac0312e6bce86" 805 | dependencies = [ 806 | "wasm-bindgen", 807 | ] 808 | 809 | [[package]] 810 | name = "dioxus-config-macro" 811 | version = "0.6.2" 812 | source = "registry+https://github.com/rust-lang/crates.io-index" 813 | checksum = "75cbf582fbb1c32d34a1042ea675469065574109c95154468710a4d73ee98b49" 814 | dependencies = [ 815 | "proc-macro2", 816 | "quote", 817 | ] 818 | 819 | [[package]] 820 | name = "dioxus-core" 821 | version = "0.6.3" 822 | source = "registry+https://github.com/rust-lang/crates.io-index" 823 | checksum = "9c03f451a119e47433c16e2d8eb5b15bf7d6e6734eb1a4c47574e6711dadff8d" 824 | dependencies = [ 825 | "const_format", 826 | "dioxus-core-types", 827 | "futures-channel", 828 | "futures-util", 829 | "generational-box", 830 | "longest-increasing-subsequence", 831 | "rustc-hash", 832 | "rustversion", 833 | "serde", 834 | "slab", 835 | "slotmap", 836 | "tracing", 837 | "warnings", 838 | ] 839 | 840 | [[package]] 841 | name = "dioxus-core-macro" 842 | version = "0.6.3" 843 | source = "registry+https://github.com/rust-lang/crates.io-index" 844 | checksum = "105c954caaaedf8cd10f3d1ba576b01e18aa8d33ad435182125eefe488cf0064" 845 | dependencies = [ 846 | "convert_case 0.6.0", 847 | "dioxus-rsx", 848 | "proc-macro2", 849 | "quote", 850 | "syn 2.0.100", 851 | ] 852 | 853 | [[package]] 854 | name = "dioxus-core-types" 855 | version = "0.6.2" 856 | source = "registry+https://github.com/rust-lang/crates.io-index" 857 | checksum = "91a82fccfa48574eb7aa183e297769540904694844598433a9eb55896ad9f93b" 858 | dependencies = [ 859 | "once_cell", 860 | ] 861 | 862 | [[package]] 863 | name = "dioxus-desktop" 864 | version = "0.6.3" 865 | source = "registry+https://github.com/rust-lang/crates.io-index" 866 | checksum = "b5b0cca3e7a10a4a3df37ea52c4cc7a53e5c9233489e03ee3f2829471fc3099a" 867 | dependencies = [ 868 | "async-trait", 869 | "base64", 870 | "cocoa 0.25.0", 871 | "core-foundation 0.9.4", 872 | "dioxus-cli-config", 873 | "dioxus-core", 874 | "dioxus-devtools", 875 | "dioxus-document", 876 | "dioxus-history", 877 | "dioxus-hooks", 878 | "dioxus-html", 879 | "dioxus-interpreter-js", 880 | "dioxus-signals", 881 | "dunce", 882 | "futures-channel", 883 | "futures-util", 884 | "generational-box", 885 | "global-hotkey", 886 | "infer", 887 | "jni", 888 | "lazy-js-bundle", 889 | "muda 0.11.5", 890 | "ndk", 891 | "ndk-context", 892 | "ndk-sys", 893 | "objc", 894 | "objc_id", 895 | "once_cell", 896 | "rfd", 897 | "rustc-hash", 898 | "serde", 899 | "serde_json", 900 | "signal-hook", 901 | "slab", 902 | "tao", 903 | "thiserror 1.0.69", 904 | "tokio", 905 | "tracing", 906 | "tray-icon", 907 | "urlencoding", 908 | "webbrowser", 909 | "wry", 910 | ] 911 | 912 | [[package]] 913 | name = "dioxus-devtools" 914 | version = "0.6.2" 915 | source = "registry+https://github.com/rust-lang/crates.io-index" 916 | checksum = "712a7300f1e8181218187b03502044157eef04e0a25b518117c5ef9ae1096880" 917 | dependencies = [ 918 | "dioxus-core", 919 | "dioxus-devtools-types", 920 | "dioxus-signals", 921 | "serde", 922 | "serde_json", 923 | "tracing", 924 | "tungstenite", 925 | "warnings", 926 | ] 927 | 928 | [[package]] 929 | name = "dioxus-devtools-types" 930 | version = "0.6.2" 931 | source = "registry+https://github.com/rust-lang/crates.io-index" 932 | checksum = "f62434973c0c9c5a3bc42e9cd5e7070401c2062a437fb5528f318c3e42ebf4ff" 933 | dependencies = [ 934 | "dioxus-core", 935 | "serde", 936 | ] 937 | 938 | [[package]] 939 | name = "dioxus-document" 940 | version = "0.6.3" 941 | source = "registry+https://github.com/rust-lang/crates.io-index" 942 | checksum = "802a2014d1662b6615eec0a275745822ee4fc66aacd9d0f2fb33d6c8da79b8f2" 943 | dependencies = [ 944 | "dioxus-core", 945 | "dioxus-core-macro", 946 | "dioxus-core-types", 947 | "dioxus-html", 948 | "futures-channel", 949 | "futures-util", 950 | "generational-box", 951 | "lazy-js-bundle", 952 | "serde", 953 | "serde_json", 954 | "tracing", 955 | ] 956 | 957 | [[package]] 958 | name = "dioxus-fullstack" 959 | version = "0.6.3" 960 | source = "registry+https://github.com/rust-lang/crates.io-index" 961 | checksum = "fe99b48a1348eec385b5c4bd3e80fd863b0d3b47257d34e2ddc58754dec5d128" 962 | dependencies = [ 963 | "base64", 964 | "bytes", 965 | "ciborium", 966 | "dioxus-desktop", 967 | "dioxus-devtools", 968 | "dioxus-history", 969 | "dioxus-lib", 970 | "dioxus-web", 971 | "dioxus_server_macro", 972 | "futures-channel", 973 | "futures-util", 974 | "generational-box", 975 | "once_cell", 976 | "serde", 977 | "server_fn", 978 | "tracing", 979 | ] 980 | 981 | [[package]] 982 | name = "dioxus-history" 983 | version = "0.6.2" 984 | source = "registry+https://github.com/rust-lang/crates.io-index" 985 | checksum = "5ae4e22616c698f35b60727313134955d885de2d32e83689258e586ebc9b7909" 986 | dependencies = [ 987 | "dioxus-core", 988 | "tracing", 989 | ] 990 | 991 | [[package]] 992 | name = "dioxus-hooks" 993 | version = "0.6.2" 994 | source = "registry+https://github.com/rust-lang/crates.io-index" 995 | checksum = "948e2b3f20d9d4b2c300aaa60281b1755f3298684448920b27106da5841896d0" 996 | dependencies = [ 997 | "dioxus-core", 998 | "dioxus-signals", 999 | "futures-channel", 1000 | "futures-util", 1001 | "generational-box", 1002 | "rustversion", 1003 | "slab", 1004 | "tracing", 1005 | "warnings", 1006 | ] 1007 | 1008 | [[package]] 1009 | name = "dioxus-html" 1010 | version = "0.6.3" 1011 | source = "registry+https://github.com/rust-lang/crates.io-index" 1012 | checksum = "59c9a40e6fee20ce7990095492dedb6a753eebe05e67d28271a249de74dc796d" 1013 | dependencies = [ 1014 | "async-trait", 1015 | "dioxus-core", 1016 | "dioxus-core-macro", 1017 | "dioxus-core-types", 1018 | "dioxus-hooks", 1019 | "dioxus-html-internal-macro", 1020 | "enumset", 1021 | "euclid", 1022 | "futures-channel", 1023 | "generational-box", 1024 | "keyboard-types", 1025 | "lazy-js-bundle", 1026 | "rustversion", 1027 | "serde", 1028 | "serde_json", 1029 | "serde_repr", 1030 | "tracing", 1031 | ] 1032 | 1033 | [[package]] 1034 | name = "dioxus-html-internal-macro" 1035 | version = "0.6.2" 1036 | source = "registry+https://github.com/rust-lang/crates.io-index" 1037 | checksum = "43ba87b53688a2c9f619ecdf4b3b955bc1f08bd0570a80a0d626c405f6d14a76" 1038 | dependencies = [ 1039 | "convert_case 0.6.0", 1040 | "proc-macro2", 1041 | "quote", 1042 | "syn 2.0.100", 1043 | ] 1044 | 1045 | [[package]] 1046 | name = "dioxus-interpreter-js" 1047 | version = "0.6.2" 1048 | source = "registry+https://github.com/rust-lang/crates.io-index" 1049 | checksum = "330707b10ca75cb0eb05f9e5f8d80217cd0d7e62116a8277ae363c1a09b57a22" 1050 | dependencies = [ 1051 | "dioxus-core", 1052 | "dioxus-core-types", 1053 | "dioxus-html", 1054 | "js-sys", 1055 | "lazy-js-bundle", 1056 | "rustc-hash", 1057 | "serde", 1058 | "sledgehammer_bindgen", 1059 | "sledgehammer_utils", 1060 | "wasm-bindgen", 1061 | "wasm-bindgen-futures", 1062 | "web-sys", 1063 | ] 1064 | 1065 | [[package]] 1066 | name = "dioxus-lib" 1067 | version = "0.6.2" 1068 | source = "registry+https://github.com/rust-lang/crates.io-index" 1069 | checksum = "5405b71aa9b8b0c3e0d22728f12f34217ca5277792bd315878cc6ecab7301b72" 1070 | dependencies = [ 1071 | "dioxus-config-macro", 1072 | "dioxus-core", 1073 | "dioxus-core-macro", 1074 | "dioxus-document", 1075 | "dioxus-history", 1076 | "dioxus-hooks", 1077 | "dioxus-html", 1078 | "dioxus-rsx", 1079 | "dioxus-signals", 1080 | "warnings", 1081 | ] 1082 | 1083 | [[package]] 1084 | name = "dioxus-logger" 1085 | version = "0.6.2" 1086 | source = "registry+https://github.com/rust-lang/crates.io-index" 1087 | checksum = "545961e752f6c8bf59c274951b3c8b18a106db6ad2f9e2035b29e1f2a3e899b1" 1088 | dependencies = [ 1089 | "console_error_panic_hook", 1090 | "dioxus-cli-config", 1091 | "tracing", 1092 | "tracing-subscriber", 1093 | "tracing-wasm", 1094 | ] 1095 | 1096 | [[package]] 1097 | name = "dioxus-rsx" 1098 | version = "0.6.2" 1099 | source = "registry+https://github.com/rust-lang/crates.io-index" 1100 | checksum = "3eb588e05800b5a7eb90b2f40fca5bbd7626e823fb5e1ba21e011de649b45aa1" 1101 | dependencies = [ 1102 | "proc-macro2", 1103 | "proc-macro2-diagnostics", 1104 | "quote", 1105 | "syn 2.0.100", 1106 | ] 1107 | 1108 | [[package]] 1109 | name = "dioxus-signals" 1110 | version = "0.6.3" 1111 | source = "registry+https://github.com/rust-lang/crates.io-index" 1112 | checksum = "10e032dbb3a2c0386ec8b8ee59bc20b5aeb67038147c855801237b45b13d72ac" 1113 | dependencies = [ 1114 | "dioxus-core", 1115 | "futures-channel", 1116 | "futures-util", 1117 | "generational-box", 1118 | "once_cell", 1119 | "parking_lot", 1120 | "rustc-hash", 1121 | "tracing", 1122 | "warnings", 1123 | ] 1124 | 1125 | [[package]] 1126 | name = "dioxus-web" 1127 | version = "0.6.3" 1128 | source = "registry+https://github.com/rust-lang/crates.io-index" 1129 | checksum = "7e7c12475c3d360058b8afe1b68eb6dfc9cbb7dcd760aed37c5f85c561c83ed1" 1130 | dependencies = [ 1131 | "async-trait", 1132 | "ciborium", 1133 | "dioxus-cli-config", 1134 | "dioxus-core", 1135 | "dioxus-core-types", 1136 | "dioxus-devtools", 1137 | "dioxus-document", 1138 | "dioxus-history", 1139 | "dioxus-html", 1140 | "dioxus-interpreter-js", 1141 | "dioxus-signals", 1142 | "futures-channel", 1143 | "futures-util", 1144 | "generational-box", 1145 | "js-sys", 1146 | "lazy-js-bundle", 1147 | "rustc-hash", 1148 | "serde", 1149 | "serde-wasm-bindgen", 1150 | "serde_json", 1151 | "tracing", 1152 | "wasm-bindgen", 1153 | "wasm-bindgen-futures", 1154 | "web-sys", 1155 | ] 1156 | 1157 | [[package]] 1158 | name = "dioxus_server_macro" 1159 | version = "0.6.2" 1160 | source = "registry+https://github.com/rust-lang/crates.io-index" 1161 | checksum = "371a5b21989a06b53c5092e977b3f75d0e60a65a4c15a2aa1d07014c3b2dda97" 1162 | dependencies = [ 1163 | "proc-macro2", 1164 | "quote", 1165 | "server_fn_macro", 1166 | "syn 2.0.100", 1167 | ] 1168 | 1169 | [[package]] 1170 | name = "dirs" 1171 | version = "6.0.0" 1172 | source = "registry+https://github.com/rust-lang/crates.io-index" 1173 | checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" 1174 | dependencies = [ 1175 | "dirs-sys", 1176 | ] 1177 | 1178 | [[package]] 1179 | name = "dirs-sys" 1180 | version = "0.5.0" 1181 | source = "registry+https://github.com/rust-lang/crates.io-index" 1182 | checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" 1183 | dependencies = [ 1184 | "libc", 1185 | "option-ext", 1186 | "redox_users", 1187 | "windows-sys 0.59.0", 1188 | ] 1189 | 1190 | [[package]] 1191 | name = "dispatch" 1192 | version = "0.2.0" 1193 | source = "registry+https://github.com/rust-lang/crates.io-index" 1194 | checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" 1195 | 1196 | [[package]] 1197 | name = "displaydoc" 1198 | version = "0.2.5" 1199 | source = "registry+https://github.com/rust-lang/crates.io-index" 1200 | checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" 1201 | dependencies = [ 1202 | "proc-macro2", 1203 | "quote", 1204 | "syn 2.0.100", 1205 | ] 1206 | 1207 | [[package]] 1208 | name = "dlopen2" 1209 | version = "0.7.0" 1210 | source = "registry+https://github.com/rust-lang/crates.io-index" 1211 | checksum = "9e1297103d2bbaea85724fcee6294c2d50b1081f9ad47d0f6f6f61eda65315a6" 1212 | dependencies = [ 1213 | "dlopen2_derive", 1214 | "libc", 1215 | "once_cell", 1216 | "winapi", 1217 | ] 1218 | 1219 | [[package]] 1220 | name = "dlopen2_derive" 1221 | version = "0.4.0" 1222 | source = "registry+https://github.com/rust-lang/crates.io-index" 1223 | checksum = "f2b99bf03862d7f545ebc28ddd33a665b50865f4dfd84031a393823879bd4c54" 1224 | dependencies = [ 1225 | "proc-macro2", 1226 | "quote", 1227 | "syn 2.0.100", 1228 | ] 1229 | 1230 | [[package]] 1231 | name = "dpi" 1232 | version = "0.1.1" 1233 | source = "registry+https://github.com/rust-lang/crates.io-index" 1234 | checksum = "f25c0e292a7ca6d6498557ff1df68f32c99850012b6ea401cf8daf771f22ff53" 1235 | 1236 | [[package]] 1237 | name = "dtoa" 1238 | version = "1.0.10" 1239 | source = "registry+https://github.com/rust-lang/crates.io-index" 1240 | checksum = "d6add3b8cff394282be81f3fc1a0605db594ed69890078ca6e2cab1c408bcf04" 1241 | 1242 | [[package]] 1243 | name = "dtoa-short" 1244 | version = "0.3.5" 1245 | source = "registry+https://github.com/rust-lang/crates.io-index" 1246 | checksum = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87" 1247 | dependencies = [ 1248 | "dtoa", 1249 | ] 1250 | 1251 | [[package]] 1252 | name = "dunce" 1253 | version = "1.0.5" 1254 | source = "registry+https://github.com/rust-lang/crates.io-index" 1255 | checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" 1256 | 1257 | [[package]] 1258 | name = "encoding_rs" 1259 | version = "0.8.35" 1260 | source = "registry+https://github.com/rust-lang/crates.io-index" 1261 | checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" 1262 | dependencies = [ 1263 | "cfg-if", 1264 | ] 1265 | 1266 | [[package]] 1267 | name = "endi" 1268 | version = "1.1.0" 1269 | source = "registry+https://github.com/rust-lang/crates.io-index" 1270 | checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf" 1271 | 1272 | [[package]] 1273 | name = "enumflags2" 1274 | version = "0.7.11" 1275 | source = "registry+https://github.com/rust-lang/crates.io-index" 1276 | checksum = "ba2f4b465f5318854c6f8dd686ede6c0a9dc67d4b1ac241cf0eb51521a309147" 1277 | dependencies = [ 1278 | "enumflags2_derive", 1279 | "serde", 1280 | ] 1281 | 1282 | [[package]] 1283 | name = "enumflags2_derive" 1284 | version = "0.7.11" 1285 | source = "registry+https://github.com/rust-lang/crates.io-index" 1286 | checksum = "fc4caf64a58d7a6d65ab00639b046ff54399a39f5f2554728895ace4b297cd79" 1287 | dependencies = [ 1288 | "proc-macro2", 1289 | "quote", 1290 | "syn 2.0.100", 1291 | ] 1292 | 1293 | [[package]] 1294 | name = "enumset" 1295 | version = "1.1.5" 1296 | source = "registry+https://github.com/rust-lang/crates.io-index" 1297 | checksum = "d07a4b049558765cef5f0c1a273c3fc57084d768b44d2f98127aef4cceb17293" 1298 | dependencies = [ 1299 | "enumset_derive", 1300 | ] 1301 | 1302 | [[package]] 1303 | name = "enumset_derive" 1304 | version = "0.10.0" 1305 | source = "registry+https://github.com/rust-lang/crates.io-index" 1306 | checksum = "59c3b24c345d8c314966bdc1832f6c2635bfcce8e7cf363bd115987bba2ee242" 1307 | dependencies = [ 1308 | "darling", 1309 | "proc-macro2", 1310 | "quote", 1311 | "syn 2.0.100", 1312 | ] 1313 | 1314 | [[package]] 1315 | name = "equivalent" 1316 | version = "1.0.2" 1317 | source = "registry+https://github.com/rust-lang/crates.io-index" 1318 | checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" 1319 | 1320 | [[package]] 1321 | name = "errno" 1322 | version = "0.3.11" 1323 | source = "registry+https://github.com/rust-lang/crates.io-index" 1324 | checksum = "976dd42dc7e85965fe702eb8164f21f450704bdde31faefd6471dba214cb594e" 1325 | dependencies = [ 1326 | "libc", 1327 | "windows-sys 0.59.0", 1328 | ] 1329 | 1330 | [[package]] 1331 | name = "euclid" 1332 | version = "0.22.11" 1333 | source = "registry+https://github.com/rust-lang/crates.io-index" 1334 | checksum = "ad9cdb4b747e485a12abb0e6566612956c7a1bafa3bdb8d682c5b6d403589e48" 1335 | dependencies = [ 1336 | "num-traits", 1337 | "serde", 1338 | ] 1339 | 1340 | [[package]] 1341 | name = "event-listener" 1342 | version = "5.4.0" 1343 | source = "registry+https://github.com/rust-lang/crates.io-index" 1344 | checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" 1345 | dependencies = [ 1346 | "concurrent-queue", 1347 | "parking", 1348 | "pin-project-lite", 1349 | ] 1350 | 1351 | [[package]] 1352 | name = "event-listener-strategy" 1353 | version = "0.5.4" 1354 | source = "registry+https://github.com/rust-lang/crates.io-index" 1355 | checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" 1356 | dependencies = [ 1357 | "event-listener", 1358 | "pin-project-lite", 1359 | ] 1360 | 1361 | [[package]] 1362 | name = "fastrand" 1363 | version = "2.3.0" 1364 | source = "registry+https://github.com/rust-lang/crates.io-index" 1365 | checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" 1366 | 1367 | [[package]] 1368 | name = "fdeflate" 1369 | version = "0.3.7" 1370 | source = "registry+https://github.com/rust-lang/crates.io-index" 1371 | checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" 1372 | dependencies = [ 1373 | "simd-adler32", 1374 | ] 1375 | 1376 | [[package]] 1377 | name = "field-offset" 1378 | version = "0.3.6" 1379 | source = "registry+https://github.com/rust-lang/crates.io-index" 1380 | checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" 1381 | dependencies = [ 1382 | "memoffset", 1383 | "rustc_version", 1384 | ] 1385 | 1386 | [[package]] 1387 | name = "flate2" 1388 | version = "1.1.1" 1389 | source = "registry+https://github.com/rust-lang/crates.io-index" 1390 | checksum = "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece" 1391 | dependencies = [ 1392 | "crc32fast", 1393 | "miniz_oxide", 1394 | ] 1395 | 1396 | [[package]] 1397 | name = "fnv" 1398 | version = "1.0.7" 1399 | source = "registry+https://github.com/rust-lang/crates.io-index" 1400 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 1401 | 1402 | [[package]] 1403 | name = "foreign-types" 1404 | version = "0.3.2" 1405 | source = "registry+https://github.com/rust-lang/crates.io-index" 1406 | checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" 1407 | dependencies = [ 1408 | "foreign-types-shared 0.1.1", 1409 | ] 1410 | 1411 | [[package]] 1412 | name = "foreign-types" 1413 | version = "0.5.0" 1414 | source = "registry+https://github.com/rust-lang/crates.io-index" 1415 | checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" 1416 | dependencies = [ 1417 | "foreign-types-macros", 1418 | "foreign-types-shared 0.3.1", 1419 | ] 1420 | 1421 | [[package]] 1422 | name = "foreign-types-macros" 1423 | version = "0.2.3" 1424 | source = "registry+https://github.com/rust-lang/crates.io-index" 1425 | checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" 1426 | dependencies = [ 1427 | "proc-macro2", 1428 | "quote", 1429 | "syn 2.0.100", 1430 | ] 1431 | 1432 | [[package]] 1433 | name = "foreign-types-shared" 1434 | version = "0.1.1" 1435 | source = "registry+https://github.com/rust-lang/crates.io-index" 1436 | checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" 1437 | 1438 | [[package]] 1439 | name = "foreign-types-shared" 1440 | version = "0.3.1" 1441 | source = "registry+https://github.com/rust-lang/crates.io-index" 1442 | checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" 1443 | 1444 | [[package]] 1445 | name = "form_urlencoded" 1446 | version = "1.2.1" 1447 | source = "registry+https://github.com/rust-lang/crates.io-index" 1448 | checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" 1449 | dependencies = [ 1450 | "percent-encoding", 1451 | ] 1452 | 1453 | [[package]] 1454 | name = "futf" 1455 | version = "0.1.5" 1456 | source = "registry+https://github.com/rust-lang/crates.io-index" 1457 | checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" 1458 | dependencies = [ 1459 | "mac", 1460 | "new_debug_unreachable", 1461 | ] 1462 | 1463 | [[package]] 1464 | name = "futures" 1465 | version = "0.3.31" 1466 | source = "registry+https://github.com/rust-lang/crates.io-index" 1467 | checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" 1468 | dependencies = [ 1469 | "futures-channel", 1470 | "futures-core", 1471 | "futures-executor", 1472 | "futures-io", 1473 | "futures-sink", 1474 | "futures-task", 1475 | "futures-util", 1476 | ] 1477 | 1478 | [[package]] 1479 | name = "futures-channel" 1480 | version = "0.3.31" 1481 | source = "registry+https://github.com/rust-lang/crates.io-index" 1482 | checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" 1483 | dependencies = [ 1484 | "futures-core", 1485 | "futures-sink", 1486 | ] 1487 | 1488 | [[package]] 1489 | name = "futures-core" 1490 | version = "0.3.31" 1491 | source = "registry+https://github.com/rust-lang/crates.io-index" 1492 | checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" 1493 | 1494 | [[package]] 1495 | name = "futures-executor" 1496 | version = "0.3.31" 1497 | source = "registry+https://github.com/rust-lang/crates.io-index" 1498 | checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" 1499 | dependencies = [ 1500 | "futures-core", 1501 | "futures-task", 1502 | "futures-util", 1503 | ] 1504 | 1505 | [[package]] 1506 | name = "futures-io" 1507 | version = "0.3.31" 1508 | source = "registry+https://github.com/rust-lang/crates.io-index" 1509 | checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" 1510 | 1511 | [[package]] 1512 | name = "futures-lite" 1513 | version = "2.6.0" 1514 | source = "registry+https://github.com/rust-lang/crates.io-index" 1515 | checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532" 1516 | dependencies = [ 1517 | "fastrand", 1518 | "futures-core", 1519 | "futures-io", 1520 | "parking", 1521 | "pin-project-lite", 1522 | ] 1523 | 1524 | [[package]] 1525 | name = "futures-macro" 1526 | version = "0.3.31" 1527 | source = "registry+https://github.com/rust-lang/crates.io-index" 1528 | checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" 1529 | dependencies = [ 1530 | "proc-macro2", 1531 | "quote", 1532 | "syn 2.0.100", 1533 | ] 1534 | 1535 | [[package]] 1536 | name = "futures-sink" 1537 | version = "0.3.31" 1538 | source = "registry+https://github.com/rust-lang/crates.io-index" 1539 | checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" 1540 | 1541 | [[package]] 1542 | name = "futures-task" 1543 | version = "0.3.31" 1544 | source = "registry+https://github.com/rust-lang/crates.io-index" 1545 | checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" 1546 | 1547 | [[package]] 1548 | name = "futures-util" 1549 | version = "0.3.31" 1550 | source = "registry+https://github.com/rust-lang/crates.io-index" 1551 | checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" 1552 | dependencies = [ 1553 | "futures-channel", 1554 | "futures-core", 1555 | "futures-io", 1556 | "futures-macro", 1557 | "futures-sink", 1558 | "futures-task", 1559 | "memchr", 1560 | "pin-project-lite", 1561 | "pin-utils", 1562 | "slab", 1563 | ] 1564 | 1565 | [[package]] 1566 | name = "fxhash" 1567 | version = "0.2.1" 1568 | source = "registry+https://github.com/rust-lang/crates.io-index" 1569 | checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" 1570 | dependencies = [ 1571 | "byteorder", 1572 | ] 1573 | 1574 | [[package]] 1575 | name = "gdk" 1576 | version = "0.18.2" 1577 | source = "registry+https://github.com/rust-lang/crates.io-index" 1578 | checksum = "d9f245958c627ac99d8e529166f9823fb3b838d1d41fd2b297af3075093c2691" 1579 | dependencies = [ 1580 | "cairo-rs", 1581 | "gdk-pixbuf", 1582 | "gdk-sys", 1583 | "gio", 1584 | "glib", 1585 | "libc", 1586 | "pango", 1587 | ] 1588 | 1589 | [[package]] 1590 | name = "gdk-pixbuf" 1591 | version = "0.18.5" 1592 | source = "registry+https://github.com/rust-lang/crates.io-index" 1593 | checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec" 1594 | dependencies = [ 1595 | "gdk-pixbuf-sys", 1596 | "gio", 1597 | "glib", 1598 | "libc", 1599 | "once_cell", 1600 | ] 1601 | 1602 | [[package]] 1603 | name = "gdk-pixbuf-sys" 1604 | version = "0.18.0" 1605 | source = "registry+https://github.com/rust-lang/crates.io-index" 1606 | checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" 1607 | dependencies = [ 1608 | "gio-sys", 1609 | "glib-sys", 1610 | "gobject-sys", 1611 | "libc", 1612 | "system-deps", 1613 | ] 1614 | 1615 | [[package]] 1616 | name = "gdk-sys" 1617 | version = "0.18.2" 1618 | source = "registry+https://github.com/rust-lang/crates.io-index" 1619 | checksum = "5c2d13f38594ac1e66619e188c6d5a1adb98d11b2fcf7894fc416ad76aa2f3f7" 1620 | dependencies = [ 1621 | "cairo-sys-rs", 1622 | "gdk-pixbuf-sys", 1623 | "gio-sys", 1624 | "glib-sys", 1625 | "gobject-sys", 1626 | "libc", 1627 | "pango-sys", 1628 | "pkg-config", 1629 | "system-deps", 1630 | ] 1631 | 1632 | [[package]] 1633 | name = "gdkwayland-sys" 1634 | version = "0.18.2" 1635 | source = "registry+https://github.com/rust-lang/crates.io-index" 1636 | checksum = "140071d506d223f7572b9f09b5e155afbd77428cd5cc7af8f2694c41d98dfe69" 1637 | dependencies = [ 1638 | "gdk-sys", 1639 | "glib-sys", 1640 | "gobject-sys", 1641 | "libc", 1642 | "pkg-config", 1643 | "system-deps", 1644 | ] 1645 | 1646 | [[package]] 1647 | name = "gdkx11" 1648 | version = "0.18.2" 1649 | source = "registry+https://github.com/rust-lang/crates.io-index" 1650 | checksum = "3caa00e14351bebbc8183b3c36690327eb77c49abc2268dd4bd36b856db3fbfe" 1651 | dependencies = [ 1652 | "gdk", 1653 | "gdkx11-sys", 1654 | "gio", 1655 | "glib", 1656 | "libc", 1657 | "x11", 1658 | ] 1659 | 1660 | [[package]] 1661 | name = "gdkx11-sys" 1662 | version = "0.18.2" 1663 | source = "registry+https://github.com/rust-lang/crates.io-index" 1664 | checksum = "6e2e7445fe01ac26f11601db260dd8608fe172514eb63b3b5e261ea6b0f4428d" 1665 | dependencies = [ 1666 | "gdk-sys", 1667 | "glib-sys", 1668 | "libc", 1669 | "system-deps", 1670 | "x11", 1671 | ] 1672 | 1673 | [[package]] 1674 | name = "generational-box" 1675 | version = "0.6.2" 1676 | source = "registry+https://github.com/rust-lang/crates.io-index" 1677 | checksum = "a673cf4fb0ea6a91aa86c08695756dfe875277a912cdbf33db9a9f62d47ed82b" 1678 | dependencies = [ 1679 | "parking_lot", 1680 | "tracing", 1681 | ] 1682 | 1683 | [[package]] 1684 | name = "generic-array" 1685 | version = "0.14.7" 1686 | source = "registry+https://github.com/rust-lang/crates.io-index" 1687 | checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 1688 | dependencies = [ 1689 | "typenum", 1690 | "version_check", 1691 | ] 1692 | 1693 | [[package]] 1694 | name = "getrandom" 1695 | version = "0.1.16" 1696 | source = "registry+https://github.com/rust-lang/crates.io-index" 1697 | checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" 1698 | dependencies = [ 1699 | "cfg-if", 1700 | "libc", 1701 | "wasi 0.9.0+wasi-snapshot-preview1", 1702 | ] 1703 | 1704 | [[package]] 1705 | name = "getrandom" 1706 | version = "0.2.15" 1707 | source = "registry+https://github.com/rust-lang/crates.io-index" 1708 | checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" 1709 | dependencies = [ 1710 | "cfg-if", 1711 | "libc", 1712 | "wasi 0.11.0+wasi-snapshot-preview1", 1713 | ] 1714 | 1715 | [[package]] 1716 | name = "getrandom" 1717 | version = "0.3.2" 1718 | source = "registry+https://github.com/rust-lang/crates.io-index" 1719 | checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" 1720 | dependencies = [ 1721 | "cfg-if", 1722 | "libc", 1723 | "r-efi", 1724 | "wasi 0.14.2+wasi-0.2.4", 1725 | ] 1726 | 1727 | [[package]] 1728 | name = "gimli" 1729 | version = "0.31.1" 1730 | source = "registry+https://github.com/rust-lang/crates.io-index" 1731 | checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" 1732 | 1733 | [[package]] 1734 | name = "gio" 1735 | version = "0.18.4" 1736 | source = "registry+https://github.com/rust-lang/crates.io-index" 1737 | checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73" 1738 | dependencies = [ 1739 | "futures-channel", 1740 | "futures-core", 1741 | "futures-io", 1742 | "futures-util", 1743 | "gio-sys", 1744 | "glib", 1745 | "libc", 1746 | "once_cell", 1747 | "pin-project-lite", 1748 | "smallvec", 1749 | "thiserror 1.0.69", 1750 | ] 1751 | 1752 | [[package]] 1753 | name = "gio-sys" 1754 | version = "0.18.1" 1755 | source = "registry+https://github.com/rust-lang/crates.io-index" 1756 | checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" 1757 | dependencies = [ 1758 | "glib-sys", 1759 | "gobject-sys", 1760 | "libc", 1761 | "system-deps", 1762 | "winapi", 1763 | ] 1764 | 1765 | [[package]] 1766 | name = "glib" 1767 | version = "0.18.5" 1768 | source = "registry+https://github.com/rust-lang/crates.io-index" 1769 | checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" 1770 | dependencies = [ 1771 | "bitflags 2.9.0", 1772 | "futures-channel", 1773 | "futures-core", 1774 | "futures-executor", 1775 | "futures-task", 1776 | "futures-util", 1777 | "gio-sys", 1778 | "glib-macros", 1779 | "glib-sys", 1780 | "gobject-sys", 1781 | "libc", 1782 | "memchr", 1783 | "once_cell", 1784 | "smallvec", 1785 | "thiserror 1.0.69", 1786 | ] 1787 | 1788 | [[package]] 1789 | name = "glib-macros" 1790 | version = "0.18.5" 1791 | source = "registry+https://github.com/rust-lang/crates.io-index" 1792 | checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" 1793 | dependencies = [ 1794 | "heck 0.4.1", 1795 | "proc-macro-crate 2.0.2", 1796 | "proc-macro-error", 1797 | "proc-macro2", 1798 | "quote", 1799 | "syn 2.0.100", 1800 | ] 1801 | 1802 | [[package]] 1803 | name = "glib-sys" 1804 | version = "0.18.1" 1805 | source = "registry+https://github.com/rust-lang/crates.io-index" 1806 | checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" 1807 | dependencies = [ 1808 | "libc", 1809 | "system-deps", 1810 | ] 1811 | 1812 | [[package]] 1813 | name = "global-hotkey" 1814 | version = "0.5.5" 1815 | source = "registry+https://github.com/rust-lang/crates.io-index" 1816 | checksum = "b436093d1598b05e3b7fddc097b2bad32763f53a1beb25ab6f9718c6a60acd09" 1817 | dependencies = [ 1818 | "bitflags 2.9.0", 1819 | "cocoa 0.25.0", 1820 | "crossbeam-channel", 1821 | "keyboard-types", 1822 | "objc", 1823 | "once_cell", 1824 | "thiserror 1.0.69", 1825 | "windows-sys 0.52.0", 1826 | "x11-dl", 1827 | ] 1828 | 1829 | [[package]] 1830 | name = "gloo-net" 1831 | version = "0.6.0" 1832 | source = "registry+https://github.com/rust-lang/crates.io-index" 1833 | checksum = "c06f627b1a58ca3d42b45d6104bf1e1a03799df472df00988b6ba21accc10580" 1834 | dependencies = [ 1835 | "futures-channel", 1836 | "futures-core", 1837 | "futures-sink", 1838 | "gloo-utils", 1839 | "http", 1840 | "js-sys", 1841 | "pin-project", 1842 | "serde", 1843 | "serde_json", 1844 | "thiserror 1.0.69", 1845 | "wasm-bindgen", 1846 | "wasm-bindgen-futures", 1847 | "web-sys", 1848 | ] 1849 | 1850 | [[package]] 1851 | name = "gloo-utils" 1852 | version = "0.2.0" 1853 | source = "registry+https://github.com/rust-lang/crates.io-index" 1854 | checksum = "0b5555354113b18c547c1d3a98fbf7fb32a9ff4f6fa112ce823a21641a0ba3aa" 1855 | dependencies = [ 1856 | "js-sys", 1857 | "serde", 1858 | "serde_json", 1859 | "wasm-bindgen", 1860 | "web-sys", 1861 | ] 1862 | 1863 | [[package]] 1864 | name = "gobject-sys" 1865 | version = "0.18.0" 1866 | source = "registry+https://github.com/rust-lang/crates.io-index" 1867 | checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" 1868 | dependencies = [ 1869 | "glib-sys", 1870 | "libc", 1871 | "system-deps", 1872 | ] 1873 | 1874 | [[package]] 1875 | name = "gtk" 1876 | version = "0.18.2" 1877 | source = "registry+https://github.com/rust-lang/crates.io-index" 1878 | checksum = "fd56fb197bfc42bd5d2751f4f017d44ff59fbb58140c6b49f9b3b2bdab08506a" 1879 | dependencies = [ 1880 | "atk", 1881 | "cairo-rs", 1882 | "field-offset", 1883 | "futures-channel", 1884 | "gdk", 1885 | "gdk-pixbuf", 1886 | "gio", 1887 | "glib", 1888 | "gtk-sys", 1889 | "gtk3-macros", 1890 | "libc", 1891 | "pango", 1892 | "pkg-config", 1893 | ] 1894 | 1895 | [[package]] 1896 | name = "gtk-sys" 1897 | version = "0.18.2" 1898 | source = "registry+https://github.com/rust-lang/crates.io-index" 1899 | checksum = "8f29a1c21c59553eb7dd40e918be54dccd60c52b049b75119d5d96ce6b624414" 1900 | dependencies = [ 1901 | "atk-sys", 1902 | "cairo-sys-rs", 1903 | "gdk-pixbuf-sys", 1904 | "gdk-sys", 1905 | "gio-sys", 1906 | "glib-sys", 1907 | "gobject-sys", 1908 | "libc", 1909 | "pango-sys", 1910 | "system-deps", 1911 | ] 1912 | 1913 | [[package]] 1914 | name = "gtk3-macros" 1915 | version = "0.18.2" 1916 | source = "registry+https://github.com/rust-lang/crates.io-index" 1917 | checksum = "52ff3c5b21f14f0736fed6dcfc0bfb4225ebf5725f3c0209edeec181e4d73e9d" 1918 | dependencies = [ 1919 | "proc-macro-crate 1.3.1", 1920 | "proc-macro-error", 1921 | "proc-macro2", 1922 | "quote", 1923 | "syn 2.0.100", 1924 | ] 1925 | 1926 | [[package]] 1927 | name = "h2" 1928 | version = "0.4.8" 1929 | source = "registry+https://github.com/rust-lang/crates.io-index" 1930 | checksum = "5017294ff4bb30944501348f6f8e42e6ad28f42c8bbef7a74029aff064a4e3c2" 1931 | dependencies = [ 1932 | "atomic-waker", 1933 | "bytes", 1934 | "fnv", 1935 | "futures-core", 1936 | "futures-sink", 1937 | "http", 1938 | "indexmap 2.9.0", 1939 | "slab", 1940 | "tokio", 1941 | "tokio-util", 1942 | "tracing", 1943 | ] 1944 | 1945 | [[package]] 1946 | name = "half" 1947 | version = "2.6.0" 1948 | source = "registry+https://github.com/rust-lang/crates.io-index" 1949 | checksum = "459196ed295495a68f7d7fe1d84f6c4b7ff0e21fe3017b2f283c6fac3ad803c9" 1950 | dependencies = [ 1951 | "cfg-if", 1952 | "crunchy", 1953 | ] 1954 | 1955 | [[package]] 1956 | name = "hashbrown" 1957 | version = "0.12.3" 1958 | source = "registry+https://github.com/rust-lang/crates.io-index" 1959 | checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" 1960 | 1961 | [[package]] 1962 | name = "hashbrown" 1963 | version = "0.14.5" 1964 | source = "registry+https://github.com/rust-lang/crates.io-index" 1965 | checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" 1966 | 1967 | [[package]] 1968 | name = "hashbrown" 1969 | version = "0.15.2" 1970 | source = "registry+https://github.com/rust-lang/crates.io-index" 1971 | checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" 1972 | 1973 | [[package]] 1974 | name = "heck" 1975 | version = "0.4.1" 1976 | source = "registry+https://github.com/rust-lang/crates.io-index" 1977 | checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" 1978 | 1979 | [[package]] 1980 | name = "heck" 1981 | version = "0.5.0" 1982 | source = "registry+https://github.com/rust-lang/crates.io-index" 1983 | checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" 1984 | 1985 | [[package]] 1986 | name = "hermit-abi" 1987 | version = "0.4.0" 1988 | source = "registry+https://github.com/rust-lang/crates.io-index" 1989 | checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" 1990 | 1991 | [[package]] 1992 | name = "hex" 1993 | version = "0.4.3" 1994 | source = "registry+https://github.com/rust-lang/crates.io-index" 1995 | checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" 1996 | 1997 | [[package]] 1998 | name = "home" 1999 | version = "0.5.11" 2000 | source = "registry+https://github.com/rust-lang/crates.io-index" 2001 | checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" 2002 | dependencies = [ 2003 | "windows-sys 0.59.0", 2004 | ] 2005 | 2006 | [[package]] 2007 | name = "html5ever" 2008 | version = "0.26.0" 2009 | source = "registry+https://github.com/rust-lang/crates.io-index" 2010 | checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7" 2011 | dependencies = [ 2012 | "log", 2013 | "mac", 2014 | "markup5ever", 2015 | "proc-macro2", 2016 | "quote", 2017 | "syn 1.0.109", 2018 | ] 2019 | 2020 | [[package]] 2021 | name = "http" 2022 | version = "1.3.1" 2023 | source = "registry+https://github.com/rust-lang/crates.io-index" 2024 | checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" 2025 | dependencies = [ 2026 | "bytes", 2027 | "fnv", 2028 | "itoa 1.0.15", 2029 | ] 2030 | 2031 | [[package]] 2032 | name = "http-body" 2033 | version = "1.0.1" 2034 | source = "registry+https://github.com/rust-lang/crates.io-index" 2035 | checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" 2036 | dependencies = [ 2037 | "bytes", 2038 | "http", 2039 | ] 2040 | 2041 | [[package]] 2042 | name = "http-body-util" 2043 | version = "0.1.3" 2044 | source = "registry+https://github.com/rust-lang/crates.io-index" 2045 | checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" 2046 | dependencies = [ 2047 | "bytes", 2048 | "futures-core", 2049 | "http", 2050 | "http-body", 2051 | "pin-project-lite", 2052 | ] 2053 | 2054 | [[package]] 2055 | name = "httparse" 2056 | version = "1.10.1" 2057 | source = "registry+https://github.com/rust-lang/crates.io-index" 2058 | checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" 2059 | 2060 | [[package]] 2061 | name = "hyper" 2062 | version = "1.6.0" 2063 | source = "registry+https://github.com/rust-lang/crates.io-index" 2064 | checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" 2065 | dependencies = [ 2066 | "bytes", 2067 | "futures-channel", 2068 | "futures-util", 2069 | "h2", 2070 | "http", 2071 | "http-body", 2072 | "httparse", 2073 | "itoa 1.0.15", 2074 | "pin-project-lite", 2075 | "smallvec", 2076 | "tokio", 2077 | "want", 2078 | ] 2079 | 2080 | [[package]] 2081 | name = "hyper-rustls" 2082 | version = "0.27.5" 2083 | source = "registry+https://github.com/rust-lang/crates.io-index" 2084 | checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" 2085 | dependencies = [ 2086 | "futures-util", 2087 | "http", 2088 | "hyper", 2089 | "hyper-util", 2090 | "rustls", 2091 | "rustls-pki-types", 2092 | "tokio", 2093 | "tokio-rustls", 2094 | "tower-service", 2095 | ] 2096 | 2097 | [[package]] 2098 | name = "hyper-tls" 2099 | version = "0.6.0" 2100 | source = "registry+https://github.com/rust-lang/crates.io-index" 2101 | checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" 2102 | dependencies = [ 2103 | "bytes", 2104 | "http-body-util", 2105 | "hyper", 2106 | "hyper-util", 2107 | "native-tls", 2108 | "tokio", 2109 | "tokio-native-tls", 2110 | "tower-service", 2111 | ] 2112 | 2113 | [[package]] 2114 | name = "hyper-util" 2115 | version = "0.1.11" 2116 | source = "registry+https://github.com/rust-lang/crates.io-index" 2117 | checksum = "497bbc33a26fdd4af9ed9c70d63f61cf56a938375fbb32df34db9b1cd6d643f2" 2118 | dependencies = [ 2119 | "bytes", 2120 | "futures-channel", 2121 | "futures-util", 2122 | "http", 2123 | "http-body", 2124 | "hyper", 2125 | "libc", 2126 | "pin-project-lite", 2127 | "socket2", 2128 | "tokio", 2129 | "tower-service", 2130 | "tracing", 2131 | ] 2132 | 2133 | [[package]] 2134 | name = "icu_collections" 2135 | version = "1.5.0" 2136 | source = "registry+https://github.com/rust-lang/crates.io-index" 2137 | checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" 2138 | dependencies = [ 2139 | "displaydoc", 2140 | "yoke", 2141 | "zerofrom", 2142 | "zerovec", 2143 | ] 2144 | 2145 | [[package]] 2146 | name = "icu_locid" 2147 | version = "1.5.0" 2148 | source = "registry+https://github.com/rust-lang/crates.io-index" 2149 | checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" 2150 | dependencies = [ 2151 | "displaydoc", 2152 | "litemap", 2153 | "tinystr", 2154 | "writeable", 2155 | "zerovec", 2156 | ] 2157 | 2158 | [[package]] 2159 | name = "icu_locid_transform" 2160 | version = "1.5.0" 2161 | source = "registry+https://github.com/rust-lang/crates.io-index" 2162 | checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" 2163 | dependencies = [ 2164 | "displaydoc", 2165 | "icu_locid", 2166 | "icu_locid_transform_data", 2167 | "icu_provider", 2168 | "tinystr", 2169 | "zerovec", 2170 | ] 2171 | 2172 | [[package]] 2173 | name = "icu_locid_transform_data" 2174 | version = "1.5.1" 2175 | source = "registry+https://github.com/rust-lang/crates.io-index" 2176 | checksum = "7515e6d781098bf9f7205ab3fc7e9709d34554ae0b21ddbcb5febfa4bc7df11d" 2177 | 2178 | [[package]] 2179 | name = "icu_normalizer" 2180 | version = "1.5.0" 2181 | source = "registry+https://github.com/rust-lang/crates.io-index" 2182 | checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" 2183 | dependencies = [ 2184 | "displaydoc", 2185 | "icu_collections", 2186 | "icu_normalizer_data", 2187 | "icu_properties", 2188 | "icu_provider", 2189 | "smallvec", 2190 | "utf16_iter", 2191 | "utf8_iter", 2192 | "write16", 2193 | "zerovec", 2194 | ] 2195 | 2196 | [[package]] 2197 | name = "icu_normalizer_data" 2198 | version = "1.5.1" 2199 | source = "registry+https://github.com/rust-lang/crates.io-index" 2200 | checksum = "c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7" 2201 | 2202 | [[package]] 2203 | name = "icu_properties" 2204 | version = "1.5.1" 2205 | source = "registry+https://github.com/rust-lang/crates.io-index" 2206 | checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" 2207 | dependencies = [ 2208 | "displaydoc", 2209 | "icu_collections", 2210 | "icu_locid_transform", 2211 | "icu_properties_data", 2212 | "icu_provider", 2213 | "tinystr", 2214 | "zerovec", 2215 | ] 2216 | 2217 | [[package]] 2218 | name = "icu_properties_data" 2219 | version = "1.5.1" 2220 | source = "registry+https://github.com/rust-lang/crates.io-index" 2221 | checksum = "85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2" 2222 | 2223 | [[package]] 2224 | name = "icu_provider" 2225 | version = "1.5.0" 2226 | source = "registry+https://github.com/rust-lang/crates.io-index" 2227 | checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" 2228 | dependencies = [ 2229 | "displaydoc", 2230 | "icu_locid", 2231 | "icu_provider_macros", 2232 | "stable_deref_trait", 2233 | "tinystr", 2234 | "writeable", 2235 | "yoke", 2236 | "zerofrom", 2237 | "zerovec", 2238 | ] 2239 | 2240 | [[package]] 2241 | name = "icu_provider_macros" 2242 | version = "1.5.0" 2243 | source = "registry+https://github.com/rust-lang/crates.io-index" 2244 | checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" 2245 | dependencies = [ 2246 | "proc-macro2", 2247 | "quote", 2248 | "syn 2.0.100", 2249 | ] 2250 | 2251 | [[package]] 2252 | name = "ident_case" 2253 | version = "1.0.1" 2254 | source = "registry+https://github.com/rust-lang/crates.io-index" 2255 | checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" 2256 | 2257 | [[package]] 2258 | name = "idna" 2259 | version = "1.0.3" 2260 | source = "registry+https://github.com/rust-lang/crates.io-index" 2261 | checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" 2262 | dependencies = [ 2263 | "idna_adapter", 2264 | "smallvec", 2265 | "utf8_iter", 2266 | ] 2267 | 2268 | [[package]] 2269 | name = "idna_adapter" 2270 | version = "1.2.0" 2271 | source = "registry+https://github.com/rust-lang/crates.io-index" 2272 | checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" 2273 | dependencies = [ 2274 | "icu_normalizer", 2275 | "icu_properties", 2276 | ] 2277 | 2278 | [[package]] 2279 | name = "indexmap" 2280 | version = "1.9.3" 2281 | source = "registry+https://github.com/rust-lang/crates.io-index" 2282 | checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" 2283 | dependencies = [ 2284 | "autocfg", 2285 | "hashbrown 0.12.3", 2286 | ] 2287 | 2288 | [[package]] 2289 | name = "indexmap" 2290 | version = "2.9.0" 2291 | source = "registry+https://github.com/rust-lang/crates.io-index" 2292 | checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" 2293 | dependencies = [ 2294 | "equivalent", 2295 | "hashbrown 0.15.2", 2296 | ] 2297 | 2298 | [[package]] 2299 | name = "infer" 2300 | version = "0.11.0" 2301 | source = "registry+https://github.com/rust-lang/crates.io-index" 2302 | checksum = "0a6c16b11a665b26aeeb9b1d7f954cdeb034be38dd00adab4f2ae921a8fee804" 2303 | dependencies = [ 2304 | "cfb", 2305 | ] 2306 | 2307 | [[package]] 2308 | name = "instant" 2309 | version = "0.1.13" 2310 | source = "registry+https://github.com/rust-lang/crates.io-index" 2311 | checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" 2312 | dependencies = [ 2313 | "cfg-if", 2314 | ] 2315 | 2316 | [[package]] 2317 | name = "ipnet" 2318 | version = "2.11.0" 2319 | source = "registry+https://github.com/rust-lang/crates.io-index" 2320 | checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" 2321 | 2322 | [[package]] 2323 | name = "itoa" 2324 | version = "0.4.8" 2325 | source = "registry+https://github.com/rust-lang/crates.io-index" 2326 | checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" 2327 | 2328 | [[package]] 2329 | name = "itoa" 2330 | version = "1.0.15" 2331 | source = "registry+https://github.com/rust-lang/crates.io-index" 2332 | checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" 2333 | 2334 | [[package]] 2335 | name = "javascriptcore-rs" 2336 | version = "1.1.2" 2337 | source = "registry+https://github.com/rust-lang/crates.io-index" 2338 | checksum = "ca5671e9ffce8ffba57afc24070e906da7fc4b1ba66f2cabebf61bf2ea257fcc" 2339 | dependencies = [ 2340 | "bitflags 1.3.2", 2341 | "glib", 2342 | "javascriptcore-rs-sys", 2343 | ] 2344 | 2345 | [[package]] 2346 | name = "javascriptcore-rs-sys" 2347 | version = "1.1.1" 2348 | source = "registry+https://github.com/rust-lang/crates.io-index" 2349 | checksum = "af1be78d14ffa4b75b66df31840478fef72b51f8c2465d4ca7c194da9f7a5124" 2350 | dependencies = [ 2351 | "glib-sys", 2352 | "gobject-sys", 2353 | "libc", 2354 | "system-deps", 2355 | ] 2356 | 2357 | [[package]] 2358 | name = "jni" 2359 | version = "0.21.1" 2360 | source = "registry+https://github.com/rust-lang/crates.io-index" 2361 | checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" 2362 | dependencies = [ 2363 | "cesu8", 2364 | "cfg-if", 2365 | "combine", 2366 | "jni-sys", 2367 | "log", 2368 | "thiserror 1.0.69", 2369 | "walkdir", 2370 | "windows-sys 0.45.0", 2371 | ] 2372 | 2373 | [[package]] 2374 | name = "jni-sys" 2375 | version = "0.3.0" 2376 | source = "registry+https://github.com/rust-lang/crates.io-index" 2377 | checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" 2378 | 2379 | [[package]] 2380 | name = "js-sys" 2381 | version = "0.3.77" 2382 | source = "registry+https://github.com/rust-lang/crates.io-index" 2383 | checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" 2384 | dependencies = [ 2385 | "once_cell", 2386 | "wasm-bindgen", 2387 | ] 2388 | 2389 | [[package]] 2390 | name = "keyboard-types" 2391 | version = "0.7.0" 2392 | source = "registry+https://github.com/rust-lang/crates.io-index" 2393 | checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" 2394 | dependencies = [ 2395 | "bitflags 2.9.0", 2396 | "serde", 2397 | "unicode-segmentation", 2398 | ] 2399 | 2400 | [[package]] 2401 | name = "kuchikiki" 2402 | version = "0.8.2" 2403 | source = "registry+https://github.com/rust-lang/crates.io-index" 2404 | checksum = "f29e4755b7b995046f510a7520c42b2fed58b77bd94d5a87a8eb43d2fd126da8" 2405 | dependencies = [ 2406 | "cssparser", 2407 | "html5ever", 2408 | "indexmap 1.9.3", 2409 | "matches", 2410 | "selectors", 2411 | ] 2412 | 2413 | [[package]] 2414 | name = "lazy-js-bundle" 2415 | version = "0.6.2" 2416 | source = "registry+https://github.com/rust-lang/crates.io-index" 2417 | checksum = "e49596223b9d9d4947a14a25c142a6e7d8ab3f27eb3ade269d238bb8b5c267e2" 2418 | 2419 | [[package]] 2420 | name = "lazy_static" 2421 | version = "1.5.0" 2422 | source = "registry+https://github.com/rust-lang/crates.io-index" 2423 | checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 2424 | 2425 | [[package]] 2426 | name = "libappindicator" 2427 | version = "0.9.0" 2428 | source = "registry+https://github.com/rust-lang/crates.io-index" 2429 | checksum = "03589b9607c868cc7ae54c0b2a22c8dc03dd41692d48f2d7df73615c6a95dc0a" 2430 | dependencies = [ 2431 | "glib", 2432 | "gtk", 2433 | "gtk-sys", 2434 | "libappindicator-sys", 2435 | "log", 2436 | ] 2437 | 2438 | [[package]] 2439 | name = "libappindicator-sys" 2440 | version = "0.9.0" 2441 | source = "registry+https://github.com/rust-lang/crates.io-index" 2442 | checksum = "6e9ec52138abedcc58dc17a7c6c0c00a2bdb4f3427c7f63fa97fd0d859155caf" 2443 | dependencies = [ 2444 | "gtk-sys", 2445 | "libloading", 2446 | "once_cell", 2447 | ] 2448 | 2449 | [[package]] 2450 | name = "libc" 2451 | version = "0.2.171" 2452 | source = "registry+https://github.com/rust-lang/crates.io-index" 2453 | checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" 2454 | 2455 | [[package]] 2456 | name = "libloading" 2457 | version = "0.7.4" 2458 | source = "registry+https://github.com/rust-lang/crates.io-index" 2459 | checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" 2460 | dependencies = [ 2461 | "cfg-if", 2462 | "winapi", 2463 | ] 2464 | 2465 | [[package]] 2466 | name = "libredox" 2467 | version = "0.1.3" 2468 | source = "registry+https://github.com/rust-lang/crates.io-index" 2469 | checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" 2470 | dependencies = [ 2471 | "bitflags 2.9.0", 2472 | "libc", 2473 | ] 2474 | 2475 | [[package]] 2476 | name = "libxdo" 2477 | version = "0.6.0" 2478 | source = "registry+https://github.com/rust-lang/crates.io-index" 2479 | checksum = "00333b8756a3d28e78def82067a377de7fa61b24909000aeaa2b446a948d14db" 2480 | dependencies = [ 2481 | "libxdo-sys", 2482 | ] 2483 | 2484 | [[package]] 2485 | name = "libxdo-sys" 2486 | version = "0.11.0" 2487 | source = "registry+https://github.com/rust-lang/crates.io-index" 2488 | checksum = "db23b9e7e2b7831bbd8aac0bbeeeb7b68cbebc162b227e7052e8e55829a09212" 2489 | dependencies = [ 2490 | "libc", 2491 | "x11", 2492 | ] 2493 | 2494 | [[package]] 2495 | name = "linux-raw-sys" 2496 | version = "0.4.15" 2497 | source = "registry+https://github.com/rust-lang/crates.io-index" 2498 | checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" 2499 | 2500 | [[package]] 2501 | name = "linux-raw-sys" 2502 | version = "0.9.4" 2503 | source = "registry+https://github.com/rust-lang/crates.io-index" 2504 | checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" 2505 | 2506 | [[package]] 2507 | name = "litemap" 2508 | version = "0.7.5" 2509 | source = "registry+https://github.com/rust-lang/crates.io-index" 2510 | checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" 2511 | 2512 | [[package]] 2513 | name = "lock_api" 2514 | version = "0.4.12" 2515 | source = "registry+https://github.com/rust-lang/crates.io-index" 2516 | checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" 2517 | dependencies = [ 2518 | "autocfg", 2519 | "scopeguard", 2520 | ] 2521 | 2522 | [[package]] 2523 | name = "log" 2524 | version = "0.4.27" 2525 | source = "registry+https://github.com/rust-lang/crates.io-index" 2526 | checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" 2527 | 2528 | [[package]] 2529 | name = "longest-increasing-subsequence" 2530 | version = "0.1.0" 2531 | source = "registry+https://github.com/rust-lang/crates.io-index" 2532 | checksum = "b3bd0dd2cd90571056fdb71f6275fada10131182f84899f4b2a916e565d81d86" 2533 | 2534 | [[package]] 2535 | name = "mac" 2536 | version = "0.1.1" 2537 | source = "registry+https://github.com/rust-lang/crates.io-index" 2538 | checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" 2539 | 2540 | [[package]] 2541 | name = "malloc_buf" 2542 | version = "0.0.6" 2543 | source = "registry+https://github.com/rust-lang/crates.io-index" 2544 | checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" 2545 | dependencies = [ 2546 | "libc", 2547 | ] 2548 | 2549 | [[package]] 2550 | name = "manganis" 2551 | version = "0.6.2" 2552 | source = "registry+https://github.com/rust-lang/crates.io-index" 2553 | checksum = "317af44b15e7605b85f04525449a3bb631753040156c9b318e6cba8a3ea4ef73" 2554 | dependencies = [ 2555 | "const-serialize", 2556 | "manganis-core", 2557 | "manganis-macro", 2558 | ] 2559 | 2560 | [[package]] 2561 | name = "manganis-core" 2562 | version = "0.6.2" 2563 | source = "registry+https://github.com/rust-lang/crates.io-index" 2564 | checksum = "c38bee65cc725b2bba23b5dbb290f57c8be8fadbe2043fb7e2ce73022ea06519" 2565 | dependencies = [ 2566 | "const-serialize", 2567 | "dioxus-cli-config", 2568 | "dioxus-core-types", 2569 | "serde", 2570 | ] 2571 | 2572 | [[package]] 2573 | name = "manganis-macro" 2574 | version = "0.6.2" 2575 | source = "registry+https://github.com/rust-lang/crates.io-index" 2576 | checksum = "d9f4f71310913c40174d9f0cfcbcb127dad0329ecdb3945678a120db22d3d065" 2577 | dependencies = [ 2578 | "dunce", 2579 | "manganis-core", 2580 | "proc-macro2", 2581 | "quote", 2582 | "syn 2.0.100", 2583 | ] 2584 | 2585 | [[package]] 2586 | name = "markup5ever" 2587 | version = "0.11.0" 2588 | source = "registry+https://github.com/rust-lang/crates.io-index" 2589 | checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016" 2590 | dependencies = [ 2591 | "log", 2592 | "phf 0.10.1", 2593 | "phf_codegen 0.10.0", 2594 | "string_cache", 2595 | "string_cache_codegen", 2596 | "tendril", 2597 | ] 2598 | 2599 | [[package]] 2600 | name = "matches" 2601 | version = "0.1.10" 2602 | source = "registry+https://github.com/rust-lang/crates.io-index" 2603 | checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" 2604 | 2605 | [[package]] 2606 | name = "memchr" 2607 | version = "2.7.4" 2608 | source = "registry+https://github.com/rust-lang/crates.io-index" 2609 | checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" 2610 | 2611 | [[package]] 2612 | name = "memoffset" 2613 | version = "0.9.1" 2614 | source = "registry+https://github.com/rust-lang/crates.io-index" 2615 | checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" 2616 | dependencies = [ 2617 | "autocfg", 2618 | ] 2619 | 2620 | [[package]] 2621 | name = "mime" 2622 | version = "0.3.17" 2623 | source = "registry+https://github.com/rust-lang/crates.io-index" 2624 | checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 2625 | 2626 | [[package]] 2627 | name = "mime_guess" 2628 | version = "2.0.5" 2629 | source = "registry+https://github.com/rust-lang/crates.io-index" 2630 | checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" 2631 | dependencies = [ 2632 | "mime", 2633 | "unicase", 2634 | ] 2635 | 2636 | [[package]] 2637 | name = "miniz_oxide" 2638 | version = "0.8.8" 2639 | source = "registry+https://github.com/rust-lang/crates.io-index" 2640 | checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a" 2641 | dependencies = [ 2642 | "adler2", 2643 | "simd-adler32", 2644 | ] 2645 | 2646 | [[package]] 2647 | name = "mio" 2648 | version = "1.0.3" 2649 | source = "registry+https://github.com/rust-lang/crates.io-index" 2650 | checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" 2651 | dependencies = [ 2652 | "libc", 2653 | "wasi 0.11.0+wasi-snapshot-preview1", 2654 | "windows-sys 0.52.0", 2655 | ] 2656 | 2657 | [[package]] 2658 | name = "modx" 2659 | version = "0.1.4" 2660 | dependencies = [ 2661 | "dioxus", 2662 | "proc-macro2", 2663 | "quote", 2664 | "reqwest", 2665 | "serde", 2666 | "syn 2.0.100", 2667 | "tokio", 2668 | ] 2669 | 2670 | [[package]] 2671 | name = "muda" 2672 | version = "0.11.5" 2673 | source = "registry+https://github.com/rust-lang/crates.io-index" 2674 | checksum = "4c47e7625990fc1af2226ea4f34fb2412b03c12639fcb91868581eb3a6893453" 2675 | dependencies = [ 2676 | "cocoa 0.25.0", 2677 | "crossbeam-channel", 2678 | "gtk", 2679 | "keyboard-types", 2680 | "libxdo", 2681 | "objc", 2682 | "once_cell", 2683 | "png", 2684 | "thiserror 1.0.69", 2685 | "windows-sys 0.52.0", 2686 | ] 2687 | 2688 | [[package]] 2689 | name = "muda" 2690 | version = "0.15.3" 2691 | source = "registry+https://github.com/rust-lang/crates.io-index" 2692 | checksum = "fdae9c00e61cc0579bcac625e8ad22104c60548a025bfc972dc83868a28e1484" 2693 | dependencies = [ 2694 | "crossbeam-channel", 2695 | "dpi", 2696 | "gtk", 2697 | "keyboard-types", 2698 | "libxdo", 2699 | "objc2 0.5.2", 2700 | "objc2-app-kit 0.2.2", 2701 | "objc2-foundation 0.2.2", 2702 | "once_cell", 2703 | "png", 2704 | "thiserror 1.0.69", 2705 | "windows-sys 0.59.0", 2706 | ] 2707 | 2708 | [[package]] 2709 | name = "native-tls" 2710 | version = "0.2.14" 2711 | source = "registry+https://github.com/rust-lang/crates.io-index" 2712 | checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" 2713 | dependencies = [ 2714 | "libc", 2715 | "log", 2716 | "openssl", 2717 | "openssl-probe", 2718 | "openssl-sys", 2719 | "schannel", 2720 | "security-framework", 2721 | "security-framework-sys", 2722 | "tempfile", 2723 | ] 2724 | 2725 | [[package]] 2726 | name = "ndk" 2727 | version = "0.9.0" 2728 | source = "registry+https://github.com/rust-lang/crates.io-index" 2729 | checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" 2730 | dependencies = [ 2731 | "bitflags 2.9.0", 2732 | "jni-sys", 2733 | "log", 2734 | "ndk-sys", 2735 | "num_enum", 2736 | "raw-window-handle 0.6.2", 2737 | "thiserror 1.0.69", 2738 | ] 2739 | 2740 | [[package]] 2741 | name = "ndk-context" 2742 | version = "0.1.1" 2743 | source = "registry+https://github.com/rust-lang/crates.io-index" 2744 | checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" 2745 | 2746 | [[package]] 2747 | name = "ndk-sys" 2748 | version = "0.6.0+11769913" 2749 | source = "registry+https://github.com/rust-lang/crates.io-index" 2750 | checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" 2751 | dependencies = [ 2752 | "jni-sys", 2753 | ] 2754 | 2755 | [[package]] 2756 | name = "new_debug_unreachable" 2757 | version = "1.0.6" 2758 | source = "registry+https://github.com/rust-lang/crates.io-index" 2759 | checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" 2760 | 2761 | [[package]] 2762 | name = "nix" 2763 | version = "0.27.1" 2764 | source = "registry+https://github.com/rust-lang/crates.io-index" 2765 | checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" 2766 | dependencies = [ 2767 | "bitflags 2.9.0", 2768 | "cfg-if", 2769 | "libc", 2770 | "memoffset", 2771 | ] 2772 | 2773 | [[package]] 2774 | name = "nodrop" 2775 | version = "0.1.14" 2776 | source = "registry+https://github.com/rust-lang/crates.io-index" 2777 | checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" 2778 | 2779 | [[package]] 2780 | name = "num-traits" 2781 | version = "0.2.19" 2782 | source = "registry+https://github.com/rust-lang/crates.io-index" 2783 | checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 2784 | dependencies = [ 2785 | "autocfg", 2786 | ] 2787 | 2788 | [[package]] 2789 | name = "num_enum" 2790 | version = "0.7.3" 2791 | source = "registry+https://github.com/rust-lang/crates.io-index" 2792 | checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" 2793 | dependencies = [ 2794 | "num_enum_derive", 2795 | ] 2796 | 2797 | [[package]] 2798 | name = "num_enum_derive" 2799 | version = "0.7.3" 2800 | source = "registry+https://github.com/rust-lang/crates.io-index" 2801 | checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" 2802 | dependencies = [ 2803 | "proc-macro-crate 2.0.2", 2804 | "proc-macro2", 2805 | "quote", 2806 | "syn 2.0.100", 2807 | ] 2808 | 2809 | [[package]] 2810 | name = "objc" 2811 | version = "0.2.7" 2812 | source = "registry+https://github.com/rust-lang/crates.io-index" 2813 | checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" 2814 | dependencies = [ 2815 | "malloc_buf", 2816 | "objc_exception", 2817 | ] 2818 | 2819 | [[package]] 2820 | name = "objc-foundation" 2821 | version = "0.1.1" 2822 | source = "registry+https://github.com/rust-lang/crates.io-index" 2823 | checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" 2824 | dependencies = [ 2825 | "block", 2826 | "objc", 2827 | "objc_id", 2828 | ] 2829 | 2830 | [[package]] 2831 | name = "objc-sys" 2832 | version = "0.3.5" 2833 | source = "registry+https://github.com/rust-lang/crates.io-index" 2834 | checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310" 2835 | 2836 | [[package]] 2837 | name = "objc2" 2838 | version = "0.5.2" 2839 | source = "registry+https://github.com/rust-lang/crates.io-index" 2840 | checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804" 2841 | dependencies = [ 2842 | "objc-sys", 2843 | "objc2-encode", 2844 | ] 2845 | 2846 | [[package]] 2847 | name = "objc2" 2848 | version = "0.6.0" 2849 | source = "registry+https://github.com/rust-lang/crates.io-index" 2850 | checksum = "3531f65190d9cff863b77a99857e74c314dd16bf56c538c4b57c7cbc3f3a6e59" 2851 | dependencies = [ 2852 | "objc2-encode", 2853 | ] 2854 | 2855 | [[package]] 2856 | name = "objc2-app-kit" 2857 | version = "0.2.2" 2858 | source = "registry+https://github.com/rust-lang/crates.io-index" 2859 | checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" 2860 | dependencies = [ 2861 | "bitflags 2.9.0", 2862 | "block2 0.5.1", 2863 | "libc", 2864 | "objc2 0.5.2", 2865 | "objc2-core-data", 2866 | "objc2-core-image", 2867 | "objc2-foundation 0.2.2", 2868 | "objc2-quartz-core", 2869 | ] 2870 | 2871 | [[package]] 2872 | name = "objc2-app-kit" 2873 | version = "0.3.0" 2874 | source = "registry+https://github.com/rust-lang/crates.io-index" 2875 | checksum = "5906f93257178e2f7ae069efb89fbd6ee94f0592740b5f8a1512ca498814d0fb" 2876 | dependencies = [ 2877 | "bitflags 2.9.0", 2878 | "objc2 0.6.0", 2879 | "objc2-core-foundation", 2880 | "objc2-foundation 0.3.0", 2881 | ] 2882 | 2883 | [[package]] 2884 | name = "objc2-core-data" 2885 | version = "0.2.2" 2886 | source = "registry+https://github.com/rust-lang/crates.io-index" 2887 | checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" 2888 | dependencies = [ 2889 | "bitflags 2.9.0", 2890 | "block2 0.5.1", 2891 | "objc2 0.5.2", 2892 | "objc2-foundation 0.2.2", 2893 | ] 2894 | 2895 | [[package]] 2896 | name = "objc2-core-foundation" 2897 | version = "0.3.0" 2898 | source = "registry+https://github.com/rust-lang/crates.io-index" 2899 | checksum = "daeaf60f25471d26948a1c2f840e3f7d86f4109e3af4e8e4b5cd70c39690d925" 2900 | dependencies = [ 2901 | "bitflags 2.9.0", 2902 | "objc2 0.6.0", 2903 | ] 2904 | 2905 | [[package]] 2906 | name = "objc2-core-graphics" 2907 | version = "0.3.0" 2908 | source = "registry+https://github.com/rust-lang/crates.io-index" 2909 | checksum = "f8dca602628b65356b6513290a21a6405b4d4027b8b250f0b98dddbb28b7de02" 2910 | dependencies = [ 2911 | "bitflags 2.9.0", 2912 | "objc2-core-foundation", 2913 | ] 2914 | 2915 | [[package]] 2916 | name = "objc2-core-image" 2917 | version = "0.2.2" 2918 | source = "registry+https://github.com/rust-lang/crates.io-index" 2919 | checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80" 2920 | dependencies = [ 2921 | "block2 0.5.1", 2922 | "objc2 0.5.2", 2923 | "objc2-foundation 0.2.2", 2924 | "objc2-metal", 2925 | ] 2926 | 2927 | [[package]] 2928 | name = "objc2-encode" 2929 | version = "4.1.0" 2930 | source = "registry+https://github.com/rust-lang/crates.io-index" 2931 | checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" 2932 | 2933 | [[package]] 2934 | name = "objc2-foundation" 2935 | version = "0.2.2" 2936 | source = "registry+https://github.com/rust-lang/crates.io-index" 2937 | checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" 2938 | dependencies = [ 2939 | "bitflags 2.9.0", 2940 | "block2 0.5.1", 2941 | "libc", 2942 | "objc2 0.5.2", 2943 | ] 2944 | 2945 | [[package]] 2946 | name = "objc2-foundation" 2947 | version = "0.3.0" 2948 | source = "registry+https://github.com/rust-lang/crates.io-index" 2949 | checksum = "3a21c6c9014b82c39515db5b396f91645182611c97d24637cf56ac01e5f8d998" 2950 | dependencies = [ 2951 | "bitflags 2.9.0", 2952 | "block2 0.6.0", 2953 | "objc2 0.6.0", 2954 | "objc2-core-foundation", 2955 | ] 2956 | 2957 | [[package]] 2958 | name = "objc2-metal" 2959 | version = "0.2.2" 2960 | source = "registry+https://github.com/rust-lang/crates.io-index" 2961 | checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" 2962 | dependencies = [ 2963 | "bitflags 2.9.0", 2964 | "block2 0.5.1", 2965 | "objc2 0.5.2", 2966 | "objc2-foundation 0.2.2", 2967 | ] 2968 | 2969 | [[package]] 2970 | name = "objc2-quartz-core" 2971 | version = "0.2.2" 2972 | source = "registry+https://github.com/rust-lang/crates.io-index" 2973 | checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" 2974 | dependencies = [ 2975 | "bitflags 2.9.0", 2976 | "block2 0.5.1", 2977 | "objc2 0.5.2", 2978 | "objc2-foundation 0.2.2", 2979 | "objc2-metal", 2980 | ] 2981 | 2982 | [[package]] 2983 | name = "objc_exception" 2984 | version = "0.1.2" 2985 | source = "registry+https://github.com/rust-lang/crates.io-index" 2986 | checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" 2987 | dependencies = [ 2988 | "cc", 2989 | ] 2990 | 2991 | [[package]] 2992 | name = "objc_id" 2993 | version = "0.1.1" 2994 | source = "registry+https://github.com/rust-lang/crates.io-index" 2995 | checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" 2996 | dependencies = [ 2997 | "objc", 2998 | ] 2999 | 3000 | [[package]] 3001 | name = "object" 3002 | version = "0.36.7" 3003 | source = "registry+https://github.com/rust-lang/crates.io-index" 3004 | checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" 3005 | dependencies = [ 3006 | "memchr", 3007 | ] 3008 | 3009 | [[package]] 3010 | name = "once_cell" 3011 | version = "1.21.3" 3012 | source = "registry+https://github.com/rust-lang/crates.io-index" 3013 | checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" 3014 | 3015 | [[package]] 3016 | name = "openssl" 3017 | version = "0.10.72" 3018 | source = "registry+https://github.com/rust-lang/crates.io-index" 3019 | checksum = "fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da" 3020 | dependencies = [ 3021 | "bitflags 2.9.0", 3022 | "cfg-if", 3023 | "foreign-types 0.3.2", 3024 | "libc", 3025 | "once_cell", 3026 | "openssl-macros", 3027 | "openssl-sys", 3028 | ] 3029 | 3030 | [[package]] 3031 | name = "openssl-macros" 3032 | version = "0.1.1" 3033 | source = "registry+https://github.com/rust-lang/crates.io-index" 3034 | checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" 3035 | dependencies = [ 3036 | "proc-macro2", 3037 | "quote", 3038 | "syn 2.0.100", 3039 | ] 3040 | 3041 | [[package]] 3042 | name = "openssl-probe" 3043 | version = "0.1.6" 3044 | source = "registry+https://github.com/rust-lang/crates.io-index" 3045 | checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" 3046 | 3047 | [[package]] 3048 | name = "openssl-sys" 3049 | version = "0.9.107" 3050 | source = "registry+https://github.com/rust-lang/crates.io-index" 3051 | checksum = "8288979acd84749c744a9014b4382d42b8f7b2592847b5afb2ed29e5d16ede07" 3052 | dependencies = [ 3053 | "cc", 3054 | "libc", 3055 | "pkg-config", 3056 | "vcpkg", 3057 | ] 3058 | 3059 | [[package]] 3060 | name = "option-ext" 3061 | version = "0.2.0" 3062 | source = "registry+https://github.com/rust-lang/crates.io-index" 3063 | checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" 3064 | 3065 | [[package]] 3066 | name = "ordered-stream" 3067 | version = "0.2.0" 3068 | source = "registry+https://github.com/rust-lang/crates.io-index" 3069 | checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" 3070 | dependencies = [ 3071 | "futures-core", 3072 | "pin-project-lite", 3073 | ] 3074 | 3075 | [[package]] 3076 | name = "pango" 3077 | version = "0.18.3" 3078 | source = "registry+https://github.com/rust-lang/crates.io-index" 3079 | checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" 3080 | dependencies = [ 3081 | "gio", 3082 | "glib", 3083 | "libc", 3084 | "once_cell", 3085 | "pango-sys", 3086 | ] 3087 | 3088 | [[package]] 3089 | name = "pango-sys" 3090 | version = "0.18.0" 3091 | source = "registry+https://github.com/rust-lang/crates.io-index" 3092 | checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" 3093 | dependencies = [ 3094 | "glib-sys", 3095 | "gobject-sys", 3096 | "libc", 3097 | "system-deps", 3098 | ] 3099 | 3100 | [[package]] 3101 | name = "parking" 3102 | version = "2.2.1" 3103 | source = "registry+https://github.com/rust-lang/crates.io-index" 3104 | checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" 3105 | 3106 | [[package]] 3107 | name = "parking_lot" 3108 | version = "0.12.3" 3109 | source = "registry+https://github.com/rust-lang/crates.io-index" 3110 | checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" 3111 | dependencies = [ 3112 | "lock_api", 3113 | "parking_lot_core", 3114 | ] 3115 | 3116 | [[package]] 3117 | name = "parking_lot_core" 3118 | version = "0.9.10" 3119 | source = "registry+https://github.com/rust-lang/crates.io-index" 3120 | checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" 3121 | dependencies = [ 3122 | "cfg-if", 3123 | "libc", 3124 | "redox_syscall", 3125 | "smallvec", 3126 | "windows-targets 0.52.6", 3127 | ] 3128 | 3129 | [[package]] 3130 | name = "percent-encoding" 3131 | version = "2.3.1" 3132 | source = "registry+https://github.com/rust-lang/crates.io-index" 3133 | checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 3134 | 3135 | [[package]] 3136 | name = "phf" 3137 | version = "0.8.0" 3138 | source = "registry+https://github.com/rust-lang/crates.io-index" 3139 | checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" 3140 | dependencies = [ 3141 | "phf_macros", 3142 | "phf_shared 0.8.0", 3143 | "proc-macro-hack", 3144 | ] 3145 | 3146 | [[package]] 3147 | name = "phf" 3148 | version = "0.10.1" 3149 | source = "registry+https://github.com/rust-lang/crates.io-index" 3150 | checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" 3151 | dependencies = [ 3152 | "phf_shared 0.10.0", 3153 | ] 3154 | 3155 | [[package]] 3156 | name = "phf_codegen" 3157 | version = "0.8.0" 3158 | source = "registry+https://github.com/rust-lang/crates.io-index" 3159 | checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" 3160 | dependencies = [ 3161 | "phf_generator 0.8.0", 3162 | "phf_shared 0.8.0", 3163 | ] 3164 | 3165 | [[package]] 3166 | name = "phf_codegen" 3167 | version = "0.10.0" 3168 | source = "registry+https://github.com/rust-lang/crates.io-index" 3169 | checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd" 3170 | dependencies = [ 3171 | "phf_generator 0.10.0", 3172 | "phf_shared 0.10.0", 3173 | ] 3174 | 3175 | [[package]] 3176 | name = "phf_generator" 3177 | version = "0.8.0" 3178 | source = "registry+https://github.com/rust-lang/crates.io-index" 3179 | checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" 3180 | dependencies = [ 3181 | "phf_shared 0.8.0", 3182 | "rand 0.7.3", 3183 | ] 3184 | 3185 | [[package]] 3186 | name = "phf_generator" 3187 | version = "0.10.0" 3188 | source = "registry+https://github.com/rust-lang/crates.io-index" 3189 | checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" 3190 | dependencies = [ 3191 | "phf_shared 0.10.0", 3192 | "rand 0.8.5", 3193 | ] 3194 | 3195 | [[package]] 3196 | name = "phf_generator" 3197 | version = "0.11.3" 3198 | source = "registry+https://github.com/rust-lang/crates.io-index" 3199 | checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" 3200 | dependencies = [ 3201 | "phf_shared 0.11.3", 3202 | "rand 0.8.5", 3203 | ] 3204 | 3205 | [[package]] 3206 | name = "phf_macros" 3207 | version = "0.8.0" 3208 | source = "registry+https://github.com/rust-lang/crates.io-index" 3209 | checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c" 3210 | dependencies = [ 3211 | "phf_generator 0.8.0", 3212 | "phf_shared 0.8.0", 3213 | "proc-macro-hack", 3214 | "proc-macro2", 3215 | "quote", 3216 | "syn 1.0.109", 3217 | ] 3218 | 3219 | [[package]] 3220 | name = "phf_shared" 3221 | version = "0.8.0" 3222 | source = "registry+https://github.com/rust-lang/crates.io-index" 3223 | checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" 3224 | dependencies = [ 3225 | "siphasher 0.3.11", 3226 | ] 3227 | 3228 | [[package]] 3229 | name = "phf_shared" 3230 | version = "0.10.0" 3231 | source = "registry+https://github.com/rust-lang/crates.io-index" 3232 | checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" 3233 | dependencies = [ 3234 | "siphasher 0.3.11", 3235 | ] 3236 | 3237 | [[package]] 3238 | name = "phf_shared" 3239 | version = "0.11.3" 3240 | source = "registry+https://github.com/rust-lang/crates.io-index" 3241 | checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" 3242 | dependencies = [ 3243 | "siphasher 1.0.1", 3244 | ] 3245 | 3246 | [[package]] 3247 | name = "pin-project" 3248 | version = "1.1.10" 3249 | source = "registry+https://github.com/rust-lang/crates.io-index" 3250 | checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" 3251 | dependencies = [ 3252 | "pin-project-internal", 3253 | ] 3254 | 3255 | [[package]] 3256 | name = "pin-project-internal" 3257 | version = "1.1.10" 3258 | source = "registry+https://github.com/rust-lang/crates.io-index" 3259 | checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" 3260 | dependencies = [ 3261 | "proc-macro2", 3262 | "quote", 3263 | "syn 2.0.100", 3264 | ] 3265 | 3266 | [[package]] 3267 | name = "pin-project-lite" 3268 | version = "0.2.16" 3269 | source = "registry+https://github.com/rust-lang/crates.io-index" 3270 | checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" 3271 | 3272 | [[package]] 3273 | name = "pin-utils" 3274 | version = "0.1.0" 3275 | source = "registry+https://github.com/rust-lang/crates.io-index" 3276 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 3277 | 3278 | [[package]] 3279 | name = "piper" 3280 | version = "0.2.4" 3281 | source = "registry+https://github.com/rust-lang/crates.io-index" 3282 | checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" 3283 | dependencies = [ 3284 | "atomic-waker", 3285 | "fastrand", 3286 | "futures-io", 3287 | ] 3288 | 3289 | [[package]] 3290 | name = "pkg-config" 3291 | version = "0.3.32" 3292 | source = "registry+https://github.com/rust-lang/crates.io-index" 3293 | checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" 3294 | 3295 | [[package]] 3296 | name = "png" 3297 | version = "0.17.16" 3298 | source = "registry+https://github.com/rust-lang/crates.io-index" 3299 | checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526" 3300 | dependencies = [ 3301 | "bitflags 1.3.2", 3302 | "crc32fast", 3303 | "fdeflate", 3304 | "flate2", 3305 | "miniz_oxide", 3306 | ] 3307 | 3308 | [[package]] 3309 | name = "polling" 3310 | version = "3.7.4" 3311 | source = "registry+https://github.com/rust-lang/crates.io-index" 3312 | checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" 3313 | dependencies = [ 3314 | "cfg-if", 3315 | "concurrent-queue", 3316 | "hermit-abi", 3317 | "pin-project-lite", 3318 | "rustix 0.38.44", 3319 | "tracing", 3320 | "windows-sys 0.59.0", 3321 | ] 3322 | 3323 | [[package]] 3324 | name = "pollster" 3325 | version = "0.3.0" 3326 | source = "registry+https://github.com/rust-lang/crates.io-index" 3327 | checksum = "22686f4785f02a4fcc856d3b3bb19bf6c8160d103f7a99cc258bddd0251dc7f2" 3328 | 3329 | [[package]] 3330 | name = "ppv-lite86" 3331 | version = "0.2.21" 3332 | source = "registry+https://github.com/rust-lang/crates.io-index" 3333 | checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" 3334 | dependencies = [ 3335 | "zerocopy", 3336 | ] 3337 | 3338 | [[package]] 3339 | name = "precomputed-hash" 3340 | version = "0.1.1" 3341 | source = "registry+https://github.com/rust-lang/crates.io-index" 3342 | checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" 3343 | 3344 | [[package]] 3345 | name = "proc-macro-crate" 3346 | version = "1.3.1" 3347 | source = "registry+https://github.com/rust-lang/crates.io-index" 3348 | checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" 3349 | dependencies = [ 3350 | "once_cell", 3351 | "toml_edit 0.19.15", 3352 | ] 3353 | 3354 | [[package]] 3355 | name = "proc-macro-crate" 3356 | version = "2.0.2" 3357 | source = "registry+https://github.com/rust-lang/crates.io-index" 3358 | checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" 3359 | dependencies = [ 3360 | "toml_datetime", 3361 | "toml_edit 0.20.2", 3362 | ] 3363 | 3364 | [[package]] 3365 | name = "proc-macro-error" 3366 | version = "1.0.4" 3367 | source = "registry+https://github.com/rust-lang/crates.io-index" 3368 | checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" 3369 | dependencies = [ 3370 | "proc-macro-error-attr", 3371 | "proc-macro2", 3372 | "quote", 3373 | "syn 1.0.109", 3374 | "version_check", 3375 | ] 3376 | 3377 | [[package]] 3378 | name = "proc-macro-error-attr" 3379 | version = "1.0.4" 3380 | source = "registry+https://github.com/rust-lang/crates.io-index" 3381 | checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" 3382 | dependencies = [ 3383 | "proc-macro2", 3384 | "quote", 3385 | "version_check", 3386 | ] 3387 | 3388 | [[package]] 3389 | name = "proc-macro-hack" 3390 | version = "0.5.20+deprecated" 3391 | source = "registry+https://github.com/rust-lang/crates.io-index" 3392 | checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" 3393 | 3394 | [[package]] 3395 | name = "proc-macro2" 3396 | version = "1.0.94" 3397 | source = "registry+https://github.com/rust-lang/crates.io-index" 3398 | checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" 3399 | dependencies = [ 3400 | "unicode-ident", 3401 | ] 3402 | 3403 | [[package]] 3404 | name = "proc-macro2-diagnostics" 3405 | version = "0.10.1" 3406 | source = "registry+https://github.com/rust-lang/crates.io-index" 3407 | checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" 3408 | dependencies = [ 3409 | "proc-macro2", 3410 | "quote", 3411 | "syn 2.0.100", 3412 | "version_check", 3413 | ] 3414 | 3415 | [[package]] 3416 | name = "quote" 3417 | version = "1.0.40" 3418 | source = "registry+https://github.com/rust-lang/crates.io-index" 3419 | checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" 3420 | dependencies = [ 3421 | "proc-macro2", 3422 | ] 3423 | 3424 | [[package]] 3425 | name = "r-efi" 3426 | version = "5.2.0" 3427 | source = "registry+https://github.com/rust-lang/crates.io-index" 3428 | checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" 3429 | 3430 | [[package]] 3431 | name = "rand" 3432 | version = "0.7.3" 3433 | source = "registry+https://github.com/rust-lang/crates.io-index" 3434 | checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" 3435 | dependencies = [ 3436 | "getrandom 0.1.16", 3437 | "libc", 3438 | "rand_chacha 0.2.2", 3439 | "rand_core 0.5.1", 3440 | "rand_hc", 3441 | "rand_pcg", 3442 | ] 3443 | 3444 | [[package]] 3445 | name = "rand" 3446 | version = "0.8.5" 3447 | source = "registry+https://github.com/rust-lang/crates.io-index" 3448 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 3449 | dependencies = [ 3450 | "libc", 3451 | "rand_chacha 0.3.1", 3452 | "rand_core 0.6.4", 3453 | ] 3454 | 3455 | [[package]] 3456 | name = "rand_chacha" 3457 | version = "0.2.2" 3458 | source = "registry+https://github.com/rust-lang/crates.io-index" 3459 | checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" 3460 | dependencies = [ 3461 | "ppv-lite86", 3462 | "rand_core 0.5.1", 3463 | ] 3464 | 3465 | [[package]] 3466 | name = "rand_chacha" 3467 | version = "0.3.1" 3468 | source = "registry+https://github.com/rust-lang/crates.io-index" 3469 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 3470 | dependencies = [ 3471 | "ppv-lite86", 3472 | "rand_core 0.6.4", 3473 | ] 3474 | 3475 | [[package]] 3476 | name = "rand_core" 3477 | version = "0.5.1" 3478 | source = "registry+https://github.com/rust-lang/crates.io-index" 3479 | checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" 3480 | dependencies = [ 3481 | "getrandom 0.1.16", 3482 | ] 3483 | 3484 | [[package]] 3485 | name = "rand_core" 3486 | version = "0.6.4" 3487 | source = "registry+https://github.com/rust-lang/crates.io-index" 3488 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 3489 | dependencies = [ 3490 | "getrandom 0.2.15", 3491 | ] 3492 | 3493 | [[package]] 3494 | name = "rand_hc" 3495 | version = "0.2.0" 3496 | source = "registry+https://github.com/rust-lang/crates.io-index" 3497 | checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" 3498 | dependencies = [ 3499 | "rand_core 0.5.1", 3500 | ] 3501 | 3502 | [[package]] 3503 | name = "rand_pcg" 3504 | version = "0.2.1" 3505 | source = "registry+https://github.com/rust-lang/crates.io-index" 3506 | checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" 3507 | dependencies = [ 3508 | "rand_core 0.5.1", 3509 | ] 3510 | 3511 | [[package]] 3512 | name = "raw-window-handle" 3513 | version = "0.5.2" 3514 | source = "registry+https://github.com/rust-lang/crates.io-index" 3515 | checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" 3516 | 3517 | [[package]] 3518 | name = "raw-window-handle" 3519 | version = "0.6.2" 3520 | source = "registry+https://github.com/rust-lang/crates.io-index" 3521 | checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" 3522 | 3523 | [[package]] 3524 | name = "redox_syscall" 3525 | version = "0.5.11" 3526 | source = "registry+https://github.com/rust-lang/crates.io-index" 3527 | checksum = "d2f103c6d277498fbceb16e84d317e2a400f160f46904d5f5410848c829511a3" 3528 | dependencies = [ 3529 | "bitflags 2.9.0", 3530 | ] 3531 | 3532 | [[package]] 3533 | name = "redox_users" 3534 | version = "0.5.0" 3535 | source = "registry+https://github.com/rust-lang/crates.io-index" 3536 | checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b" 3537 | dependencies = [ 3538 | "getrandom 0.2.15", 3539 | "libredox", 3540 | "thiserror 2.0.12", 3541 | ] 3542 | 3543 | [[package]] 3544 | name = "regex" 3545 | version = "1.11.1" 3546 | source = "registry+https://github.com/rust-lang/crates.io-index" 3547 | checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" 3548 | dependencies = [ 3549 | "aho-corasick", 3550 | "memchr", 3551 | "regex-automata", 3552 | "regex-syntax", 3553 | ] 3554 | 3555 | [[package]] 3556 | name = "regex-automata" 3557 | version = "0.4.9" 3558 | source = "registry+https://github.com/rust-lang/crates.io-index" 3559 | checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" 3560 | dependencies = [ 3561 | "aho-corasick", 3562 | "memchr", 3563 | "regex-syntax", 3564 | ] 3565 | 3566 | [[package]] 3567 | name = "regex-syntax" 3568 | version = "0.8.5" 3569 | source = "registry+https://github.com/rust-lang/crates.io-index" 3570 | checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" 3571 | 3572 | [[package]] 3573 | name = "reqwest" 3574 | version = "0.12.15" 3575 | source = "registry+https://github.com/rust-lang/crates.io-index" 3576 | checksum = "d19c46a6fdd48bc4dab94b6103fccc55d34c67cc0ad04653aad4ea2a07cd7bbb" 3577 | dependencies = [ 3578 | "base64", 3579 | "bytes", 3580 | "encoding_rs", 3581 | "futures-core", 3582 | "futures-util", 3583 | "h2", 3584 | "http", 3585 | "http-body", 3586 | "http-body-util", 3587 | "hyper", 3588 | "hyper-rustls", 3589 | "hyper-tls", 3590 | "hyper-util", 3591 | "ipnet", 3592 | "js-sys", 3593 | "log", 3594 | "mime", 3595 | "mime_guess", 3596 | "native-tls", 3597 | "once_cell", 3598 | "percent-encoding", 3599 | "pin-project-lite", 3600 | "rustls-pemfile", 3601 | "serde", 3602 | "serde_json", 3603 | "serde_urlencoded", 3604 | "sync_wrapper", 3605 | "system-configuration", 3606 | "tokio", 3607 | "tokio-native-tls", 3608 | "tokio-util", 3609 | "tower", 3610 | "tower-service", 3611 | "url", 3612 | "wasm-bindgen", 3613 | "wasm-bindgen-futures", 3614 | "wasm-streams", 3615 | "web-sys", 3616 | "windows-registry", 3617 | ] 3618 | 3619 | [[package]] 3620 | name = "rfd" 3621 | version = "0.14.1" 3622 | source = "registry+https://github.com/rust-lang/crates.io-index" 3623 | checksum = "25a73a7337fc24366edfca76ec521f51877b114e42dab584008209cca6719251" 3624 | dependencies = [ 3625 | "ashpd", 3626 | "block", 3627 | "dispatch", 3628 | "js-sys", 3629 | "log", 3630 | "objc", 3631 | "objc-foundation", 3632 | "objc_id", 3633 | "pollster", 3634 | "raw-window-handle 0.6.2", 3635 | "urlencoding", 3636 | "wasm-bindgen", 3637 | "wasm-bindgen-futures", 3638 | "web-sys", 3639 | "windows-sys 0.48.0", 3640 | ] 3641 | 3642 | [[package]] 3643 | name = "ring" 3644 | version = "0.17.14" 3645 | source = "registry+https://github.com/rust-lang/crates.io-index" 3646 | checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" 3647 | dependencies = [ 3648 | "cc", 3649 | "cfg-if", 3650 | "getrandom 0.2.15", 3651 | "libc", 3652 | "untrusted", 3653 | "windows-sys 0.52.0", 3654 | ] 3655 | 3656 | [[package]] 3657 | name = "rustc-demangle" 3658 | version = "0.1.24" 3659 | source = "registry+https://github.com/rust-lang/crates.io-index" 3660 | checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" 3661 | 3662 | [[package]] 3663 | name = "rustc-hash" 3664 | version = "1.1.0" 3665 | source = "registry+https://github.com/rust-lang/crates.io-index" 3666 | checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" 3667 | 3668 | [[package]] 3669 | name = "rustc_version" 3670 | version = "0.4.1" 3671 | source = "registry+https://github.com/rust-lang/crates.io-index" 3672 | checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" 3673 | dependencies = [ 3674 | "semver", 3675 | ] 3676 | 3677 | [[package]] 3678 | name = "rustix" 3679 | version = "0.38.44" 3680 | source = "registry+https://github.com/rust-lang/crates.io-index" 3681 | checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" 3682 | dependencies = [ 3683 | "bitflags 2.9.0", 3684 | "errno", 3685 | "libc", 3686 | "linux-raw-sys 0.4.15", 3687 | "windows-sys 0.59.0", 3688 | ] 3689 | 3690 | [[package]] 3691 | name = "rustix" 3692 | version = "1.0.5" 3693 | source = "registry+https://github.com/rust-lang/crates.io-index" 3694 | checksum = "d97817398dd4bb2e6da002002db259209759911da105da92bec29ccb12cf58bf" 3695 | dependencies = [ 3696 | "bitflags 2.9.0", 3697 | "errno", 3698 | "libc", 3699 | "linux-raw-sys 0.9.4", 3700 | "windows-sys 0.59.0", 3701 | ] 3702 | 3703 | [[package]] 3704 | name = "rustls" 3705 | version = "0.23.26" 3706 | source = "registry+https://github.com/rust-lang/crates.io-index" 3707 | checksum = "df51b5869f3a441595eac5e8ff14d486ff285f7b8c0df8770e49c3b56351f0f0" 3708 | dependencies = [ 3709 | "once_cell", 3710 | "rustls-pki-types", 3711 | "rustls-webpki", 3712 | "subtle", 3713 | "zeroize", 3714 | ] 3715 | 3716 | [[package]] 3717 | name = "rustls-pemfile" 3718 | version = "2.2.0" 3719 | source = "registry+https://github.com/rust-lang/crates.io-index" 3720 | checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" 3721 | dependencies = [ 3722 | "rustls-pki-types", 3723 | ] 3724 | 3725 | [[package]] 3726 | name = "rustls-pki-types" 3727 | version = "1.11.0" 3728 | source = "registry+https://github.com/rust-lang/crates.io-index" 3729 | checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" 3730 | 3731 | [[package]] 3732 | name = "rustls-webpki" 3733 | version = "0.103.1" 3734 | source = "registry+https://github.com/rust-lang/crates.io-index" 3735 | checksum = "fef8b8769aaccf73098557a87cd1816b4f9c7c16811c9c77142aa695c16f2c03" 3736 | dependencies = [ 3737 | "ring", 3738 | "rustls-pki-types", 3739 | "untrusted", 3740 | ] 3741 | 3742 | [[package]] 3743 | name = "rustversion" 3744 | version = "1.0.20" 3745 | source = "registry+https://github.com/rust-lang/crates.io-index" 3746 | checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" 3747 | 3748 | [[package]] 3749 | name = "ryu" 3750 | version = "1.0.20" 3751 | source = "registry+https://github.com/rust-lang/crates.io-index" 3752 | checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" 3753 | 3754 | [[package]] 3755 | name = "same-file" 3756 | version = "1.0.6" 3757 | source = "registry+https://github.com/rust-lang/crates.io-index" 3758 | checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 3759 | dependencies = [ 3760 | "winapi-util", 3761 | ] 3762 | 3763 | [[package]] 3764 | name = "schannel" 3765 | version = "0.1.27" 3766 | source = "registry+https://github.com/rust-lang/crates.io-index" 3767 | checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" 3768 | dependencies = [ 3769 | "windows-sys 0.59.0", 3770 | ] 3771 | 3772 | [[package]] 3773 | name = "scopeguard" 3774 | version = "1.2.0" 3775 | source = "registry+https://github.com/rust-lang/crates.io-index" 3776 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 3777 | 3778 | [[package]] 3779 | name = "security-framework" 3780 | version = "2.11.1" 3781 | source = "registry+https://github.com/rust-lang/crates.io-index" 3782 | checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" 3783 | dependencies = [ 3784 | "bitflags 2.9.0", 3785 | "core-foundation 0.9.4", 3786 | "core-foundation-sys", 3787 | "libc", 3788 | "security-framework-sys", 3789 | ] 3790 | 3791 | [[package]] 3792 | name = "security-framework-sys" 3793 | version = "2.14.0" 3794 | source = "registry+https://github.com/rust-lang/crates.io-index" 3795 | checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" 3796 | dependencies = [ 3797 | "core-foundation-sys", 3798 | "libc", 3799 | ] 3800 | 3801 | [[package]] 3802 | name = "selectors" 3803 | version = "0.22.0" 3804 | source = "registry+https://github.com/rust-lang/crates.io-index" 3805 | checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe" 3806 | dependencies = [ 3807 | "bitflags 1.3.2", 3808 | "cssparser", 3809 | "derive_more", 3810 | "fxhash", 3811 | "log", 3812 | "matches", 3813 | "phf 0.8.0", 3814 | "phf_codegen 0.8.0", 3815 | "precomputed-hash", 3816 | "servo_arc", 3817 | "smallvec", 3818 | "thin-slice", 3819 | ] 3820 | 3821 | [[package]] 3822 | name = "semver" 3823 | version = "1.0.26" 3824 | source = "registry+https://github.com/rust-lang/crates.io-index" 3825 | checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" 3826 | 3827 | [[package]] 3828 | name = "send_wrapper" 3829 | version = "0.6.0" 3830 | source = "registry+https://github.com/rust-lang/crates.io-index" 3831 | checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" 3832 | dependencies = [ 3833 | "futures-core", 3834 | ] 3835 | 3836 | [[package]] 3837 | name = "serde" 3838 | version = "1.0.219" 3839 | source = "registry+https://github.com/rust-lang/crates.io-index" 3840 | checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" 3841 | dependencies = [ 3842 | "serde_derive", 3843 | ] 3844 | 3845 | [[package]] 3846 | name = "serde-wasm-bindgen" 3847 | version = "0.5.0" 3848 | source = "registry+https://github.com/rust-lang/crates.io-index" 3849 | checksum = "f3b143e2833c57ab9ad3ea280d21fd34e285a42837aeb0ee301f4f41890fa00e" 3850 | dependencies = [ 3851 | "js-sys", 3852 | "serde", 3853 | "wasm-bindgen", 3854 | ] 3855 | 3856 | [[package]] 3857 | name = "serde_derive" 3858 | version = "1.0.219" 3859 | source = "registry+https://github.com/rust-lang/crates.io-index" 3860 | checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" 3861 | dependencies = [ 3862 | "proc-macro2", 3863 | "quote", 3864 | "syn 2.0.100", 3865 | ] 3866 | 3867 | [[package]] 3868 | name = "serde_json" 3869 | version = "1.0.140" 3870 | source = "registry+https://github.com/rust-lang/crates.io-index" 3871 | checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" 3872 | dependencies = [ 3873 | "itoa 1.0.15", 3874 | "memchr", 3875 | "ryu", 3876 | "serde", 3877 | ] 3878 | 3879 | [[package]] 3880 | name = "serde_qs" 3881 | version = "0.12.0" 3882 | source = "registry+https://github.com/rust-lang/crates.io-index" 3883 | checksum = "0431a35568651e363364210c91983c1da5eb29404d9f0928b67d4ebcfa7d330c" 3884 | dependencies = [ 3885 | "percent-encoding", 3886 | "serde", 3887 | "thiserror 1.0.69", 3888 | ] 3889 | 3890 | [[package]] 3891 | name = "serde_repr" 3892 | version = "0.1.20" 3893 | source = "registry+https://github.com/rust-lang/crates.io-index" 3894 | checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" 3895 | dependencies = [ 3896 | "proc-macro2", 3897 | "quote", 3898 | "syn 2.0.100", 3899 | ] 3900 | 3901 | [[package]] 3902 | name = "serde_spanned" 3903 | version = "0.6.8" 3904 | source = "registry+https://github.com/rust-lang/crates.io-index" 3905 | checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" 3906 | dependencies = [ 3907 | "serde", 3908 | ] 3909 | 3910 | [[package]] 3911 | name = "serde_urlencoded" 3912 | version = "0.7.1" 3913 | source = "registry+https://github.com/rust-lang/crates.io-index" 3914 | checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 3915 | dependencies = [ 3916 | "form_urlencoded", 3917 | "itoa 1.0.15", 3918 | "ryu", 3919 | "serde", 3920 | ] 3921 | 3922 | [[package]] 3923 | name = "server_fn" 3924 | version = "0.6.15" 3925 | source = "registry+https://github.com/rust-lang/crates.io-index" 3926 | checksum = "4fae7a3038a32e5a34ba32c6c45eb4852f8affaf8b794ebfcd4b1099e2d62ebe" 3927 | dependencies = [ 3928 | "bytes", 3929 | "const_format", 3930 | "dashmap", 3931 | "futures", 3932 | "gloo-net", 3933 | "http", 3934 | "js-sys", 3935 | "once_cell", 3936 | "reqwest", 3937 | "send_wrapper", 3938 | "serde", 3939 | "serde_json", 3940 | "serde_qs", 3941 | "server_fn_macro_default", 3942 | "thiserror 1.0.69", 3943 | "url", 3944 | "wasm-bindgen", 3945 | "wasm-bindgen-futures", 3946 | "wasm-streams", 3947 | "web-sys", 3948 | "xxhash-rust", 3949 | ] 3950 | 3951 | [[package]] 3952 | name = "server_fn_macro" 3953 | version = "0.6.15" 3954 | source = "registry+https://github.com/rust-lang/crates.io-index" 3955 | checksum = "faaaf648c6967aef78177c0610478abb5a3455811f401f3c62d10ae9bd3901a1" 3956 | dependencies = [ 3957 | "const_format", 3958 | "convert_case 0.6.0", 3959 | "proc-macro2", 3960 | "quote", 3961 | "syn 2.0.100", 3962 | "xxhash-rust", 3963 | ] 3964 | 3965 | [[package]] 3966 | name = "server_fn_macro_default" 3967 | version = "0.6.15" 3968 | source = "registry+https://github.com/rust-lang/crates.io-index" 3969 | checksum = "7f2aa8119b558a17992e0ac1fd07f080099564f24532858811ce04f742542440" 3970 | dependencies = [ 3971 | "server_fn_macro", 3972 | "syn 2.0.100", 3973 | ] 3974 | 3975 | [[package]] 3976 | name = "servo_arc" 3977 | version = "0.1.1" 3978 | source = "registry+https://github.com/rust-lang/crates.io-index" 3979 | checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432" 3980 | dependencies = [ 3981 | "nodrop", 3982 | "stable_deref_trait", 3983 | ] 3984 | 3985 | [[package]] 3986 | name = "sha1" 3987 | version = "0.10.6" 3988 | source = "registry+https://github.com/rust-lang/crates.io-index" 3989 | checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" 3990 | dependencies = [ 3991 | "cfg-if", 3992 | "cpufeatures", 3993 | "digest", 3994 | ] 3995 | 3996 | [[package]] 3997 | name = "sha2" 3998 | version = "0.10.8" 3999 | source = "registry+https://github.com/rust-lang/crates.io-index" 4000 | checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" 4001 | dependencies = [ 4002 | "cfg-if", 4003 | "cpufeatures", 4004 | "digest", 4005 | ] 4006 | 4007 | [[package]] 4008 | name = "sharded-slab" 4009 | version = "0.1.7" 4010 | source = "registry+https://github.com/rust-lang/crates.io-index" 4011 | checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" 4012 | dependencies = [ 4013 | "lazy_static", 4014 | ] 4015 | 4016 | [[package]] 4017 | name = "shlex" 4018 | version = "1.3.0" 4019 | source = "registry+https://github.com/rust-lang/crates.io-index" 4020 | checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 4021 | 4022 | [[package]] 4023 | name = "signal-hook" 4024 | version = "0.3.17" 4025 | source = "registry+https://github.com/rust-lang/crates.io-index" 4026 | checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" 4027 | dependencies = [ 4028 | "libc", 4029 | "signal-hook-registry", 4030 | ] 4031 | 4032 | [[package]] 4033 | name = "signal-hook-registry" 4034 | version = "1.4.2" 4035 | source = "registry+https://github.com/rust-lang/crates.io-index" 4036 | checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" 4037 | dependencies = [ 4038 | "libc", 4039 | ] 4040 | 4041 | [[package]] 4042 | name = "simd-adler32" 4043 | version = "0.3.7" 4044 | source = "registry+https://github.com/rust-lang/crates.io-index" 4045 | checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" 4046 | 4047 | [[package]] 4048 | name = "siphasher" 4049 | version = "0.3.11" 4050 | source = "registry+https://github.com/rust-lang/crates.io-index" 4051 | checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" 4052 | 4053 | [[package]] 4054 | name = "siphasher" 4055 | version = "1.0.1" 4056 | source = "registry+https://github.com/rust-lang/crates.io-index" 4057 | checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" 4058 | 4059 | [[package]] 4060 | name = "slab" 4061 | version = "0.4.9" 4062 | source = "registry+https://github.com/rust-lang/crates.io-index" 4063 | checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" 4064 | dependencies = [ 4065 | "autocfg", 4066 | ] 4067 | 4068 | [[package]] 4069 | name = "sledgehammer_bindgen" 4070 | version = "0.6.0" 4071 | source = "registry+https://github.com/rust-lang/crates.io-index" 4072 | checksum = "49e83e178d176459c92bc129cfd0958afac3ced925471b889b3a75546cfc4133" 4073 | dependencies = [ 4074 | "sledgehammer_bindgen_macro", 4075 | "wasm-bindgen", 4076 | ] 4077 | 4078 | [[package]] 4079 | name = "sledgehammer_bindgen_macro" 4080 | version = "0.6.0" 4081 | source = "registry+https://github.com/rust-lang/crates.io-index" 4082 | checksum = "33a1b4f13e2bbf2f5b29d09dfebc9de69229ffee245aed80e3b70f9b5fd28c06" 4083 | dependencies = [ 4084 | "quote", 4085 | "syn 2.0.100", 4086 | ] 4087 | 4088 | [[package]] 4089 | name = "sledgehammer_utils" 4090 | version = "0.3.1" 4091 | source = "registry+https://github.com/rust-lang/crates.io-index" 4092 | checksum = "debdd4b83524961983cea3c55383b3910fd2f24fd13a188f5b091d2d504a61ae" 4093 | dependencies = [ 4094 | "rustc-hash", 4095 | ] 4096 | 4097 | [[package]] 4098 | name = "slotmap" 4099 | version = "1.0.7" 4100 | source = "registry+https://github.com/rust-lang/crates.io-index" 4101 | checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" 4102 | dependencies = [ 4103 | "serde", 4104 | "version_check", 4105 | ] 4106 | 4107 | [[package]] 4108 | name = "smallvec" 4109 | version = "1.15.0" 4110 | source = "registry+https://github.com/rust-lang/crates.io-index" 4111 | checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" 4112 | 4113 | [[package]] 4114 | name = "socket2" 4115 | version = "0.5.9" 4116 | source = "registry+https://github.com/rust-lang/crates.io-index" 4117 | checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" 4118 | dependencies = [ 4119 | "libc", 4120 | "windows-sys 0.52.0", 4121 | ] 4122 | 4123 | [[package]] 4124 | name = "soup3" 4125 | version = "0.5.0" 4126 | source = "registry+https://github.com/rust-lang/crates.io-index" 4127 | checksum = "471f924a40f31251afc77450e781cb26d55c0b650842efafc9c6cbd2f7cc4f9f" 4128 | dependencies = [ 4129 | "futures-channel", 4130 | "gio", 4131 | "glib", 4132 | "libc", 4133 | "soup3-sys", 4134 | ] 4135 | 4136 | [[package]] 4137 | name = "soup3-sys" 4138 | version = "0.5.0" 4139 | source = "registry+https://github.com/rust-lang/crates.io-index" 4140 | checksum = "7ebe8950a680a12f24f15ebe1bf70db7af98ad242d9db43596ad3108aab86c27" 4141 | dependencies = [ 4142 | "gio-sys", 4143 | "glib-sys", 4144 | "gobject-sys", 4145 | "libc", 4146 | "system-deps", 4147 | ] 4148 | 4149 | [[package]] 4150 | name = "stable_deref_trait" 4151 | version = "1.2.0" 4152 | source = "registry+https://github.com/rust-lang/crates.io-index" 4153 | checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" 4154 | 4155 | [[package]] 4156 | name = "static_assertions" 4157 | version = "1.1.0" 4158 | source = "registry+https://github.com/rust-lang/crates.io-index" 4159 | checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 4160 | 4161 | [[package]] 4162 | name = "string_cache" 4163 | version = "0.8.9" 4164 | source = "registry+https://github.com/rust-lang/crates.io-index" 4165 | checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f" 4166 | dependencies = [ 4167 | "new_debug_unreachable", 4168 | "parking_lot", 4169 | "phf_shared 0.11.3", 4170 | "precomputed-hash", 4171 | "serde", 4172 | ] 4173 | 4174 | [[package]] 4175 | name = "string_cache_codegen" 4176 | version = "0.5.4" 4177 | source = "registry+https://github.com/rust-lang/crates.io-index" 4178 | checksum = "c711928715f1fe0fe509c53b43e993a9a557babc2d0a3567d0a3006f1ac931a0" 4179 | dependencies = [ 4180 | "phf_generator 0.11.3", 4181 | "phf_shared 0.11.3", 4182 | "proc-macro2", 4183 | "quote", 4184 | ] 4185 | 4186 | [[package]] 4187 | name = "subtle" 4188 | version = "2.6.1" 4189 | source = "registry+https://github.com/rust-lang/crates.io-index" 4190 | checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" 4191 | 4192 | [[package]] 4193 | name = "syn" 4194 | version = "1.0.109" 4195 | source = "registry+https://github.com/rust-lang/crates.io-index" 4196 | checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 4197 | dependencies = [ 4198 | "proc-macro2", 4199 | "quote", 4200 | "unicode-ident", 4201 | ] 4202 | 4203 | [[package]] 4204 | name = "syn" 4205 | version = "2.0.100" 4206 | source = "registry+https://github.com/rust-lang/crates.io-index" 4207 | checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" 4208 | dependencies = [ 4209 | "proc-macro2", 4210 | "quote", 4211 | "unicode-ident", 4212 | ] 4213 | 4214 | [[package]] 4215 | name = "sync_wrapper" 4216 | version = "1.0.2" 4217 | source = "registry+https://github.com/rust-lang/crates.io-index" 4218 | checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" 4219 | dependencies = [ 4220 | "futures-core", 4221 | ] 4222 | 4223 | [[package]] 4224 | name = "synstructure" 4225 | version = "0.13.1" 4226 | source = "registry+https://github.com/rust-lang/crates.io-index" 4227 | checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" 4228 | dependencies = [ 4229 | "proc-macro2", 4230 | "quote", 4231 | "syn 2.0.100", 4232 | ] 4233 | 4234 | [[package]] 4235 | name = "system-configuration" 4236 | version = "0.6.1" 4237 | source = "registry+https://github.com/rust-lang/crates.io-index" 4238 | checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" 4239 | dependencies = [ 4240 | "bitflags 2.9.0", 4241 | "core-foundation 0.9.4", 4242 | "system-configuration-sys", 4243 | ] 4244 | 4245 | [[package]] 4246 | name = "system-configuration-sys" 4247 | version = "0.6.0" 4248 | source = "registry+https://github.com/rust-lang/crates.io-index" 4249 | checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" 4250 | dependencies = [ 4251 | "core-foundation-sys", 4252 | "libc", 4253 | ] 4254 | 4255 | [[package]] 4256 | name = "system-deps" 4257 | version = "6.2.2" 4258 | source = "registry+https://github.com/rust-lang/crates.io-index" 4259 | checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" 4260 | dependencies = [ 4261 | "cfg-expr", 4262 | "heck 0.5.0", 4263 | "pkg-config", 4264 | "toml", 4265 | "version-compare", 4266 | ] 4267 | 4268 | [[package]] 4269 | name = "tao" 4270 | version = "0.30.8" 4271 | source = "registry+https://github.com/rust-lang/crates.io-index" 4272 | checksum = "6682a07cf5bab0b8a2bd20d0a542917ab928b5edb75ebd4eda6b05cbaab872da" 4273 | dependencies = [ 4274 | "bitflags 2.9.0", 4275 | "cocoa 0.26.0", 4276 | "core-foundation 0.10.0", 4277 | "core-graphics 0.24.0", 4278 | "crossbeam-channel", 4279 | "dispatch", 4280 | "dlopen2", 4281 | "dpi", 4282 | "gdkwayland-sys", 4283 | "gdkx11-sys", 4284 | "gtk", 4285 | "instant", 4286 | "jni", 4287 | "lazy_static", 4288 | "libc", 4289 | "log", 4290 | "ndk", 4291 | "ndk-context", 4292 | "ndk-sys", 4293 | "objc", 4294 | "once_cell", 4295 | "parking_lot", 4296 | "raw-window-handle 0.5.2", 4297 | "raw-window-handle 0.6.2", 4298 | "scopeguard", 4299 | "tao-macros", 4300 | "unicode-segmentation", 4301 | "url", 4302 | "windows", 4303 | "windows-core", 4304 | "windows-version", 4305 | "x11-dl", 4306 | ] 4307 | 4308 | [[package]] 4309 | name = "tao-macros" 4310 | version = "0.1.3" 4311 | source = "registry+https://github.com/rust-lang/crates.io-index" 4312 | checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd" 4313 | dependencies = [ 4314 | "proc-macro2", 4315 | "quote", 4316 | "syn 2.0.100", 4317 | ] 4318 | 4319 | [[package]] 4320 | name = "target-lexicon" 4321 | version = "0.12.16" 4322 | source = "registry+https://github.com/rust-lang/crates.io-index" 4323 | checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" 4324 | 4325 | [[package]] 4326 | name = "tempfile" 4327 | version = "3.19.1" 4328 | source = "registry+https://github.com/rust-lang/crates.io-index" 4329 | checksum = "7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf" 4330 | dependencies = [ 4331 | "fastrand", 4332 | "getrandom 0.3.2", 4333 | "once_cell", 4334 | "rustix 1.0.5", 4335 | "windows-sys 0.59.0", 4336 | ] 4337 | 4338 | [[package]] 4339 | name = "tendril" 4340 | version = "0.4.3" 4341 | source = "registry+https://github.com/rust-lang/crates.io-index" 4342 | checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" 4343 | dependencies = [ 4344 | "futf", 4345 | "mac", 4346 | "utf-8", 4347 | ] 4348 | 4349 | [[package]] 4350 | name = "thin-slice" 4351 | version = "0.1.1" 4352 | source = "registry+https://github.com/rust-lang/crates.io-index" 4353 | checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" 4354 | 4355 | [[package]] 4356 | name = "thiserror" 4357 | version = "1.0.69" 4358 | source = "registry+https://github.com/rust-lang/crates.io-index" 4359 | checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" 4360 | dependencies = [ 4361 | "thiserror-impl 1.0.69", 4362 | ] 4363 | 4364 | [[package]] 4365 | name = "thiserror" 4366 | version = "2.0.12" 4367 | source = "registry+https://github.com/rust-lang/crates.io-index" 4368 | checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" 4369 | dependencies = [ 4370 | "thiserror-impl 2.0.12", 4371 | ] 4372 | 4373 | [[package]] 4374 | name = "thiserror-impl" 4375 | version = "1.0.69" 4376 | source = "registry+https://github.com/rust-lang/crates.io-index" 4377 | checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" 4378 | dependencies = [ 4379 | "proc-macro2", 4380 | "quote", 4381 | "syn 2.0.100", 4382 | ] 4383 | 4384 | [[package]] 4385 | name = "thiserror-impl" 4386 | version = "2.0.12" 4387 | source = "registry+https://github.com/rust-lang/crates.io-index" 4388 | checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" 4389 | dependencies = [ 4390 | "proc-macro2", 4391 | "quote", 4392 | "syn 2.0.100", 4393 | ] 4394 | 4395 | [[package]] 4396 | name = "thread_local" 4397 | version = "1.1.8" 4398 | source = "registry+https://github.com/rust-lang/crates.io-index" 4399 | checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" 4400 | dependencies = [ 4401 | "cfg-if", 4402 | "once_cell", 4403 | ] 4404 | 4405 | [[package]] 4406 | name = "tinystr" 4407 | version = "0.7.6" 4408 | source = "registry+https://github.com/rust-lang/crates.io-index" 4409 | checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" 4410 | dependencies = [ 4411 | "displaydoc", 4412 | "zerovec", 4413 | ] 4414 | 4415 | [[package]] 4416 | name = "tokio" 4417 | version = "1.44.2" 4418 | source = "registry+https://github.com/rust-lang/crates.io-index" 4419 | checksum = "e6b88822cbe49de4185e3a4cbf8321dd487cf5fe0c5c65695fef6346371e9c48" 4420 | dependencies = [ 4421 | "backtrace", 4422 | "bytes", 4423 | "libc", 4424 | "mio", 4425 | "parking_lot", 4426 | "pin-project-lite", 4427 | "signal-hook-registry", 4428 | "socket2", 4429 | "tokio-macros", 4430 | "tracing", 4431 | "windows-sys 0.52.0", 4432 | ] 4433 | 4434 | [[package]] 4435 | name = "tokio-macros" 4436 | version = "2.5.0" 4437 | source = "registry+https://github.com/rust-lang/crates.io-index" 4438 | checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" 4439 | dependencies = [ 4440 | "proc-macro2", 4441 | "quote", 4442 | "syn 2.0.100", 4443 | ] 4444 | 4445 | [[package]] 4446 | name = "tokio-native-tls" 4447 | version = "0.3.1" 4448 | source = "registry+https://github.com/rust-lang/crates.io-index" 4449 | checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" 4450 | dependencies = [ 4451 | "native-tls", 4452 | "tokio", 4453 | ] 4454 | 4455 | [[package]] 4456 | name = "tokio-rustls" 4457 | version = "0.26.2" 4458 | source = "registry+https://github.com/rust-lang/crates.io-index" 4459 | checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" 4460 | dependencies = [ 4461 | "rustls", 4462 | "tokio", 4463 | ] 4464 | 4465 | [[package]] 4466 | name = "tokio-util" 4467 | version = "0.7.14" 4468 | source = "registry+https://github.com/rust-lang/crates.io-index" 4469 | checksum = "6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034" 4470 | dependencies = [ 4471 | "bytes", 4472 | "futures-core", 4473 | "futures-sink", 4474 | "pin-project-lite", 4475 | "tokio", 4476 | ] 4477 | 4478 | [[package]] 4479 | name = "toml" 4480 | version = "0.8.2" 4481 | source = "registry+https://github.com/rust-lang/crates.io-index" 4482 | checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" 4483 | dependencies = [ 4484 | "serde", 4485 | "serde_spanned", 4486 | "toml_datetime", 4487 | "toml_edit 0.20.2", 4488 | ] 4489 | 4490 | [[package]] 4491 | name = "toml_datetime" 4492 | version = "0.6.3" 4493 | source = "registry+https://github.com/rust-lang/crates.io-index" 4494 | checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" 4495 | dependencies = [ 4496 | "serde", 4497 | ] 4498 | 4499 | [[package]] 4500 | name = "toml_edit" 4501 | version = "0.19.15" 4502 | source = "registry+https://github.com/rust-lang/crates.io-index" 4503 | checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" 4504 | dependencies = [ 4505 | "indexmap 2.9.0", 4506 | "toml_datetime", 4507 | "winnow", 4508 | ] 4509 | 4510 | [[package]] 4511 | name = "toml_edit" 4512 | version = "0.20.2" 4513 | source = "registry+https://github.com/rust-lang/crates.io-index" 4514 | checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" 4515 | dependencies = [ 4516 | "indexmap 2.9.0", 4517 | "serde", 4518 | "serde_spanned", 4519 | "toml_datetime", 4520 | "winnow", 4521 | ] 4522 | 4523 | [[package]] 4524 | name = "tower" 4525 | version = "0.5.2" 4526 | source = "registry+https://github.com/rust-lang/crates.io-index" 4527 | checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" 4528 | dependencies = [ 4529 | "futures-core", 4530 | "futures-util", 4531 | "pin-project-lite", 4532 | "sync_wrapper", 4533 | "tokio", 4534 | "tower-layer", 4535 | "tower-service", 4536 | ] 4537 | 4538 | [[package]] 4539 | name = "tower-layer" 4540 | version = "0.3.3" 4541 | source = "registry+https://github.com/rust-lang/crates.io-index" 4542 | checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" 4543 | 4544 | [[package]] 4545 | name = "tower-service" 4546 | version = "0.3.3" 4547 | source = "registry+https://github.com/rust-lang/crates.io-index" 4548 | checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" 4549 | 4550 | [[package]] 4551 | name = "tracing" 4552 | version = "0.1.41" 4553 | source = "registry+https://github.com/rust-lang/crates.io-index" 4554 | checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" 4555 | dependencies = [ 4556 | "pin-project-lite", 4557 | "tracing-attributes", 4558 | "tracing-core", 4559 | ] 4560 | 4561 | [[package]] 4562 | name = "tracing-attributes" 4563 | version = "0.1.28" 4564 | source = "registry+https://github.com/rust-lang/crates.io-index" 4565 | checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" 4566 | dependencies = [ 4567 | "proc-macro2", 4568 | "quote", 4569 | "syn 2.0.100", 4570 | ] 4571 | 4572 | [[package]] 4573 | name = "tracing-core" 4574 | version = "0.1.33" 4575 | source = "registry+https://github.com/rust-lang/crates.io-index" 4576 | checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" 4577 | dependencies = [ 4578 | "once_cell", 4579 | ] 4580 | 4581 | [[package]] 4582 | name = "tracing-subscriber" 4583 | version = "0.3.19" 4584 | source = "registry+https://github.com/rust-lang/crates.io-index" 4585 | checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" 4586 | dependencies = [ 4587 | "sharded-slab", 4588 | "thread_local", 4589 | "tracing-core", 4590 | ] 4591 | 4592 | [[package]] 4593 | name = "tracing-wasm" 4594 | version = "0.2.1" 4595 | source = "registry+https://github.com/rust-lang/crates.io-index" 4596 | checksum = "4575c663a174420fa2d78f4108ff68f65bf2fbb7dd89f33749b6e826b3626e07" 4597 | dependencies = [ 4598 | "tracing", 4599 | "tracing-subscriber", 4600 | "wasm-bindgen", 4601 | ] 4602 | 4603 | [[package]] 4604 | name = "tray-icon" 4605 | version = "0.19.3" 4606 | source = "registry+https://github.com/rust-lang/crates.io-index" 4607 | checksum = "eadd75f5002e2513eaa19b2365f533090cc3e93abd38788452d9ea85cff7b48a" 4608 | dependencies = [ 4609 | "crossbeam-channel", 4610 | "dirs", 4611 | "libappindicator", 4612 | "muda 0.15.3", 4613 | "objc2 0.6.0", 4614 | "objc2-app-kit 0.3.0", 4615 | "objc2-core-foundation", 4616 | "objc2-core-graphics", 4617 | "objc2-foundation 0.3.0", 4618 | "once_cell", 4619 | "png", 4620 | "thiserror 2.0.12", 4621 | "windows-sys 0.59.0", 4622 | ] 4623 | 4624 | [[package]] 4625 | name = "try-lock" 4626 | version = "0.2.5" 4627 | source = "registry+https://github.com/rust-lang/crates.io-index" 4628 | checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" 4629 | 4630 | [[package]] 4631 | name = "tungstenite" 4632 | version = "0.23.0" 4633 | source = "registry+https://github.com/rust-lang/crates.io-index" 4634 | checksum = "6e2e2ce1e47ed2994fd43b04c8f618008d4cabdd5ee34027cf14f9d918edd9c8" 4635 | dependencies = [ 4636 | "byteorder", 4637 | "bytes", 4638 | "data-encoding", 4639 | "http", 4640 | "httparse", 4641 | "log", 4642 | "rand 0.8.5", 4643 | "sha1", 4644 | "thiserror 1.0.69", 4645 | "utf-8", 4646 | ] 4647 | 4648 | [[package]] 4649 | name = "typenum" 4650 | version = "1.18.0" 4651 | source = "registry+https://github.com/rust-lang/crates.io-index" 4652 | checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" 4653 | 4654 | [[package]] 4655 | name = "uds_windows" 4656 | version = "1.1.0" 4657 | source = "registry+https://github.com/rust-lang/crates.io-index" 4658 | checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" 4659 | dependencies = [ 4660 | "memoffset", 4661 | "tempfile", 4662 | "winapi", 4663 | ] 4664 | 4665 | [[package]] 4666 | name = "unicase" 4667 | version = "2.8.1" 4668 | source = "registry+https://github.com/rust-lang/crates.io-index" 4669 | checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" 4670 | 4671 | [[package]] 4672 | name = "unicode-ident" 4673 | version = "1.0.18" 4674 | source = "registry+https://github.com/rust-lang/crates.io-index" 4675 | checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" 4676 | 4677 | [[package]] 4678 | name = "unicode-segmentation" 4679 | version = "1.12.0" 4680 | source = "registry+https://github.com/rust-lang/crates.io-index" 4681 | checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" 4682 | 4683 | [[package]] 4684 | name = "unicode-xid" 4685 | version = "0.2.6" 4686 | source = "registry+https://github.com/rust-lang/crates.io-index" 4687 | checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" 4688 | 4689 | [[package]] 4690 | name = "untrusted" 4691 | version = "0.9.0" 4692 | source = "registry+https://github.com/rust-lang/crates.io-index" 4693 | checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" 4694 | 4695 | [[package]] 4696 | name = "url" 4697 | version = "2.5.4" 4698 | source = "registry+https://github.com/rust-lang/crates.io-index" 4699 | checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" 4700 | dependencies = [ 4701 | "form_urlencoded", 4702 | "idna", 4703 | "percent-encoding", 4704 | "serde", 4705 | ] 4706 | 4707 | [[package]] 4708 | name = "urlencoding" 4709 | version = "2.1.3" 4710 | source = "registry+https://github.com/rust-lang/crates.io-index" 4711 | checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" 4712 | 4713 | [[package]] 4714 | name = "utf-8" 4715 | version = "0.7.6" 4716 | source = "registry+https://github.com/rust-lang/crates.io-index" 4717 | checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" 4718 | 4719 | [[package]] 4720 | name = "utf16_iter" 4721 | version = "1.0.5" 4722 | source = "registry+https://github.com/rust-lang/crates.io-index" 4723 | checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" 4724 | 4725 | [[package]] 4726 | name = "utf8_iter" 4727 | version = "1.0.4" 4728 | source = "registry+https://github.com/rust-lang/crates.io-index" 4729 | checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" 4730 | 4731 | [[package]] 4732 | name = "uuid" 4733 | version = "1.16.0" 4734 | source = "registry+https://github.com/rust-lang/crates.io-index" 4735 | checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" 4736 | 4737 | [[package]] 4738 | name = "vcpkg" 4739 | version = "0.2.15" 4740 | source = "registry+https://github.com/rust-lang/crates.io-index" 4741 | checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" 4742 | 4743 | [[package]] 4744 | name = "version-compare" 4745 | version = "0.2.0" 4746 | source = "registry+https://github.com/rust-lang/crates.io-index" 4747 | checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b" 4748 | 4749 | [[package]] 4750 | name = "version_check" 4751 | version = "0.9.5" 4752 | source = "registry+https://github.com/rust-lang/crates.io-index" 4753 | checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 4754 | 4755 | [[package]] 4756 | name = "walkdir" 4757 | version = "2.5.0" 4758 | source = "registry+https://github.com/rust-lang/crates.io-index" 4759 | checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" 4760 | dependencies = [ 4761 | "same-file", 4762 | "winapi-util", 4763 | ] 4764 | 4765 | [[package]] 4766 | name = "want" 4767 | version = "0.3.1" 4768 | source = "registry+https://github.com/rust-lang/crates.io-index" 4769 | checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" 4770 | dependencies = [ 4771 | "try-lock", 4772 | ] 4773 | 4774 | [[package]] 4775 | name = "warnings" 4776 | version = "0.2.1" 4777 | source = "registry+https://github.com/rust-lang/crates.io-index" 4778 | checksum = "64f68998838dab65727c9b30465595c6f7c953313559371ca8bf31759b3680ad" 4779 | dependencies = [ 4780 | "pin-project", 4781 | "tracing", 4782 | "warnings-macro", 4783 | ] 4784 | 4785 | [[package]] 4786 | name = "warnings-macro" 4787 | version = "0.2.0" 4788 | source = "registry+https://github.com/rust-lang/crates.io-index" 4789 | checksum = "59195a1db0e95b920366d949ba5e0d3fc0e70b67c09be15ce5abb790106b0571" 4790 | dependencies = [ 4791 | "proc-macro2", 4792 | "quote", 4793 | "syn 2.0.100", 4794 | ] 4795 | 4796 | [[package]] 4797 | name = "wasi" 4798 | version = "0.9.0+wasi-snapshot-preview1" 4799 | source = "registry+https://github.com/rust-lang/crates.io-index" 4800 | checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" 4801 | 4802 | [[package]] 4803 | name = "wasi" 4804 | version = "0.11.0+wasi-snapshot-preview1" 4805 | source = "registry+https://github.com/rust-lang/crates.io-index" 4806 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 4807 | 4808 | [[package]] 4809 | name = "wasi" 4810 | version = "0.14.2+wasi-0.2.4" 4811 | source = "registry+https://github.com/rust-lang/crates.io-index" 4812 | checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" 4813 | dependencies = [ 4814 | "wit-bindgen-rt", 4815 | ] 4816 | 4817 | [[package]] 4818 | name = "wasm-bindgen" 4819 | version = "0.2.100" 4820 | source = "registry+https://github.com/rust-lang/crates.io-index" 4821 | checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" 4822 | dependencies = [ 4823 | "cfg-if", 4824 | "once_cell", 4825 | "rustversion", 4826 | "wasm-bindgen-macro", 4827 | ] 4828 | 4829 | [[package]] 4830 | name = "wasm-bindgen-backend" 4831 | version = "0.2.100" 4832 | source = "registry+https://github.com/rust-lang/crates.io-index" 4833 | checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" 4834 | dependencies = [ 4835 | "bumpalo", 4836 | "log", 4837 | "proc-macro2", 4838 | "quote", 4839 | "syn 2.0.100", 4840 | "wasm-bindgen-shared", 4841 | ] 4842 | 4843 | [[package]] 4844 | name = "wasm-bindgen-futures" 4845 | version = "0.4.50" 4846 | source = "registry+https://github.com/rust-lang/crates.io-index" 4847 | checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" 4848 | dependencies = [ 4849 | "cfg-if", 4850 | "js-sys", 4851 | "once_cell", 4852 | "wasm-bindgen", 4853 | "web-sys", 4854 | ] 4855 | 4856 | [[package]] 4857 | name = "wasm-bindgen-macro" 4858 | version = "0.2.100" 4859 | source = "registry+https://github.com/rust-lang/crates.io-index" 4860 | checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" 4861 | dependencies = [ 4862 | "quote", 4863 | "wasm-bindgen-macro-support", 4864 | ] 4865 | 4866 | [[package]] 4867 | name = "wasm-bindgen-macro-support" 4868 | version = "0.2.100" 4869 | source = "registry+https://github.com/rust-lang/crates.io-index" 4870 | checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" 4871 | dependencies = [ 4872 | "proc-macro2", 4873 | "quote", 4874 | "syn 2.0.100", 4875 | "wasm-bindgen-backend", 4876 | "wasm-bindgen-shared", 4877 | ] 4878 | 4879 | [[package]] 4880 | name = "wasm-bindgen-shared" 4881 | version = "0.2.100" 4882 | source = "registry+https://github.com/rust-lang/crates.io-index" 4883 | checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" 4884 | dependencies = [ 4885 | "unicode-ident", 4886 | ] 4887 | 4888 | [[package]] 4889 | name = "wasm-streams" 4890 | version = "0.4.2" 4891 | source = "registry+https://github.com/rust-lang/crates.io-index" 4892 | checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" 4893 | dependencies = [ 4894 | "futures-util", 4895 | "js-sys", 4896 | "wasm-bindgen", 4897 | "wasm-bindgen-futures", 4898 | "web-sys", 4899 | ] 4900 | 4901 | [[package]] 4902 | name = "web-sys" 4903 | version = "0.3.77" 4904 | source = "registry+https://github.com/rust-lang/crates.io-index" 4905 | checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" 4906 | dependencies = [ 4907 | "js-sys", 4908 | "wasm-bindgen", 4909 | ] 4910 | 4911 | [[package]] 4912 | name = "webbrowser" 4913 | version = "0.8.15" 4914 | source = "registry+https://github.com/rust-lang/crates.io-index" 4915 | checksum = "db67ae75a9405634f5882791678772c94ff5f16a66535aae186e26aa0841fc8b" 4916 | dependencies = [ 4917 | "core-foundation 0.9.4", 4918 | "home", 4919 | "jni", 4920 | "log", 4921 | "ndk-context", 4922 | "objc", 4923 | "raw-window-handle 0.5.2", 4924 | "url", 4925 | "web-sys", 4926 | ] 4927 | 4928 | [[package]] 4929 | name = "webkit2gtk" 4930 | version = "2.0.1" 4931 | source = "registry+https://github.com/rust-lang/crates.io-index" 4932 | checksum = "76b1bc1e54c581da1e9f179d0b38512ba358fb1af2d634a1affe42e37172361a" 4933 | dependencies = [ 4934 | "bitflags 1.3.2", 4935 | "cairo-rs", 4936 | "gdk", 4937 | "gdk-sys", 4938 | "gio", 4939 | "gio-sys", 4940 | "glib", 4941 | "glib-sys", 4942 | "gobject-sys", 4943 | "gtk", 4944 | "gtk-sys", 4945 | "javascriptcore-rs", 4946 | "libc", 4947 | "once_cell", 4948 | "soup3", 4949 | "webkit2gtk-sys", 4950 | ] 4951 | 4952 | [[package]] 4953 | name = "webkit2gtk-sys" 4954 | version = "2.0.1" 4955 | source = "registry+https://github.com/rust-lang/crates.io-index" 4956 | checksum = "62daa38afc514d1f8f12b8693d30d5993ff77ced33ce30cd04deebc267a6d57c" 4957 | dependencies = [ 4958 | "bitflags 1.3.2", 4959 | "cairo-sys-rs", 4960 | "gdk-sys", 4961 | "gio-sys", 4962 | "glib-sys", 4963 | "gobject-sys", 4964 | "gtk-sys", 4965 | "javascriptcore-rs-sys", 4966 | "libc", 4967 | "pkg-config", 4968 | "soup3-sys", 4969 | "system-deps", 4970 | ] 4971 | 4972 | [[package]] 4973 | name = "webview2-com" 4974 | version = "0.33.0" 4975 | source = "registry+https://github.com/rust-lang/crates.io-index" 4976 | checksum = "6f61ff3d9d0ee4efcb461b14eb3acfda2702d10dc329f339303fc3e57215ae2c" 4977 | dependencies = [ 4978 | "webview2-com-macros", 4979 | "webview2-com-sys", 4980 | "windows", 4981 | "windows-core", 4982 | "windows-implement", 4983 | "windows-interface", 4984 | ] 4985 | 4986 | [[package]] 4987 | name = "webview2-com-macros" 4988 | version = "0.8.0" 4989 | source = "registry+https://github.com/rust-lang/crates.io-index" 4990 | checksum = "1d228f15bba3b9d56dde8bddbee66fa24545bd17b48d5128ccf4a8742b18e431" 4991 | dependencies = [ 4992 | "proc-macro2", 4993 | "quote", 4994 | "syn 2.0.100", 4995 | ] 4996 | 4997 | [[package]] 4998 | name = "webview2-com-sys" 4999 | version = "0.33.0" 5000 | source = "registry+https://github.com/rust-lang/crates.io-index" 5001 | checksum = "a3a3e2eeb58f82361c93f9777014668eb3d07e7d174ee4c819575a9208011886" 5002 | dependencies = [ 5003 | "thiserror 1.0.69", 5004 | "windows", 5005 | "windows-core", 5006 | ] 5007 | 5008 | [[package]] 5009 | name = "winapi" 5010 | version = "0.3.9" 5011 | source = "registry+https://github.com/rust-lang/crates.io-index" 5012 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 5013 | dependencies = [ 5014 | "winapi-i686-pc-windows-gnu", 5015 | "winapi-x86_64-pc-windows-gnu", 5016 | ] 5017 | 5018 | [[package]] 5019 | name = "winapi-i686-pc-windows-gnu" 5020 | version = "0.4.0" 5021 | source = "registry+https://github.com/rust-lang/crates.io-index" 5022 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 5023 | 5024 | [[package]] 5025 | name = "winapi-util" 5026 | version = "0.1.9" 5027 | source = "registry+https://github.com/rust-lang/crates.io-index" 5028 | checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" 5029 | dependencies = [ 5030 | "windows-sys 0.59.0", 5031 | ] 5032 | 5033 | [[package]] 5034 | name = "winapi-x86_64-pc-windows-gnu" 5035 | version = "0.4.0" 5036 | source = "registry+https://github.com/rust-lang/crates.io-index" 5037 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 5038 | 5039 | [[package]] 5040 | name = "windows" 5041 | version = "0.58.0" 5042 | source = "registry+https://github.com/rust-lang/crates.io-index" 5043 | checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" 5044 | dependencies = [ 5045 | "windows-core", 5046 | "windows-targets 0.52.6", 5047 | ] 5048 | 5049 | [[package]] 5050 | name = "windows-core" 5051 | version = "0.58.0" 5052 | source = "registry+https://github.com/rust-lang/crates.io-index" 5053 | checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" 5054 | dependencies = [ 5055 | "windows-implement", 5056 | "windows-interface", 5057 | "windows-result 0.2.0", 5058 | "windows-strings 0.1.0", 5059 | "windows-targets 0.52.6", 5060 | ] 5061 | 5062 | [[package]] 5063 | name = "windows-implement" 5064 | version = "0.58.0" 5065 | source = "registry+https://github.com/rust-lang/crates.io-index" 5066 | checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" 5067 | dependencies = [ 5068 | "proc-macro2", 5069 | "quote", 5070 | "syn 2.0.100", 5071 | ] 5072 | 5073 | [[package]] 5074 | name = "windows-interface" 5075 | version = "0.58.0" 5076 | source = "registry+https://github.com/rust-lang/crates.io-index" 5077 | checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" 5078 | dependencies = [ 5079 | "proc-macro2", 5080 | "quote", 5081 | "syn 2.0.100", 5082 | ] 5083 | 5084 | [[package]] 5085 | name = "windows-link" 5086 | version = "0.1.1" 5087 | source = "registry+https://github.com/rust-lang/crates.io-index" 5088 | checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" 5089 | 5090 | [[package]] 5091 | name = "windows-registry" 5092 | version = "0.4.0" 5093 | source = "registry+https://github.com/rust-lang/crates.io-index" 5094 | checksum = "4286ad90ddb45071efd1a66dfa43eb02dd0dfbae1545ad6cc3c51cf34d7e8ba3" 5095 | dependencies = [ 5096 | "windows-result 0.3.2", 5097 | "windows-strings 0.3.1", 5098 | "windows-targets 0.53.0", 5099 | ] 5100 | 5101 | [[package]] 5102 | name = "windows-result" 5103 | version = "0.2.0" 5104 | source = "registry+https://github.com/rust-lang/crates.io-index" 5105 | checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" 5106 | dependencies = [ 5107 | "windows-targets 0.52.6", 5108 | ] 5109 | 5110 | [[package]] 5111 | name = "windows-result" 5112 | version = "0.3.2" 5113 | source = "registry+https://github.com/rust-lang/crates.io-index" 5114 | checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252" 5115 | dependencies = [ 5116 | "windows-link", 5117 | ] 5118 | 5119 | [[package]] 5120 | name = "windows-strings" 5121 | version = "0.1.0" 5122 | source = "registry+https://github.com/rust-lang/crates.io-index" 5123 | checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" 5124 | dependencies = [ 5125 | "windows-result 0.2.0", 5126 | "windows-targets 0.52.6", 5127 | ] 5128 | 5129 | [[package]] 5130 | name = "windows-strings" 5131 | version = "0.3.1" 5132 | source = "registry+https://github.com/rust-lang/crates.io-index" 5133 | checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319" 5134 | dependencies = [ 5135 | "windows-link", 5136 | ] 5137 | 5138 | [[package]] 5139 | name = "windows-sys" 5140 | version = "0.45.0" 5141 | source = "registry+https://github.com/rust-lang/crates.io-index" 5142 | checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" 5143 | dependencies = [ 5144 | "windows-targets 0.42.2", 5145 | ] 5146 | 5147 | [[package]] 5148 | name = "windows-sys" 5149 | version = "0.48.0" 5150 | source = "registry+https://github.com/rust-lang/crates.io-index" 5151 | checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 5152 | dependencies = [ 5153 | "windows-targets 0.48.5", 5154 | ] 5155 | 5156 | [[package]] 5157 | name = "windows-sys" 5158 | version = "0.52.0" 5159 | source = "registry+https://github.com/rust-lang/crates.io-index" 5160 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 5161 | dependencies = [ 5162 | "windows-targets 0.52.6", 5163 | ] 5164 | 5165 | [[package]] 5166 | name = "windows-sys" 5167 | version = "0.59.0" 5168 | source = "registry+https://github.com/rust-lang/crates.io-index" 5169 | checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 5170 | dependencies = [ 5171 | "windows-targets 0.52.6", 5172 | ] 5173 | 5174 | [[package]] 5175 | name = "windows-targets" 5176 | version = "0.42.2" 5177 | source = "registry+https://github.com/rust-lang/crates.io-index" 5178 | checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" 5179 | dependencies = [ 5180 | "windows_aarch64_gnullvm 0.42.2", 5181 | "windows_aarch64_msvc 0.42.2", 5182 | "windows_i686_gnu 0.42.2", 5183 | "windows_i686_msvc 0.42.2", 5184 | "windows_x86_64_gnu 0.42.2", 5185 | "windows_x86_64_gnullvm 0.42.2", 5186 | "windows_x86_64_msvc 0.42.2", 5187 | ] 5188 | 5189 | [[package]] 5190 | name = "windows-targets" 5191 | version = "0.48.5" 5192 | source = "registry+https://github.com/rust-lang/crates.io-index" 5193 | checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 5194 | dependencies = [ 5195 | "windows_aarch64_gnullvm 0.48.5", 5196 | "windows_aarch64_msvc 0.48.5", 5197 | "windows_i686_gnu 0.48.5", 5198 | "windows_i686_msvc 0.48.5", 5199 | "windows_x86_64_gnu 0.48.5", 5200 | "windows_x86_64_gnullvm 0.48.5", 5201 | "windows_x86_64_msvc 0.48.5", 5202 | ] 5203 | 5204 | [[package]] 5205 | name = "windows-targets" 5206 | version = "0.52.6" 5207 | source = "registry+https://github.com/rust-lang/crates.io-index" 5208 | checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 5209 | dependencies = [ 5210 | "windows_aarch64_gnullvm 0.52.6", 5211 | "windows_aarch64_msvc 0.52.6", 5212 | "windows_i686_gnu 0.52.6", 5213 | "windows_i686_gnullvm 0.52.6", 5214 | "windows_i686_msvc 0.52.6", 5215 | "windows_x86_64_gnu 0.52.6", 5216 | "windows_x86_64_gnullvm 0.52.6", 5217 | "windows_x86_64_msvc 0.52.6", 5218 | ] 5219 | 5220 | [[package]] 5221 | name = "windows-targets" 5222 | version = "0.53.0" 5223 | source = "registry+https://github.com/rust-lang/crates.io-index" 5224 | checksum = "b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b" 5225 | dependencies = [ 5226 | "windows_aarch64_gnullvm 0.53.0", 5227 | "windows_aarch64_msvc 0.53.0", 5228 | "windows_i686_gnu 0.53.0", 5229 | "windows_i686_gnullvm 0.53.0", 5230 | "windows_i686_msvc 0.53.0", 5231 | "windows_x86_64_gnu 0.53.0", 5232 | "windows_x86_64_gnullvm 0.53.0", 5233 | "windows_x86_64_msvc 0.53.0", 5234 | ] 5235 | 5236 | [[package]] 5237 | name = "windows-version" 5238 | version = "0.1.4" 5239 | source = "registry+https://github.com/rust-lang/crates.io-index" 5240 | checksum = "e04a5c6627e310a23ad2358483286c7df260c964eb2d003d8efd6d0f4e79265c" 5241 | dependencies = [ 5242 | "windows-link", 5243 | ] 5244 | 5245 | [[package]] 5246 | name = "windows_aarch64_gnullvm" 5247 | version = "0.42.2" 5248 | source = "registry+https://github.com/rust-lang/crates.io-index" 5249 | checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" 5250 | 5251 | [[package]] 5252 | name = "windows_aarch64_gnullvm" 5253 | version = "0.48.5" 5254 | source = "registry+https://github.com/rust-lang/crates.io-index" 5255 | checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 5256 | 5257 | [[package]] 5258 | name = "windows_aarch64_gnullvm" 5259 | version = "0.52.6" 5260 | source = "registry+https://github.com/rust-lang/crates.io-index" 5261 | checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 5262 | 5263 | [[package]] 5264 | name = "windows_aarch64_gnullvm" 5265 | version = "0.53.0" 5266 | source = "registry+https://github.com/rust-lang/crates.io-index" 5267 | checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" 5268 | 5269 | [[package]] 5270 | name = "windows_aarch64_msvc" 5271 | version = "0.42.2" 5272 | source = "registry+https://github.com/rust-lang/crates.io-index" 5273 | checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" 5274 | 5275 | [[package]] 5276 | name = "windows_aarch64_msvc" 5277 | version = "0.48.5" 5278 | source = "registry+https://github.com/rust-lang/crates.io-index" 5279 | checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 5280 | 5281 | [[package]] 5282 | name = "windows_aarch64_msvc" 5283 | version = "0.52.6" 5284 | source = "registry+https://github.com/rust-lang/crates.io-index" 5285 | checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 5286 | 5287 | [[package]] 5288 | name = "windows_aarch64_msvc" 5289 | version = "0.53.0" 5290 | source = "registry+https://github.com/rust-lang/crates.io-index" 5291 | checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" 5292 | 5293 | [[package]] 5294 | name = "windows_i686_gnu" 5295 | version = "0.42.2" 5296 | source = "registry+https://github.com/rust-lang/crates.io-index" 5297 | checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" 5298 | 5299 | [[package]] 5300 | name = "windows_i686_gnu" 5301 | version = "0.48.5" 5302 | source = "registry+https://github.com/rust-lang/crates.io-index" 5303 | checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 5304 | 5305 | [[package]] 5306 | name = "windows_i686_gnu" 5307 | version = "0.52.6" 5308 | source = "registry+https://github.com/rust-lang/crates.io-index" 5309 | checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 5310 | 5311 | [[package]] 5312 | name = "windows_i686_gnu" 5313 | version = "0.53.0" 5314 | source = "registry+https://github.com/rust-lang/crates.io-index" 5315 | checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" 5316 | 5317 | [[package]] 5318 | name = "windows_i686_gnullvm" 5319 | version = "0.52.6" 5320 | source = "registry+https://github.com/rust-lang/crates.io-index" 5321 | checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 5322 | 5323 | [[package]] 5324 | name = "windows_i686_gnullvm" 5325 | version = "0.53.0" 5326 | source = "registry+https://github.com/rust-lang/crates.io-index" 5327 | checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" 5328 | 5329 | [[package]] 5330 | name = "windows_i686_msvc" 5331 | version = "0.42.2" 5332 | source = "registry+https://github.com/rust-lang/crates.io-index" 5333 | checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" 5334 | 5335 | [[package]] 5336 | name = "windows_i686_msvc" 5337 | version = "0.48.5" 5338 | source = "registry+https://github.com/rust-lang/crates.io-index" 5339 | checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 5340 | 5341 | [[package]] 5342 | name = "windows_i686_msvc" 5343 | version = "0.52.6" 5344 | source = "registry+https://github.com/rust-lang/crates.io-index" 5345 | checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 5346 | 5347 | [[package]] 5348 | name = "windows_i686_msvc" 5349 | version = "0.53.0" 5350 | source = "registry+https://github.com/rust-lang/crates.io-index" 5351 | checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" 5352 | 5353 | [[package]] 5354 | name = "windows_x86_64_gnu" 5355 | version = "0.42.2" 5356 | source = "registry+https://github.com/rust-lang/crates.io-index" 5357 | checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" 5358 | 5359 | [[package]] 5360 | name = "windows_x86_64_gnu" 5361 | version = "0.48.5" 5362 | source = "registry+https://github.com/rust-lang/crates.io-index" 5363 | checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 5364 | 5365 | [[package]] 5366 | name = "windows_x86_64_gnu" 5367 | version = "0.52.6" 5368 | source = "registry+https://github.com/rust-lang/crates.io-index" 5369 | checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 5370 | 5371 | [[package]] 5372 | name = "windows_x86_64_gnu" 5373 | version = "0.53.0" 5374 | source = "registry+https://github.com/rust-lang/crates.io-index" 5375 | checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" 5376 | 5377 | [[package]] 5378 | name = "windows_x86_64_gnullvm" 5379 | version = "0.42.2" 5380 | source = "registry+https://github.com/rust-lang/crates.io-index" 5381 | checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" 5382 | 5383 | [[package]] 5384 | name = "windows_x86_64_gnullvm" 5385 | version = "0.48.5" 5386 | source = "registry+https://github.com/rust-lang/crates.io-index" 5387 | checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 5388 | 5389 | [[package]] 5390 | name = "windows_x86_64_gnullvm" 5391 | version = "0.52.6" 5392 | source = "registry+https://github.com/rust-lang/crates.io-index" 5393 | checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 5394 | 5395 | [[package]] 5396 | name = "windows_x86_64_gnullvm" 5397 | version = "0.53.0" 5398 | source = "registry+https://github.com/rust-lang/crates.io-index" 5399 | checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" 5400 | 5401 | [[package]] 5402 | name = "windows_x86_64_msvc" 5403 | version = "0.42.2" 5404 | source = "registry+https://github.com/rust-lang/crates.io-index" 5405 | checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" 5406 | 5407 | [[package]] 5408 | name = "windows_x86_64_msvc" 5409 | version = "0.48.5" 5410 | source = "registry+https://github.com/rust-lang/crates.io-index" 5411 | checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 5412 | 5413 | [[package]] 5414 | name = "windows_x86_64_msvc" 5415 | version = "0.52.6" 5416 | source = "registry+https://github.com/rust-lang/crates.io-index" 5417 | checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 5418 | 5419 | [[package]] 5420 | name = "windows_x86_64_msvc" 5421 | version = "0.53.0" 5422 | source = "registry+https://github.com/rust-lang/crates.io-index" 5423 | checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" 5424 | 5425 | [[package]] 5426 | name = "winnow" 5427 | version = "0.5.40" 5428 | source = "registry+https://github.com/rust-lang/crates.io-index" 5429 | checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" 5430 | dependencies = [ 5431 | "memchr", 5432 | ] 5433 | 5434 | [[package]] 5435 | name = "wit-bindgen-rt" 5436 | version = "0.39.0" 5437 | source = "registry+https://github.com/rust-lang/crates.io-index" 5438 | checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" 5439 | dependencies = [ 5440 | "bitflags 2.9.0", 5441 | ] 5442 | 5443 | [[package]] 5444 | name = "write16" 5445 | version = "1.0.0" 5446 | source = "registry+https://github.com/rust-lang/crates.io-index" 5447 | checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" 5448 | 5449 | [[package]] 5450 | name = "writeable" 5451 | version = "0.5.5" 5452 | source = "registry+https://github.com/rust-lang/crates.io-index" 5453 | checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" 5454 | 5455 | [[package]] 5456 | name = "wry" 5457 | version = "0.45.0" 5458 | source = "registry+https://github.com/rust-lang/crates.io-index" 5459 | checksum = "ac0099a336829fbf54c26b5f620c68980ebbe37196772aeaf6118df4931b5cb0" 5460 | dependencies = [ 5461 | "base64", 5462 | "block", 5463 | "cocoa 0.26.0", 5464 | "core-graphics 0.24.0", 5465 | "crossbeam-channel", 5466 | "dpi", 5467 | "dunce", 5468 | "gdkx11", 5469 | "gtk", 5470 | "html5ever", 5471 | "http", 5472 | "javascriptcore-rs", 5473 | "jni", 5474 | "kuchikiki", 5475 | "libc", 5476 | "ndk", 5477 | "objc", 5478 | "objc_id", 5479 | "once_cell", 5480 | "percent-encoding", 5481 | "raw-window-handle 0.6.2", 5482 | "sha2", 5483 | "soup3", 5484 | "tao-macros", 5485 | "thiserror 1.0.69", 5486 | "webkit2gtk", 5487 | "webkit2gtk-sys", 5488 | "webview2-com", 5489 | "windows", 5490 | "windows-core", 5491 | "windows-version", 5492 | "x11-dl", 5493 | ] 5494 | 5495 | [[package]] 5496 | name = "x11" 5497 | version = "2.21.0" 5498 | source = "registry+https://github.com/rust-lang/crates.io-index" 5499 | checksum = "502da5464ccd04011667b11c435cb992822c2c0dbde1770c988480d312a0db2e" 5500 | dependencies = [ 5501 | "libc", 5502 | "pkg-config", 5503 | ] 5504 | 5505 | [[package]] 5506 | name = "x11-dl" 5507 | version = "2.21.0" 5508 | source = "registry+https://github.com/rust-lang/crates.io-index" 5509 | checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" 5510 | dependencies = [ 5511 | "libc", 5512 | "once_cell", 5513 | "pkg-config", 5514 | ] 5515 | 5516 | [[package]] 5517 | name = "xdg-home" 5518 | version = "1.3.0" 5519 | source = "registry+https://github.com/rust-lang/crates.io-index" 5520 | checksum = "ec1cdab258fb55c0da61328dc52c8764709b249011b2cad0454c72f0bf10a1f6" 5521 | dependencies = [ 5522 | "libc", 5523 | "windows-sys 0.59.0", 5524 | ] 5525 | 5526 | [[package]] 5527 | name = "xxhash-rust" 5528 | version = "0.8.15" 5529 | source = "registry+https://github.com/rust-lang/crates.io-index" 5530 | checksum = "fdd20c5420375476fbd4394763288da7eb0cc0b8c11deed431a91562af7335d3" 5531 | 5532 | [[package]] 5533 | name = "yoke" 5534 | version = "0.7.5" 5535 | source = "registry+https://github.com/rust-lang/crates.io-index" 5536 | checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" 5537 | dependencies = [ 5538 | "serde", 5539 | "stable_deref_trait", 5540 | "yoke-derive", 5541 | "zerofrom", 5542 | ] 5543 | 5544 | [[package]] 5545 | name = "yoke-derive" 5546 | version = "0.7.5" 5547 | source = "registry+https://github.com/rust-lang/crates.io-index" 5548 | checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" 5549 | dependencies = [ 5550 | "proc-macro2", 5551 | "quote", 5552 | "syn 2.0.100", 5553 | "synstructure", 5554 | ] 5555 | 5556 | [[package]] 5557 | name = "zbus" 5558 | version = "4.0.1" 5559 | source = "registry+https://github.com/rust-lang/crates.io-index" 5560 | checksum = "7b8e3d6ae3342792a6cc2340e4394334c7402f3d793b390d2c5494a4032b3030" 5561 | dependencies = [ 5562 | "async-broadcast", 5563 | "async-process", 5564 | "async-recursion", 5565 | "async-trait", 5566 | "derivative", 5567 | "enumflags2", 5568 | "event-listener", 5569 | "futures-core", 5570 | "futures-sink", 5571 | "futures-util", 5572 | "hex", 5573 | "nix", 5574 | "ordered-stream", 5575 | "rand 0.8.5", 5576 | "serde", 5577 | "serde_repr", 5578 | "sha1", 5579 | "static_assertions", 5580 | "tokio", 5581 | "tracing", 5582 | "uds_windows", 5583 | "windows-sys 0.52.0", 5584 | "xdg-home", 5585 | "zbus_macros", 5586 | "zbus_names", 5587 | "zvariant", 5588 | ] 5589 | 5590 | [[package]] 5591 | name = "zbus_macros" 5592 | version = "4.0.1" 5593 | source = "registry+https://github.com/rust-lang/crates.io-index" 5594 | checksum = "b7a3e850ff1e7217a3b7a07eba90d37fe9bb9e89a310f718afcde5885ca9b6d7" 5595 | dependencies = [ 5596 | "proc-macro-crate 1.3.1", 5597 | "proc-macro2", 5598 | "quote", 5599 | "regex", 5600 | "syn 1.0.109", 5601 | "zvariant_utils", 5602 | ] 5603 | 5604 | [[package]] 5605 | name = "zbus_names" 5606 | version = "3.0.0" 5607 | source = "registry+https://github.com/rust-lang/crates.io-index" 5608 | checksum = "4b9b1fef7d021261cc16cba64c351d291b715febe0fa10dc3a443ac5a5022e6c" 5609 | dependencies = [ 5610 | "serde", 5611 | "static_assertions", 5612 | "zvariant", 5613 | ] 5614 | 5615 | [[package]] 5616 | name = "zerocopy" 5617 | version = "0.8.24" 5618 | source = "registry+https://github.com/rust-lang/crates.io-index" 5619 | checksum = "2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879" 5620 | dependencies = [ 5621 | "zerocopy-derive", 5622 | ] 5623 | 5624 | [[package]] 5625 | name = "zerocopy-derive" 5626 | version = "0.8.24" 5627 | source = "registry+https://github.com/rust-lang/crates.io-index" 5628 | checksum = "a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be" 5629 | dependencies = [ 5630 | "proc-macro2", 5631 | "quote", 5632 | "syn 2.0.100", 5633 | ] 5634 | 5635 | [[package]] 5636 | name = "zerofrom" 5637 | version = "0.1.6" 5638 | source = "registry+https://github.com/rust-lang/crates.io-index" 5639 | checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" 5640 | dependencies = [ 5641 | "zerofrom-derive", 5642 | ] 5643 | 5644 | [[package]] 5645 | name = "zerofrom-derive" 5646 | version = "0.1.6" 5647 | source = "registry+https://github.com/rust-lang/crates.io-index" 5648 | checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" 5649 | dependencies = [ 5650 | "proc-macro2", 5651 | "quote", 5652 | "syn 2.0.100", 5653 | "synstructure", 5654 | ] 5655 | 5656 | [[package]] 5657 | name = "zeroize" 5658 | version = "1.8.1" 5659 | source = "registry+https://github.com/rust-lang/crates.io-index" 5660 | checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" 5661 | 5662 | [[package]] 5663 | name = "zerovec" 5664 | version = "0.10.4" 5665 | source = "registry+https://github.com/rust-lang/crates.io-index" 5666 | checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" 5667 | dependencies = [ 5668 | "yoke", 5669 | "zerofrom", 5670 | "zerovec-derive", 5671 | ] 5672 | 5673 | [[package]] 5674 | name = "zerovec-derive" 5675 | version = "0.10.3" 5676 | source = "registry+https://github.com/rust-lang/crates.io-index" 5677 | checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" 5678 | dependencies = [ 5679 | "proc-macro2", 5680 | "quote", 5681 | "syn 2.0.100", 5682 | ] 5683 | 5684 | [[package]] 5685 | name = "zvariant" 5686 | version = "4.0.0" 5687 | source = "registry+https://github.com/rust-lang/crates.io-index" 5688 | checksum = "4e09e8be97d44eeab994d752f341e67b3b0d80512a8b315a0671d47232ef1b65" 5689 | dependencies = [ 5690 | "endi", 5691 | "enumflags2", 5692 | "serde", 5693 | "static_assertions", 5694 | "url", 5695 | "zvariant_derive", 5696 | ] 5697 | 5698 | [[package]] 5699 | name = "zvariant_derive" 5700 | version = "4.0.0" 5701 | source = "registry+https://github.com/rust-lang/crates.io-index" 5702 | checksum = "72a5857e2856435331636a9fbb415b09243df4521a267c5bedcd5289b4d5799e" 5703 | dependencies = [ 5704 | "proc-macro-crate 1.3.1", 5705 | "proc-macro2", 5706 | "quote", 5707 | "syn 1.0.109", 5708 | "zvariant_utils", 5709 | ] 5710 | 5711 | [[package]] 5712 | name = "zvariant_utils" 5713 | version = "1.1.0" 5714 | source = "registry+https://github.com/rust-lang/crates.io-index" 5715 | checksum = "00bedb16a193cc12451873fee2a1bc6550225acece0e36f333e68326c73c8172" 5716 | dependencies = [ 5717 | "proc-macro2", 5718 | "quote", 5719 | "syn 1.0.109", 5720 | ] 5721 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | categories = ["api-bindings", "gui", "wasm", "web-programming"] 3 | description = "A way to handle states with structs in Dioxus inspired by mobx" 4 | documentation = "https://docs.rs/modx/latest/modx/index.html" 5 | edition = "2024" 6 | exclude = ["/examples", "/justfile", "/rustfmt.toml"] 7 | keywords = ["dioxus", "mobx", "redux", "state", "wasm"] 8 | license = "LGPL-3.0-or-later" 9 | name = "modx" 10 | readme = "README.md" 11 | repository = "https://github.com/tkr-sh/modx" 12 | version = "0.1.4" 13 | 14 | 15 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 16 | 17 | [dependencies] 18 | proc-macro2 = "1.0" 19 | quote = "1.0" 20 | syn = { version = "2.0", features = ["full"] } 21 | 22 | [dev-dependencies] 23 | dioxus = { version = "0.6", features = ["desktop"] } 24 | reqwest = { version = "0.12", features = ["json"] } 25 | serde = "1.0" 26 | tokio = { version = "1", features = ["full"] } 27 | 28 | [lib] 29 | proc-macro = true 30 | 31 | 32 | # 33 | [lints.clippy] 34 | # Have false positives 35 | borrow_deref_ref = "allow" 36 | deref_addrof = "allow" 37 | drain_collect = "allow" 38 | 39 | # Based 40 | allow_attributes_without_reason = "warn" 41 | clear_with_drain = "warn" 42 | clone_on_ref_ptr = "warn" 43 | cloned_instead_of_copied = "warn" 44 | collection_is_never_read = "warn" 45 | create_dir = "warn" 46 | empty_drop = "warn" 47 | empty_enum_variants_with_brackets = "warn" 48 | empty_structs_with_brackets = "warn" 49 | explicit_into_iter_loop = "warn" 50 | filetype_is_file = "warn" 51 | filter_map_next = "warn" 52 | flat_map_option = "warn" 53 | ignored_unit_patterns = "warn" 54 | impl_trait_in_params = "warn" 55 | index_refutable_slice = "warn" 56 | inefficient_to_string = "warn" 57 | iter_filter_is_ok = "warn" 58 | iter_filter_is_some = "warn" 59 | iter_on_empty_collections = "warn" 60 | iter_with_drain = "warn" 61 | manual_assert = "warn" 62 | match_same_arms = "warn" 63 | match_wildcard_for_single_variants = "warn" 64 | mismatching_type_param_order = "warn" 65 | mixed_read_write_in_expression = "warn" 66 | mut_mut = "warn" 67 | needless_collect = "warn" 68 | needless_continue = "warn" 69 | needless_raw_string_hashes = "warn" 70 | non_std_lazy_statics = "warn" 71 | nonstandard_macro_braces = "warn" 72 | option_as_ref_cloned = "warn" 73 | or_fun_call = "warn" 74 | pub_without_shorthand = "deny" 75 | redundant_closure_for_method_calls = "warn" 76 | self_named_module_files = "deny" 77 | semicolon_if_nothing_returned = "warn" 78 | significant_drop_in_scrutinee = "warn" 79 | single_char_pattern = "warn" 80 | str_split_at_newline = "warn" 81 | string_to_string = "warn" 82 | trait_duplication_in_bounds = "warn" 83 | undocumented_unsafe_blocks = "warn" 84 | unnested_or_patterns = "warn" 85 | unreadable_literal = "warn" 86 | unused_async = "warn" 87 | unused_peekable = "warn" 88 | unused_result_ok = "warn" 89 | unused_rounding = "warn" 90 | unused_self = "warn" 91 | verbose_bit_mask = "warn" 92 | verbose_file_reads = "warn" 93 | 94 | # Mid 95 | branches_sharing_code = "warn" 96 | cfg_not_test = "warn" 97 | cognitive_complexity = "warn" 98 | comparison_chain = "warn" 99 | doc_link_with_quotes = "warn" 100 | empty_enum = "warn" 101 | equatable_if_let = "warn" 102 | if_not_else = "warn" 103 | iter_on_single_items = "warn" 104 | large_digit_groups = "warn" 105 | match_on_vec_items = "warn" 106 | negative_feature_names = "warn" 107 | option_option = "warn" 108 | path_buf_push_overwrite = "warn" 109 | redundant_type_annotations = "warn" 110 | rest_pat_in_fully_bound_structs = "warn" 111 | string_lit_chars_any = "warn" 112 | type_repetition_in_bounds = "warn" 113 | uninlined_format_args = "warn" 114 | 115 | # Controversial 116 | as_conversions = "deny" 117 | assigning_clones = "warn" 118 | bool_to_int_with_if = "warn" 119 | decimal_literal_representation = "warn" # with clippy.toml `literal-representation-threshold` 120 | default_trait_access = "warn" 121 | derive_partial_eq_without_eq = "warn" 122 | fallible_impl_from = "warn" 123 | format_push_string = "warn" 124 | from_iter_instead_of_collect = "warn" 125 | implicit_clone = "warn" 126 | items_after_statements = "warn" 127 | literal_string_with_formatting_args = "warn" 128 | manual_string_new = "warn" 129 | map_unwrap_or = "warn" 130 | map_with_unused_argument_over_ranges = "warn" 131 | missing_const_for_fn = "warn" 132 | needless_for_each = "warn" 133 | needless_pass_by_ref_mut = "warn" 134 | needless_pass_by_value = "warn" # Not true everytime tho 135 | non_zero_suggestions = "warn" 136 | ref_option_ref = "warn" 137 | string_lit_as_bytes = "warn" 138 | too_long_first_doc_paragraph = "warn" 139 | trivial_regex = "warn" 140 | unchecked_duration_subtraction = "warn" 141 | unnecessary_join = "warn" 142 | unwrap_used = "warn" # With clippy.toml `allow-unwrap-in-test` 143 | 144 | # Removing 145 | enum_variant_names = "allow" 146 | too_many_arguments = "allow" 147 | type_complexity = "allow" 148 | upper_case_acronyms = "allow" 149 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | # GNU LESSER GENERAL PUBLIC LICENSE 2 | 3 | Version 3, 29 June 2007 4 | 5 | Copyright (C) 2007 Free Software Foundation, Inc. 6 | 7 | 8 | Everyone is permitted to copy and distribute verbatim copies of this 9 | license document, but changing it is not allowed. 10 | 11 | This version of the GNU Lesser General Public License incorporates the 12 | terms and conditions of version 3 of the GNU General Public License, 13 | supplemented by the additional permissions listed below. 14 | 15 | ## 0. Additional Definitions. 16 | 17 | As used herein, "this License" refers to version 3 of the GNU Lesser 18 | General Public License, and the "GNU GPL" refers to version 3 of the 19 | GNU General Public License. 20 | 21 | "The Library" refers to a covered work governed by this License, other 22 | than an Application or a Combined Work as defined below. 23 | 24 | An "Application" is any work that makes use of an interface provided 25 | by the Library, but which is not otherwise based on the Library. 26 | Defining a subclass of a class defined by the Library is deemed a mode 27 | of using an interface provided by the Library. 28 | 29 | A "Combined Work" is a work produced by combining or linking an 30 | Application with the Library. The particular version of the Library 31 | with which the Combined Work was made is also called the "Linked 32 | Version". 33 | 34 | The "Minimal Corresponding Source" for a Combined Work means the 35 | Corresponding Source for the Combined Work, excluding any source code 36 | for portions of the Combined Work that, considered in isolation, are 37 | based on the Application, and not on the Linked Version. 38 | 39 | The "Corresponding Application Code" for a Combined Work means the 40 | object code and/or source code for the Application, including any data 41 | and utility programs needed for reproducing the Combined Work from the 42 | Application, but excluding the System Libraries of the Combined Work. 43 | 44 | ## 1. Exception to Section 3 of the GNU GPL. 45 | 46 | You may convey a covered work under sections 3 and 4 of this License 47 | without being bound by section 3 of the GNU GPL. 48 | 49 | ## 2. Conveying Modified Versions. 50 | 51 | If you modify a copy of the Library, and, in your modifications, a 52 | facility refers to a function or data to be supplied by an Application 53 | that uses the facility (other than as an argument passed when the 54 | facility is invoked), then you may convey a copy of the modified 55 | version: 56 | 57 | - a) under this License, provided that you make a good faith effort 58 | to ensure that, in the event an Application does not supply the 59 | function or data, the facility still operates, and performs 60 | whatever part of its purpose remains meaningful, or 61 | - b) under the GNU GPL, with none of the additional permissions of 62 | this License applicable to that copy. 63 | 64 | ## 3. Object Code Incorporating Material from Library Header Files. 65 | 66 | The object code form of an Application may incorporate material from a 67 | header file that is part of the Library. You may convey such object 68 | code under terms of your choice, provided that, if the incorporated 69 | material is not limited to numerical parameters, data structure 70 | layouts and accessors, or small macros, inline functions and templates 71 | (ten or fewer lines in length), you do both of the following: 72 | 73 | - a) Give prominent notice with each copy of the object code that 74 | the Library is used in it and that the Library and its use are 75 | covered by this License. 76 | - b) Accompany the object code with a copy of the GNU GPL and this 77 | license document. 78 | 79 | ## 4. Combined Works. 80 | 81 | You may convey a Combined Work under terms of your choice that, taken 82 | together, effectively do not restrict modification of the portions of 83 | the Library contained in the Combined Work and reverse engineering for 84 | debugging such modifications, if you also do each of the following: 85 | 86 | - a) Give prominent notice with each copy of the Combined Work that 87 | the Library is used in it and that the Library and its use are 88 | covered by this License. 89 | - b) Accompany the Combined Work with a copy of the GNU GPL and this 90 | license document. 91 | - c) For a Combined Work that displays copyright notices during 92 | execution, include the copyright notice for the Library among 93 | these notices, as well as a reference directing the user to the 94 | copies of the GNU GPL and this license document. 95 | - d) Do one of the following: 96 | - 0) Convey the Minimal Corresponding Source under the terms of 97 | this License, and the Corresponding Application Code in a form 98 | suitable for, and under terms that permit, the user to 99 | recombine or relink the Application with a modified version of 100 | the Linked Version to produce a modified Combined Work, in the 101 | manner specified by section 6 of the GNU GPL for conveying 102 | Corresponding Source. 103 | - 1) Use a suitable shared library mechanism for linking with 104 | the Library. A suitable mechanism is one that (a) uses at run 105 | time a copy of the Library already present on the user's 106 | computer system, and (b) will operate properly with a modified 107 | version of the Library that is interface-compatible with the 108 | Linked Version. 109 | - e) Provide Installation Information, but only if you would 110 | otherwise be required to provide such information under section 6 111 | of the GNU GPL, and only to the extent that such information is 112 | necessary to install and execute a modified version of the 113 | Combined Work produced by recombining or relinking the Application 114 | with a modified version of the Linked Version. (If you use option 115 | 4d0, the Installation Information must accompany the Minimal 116 | Corresponding Source and Corresponding Application Code. If you 117 | use option 4d1, you must provide the Installation Information in 118 | the manner specified by section 6 of the GNU GPL for conveying 119 | Corresponding Source.) 120 | 121 | ## 5. Combined Libraries. 122 | 123 | You may place library facilities that are a work based on the Library 124 | side by side in a single library together with other library 125 | facilities that are not Applications and are not covered by this 126 | License, and convey such a combined library under terms of your 127 | choice, if you do both of the following: 128 | 129 | - a) Accompany the combined library with a copy of the same work 130 | based on the Library, uncombined with any other library 131 | facilities, conveyed under the terms of this License. 132 | - b) Give prominent notice with the combined library that part of it 133 | is a work based on the Library, and explaining where to find the 134 | accompanying uncombined form of the same work. 135 | 136 | ## 6. Revised Versions of the GNU Lesser General Public License. 137 | 138 | The Free Software Foundation may publish revised and/or new versions 139 | of the GNU Lesser General Public License from time to time. Such new 140 | versions will be similar in spirit to the present version, but may 141 | differ in detail to address new problems or concerns. 142 | 143 | Each version is given a distinguishing version number. If the Library 144 | as you received it specifies that a certain numbered version of the 145 | GNU Lesser General Public License "or any later version" applies to 146 | it, you have the option of following the terms and conditions either 147 | of that published version or of any later version published by the 148 | Free Software Foundation. If the Library as you received it does not 149 | specify a version number of the GNU Lesser General Public License, you 150 | may choose any version of the GNU Lesser General Public License ever 151 | published by the Free Software Foundation. 152 | 153 | If the Library as you received it specifies that a proxy can decide 154 | whether future versions of the GNU Lesser General Public License shall 155 | apply, that proxy's public statement of acceptance of any version is 156 | permanent authorization for you to choose that version for the 157 | Library. 158 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

modx

2 | 3 |

4 | 5 | github release 9 | 10 | 11 | crates.io downloads 15 | 16 | 17 | docs.rs docs 21 | 22 | 23 | stars 27 | 28 |

29 | 30 | [modx](https://github.com/tkr-sh/modx) is an experimental way to handle states with structs in [Dioxus](https://dioxuslabs.com/) inspired by [mobx](https://mobx.js.org/README.html). 31 | 32 | 33 | ## Example 34 | ```rs 35 | #[modx::store] 36 | struct CounterStore { 37 | count: i64, 38 | } 39 | 40 | impl CounterStore { 41 | fn inc(&mut self) { 42 | self.count += 1; 43 | } 44 | 45 | fn dec(&mut self) { 46 | self.count -= 1; 47 | } 48 | } 49 | 50 | fn app() -> Element { 51 | let mut store = CounterStore::new(); 52 | rsx! { 53 | button { onclick: move |_| store.inc(), "+1" } 54 | button { onclick: move |_| store.dec(), "-1" } 55 | "{store.count}" 56 | } 57 | } 58 | ``` 59 | 60 | 61 | ## Documentation 62 | Documentation can be found at https://docs.rs/modx 63 | 64 | ## More examples 65 | There are some examples at `~/examples` so you can see how to use `modx` and how it behaves. 66 | 67 | You can run an example with: 68 | 69 | ```sh 70 | cargo run --example this_example 71 | ``` 72 | 73 | with `this_example` being the name of the file (without the extension) 74 | 75 | 76 | ## Development progress 77 | 78 | In the near future, most of the hooks should be rewrote to work with modx. 79 | 80 | Here is the current status: 81 | 82 | - [X] Signals 83 | - [X] Props 84 | - [X] Resources 85 | - [ ] Memo 86 | - [ ] Server future 87 | -------------------------------------------------------------------------------- /clippy.toml: -------------------------------------------------------------------------------- 1 | allow-unwrap-in-tests = true 2 | literal-representation-threshold = 16384 3 | -------------------------------------------------------------------------------- /examples/desktop.rs: -------------------------------------------------------------------------------- 1 | use {dioxus::prelude::*, modx::store}; 2 | 3 | fn main() { 4 | launch(app); 5 | } 6 | 7 | #[store] 8 | struct TodoStore { 9 | tasks: Vec, 10 | value: String, 11 | } 12 | 13 | impl TodoStore { 14 | fn add_todo(&mut self) { 15 | self.tasks.push(self.value()); 16 | self.value.set(String::new()); 17 | } 18 | 19 | fn pop_todo(&mut self) { 20 | self.tasks.pop(); 21 | } 22 | 23 | fn update_value(&mut self, s: String) { 24 | self.value.set(s); 25 | } 26 | } 27 | 28 | fn app() -> Element { 29 | let mut store = TodoStore::new(); 30 | 31 | rsx!( 32 | input { 33 | oninput: move |e| store.update_value(e.data().value()), 34 | onkeydown: move |e| if e.data().key() == Key::Enter { store.add_todo() }, 35 | value: "{store.value}" 36 | } 37 | button { 38 | onclick: move |_| store.add_todo(), 39 | "Add Task" 40 | } 41 | button { 42 | onclick: move |_| store.pop_todo(), 43 | "Pop Task" 44 | } 45 | ul { 46 | for (idx, task) in store.tasks().iter().enumerate() { 47 | li { 48 | key: "{idx}", 49 | "{task}" 50 | } 51 | } 52 | } 53 | ) 54 | } 55 | -------------------------------------------------------------------------------- /examples/nested_store.rs: -------------------------------------------------------------------------------- 1 | use { 2 | dioxus::prelude::*, 3 | modx::{props, store}, 4 | }; 5 | 6 | fn main() { 7 | launch(app); 8 | } 9 | 10 | // CoutnerS 11 | #[props(counters)] 12 | #[store] 13 | struct CountersStore { 14 | counters: Vec, 15 | } 16 | 17 | // Counter 18 | #[derive(Debug, PartialEq, Eq)] 19 | #[store] 20 | struct CounterStore { 21 | count: i64, 22 | } 23 | 24 | impl CounterStore { 25 | fn inc(&mut self) { 26 | self.count += 1; 27 | } 28 | 29 | fn dec(&mut self) { 30 | self.count -= 1; 31 | } 32 | } 33 | 34 | #[derive(PartialEq, Props, Clone)] 35 | struct StoreProps { 36 | store: CounterStore, 37 | } 38 | 39 | fn my_button(mut props: StoreProps) -> Element { 40 | rsx! { 41 | button { 42 | onclick: move |_| props.store.inc(), 43 | "+1" 44 | } 45 | button { 46 | onclick: move |_| props.store.dec(), 47 | "-1" 48 | } 49 | } 50 | } 51 | 52 | fn app() -> Element { 53 | let a = CounterStore::new(); 54 | let b = CounterStore::new(); 55 | let store = CountersStore::new(CountersStoreProps { 56 | counters: vec![a, b], 57 | }); 58 | 59 | rsx! { 60 | my_button { store: store.counters()[0] } 61 | br{} 62 | my_button { store: store.counters()[1] } 63 | br{} 64 | "{a.count}" 65 | br{} 66 | "{b.count}" 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /examples/props.rs: -------------------------------------------------------------------------------- 1 | use { 2 | dioxus::prelude::*, 3 | modx::{props, store}, 4 | }; 5 | 6 | fn main() { 7 | launch(app); 8 | } 9 | 10 | #[store] 11 | struct Shop { 12 | input: String, 13 | items_string: Vec, 14 | } 15 | 16 | impl Shop { 17 | fn add_item(&mut self) { 18 | self.items_string.push(self.input()); 19 | self.input.set(String::new()); 20 | } 21 | 22 | fn get_items(&self) -> Vec { 23 | self.items_string() 24 | .iter() 25 | .map(|item| Item::new(ItemProps { name: item.clone() })) 26 | .collect::>() 27 | } 28 | 29 | fn on_input(&mut self, s: String) { 30 | self.input.set(s); 31 | } 32 | } 33 | 34 | #[derive(Debug)] 35 | #[props(name)] 36 | #[store] 37 | struct Item { 38 | name: String, 39 | number_to_buy: usize, 40 | } 41 | 42 | impl Item { 43 | fn inc(&mut self) { 44 | self.number_to_buy += 1; 45 | } 46 | 47 | fn dec(&mut self) { 48 | if self.number_to_buy() > 0 { 49 | self.number_to_buy -= 1; 50 | } 51 | } 52 | } 53 | 54 | fn app() -> Element { 55 | let mut shop = Shop::new(); 56 | 57 | rsx!( 58 | ul { 59 | list_style: "none", 60 | padding_left: "0px", 61 | for (idx, &mut item) in shop.get_items().iter_mut().enumerate() { 62 | li { 63 | key: "{idx}", 64 | padding: "10px", 65 | margin_top: "10px", 66 | background: "#eee", 67 | "{item.name}" 68 | div { 69 | "{item.number_to_buy}" 70 | button { onclick: move |_| item.clone().inc(), "+1" } 71 | button { onclick: move |_| item.clone().dec(), "-1" } 72 | } 73 | } 74 | } 75 | } 76 | input { 77 | oninput: move |e| shop.on_input(e.data().value()), 78 | onkeydown: move |e| if e.data().key() == Key::Enter { shop.add_item() }, 79 | value: "{shop.input}" 80 | } 81 | button { 82 | onclick: move |_| shop.add_item(), 83 | "Add a new item!", 84 | } 85 | ) 86 | } 87 | -------------------------------------------------------------------------------- /examples/pub.rs: -------------------------------------------------------------------------------- 1 | use dioxus::prelude::*; 2 | mod pub_store; 3 | use pub_store::CounterStore; 4 | 5 | 6 | fn main() { 7 | launch(app); 8 | } 9 | 10 | fn app() -> Element { 11 | let mut store = CounterStore::new(); 12 | rsx! { 13 | button { onclick: move |_| store.inc(), "+1" } 14 | button { onclick: move |_| store.dec(), "-1" } 15 | "{store.count}" 16 | } 17 | } 18 | 19 | -------------------------------------------------------------------------------- /examples/pub_store.rs: -------------------------------------------------------------------------------- 1 | use {dioxus::prelude::*, modx::store}; 2 | 3 | #[store(Default)] 4 | pub struct CounterStore { 5 | pub count: i64, 6 | } 7 | 8 | impl CounterStore { 9 | pub fn inc(&mut self) { 10 | self.count += 1; 11 | } 12 | 13 | pub fn dec(&mut self) { 14 | self.count -= 1; 15 | } 16 | } 17 | 18 | #[allow(dead_code, reason = "Just checking that it compiles")] 19 | const fn main() {} 20 | -------------------------------------------------------------------------------- /examples/readme.rs: -------------------------------------------------------------------------------- 1 | use {dioxus::prelude::*, modx::store}; 2 | 3 | fn main() { 4 | launch(app); 5 | } 6 | 7 | #[store(Default)] 8 | struct CounterStore { 9 | count: i64, 10 | } 11 | 12 | impl CounterStore { 13 | fn inc(&mut self) { 14 | self.count += 1; 15 | } 16 | 17 | fn dec(&mut self) { 18 | self.count -= 1; 19 | } 20 | } 21 | 22 | fn app() -> Element { 23 | let mut store = CounterStore::new(); 24 | rsx! { 25 | button { onclick: move |_| store.inc(), "+1" } 26 | button { onclick: move |_| store.dec(), "-1" } 27 | "{store.count}" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /examples/resource.rs: -------------------------------------------------------------------------------- 1 | use { 2 | dioxus::prelude::*, 3 | modx::{props, resource, store}, 4 | serde::Deserialize, 5 | }; 6 | 7 | fn main() { 8 | launch(app); 9 | } 10 | 11 | #[resource(fetch_cat)] 12 | #[props(number_of_cats)] 13 | #[store(Default)] 14 | struct CatStore { 15 | number_of_cats: usize, 16 | fetch_cat: Result, 17 | } 18 | 19 | #[derive(Deserialize, Debug)] 20 | struct ApiResponse { 21 | id: String, 22 | } 23 | 24 | impl CatStore { 25 | fn clear(&mut self) { 26 | self.fetch_cat.clear(); 27 | self.number_of_cats.set(0); 28 | } 29 | 30 | async fn fetch_cat(&mut self) -> Result { 31 | self.number_of_cats += 1; 32 | 33 | match reqwest::get("https://cataas.com/cat?json=true").await { 34 | Ok(rep) => rep.json::().await, 35 | Err(why) => Err(why), 36 | } 37 | } 38 | } 39 | 40 | fn app() -> Element { 41 | let mut store = CatStore::new(CatStoreProps { number_of_cats: 1 }); 42 | 43 | rsx!( 44 | match &*store.fetch_cat.read() { 45 | Some(Ok(api_response)) => 46 | rsx! { 47 | div { 48 | img { 49 | max_width: "500px", 50 | max_height: "500px", 51 | src: "https://cataas.com/cat/{api_response.id}" 52 | } 53 | } 54 | "Wow! An amazing cat! (N°{store.number_of_cats})" 55 | }, 56 | Some(Err(_)) => rsx! { "An error occured while getting a cat :(" }, 57 | None => rsx!( "No cat for now." ), 58 | } 59 | button { 60 | onclick: move |_| store.fetch_cat.restart(), 61 | "Get a new cat!" 62 | } 63 | button { 64 | onclick: move |_| store.clear(), 65 | "Clear cats" 66 | } 67 | ) 68 | } 69 | -------------------------------------------------------------------------------- /justfile: -------------------------------------------------------------------------------- 1 | set shell := ["nu", "-c"] 2 | 3 | check-examples: 4 | cd examples; ls *.rs | each { cargo check --example $"($in.name | split row '.' | first)" } 5 | 6 | -------------------------------------------------------------------------------- /rustfmt.toml: -------------------------------------------------------------------------------- 1 | # https://github.com/rust-lang/rustfmt 2 | # Configuration: https://rust-lang.github.io/rustfmt 3 | 4 | # Stable 5 | array_width = 50 6 | edition = "2024" 7 | match_block_trailing_comma = true 8 | newline_style = "Unix" 9 | 10 | # Nightly 11 | binop_separator = "Back" 12 | blank_lines_upper_bound = 3 13 | combine_control_expr = false 14 | force_multiline_blocks = true 15 | group_imports = "StdExternalCrate" 16 | imports_granularity = "One" 17 | imports_layout = "HorizontalVertical" 18 | reorder_impl_items = true 19 | -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- 1 | use { 2 | proc_macro::TokenStream as OriginalTokenStream, 3 | proc_macro2::TokenStream, 4 | quote::quote, 5 | std::{collections::HashSet, str::FromStr}, 6 | syn::{ 7 | parse::{Parse, ParseStream}, 8 | parse_macro_input, 9 | punctuated::Punctuated, 10 | DeriveInput, 11 | Ident, 12 | Token, 13 | }, 14 | }; 15 | 16 | struct Args { 17 | vars: HashSet, 18 | } 19 | 20 | impl Parse for Args { 21 | fn parse(input: ParseStream) -> Result { 22 | // parses a,b,c, or a,b,c where a,b and c are Indent 23 | let vars = Punctuated::::parse_terminated(input)?; 24 | Ok(Args { 25 | vars: vars.into_iter().collect(), 26 | }) 27 | } 28 | } 29 | 30 | #[derive(PartialEq, Eq)] 31 | enum TypeOfField { 32 | Signal, 33 | Resource, 34 | // ServerFuture, 35 | Props, 36 | } 37 | 38 | /// Declare a struct as a modx store. 39 | /// 40 | /// ## Usage 41 | /// ``` 42 | /// #[modx::store] 43 | /// struct MyStore { 44 | /// name: String, 45 | /// age: u8, 46 | /// } 47 | /// ``` 48 | /// 49 | /// ## Attributes 50 | /// By default, this struct will have some implementation. The main one being `new`. 51 | /// New will ONLY work if all fields have a type that implements the `Default` trait. 52 | /// If one does not, you will need to use the `#[modx::props]` macro to take some parameters. 53 | /// 54 | /// ## Example 55 | /// 56 | /// When every fields implements default. 57 | /// ``` 58 | /// #[modx::store] 59 | /// struct MyStore { 60 | /// name: String, 61 | /// age: u8, 62 | /// } 63 | /// 64 | /// let store = MyStore::new(); // { name: String(""), age: 0 } 65 | /// ``` 66 | /// 67 | /// When the component takes props 68 | /// ``` 69 | /// #[modx::props(age)] 70 | /// #[modx::store] 71 | /// struct MyStore { 72 | /// name: String, 73 | /// age: u8, 74 | /// } 75 | /// 76 | /// let store = MyStore::new(MyStoreProps { age: 21 }); // { name: String(""), age: 21 } 77 | /// ``` 78 | /// 79 | /// 80 | /// ## With other macros 81 | /// By default, every field is a Signal. 82 | /// But this can be a bit concerning if you want to use a `resource` for example. 83 | /// If you want to use a resource for example, you can use the `modx::resource` procedural macro. 84 | /// 85 | /// ``` 86 | /// #[modx::resource(age)] 87 | /// #[modx::store] 88 | /// struct MyStruct { 89 | /// name: String, // <- Will be a Signal 90 | /// age: u8, // <- Will be a Resource 91 | /// } 92 | /// ``` 93 | #[proc_macro_attribute] 94 | pub fn store(_: OriginalTokenStream, item: OriginalTokenStream) -> OriginalTokenStream { 95 | let clone_item = item.clone(); 96 | let input = parse_macro_input!(clone_item as DeriveInput); 97 | 98 | let struct_name = &input.ident; 99 | let struct_visibility = &input.vis; 100 | 101 | // Get the fields of the struct 102 | let syn::Data::Struct(syn::DataStruct { fields, .. }) = &input.data else { 103 | return quote! { 104 | compile_error!("Only structs are supported for this macro"); 105 | } 106 | .into(); 107 | }; 108 | 109 | // Data that will be used later on 110 | let mut modified_fields = fields.clone(); 111 | let mut all_idents_types = vec![]; 112 | let mut props_idents = vec![]; 113 | 114 | for field in &mut modified_fields { 115 | if let Some(ident) = &field.ident { 116 | let ident_string = ident.to_string(); 117 | 118 | if !ident_string.starts_with("_modx_reserved") { 119 | // Push the new ident 120 | all_idents_types.push((ident.clone(), field.ty.clone(), TypeOfField::Signal)); 121 | 122 | // Type of the current field 123 | let field_type = field.ty.clone(); 124 | 125 | // Create the signal 126 | let signal_type = quote! { Signal<#field_type> }.into(); 127 | field.ty = parse_macro_input!(signal_type as syn::Type); 128 | } else if ident_string.starts_with("_modx_reserved_resource_") { 129 | // Push the new ident 130 | let new_name = ident_string.replace("_modx_reserved_resource_", ""); 131 | let new_ident = Ident::new(&new_name, proc_macro2::Span::call_site()); 132 | field.ident = Some(new_ident.clone()); 133 | all_idents_types.push((new_ident, field.ty.clone(), TypeOfField::Resource)); 134 | 135 | let field_type = field.ty.clone(); 136 | let signal_type = quote! { Resource<#field_type> }.into(); 137 | field.ty = parse_macro_input!(signal_type as syn::Type); 138 | } else if ident_string.starts_with("_modx_reserved_props_") { 139 | // Push the new ident 140 | let new_name = ident_string.replace("_modx_reserved_props_", ""); 141 | let new_ident = Ident::new(&new_name, proc_macro2::Span::call_site()); 142 | field.ident = Some(new_ident.clone()); 143 | all_idents_types.push((new_ident.clone(), field.ty.clone(), TypeOfField::Props)); 144 | 145 | let field_type = field.ty.clone(); 146 | let signal_type = quote! { Signal<#field_type> }.into(); 147 | field.ty = parse_macro_input!(signal_type as syn::Type); 148 | props_idents.push((new_ident.clone(), field_type)); 149 | } 150 | } 151 | } 152 | 153 | // Implement the automatic clone 154 | let impl_signal_idents = all_idents_types.iter().map(|(ident, ty, type_of_field)| { 155 | match type_of_field { 156 | TypeOfField::Signal | TypeOfField::Props => { 157 | quote! { 158 | impl #struct_name { 159 | pub fn #ident(&self) -> #ty { 160 | self.#ident.read().clone() 161 | } 162 | } 163 | } 164 | }, 165 | TypeOfField::Resource => quote! {}, 166 | } 167 | }); 168 | 169 | // Implement default values if there is "default" 170 | let impl_default = { 171 | // Convert type to type::default() for every type 172 | let default_values = all_idents_types.iter().map(|(ident, ty, type_of_field)| { 173 | let ty_corrected = quote!(#ty).to_string().replace('<', "::<"); 174 | let parsed_type: syn::Type = match syn::parse_str(&ty_corrected) { 175 | Ok(t) => t, 176 | Err(why) => { 177 | return why.to_compile_error(); 178 | }, 179 | }; 180 | 181 | match type_of_field { 182 | TypeOfField::Signal => quote! { 183 | #ident: use_signal(|| #parsed_type::default()), 184 | }, 185 | TypeOfField::Props => quote! { 186 | #ident: use_signal(|| props.#ident), 187 | }, 188 | // TODO: Change case 189 | TypeOfField::Resource => quote! { #ident: use_resource(move || async move { unsafe { std::mem::zeroed() } }), }, 190 | } 191 | }); 192 | 193 | // The resources that we need to assign just after creation. 194 | // We NEED to do that because for now, its uninialized with `unsafe { std::mem::zeroed() }` 195 | let alter_resources = all_idents_types.iter().map(|(ident, _, type_of_field)| { 196 | if *type_of_field == TypeOfField::Resource { 197 | quote! { default_struct.#ident = use_resource(move || async move { default_struct.#ident().await } ); } 198 | } else { 199 | quote!{} 200 | } 201 | }); 202 | 203 | // If there is no field that should be used as a props, we just return the default struct 204 | // that takes no parameter. 205 | if props_idents.is_empty() { 206 | // Implement default 207 | quote! { 208 | impl #struct_name { 209 | pub fn new() -> Self { 210 | let mut default_struct = #struct_name { 211 | #(#default_values)* 212 | }; 213 | 214 | #(#alter_resources)* 215 | 216 | default_struct 217 | } 218 | } 219 | } 220 | } 221 | // Else, we create a struct #(#struct_name)Props that takes the props 222 | else { 223 | let structprops_name = quote!(#struct_name).to_string(); 224 | let structprops_name: syn::Type = 225 | match syn::parse_str(&format!("{structprops_name}Props")) { 226 | Ok(t) => t, 227 | Err(why) => { 228 | return why.to_compile_error().into(); 229 | }, 230 | }; 231 | 232 | let (structprops_fields, structprops_field_inits): (Vec<_>, Vec<_>) = props_idents 233 | .iter() 234 | .map(|(ident, ty)| (quote! ( #ident: #ty, ), quote! ( #ident, ))) 235 | .unzip(); 236 | 237 | let structprops = quote! { 238 | #[derive(Debug)] 239 | #struct_visibility struct #structprops_name { 240 | #(#structprops_fields)* 241 | } 242 | impl #structprops_name { 243 | pub fn new(#(#structprops_fields)*) -> Self { 244 | Self { 245 | #(#structprops_field_inits)* 246 | } 247 | } 248 | } 249 | }; 250 | 251 | // Implement default 252 | quote! { 253 | #structprops 254 | impl #struct_name { 255 | pub fn new(props: #structprops_name) -> Self { 256 | let mut default_struct = #struct_name { 257 | #(#default_values)* 258 | }; 259 | 260 | #(#alter_resources)* 261 | 262 | default_struct 263 | } 264 | } 265 | } 266 | } 267 | }; 268 | 269 | quote! { 270 | #[derive(Copy, Clone)] 271 | #struct_visibility struct #struct_name 272 | #modified_fields 273 | 274 | #(#impl_signal_idents)* 275 | 276 | #impl_default 277 | } 278 | .into() 279 | } 280 | 281 | /// Get resources with a function 282 | /// 283 | /// ## Usage 284 | /// ``` 285 | /// #[modx::resource(fetch_cat_url)] 286 | /// #[modx::store] 287 | /// struct MyStore { 288 | /// number_of_cats: usize, 289 | /// fetch_cat_url: Result, 290 | /// } 291 | /// 292 | /// impl MyStore { 293 | /// async fn fetch_cat_url(&mut self) -> Result { 294 | /// self.number_of_cats += 1; 295 | /// 296 | /// reqwest::get("http://localhost/cat") 297 | /// .await 298 | /// .unwrap() 299 | /// .json::() 300 | /// .await 301 | /// } 302 | /// } 303 | /// 304 | /// let store = MyStore::new(); 305 | /// match &*store.fetch_cat_url.read() { 306 | /// Some(Ok(url)) => 307 | /// rsx! { 308 | /// div { 309 | /// img { 310 | /// max_width: "500px", 311 | /// max_height: "500px", 312 | /// src: url 313 | /// } 314 | /// } 315 | /// "Cat N°{store.number_of_cats}" 316 | /// }, 317 | /// Some(Err(_)) => rsx! { "An error occured while getting a cat :(" }, 318 | /// None => rsx!( "No cat for now." ), 319 | /// } 320 | /// ``` 321 | /// 322 | /// ## Attributes 323 | /// - Every attributes passed in the `resource` procedural macro needs to be implemented as a function 324 | /// in this particular struct and also being a field of this struct with the proper type. 325 | /// 326 | /// - Functions that are concerned by this macro need to be async and shouldn't take any parameter. 327 | #[proc_macro_attribute] 328 | pub fn resource(attr: OriginalTokenStream, item: OriginalTokenStream) -> OriginalTokenStream { 329 | let clone_item = item.clone(); 330 | let input = parse_macro_input!(clone_item as DeriveInput); 331 | let args = parse_macro_input!(attr as Args); 332 | 333 | // We'll collect the identifiers from the attributes 334 | let resource_fields: Vec = args 335 | .vars 336 | .iter() 337 | .map(std::string::ToString::to_string) 338 | .collect(); 339 | 340 | let struct_name = &input.ident; 341 | let struct_visibility = &input.vis; 342 | 343 | // Get the fields of the struct 344 | let fields = if let syn::Data::Struct(syn::DataStruct { fields, .. }) = &input.data { 345 | fields 346 | } else { 347 | return quote! { 348 | compile_error!("Only structs are supported for this macro"); 349 | } 350 | .into(); 351 | }; 352 | 353 | // Data that will be used later on 354 | let mut renamed_fields = fields.clone(); 355 | 356 | for field in &mut renamed_fields { 357 | if let Some(ident) = &mut field.ident { 358 | let string_ident = ident.to_string(); 359 | if resource_fields.contains(&string_ident) { 360 | let new_name = format!("_modx_reserved_resource_{ident}"); 361 | field.ident = Some(Ident::new(&new_name, proc_macro2::Span::call_site())); 362 | } 363 | } 364 | } 365 | 366 | let data = item 367 | .clone() 368 | .into_iter() 369 | .collect::>(); 370 | let mut proc_macro_attributes = vec![]; 371 | let mut i = 0; 372 | while let Some(proc_macro::TokenTree::Punct(punct)) = data.get(i) { 373 | if punct.as_char() == '#' { 374 | if let Some(proc_macro::TokenTree::Group(group)) = data.get(i + 1) { 375 | proc_macro_attributes.push(format!("#{group}")); 376 | i += 2; 377 | } 378 | } 379 | } 380 | 381 | let attributes_string = proc_macro_attributes 382 | .iter() 383 | .map(|proc_macro_attribute| { 384 | match OriginalTokenStream::from_str(&proc_macro_attribute.clone()) { 385 | Ok(v) => v.into(), 386 | // Fix with a better error 387 | Err(_why) => { 388 | quote! { 389 | compile_error!("A bad proc_macro_attr was found: {proc_macro_attribute}"); 390 | } 391 | }, 392 | } 393 | }) 394 | .collect::>(); 395 | 396 | let data = quote! { 397 | #(#attributes_string)* 398 | #struct_visibility struct #struct_name 399 | #renamed_fields 400 | }; 401 | 402 | data.into() 403 | } 404 | 405 | /// Add some props to a modx store 406 | /// 407 | /// ## Usage 408 | /// ``` 409 | /// // Adds price and name a props o the component 410 | /// #[modx::props(price, name)] 411 | /// #[modx::store] 412 | /// struct MyStore { 413 | /// price: usize, 414 | /// name: String, 415 | /// sold_today: usize, 416 | /// } 417 | /// 418 | /// // Create the store with props 419 | /// let store = MyStore::new( 420 | /// MyStoreProps{ 421 | /// price: 10, 422 | /// name: String::from("item") 423 | /// } 424 | /// ) 425 | /// ``` 426 | /// 427 | /// ## Attributes 428 | /// This procedural macro automatically creates a struct with the same name as the original struct + 429 | /// `Props` in suffix, that will have in field, all the props defined in the `#[modx::props]` macro. 430 | /// 431 | /// Every props is still a signal so you can easily modify them, copy them and see the changes. 432 | #[proc_macro_attribute] 433 | pub fn props(attr: OriginalTokenStream, item: OriginalTokenStream) -> OriginalTokenStream { 434 | let clone_item = item.clone(); 435 | let input = parse_macro_input!(clone_item as DeriveInput); 436 | let args = parse_macro_input!(attr as Args); 437 | 438 | // We'll collect the identifiers from the attributes 439 | let resource_fields: Vec = args 440 | .vars 441 | .iter() 442 | .map(std::string::ToString::to_string) 443 | .collect(); 444 | 445 | let struct_name = &input.ident; 446 | let struct_visibility = &input.vis; 447 | 448 | // Get the fields of the struct 449 | let fields = if let syn::Data::Struct(syn::DataStruct { fields, .. }) = &input.data { 450 | fields 451 | } else { 452 | return quote! { 453 | compile_error!("Only structs are supported for this macro"); 454 | } 455 | .into(); 456 | }; 457 | 458 | // Data that will be used later on 459 | let mut renamed_fields = fields.clone(); 460 | 461 | for field in &mut renamed_fields { 462 | if let Some(ident) = &mut field.ident { 463 | let string_ident = ident.to_string(); 464 | if resource_fields.contains(&string_ident) { 465 | let new_name = format!("_modx_reserved_props_{ident}"); 466 | field.ident = Some(Ident::new(&new_name, proc_macro2::Span::call_site())); 467 | } 468 | } 469 | } 470 | 471 | let data = item 472 | .clone() 473 | .into_iter() 474 | .collect::>(); 475 | 476 | let mut proc_macro_attributes = vec![]; 477 | let mut i = 0; 478 | while let Some(proc_macro::TokenTree::Punct(punct)) = data.get(i) { 479 | if punct.as_char() == '#' { 480 | if let Some(proc_macro::TokenTree::Group(group)) = data.get(i + 1) { 481 | proc_macro_attributes.push(format!("#{group}")); 482 | i += 2; 483 | } 484 | } 485 | } 486 | 487 | let attributes_string = proc_macro_attributes 488 | .iter() 489 | .map(|proc_macro_attribute| { 490 | match OriginalTokenStream::from_str(&proc_macro_attribute.clone()) { 491 | Ok(v) => v.into(), 492 | // Fix with a better error 493 | Err(_why) => { 494 | quote! { 495 | compile_error!("A bad proc_macro_attr was found: {proc_macro_attribute}"); 496 | } 497 | }, 498 | } 499 | }) 500 | .collect::>(); 501 | 502 | let data = quote! { 503 | #(#attributes_string)* 504 | 505 | #struct_visibility struct #struct_name 506 | #renamed_fields 507 | }; 508 | 509 | data.into() 510 | } 511 | -------------------------------------------------------------------------------- /taplo.toml: -------------------------------------------------------------------------------- 1 | [formatting] 2 | column_width = 100 3 | 4 | indent_entries = true 5 | indent_string = " " 6 | indent_tables = true 7 | 8 | allowed_blank_lines = 3 9 | reoder_inline_tables = true 10 | reorder_arrays = true 11 | reorder_keys = true 12 | --------------------------------------------------------------------------------