A better Rust ATProto crate
102
fork

Configure Feed

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

jacquard-common migrated to S: Bos<str>-parameterized types for non-streaming

+264 -3893
+32 -3439
Cargo.lock
··· 1 1 # This file is automatically @generated by Cargo. 2 2 # It is not intended for manual editing. 3 - version = 3 4 - 5 - [[package]] 6 - name = "addr2line" 7 - version = "0.25.1" 8 - source = "registry+https://github.com/rust-lang/crates.io-index" 9 - checksum = "1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b" 10 - dependencies = [ 11 - "gimli", 12 - ] 13 - 14 - [[package]] 15 - name = "adler" 16 - version = "1.0.2" 17 - source = "registry+https://github.com/rust-lang/crates.io-index" 18 - checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" 3 + version = 4 19 4 20 5 [[package]] 21 6 name = "adler2" ··· 24 9 checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" 25 10 26 11 [[package]] 27 - name = "adler32" 28 - version = "1.2.0" 29 - source = "registry+https://github.com/rust-lang/crates.io-index" 30 - checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" 31 - 32 - [[package]] 33 12 name = "aho-corasick" 34 13 version = "1.1.4" 35 14 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 45 24 checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd" 46 25 47 26 [[package]] 48 - name = "aligned" 49 - version = "0.4.3" 50 - source = "registry+https://github.com/rust-lang/crates.io-index" 51 - checksum = "ee4508988c62edf04abd8d92897fca0c2995d907ce1dfeaf369dac3716a40685" 52 - dependencies = [ 53 - "as-slice", 54 - ] 55 - 56 - [[package]] 57 - name = "aligned-vec" 58 - version = "0.6.4" 59 - source = "registry+https://github.com/rust-lang/crates.io-index" 60 - checksum = "dc890384c8602f339876ded803c97ad529f3842aba97f6392b3dba0dd171769b" 61 - dependencies = [ 62 - "equator", 63 - ] 64 - 65 - [[package]] 66 - name = "alloc-no-stdlib" 67 - version = "2.0.4" 68 - source = "registry+https://github.com/rust-lang/crates.io-index" 69 - checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" 70 - 71 - [[package]] 72 - name = "alloc-stdlib" 73 - version = "0.2.2" 74 - source = "registry+https://github.com/rust-lang/crates.io-index" 75 - checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" 76 - dependencies = [ 77 - "alloc-no-stdlib", 78 - ] 79 - 80 - [[package]] 81 27 name = "allocator-api2" 82 28 version = "0.2.21" 83 29 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 93 39 ] 94 40 95 41 [[package]] 96 - name = "ansi_colours" 97 - version = "1.2.3" 98 - source = "registry+https://github.com/rust-lang/crates.io-index" 99 - checksum = "14eec43e0298190790f41679fe69ef7a829d2a2ddd78c8c00339e84710e435fe" 100 - dependencies = [ 101 - "rgb", 102 - ] 103 - 104 - [[package]] 105 - name = "anstream" 106 - version = "1.0.0" 107 - source = "registry+https://github.com/rust-lang/crates.io-index" 108 - checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d" 109 - dependencies = [ 110 - "anstyle", 111 - "anstyle-parse", 112 - "anstyle-query", 113 - "anstyle-wincon", 114 - "colorchoice", 115 - "is_terminal_polyfill", 116 - "utf8parse", 117 - ] 118 - 119 - [[package]] 120 - name = "anstyle" 121 - version = "1.0.14" 122 - source = "registry+https://github.com/rust-lang/crates.io-index" 123 - checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" 124 - 125 - [[package]] 126 - name = "anstyle-parse" 127 - version = "1.0.0" 128 - source = "registry+https://github.com/rust-lang/crates.io-index" 129 - checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e" 130 - dependencies = [ 131 - "utf8parse", 132 - ] 133 - 134 - [[package]] 135 - name = "anstyle-query" 136 - version = "1.1.5" 137 - source = "registry+https://github.com/rust-lang/crates.io-index" 138 - checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" 139 - dependencies = [ 140 - "windows-sys 0.61.2", 141 - ] 142 - 143 - [[package]] 144 - name = "anstyle-wincon" 145 - version = "3.0.11" 146 - source = "registry+https://github.com/rust-lang/crates.io-index" 147 - checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" 148 - dependencies = [ 149 - "anstyle", 150 - "once_cell_polyfill", 151 - "windows-sys 0.61.2", 152 - ] 153 - 154 - [[package]] 155 - name = "anyhow" 156 - version = "1.0.102" 157 - source = "registry+https://github.com/rust-lang/crates.io-index" 158 - checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" 159 - 160 - [[package]] 161 - name = "arbitrary" 162 - version = "1.4.2" 163 - source = "registry+https://github.com/rust-lang/crates.io-index" 164 - checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" 165 - 166 - [[package]] 167 - name = "arg_enum_proc_macro" 168 - version = "0.3.4" 169 - source = "registry+https://github.com/rust-lang/crates.io-index" 170 - checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea" 171 - dependencies = [ 172 - "proc-macro2", 173 - "quote", 174 - "syn", 175 - ] 176 - 177 - [[package]] 178 - name = "arrayvec" 179 - version = "0.5.2" 180 - source = "registry+https://github.com/rust-lang/crates.io-index" 181 - checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" 182 - 183 - [[package]] 184 - name = "arrayvec" 185 - version = "0.7.6" 186 - source = "registry+https://github.com/rust-lang/crates.io-index" 187 - checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" 188 - 189 - [[package]] 190 - name = "as-slice" 191 - version = "0.2.1" 192 - source = "registry+https://github.com/rust-lang/crates.io-index" 193 - checksum = "516b6b4f0e40d50dcda9365d53964ec74560ad4284da2e7fc97122cd83174516" 194 - dependencies = [ 195 - "stable_deref_trait", 196 - ] 197 - 198 - [[package]] 199 - name = "ascii" 200 - version = "1.1.0" 201 - source = "registry+https://github.com/rust-lang/crates.io-index" 202 - checksum = "d92bec98840b8f03a5ff5413de5293bfcd8bf96467cf5452609f939ec6f5de16" 203 - 204 - [[package]] 205 42 name = "async-compression" 206 43 version = "0.4.41" 207 44 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 211 48 "compression-core", 212 49 "pin-project-lite", 213 50 "tokio", 214 - ] 215 - 216 - [[package]] 217 - name = "async-trait" 218 - version = "0.1.89" 219 - source = "registry+https://github.com/rust-lang/crates.io-index" 220 - checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" 221 - dependencies = [ 222 - "proc-macro2", 223 - "quote", 224 - "syn", 225 51 ] 226 52 227 53 [[package]] ··· 246 72 checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" 247 73 248 74 [[package]] 249 - name = "av-scenechange" 250 - version = "0.14.1" 251 - source = "registry+https://github.com/rust-lang/crates.io-index" 252 - checksum = "0f321d77c20e19b92c39e7471cf986812cbb46659d2af674adc4331ef3f18394" 253 - dependencies = [ 254 - "aligned", 255 - "anyhow", 256 - "arg_enum_proc_macro", 257 - "arrayvec 0.7.6", 258 - "log", 259 - "num-rational", 260 - "num-traits", 261 - "pastey", 262 - "rayon", 263 - "thiserror 2.0.18", 264 - "v_frame", 265 - "y4m", 266 - ] 267 - 268 - [[package]] 269 - name = "av1-grain" 270 - version = "0.2.5" 271 - source = "registry+https://github.com/rust-lang/crates.io-index" 272 - checksum = "8cfddb07216410377231960af4fcab838eaa12e013417781b78bd95ee22077f8" 273 - dependencies = [ 274 - "anyhow", 275 - "arrayvec 0.7.6", 276 - "log", 277 - "nom", 278 - "num-rational", 279 - "v_frame", 280 - ] 281 - 282 - [[package]] 283 - name = "avif-serialize" 284 - version = "0.8.8" 285 - source = "registry+https://github.com/rust-lang/crates.io-index" 286 - checksum = "375082f007bd67184fb9c0374614b29f9aaa604ec301635f72338bb65386a53d" 287 - dependencies = [ 288 - "arrayvec 0.7.6", 289 - ] 290 - 291 - [[package]] 292 - name = "axum" 293 - version = "0.8.8" 294 - source = "registry+https://github.com/rust-lang/crates.io-index" 295 - checksum = "8b52af3cb4058c895d37317bb27508dccc8e5f2d39454016b297bf4a400597b8" 296 - dependencies = [ 297 - "axum-core", 298 - "bytes", 299 - "form_urlencoded", 300 - "futures-util", 301 - "http", 302 - "http-body", 303 - "http-body-util", 304 - "hyper", 305 - "hyper-util", 306 - "itoa", 307 - "matchit", 308 - "memchr", 309 - "mime", 310 - "percent-encoding", 311 - "pin-project-lite", 312 - "serde_core", 313 - "serde_json", 314 - "serde_path_to_error", 315 - "serde_urlencoded", 316 - "sync_wrapper", 317 - "tokio", 318 - "tower", 319 - "tower-layer", 320 - "tower-service", 321 - "tracing 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", 322 - ] 323 - 324 - [[package]] 325 - name = "axum-core" 326 - version = "0.5.6" 327 - source = "registry+https://github.com/rust-lang/crates.io-index" 328 - checksum = "08c78f31d7b1291f7ee735c1c6780ccde7785daae9a9206026862dab7d8792d1" 329 - dependencies = [ 330 - "bytes", 331 - "futures-core", 332 - "http", 333 - "http-body", 334 - "http-body-util", 335 - "mime", 336 - "pin-project-lite", 337 - "sync_wrapper", 338 - "tower-layer", 339 - "tower-service", 340 - "tracing 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", 341 - ] 342 - 343 - [[package]] 344 - name = "axum-macros" 345 - version = "0.5.0" 346 - source = "registry+https://github.com/rust-lang/crates.io-index" 347 - checksum = "604fde5e028fea851ce1d8570bbdc034bec850d157f7569d10f347d06808c05c" 348 - dependencies = [ 349 - "proc-macro2", 350 - "quote", 351 - "syn", 352 - ] 353 - 354 - [[package]] 355 - name = "axum-test" 356 - version = "18.7.0" 357 - source = "registry+https://github.com/rust-lang/crates.io-index" 358 - checksum = "0ce2a8627e8d8851f894696b39f2b67807d6375c177361d376173ace306a21e2" 359 - dependencies = [ 360 - "anyhow", 361 - "axum", 362 - "bytes", 363 - "bytesize", 364 - "cookie", 365 - "expect-json", 366 - "http", 367 - "http-body-util", 368 - "hyper", 369 - "hyper-util", 370 - "mime", 371 - "pretty_assertions", 372 - "reserve-port", 373 - "rust-multipart-rfc7578_2", 374 - "serde", 375 - "serde_json", 376 - "serde_urlencoded", 377 - "smallvec", 378 - "tokio", 379 - "tower", 380 - "url", 381 - ] 382 - 383 - [[package]] 384 - name = "backtrace" 385 - version = "0.3.76" 386 - source = "registry+https://github.com/rust-lang/crates.io-index" 387 - checksum = "bb531853791a215d7c62a30daf0dde835f381ab5de4589cfe7c649d2cbe92bd6" 388 - dependencies = [ 389 - "addr2line", 390 - "cfg-if", 391 - "libc", 392 - "miniz_oxide 0.8.9", 393 - "object", 394 - "rustc-demangle", 395 - "windows-link", 396 - ] 397 - 398 - [[package]] 399 - name = "backtrace-ext" 400 - version = "0.2.1" 401 - source = "registry+https://github.com/rust-lang/crates.io-index" 402 - checksum = "537beee3be4a18fb023b570f80e3ae28003db9167a751266b259926e25539d50" 403 - dependencies = [ 404 - "backtrace", 405 - ] 406 - 407 - [[package]] 408 75 name = "base-x" 409 76 version = "0.2.11" 410 77 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 428 95 429 96 [[package]] 430 97 name = "base64" 431 - version = "0.13.1" 432 - source = "registry+https://github.com/rust-lang/crates.io-index" 433 - checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" 434 - 435 - [[package]] 436 - name = "base64" 437 98 version = "0.22.1" 438 99 source = "registry+https://github.com/rust-lang/crates.io-index" 439 100 checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" ··· 445 106 checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" 446 107 447 108 [[package]] 448 - name = "bit-set" 449 - version = "0.8.0" 450 - source = "registry+https://github.com/rust-lang/crates.io-index" 451 - checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" 452 - dependencies = [ 453 - "bit-vec", 454 - ] 455 - 456 - [[package]] 457 - name = "bit-vec" 458 - version = "0.8.0" 459 - source = "registry+https://github.com/rust-lang/crates.io-index" 460 - checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" 461 - 462 - [[package]] 463 - name = "bit_field" 464 - version = "0.10.3" 465 - source = "registry+https://github.com/rust-lang/crates.io-index" 466 - checksum = "1e4b40c7323adcfc0a41c4b88143ed58346ff65a288fc144329c5c45e05d70c6" 467 - 468 - [[package]] 469 109 name = "bitflags" 470 110 version = "2.11.0" 471 111 source = "registry+https://github.com/rust-lang/crates.io-index" 472 112 checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" 473 - 474 - [[package]] 475 - name = "bitstream-io" 476 - version = "4.9.0" 477 - source = "registry+https://github.com/rust-lang/crates.io-index" 478 - checksum = "60d4bd9d1db2c6bdf285e223a7fa369d5ce98ec767dec949c6ca62863ce61757" 479 - dependencies = [ 480 - "core2", 481 - ] 482 113 483 114 [[package]] 484 115 name = "block-buffer" ··· 531 162 ] 532 163 533 164 [[package]] 534 - name = "brotli" 535 - version = "3.5.0" 536 - source = "registry+https://github.com/rust-lang/crates.io-index" 537 - checksum = "d640d25bc63c50fb1f0b545ffd80207d2e10a4c965530809b40ba3386825c391" 538 - dependencies = [ 539 - "alloc-no-stdlib", 540 - "alloc-stdlib", 541 - "brotli-decompressor", 542 - ] 543 - 544 - [[package]] 545 - name = "brotli-decompressor" 546 - version = "2.5.1" 547 - source = "registry+https://github.com/rust-lang/crates.io-index" 548 - checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f" 549 - dependencies = [ 550 - "alloc-no-stdlib", 551 - "alloc-stdlib", 552 - ] 553 - 554 - [[package]] 555 - name = "buf_redux" 556 - version = "0.8.4" 557 - source = "registry+https://github.com/rust-lang/crates.io-index" 558 - checksum = "b953a6887648bb07a535631f2bc00fbdb2a2216f135552cb3f534ed136b9c07f" 559 - dependencies = [ 560 - "memchr", 561 - "safemem", 562 - ] 563 - 564 - [[package]] 565 - name = "buffer" 566 - version = "0.1.9" 567 - source = "registry+https://github.com/rust-lang/crates.io-index" 568 - checksum = "aab7228d32b5d95be40adeba1d9461c8547b5dadf5f9cbfba09b6d578991df28" 569 - dependencies = [ 570 - "arrayvec 0.5.2", 571 - "mac 0.0.2", 572 - ] 573 - 574 - [[package]] 575 - name = "built" 576 - version = "0.8.0" 577 - source = "registry+https://github.com/rust-lang/crates.io-index" 578 - checksum = "f4ad8f11f288f48ca24471bbd51ac257aaeaaa07adae295591266b792902ae64" 579 - 580 - [[package]] 581 165 name = "bumpalo" 582 166 version = "3.20.2" 583 167 source = "registry+https://github.com/rust-lang/crates.io-index" 584 168 checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" 585 169 586 170 [[package]] 587 - name = "bytemuck" 588 - version = "1.25.0" 589 - source = "registry+https://github.com/rust-lang/crates.io-index" 590 - checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" 591 - 592 - [[package]] 593 171 name = "byteorder" 594 172 version = "1.5.0" 595 173 source = "registry+https://github.com/rust-lang/crates.io-index" 596 174 checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 597 175 598 176 [[package]] 599 - name = "byteorder-lite" 600 - version = "0.1.0" 601 - source = "registry+https://github.com/rust-lang/crates.io-index" 602 - checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" 603 - 604 - [[package]] 605 177 name = "bytes" 606 178 version = "1.11.1" 607 179 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 611 183 ] 612 184 613 185 [[package]] 614 - name = "bytesize" 615 - version = "2.3.1" 616 - source = "registry+https://github.com/rust-lang/crates.io-index" 617 - checksum = "6bd91ee7b2422bcb158d90ef4d14f75ef67f340943fc4149891dcce8f8b972a3" 618 - 619 - [[package]] 620 - name = "cast" 621 - version = "0.3.0" 622 - source = "registry+https://github.com/rust-lang/crates.io-index" 623 - checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" 624 - 625 - [[package]] 626 186 name = "cbor4ii" 627 187 version = "0.2.14" 628 188 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 668 228 "wasm-bindgen", 669 229 "windows-link", 670 230 ] 671 - 672 - [[package]] 673 - name = "chunked_transfer" 674 - version = "1.5.0" 675 - source = "registry+https://github.com/rust-lang/crates.io-index" 676 - checksum = "6e4de3bc4ea267985becf712dc6d9eed8b04c953b3fcfb339ebc87acd9804901" 677 231 678 232 [[package]] 679 233 name = "ciborium" ··· 713 267 "multihash", 714 268 "serde", 715 269 "serde_bytes", 716 - "unsigned-varint 0.8.0", 717 - ] 718 - 719 - [[package]] 720 - name = "clap" 721 - version = "4.6.0" 722 - source = "registry+https://github.com/rust-lang/crates.io-index" 723 - checksum = "b193af5b67834b676abd72466a96c1024e6a6ad978a1f484bd90b85c94041351" 724 - dependencies = [ 725 - "clap_builder", 726 - "clap_derive", 727 - ] 728 - 729 - [[package]] 730 - name = "clap_builder" 731 - version = "4.6.0" 732 - source = "registry+https://github.com/rust-lang/crates.io-index" 733 - checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f" 734 - dependencies = [ 735 - "anstream", 736 - "anstyle", 737 - "clap_lex", 738 - "strsim", 739 - ] 740 - 741 - [[package]] 742 - name = "clap_complete" 743 - version = "4.6.0" 744 - source = "registry+https://github.com/rust-lang/crates.io-index" 745 - checksum = "19c9f1dde76b736e3681f28cec9d5a61299cbaae0fce80a68e43724ad56031eb" 746 - dependencies = [ 747 - "clap", 748 - ] 749 - 750 - [[package]] 751 - name = "clap_derive" 752 - version = "4.6.0" 753 - source = "registry+https://github.com/rust-lang/crates.io-index" 754 - checksum = "1110bd8a634a1ab8cb04345d8d878267d57c3cf1b38d91b71af6686408bbca6a" 755 - dependencies = [ 756 - "heck 0.5.0", 757 - "proc-macro2", 758 - "quote", 759 - "syn", 760 - ] 761 - 762 - [[package]] 763 - name = "clap_lex" 764 - version = "1.1.0" 765 - source = "registry+https://github.com/rust-lang/crates.io-index" 766 - checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" 767 - 768 - [[package]] 769 - name = "clap_mangen" 770 - version = "0.2.33" 771 - source = "registry+https://github.com/rust-lang/crates.io-index" 772 - checksum = "7e30ffc187e2e3aeafcd1c6e2aa416e29739454c0ccaa419226d5ecd181f2d78" 773 - dependencies = [ 774 - "clap", 775 - "roff", 270 + "unsigned-varint", 776 271 ] 777 272 778 273 [[package]] ··· 785 280 ] 786 281 787 282 [[package]] 788 - name = "color_quant" 789 - version = "1.1.0" 790 - source = "registry+https://github.com/rust-lang/crates.io-index" 791 - checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" 792 - 793 - [[package]] 794 - name = "colorchoice" 795 - version = "1.0.5" 796 - source = "registry+https://github.com/rust-lang/crates.io-index" 797 - checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" 798 - 799 - [[package]] 800 - name = "combine" 801 - version = "4.6.7" 802 - source = "registry+https://github.com/rust-lang/crates.io-index" 803 - checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" 804 - dependencies = [ 805 - "bytes", 806 - "memchr", 807 - ] 808 - 809 - [[package]] 810 283 name = "compression-codecs" 811 284 version = "0.4.37" 812 285 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 822 295 version = "0.4.31" 823 296 source = "registry+https://github.com/rust-lang/crates.io-index" 824 297 checksum = "75984efb6ed102a0d42db99afb6c1948f0380d1d91808d5529916e6c08b49d8d" 825 - 826 - [[package]] 827 - name = "console" 828 - version = "0.15.11" 829 - source = "registry+https://github.com/rust-lang/crates.io-index" 830 - checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8" 831 - dependencies = [ 832 - "encode_unicode", 833 - "libc", 834 - "once_cell", 835 - "windows-sys 0.59.0", 836 - ] 837 298 838 299 [[package]] 839 300 name = "const-oid" ··· 848 309 checksum = "2f421161cb492475f1661ddc9815a745a1c894592070661180fdec3d4872e9c3" 849 310 850 311 [[package]] 851 - name = "cookie" 852 - version = "0.18.1" 853 - source = "registry+https://github.com/rust-lang/crates.io-index" 854 - checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747" 855 - dependencies = [ 856 - "time", 857 - "version_check", 858 - ] 859 - 860 - [[package]] 861 312 name = "cordyceps" 862 313 version = "0.3.4" 863 314 source = "registry+https://github.com/rust-lang/crates.io-index" 864 315 checksum = "688d7fbb8092b8de775ef2536f36c8c31f2bc4006ece2e8d8ad2d17d00ce0a2a" 865 316 dependencies = [ 866 317 "loom", 867 - "tracing 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", 318 + "tracing", 868 319 ] 869 320 870 321 [[package]] ··· 927 378 checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" 928 379 929 380 [[package]] 930 - name = "crossbeam-channel" 931 - version = "0.5.15" 932 - source = "registry+https://github.com/rust-lang/crates.io-index" 933 - checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" 934 - dependencies = [ 935 - "crossbeam-utils", 936 - ] 937 - 938 - [[package]] 939 - name = "crossbeam-deque" 940 - version = "0.8.6" 941 - source = "registry+https://github.com/rust-lang/crates.io-index" 942 - checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" 943 - dependencies = [ 944 - "crossbeam-epoch", 945 - "crossbeam-utils", 946 - ] 947 - 948 - [[package]] 949 - name = "crossbeam-epoch" 950 - version = "0.9.18" 951 - source = "registry+https://github.com/rust-lang/crates.io-index" 952 - checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" 953 - dependencies = [ 954 - "crossbeam-utils", 955 - ] 956 - 957 - [[package]] 958 - name = "crossbeam-utils" 959 - version = "0.8.21" 960 - source = "registry+https://github.com/rust-lang/crates.io-index" 961 - checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" 962 - 963 - [[package]] 964 - name = "crossterm" 965 - version = "0.28.1" 966 - source = "registry+https://github.com/rust-lang/crates.io-index" 967 - checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6" 968 - dependencies = [ 969 - "bitflags", 970 - "crossterm_winapi", 971 - "parking_lot", 972 - "rustix 0.38.44", 973 - "winapi", 974 - ] 975 - 976 - [[package]] 977 - name = "crossterm_winapi" 978 - version = "0.9.1" 979 - source = "registry+https://github.com/rust-lang/crates.io-index" 980 - checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" 981 - dependencies = [ 982 - "winapi", 983 - ] 984 - 985 - [[package]] 986 381 name = "crunchy" 987 382 version = "0.2.4" 988 383 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1023 418 "fiat-crypto", 1024 419 "rustc_version", 1025 420 "subtle", 1026 - "zeroize", 1027 421 ] 1028 422 1029 423 [[package]] ··· 1072 466 ] 1073 467 1074 468 [[package]] 1075 - name = "dashmap" 1076 - version = "6.1.0" 1077 - source = "registry+https://github.com/rust-lang/crates.io-index" 1078 - checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" 1079 - dependencies = [ 1080 - "cfg-if", 1081 - "crossbeam-utils", 1082 - "hashbrown 0.14.5", 1083 - "lock_api", 1084 - "once_cell", 1085 - "parking_lot_core", 1086 - ] 1087 - 1088 - [[package]] 1089 469 name = "data-encoding" 1090 470 version = "2.10.0" 1091 471 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1112 492 ] 1113 493 1114 494 [[package]] 1115 - name = "deflate" 1116 - version = "1.0.0" 1117 - source = "registry+https://github.com/rust-lang/crates.io-index" 1118 - checksum = "c86f7e25f518f4b81808a2cf1c50996a61f5c2eb394b2393bd87f2a4780a432f" 1119 - dependencies = [ 1120 - "adler32", 1121 - "gzip-header", 1122 - ] 1123 - 1124 - [[package]] 1125 495 name = "der" 1126 496 version = "0.7.10" 1127 497 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1133 503 ] 1134 504 1135 505 [[package]] 1136 - name = "deranged" 1137 - version = "0.5.8" 1138 - source = "registry+https://github.com/rust-lang/crates.io-index" 1139 - checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" 1140 - dependencies = [ 1141 - "powerfmt", 1142 - ] 1143 - 1144 - [[package]] 1145 506 name = "derive_more" 1146 507 version = "1.0.0" 1147 508 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1167 528 version = "0.2.3" 1168 529 source = "registry+https://github.com/rust-lang/crates.io-index" 1169 530 checksum = "ab03c107fafeb3ee9f5925686dbb7a73bc76e3932abb0d2b365cb64b169cf04c" 1170 - 1171 - [[package]] 1172 - name = "diff" 1173 - version = "0.1.13" 1174 - source = "registry+https://github.com/rust-lang/crates.io-index" 1175 - checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" 1176 531 1177 532 [[package]] 1178 533 name = "digest" ··· 1229 584 dependencies = [ 1230 585 "curve25519-dalek", 1231 586 "ed25519", 1232 - "rand_core 0.6.4", 1233 - "serde", 1234 587 "sha2", 1235 588 "subtle", 1236 - "zeroize", 1237 589 ] 1238 590 1239 591 [[package]] 1240 - name = "either" 1241 - version = "1.15.0" 1242 - source = "registry+https://github.com/rust-lang/crates.io-index" 1243 - checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" 1244 - 1245 - [[package]] 1246 592 name = "elliptic-curve" 1247 593 version = "0.13.8" 1248 594 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1254 600 "ff", 1255 601 "generic-array", 1256 602 "group", 1257 - "hkdf", 1258 603 "pem-rfc7468", 1259 604 "pkcs8", 1260 605 "rand_core 0.6.4", ··· 1264 609 ] 1265 610 1266 611 [[package]] 1267 - name = "email_address" 1268 - version = "0.2.9" 1269 - source = "registry+https://github.com/rust-lang/crates.io-index" 1270 - checksum = "e079f19b08ca6239f47f8ba8509c11cf3ea30095831f7fed61441475edd8c449" 1271 - dependencies = [ 1272 - "serde", 1273 - ] 1274 - 1275 - [[package]] 1276 612 name = "embedded-io" 1277 613 version = "0.4.0" 1278 614 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1285 621 checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" 1286 622 1287 623 [[package]] 1288 - name = "embedded-io-adapters" 1289 - version = "0.6.2" 1290 - source = "registry+https://github.com/rust-lang/crates.io-index" 1291 - checksum = "90ccf22c3feffc79593914c0b4be9a2ed6b11e44cf1f84fd6b77d2ee92de0077" 1292 - dependencies = [ 1293 - "embedded-io 0.6.1", 1294 - "embedded-io-async", 1295 - "tokio", 1296 - ] 1297 - 1298 - [[package]] 1299 - name = "embedded-io-async" 1300 - version = "0.6.1" 1301 - source = "registry+https://github.com/rust-lang/crates.io-index" 1302 - checksum = "3ff09972d4073aa8c299395be75161d582e7629cd663171d62af73c8d50dba3f" 1303 - dependencies = [ 1304 - "embedded-io 0.6.1", 1305 - ] 1306 - 1307 - [[package]] 1308 - name = "encode_unicode" 1309 - version = "1.0.0" 1310 - source = "registry+https://github.com/rust-lang/crates.io-index" 1311 - checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" 1312 - 1313 - [[package]] 1314 624 name = "encoding_rs" 1315 625 version = "0.8.35" 1316 626 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1320 630 ] 1321 631 1322 632 [[package]] 1323 - name = "enum-as-inner" 1324 - version = "0.6.1" 1325 - source = "registry+https://github.com/rust-lang/crates.io-index" 1326 - checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" 1327 - dependencies = [ 1328 - "heck 0.5.0", 1329 - "proc-macro2", 1330 - "quote", 1331 - "syn", 1332 - ] 1333 - 1334 - [[package]] 1335 - name = "equator" 1336 - version = "0.4.2" 1337 - source = "registry+https://github.com/rust-lang/crates.io-index" 1338 - checksum = "4711b213838dfee0117e3be6ac926007d7f433d7bbe33595975d4190cb07e6fc" 1339 - dependencies = [ 1340 - "equator-macro", 1341 - ] 1342 - 1343 - [[package]] 1344 - name = "equator-macro" 1345 - version = "0.4.2" 1346 - source = "registry+https://github.com/rust-lang/crates.io-index" 1347 - checksum = "44f23cf4b44bfce11a86ace86f8a73ffdec849c9fd00a386a53d278bd9e81fb3" 1348 - dependencies = [ 1349 - "proc-macro2", 1350 - "quote", 1351 - "syn", 1352 - ] 1353 - 1354 - [[package]] 1355 633 name = "equivalent" 1356 634 version = "1.0.2" 1357 635 source = "registry+https://github.com/rust-lang/crates.io-index" 1358 636 checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" 1359 637 1360 638 [[package]] 1361 - name = "erased-serde" 1362 - version = "0.4.10" 1363 - source = "registry+https://github.com/rust-lang/crates.io-index" 1364 - checksum = "d2add8a07dd6a8d93ff627029c51de145e12686fbc36ecb298ac22e74cf02dec" 1365 - dependencies = [ 1366 - "serde", 1367 - "serde_core", 1368 - "typeid", 1369 - ] 1370 - 1371 - [[package]] 1372 - name = "errno" 1373 - version = "0.3.14" 1374 - source = "registry+https://github.com/rust-lang/crates.io-index" 1375 - checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" 1376 - dependencies = [ 1377 - "libc", 1378 - "windows-sys 0.61.2", 1379 - ] 1380 - 1381 - [[package]] 1382 - name = "expect-json" 1383 - version = "1.10.1" 1384 - source = "registry+https://github.com/rust-lang/crates.io-index" 1385 - checksum = "869f97f4abe8e78fc812a94ad6b721d72c4fb5532877c79610f2c238d7ccf6c4" 1386 - dependencies = [ 1387 - "chrono", 1388 - "email_address", 1389 - "expect-json-macros", 1390 - "num", 1391 - "regex", 1392 - "serde", 1393 - "serde_json", 1394 - "thiserror 2.0.18", 1395 - "typetag", 1396 - "uuid", 1397 - ] 1398 - 1399 - [[package]] 1400 - name = "expect-json-macros" 1401 - version = "1.10.1" 1402 - source = "registry+https://github.com/rust-lang/crates.io-index" 1403 - checksum = "6e6fdf550180a6c29a28cb9aac262dc0064c25735641d2317f670075e9a469d9" 1404 - dependencies = [ 1405 - "proc-macro2", 1406 - "quote", 1407 - "syn", 1408 - ] 1409 - 1410 - [[package]] 1411 - name = "exr" 1412 - version = "1.74.0" 1413 - source = "registry+https://github.com/rust-lang/crates.io-index" 1414 - checksum = "4300e043a56aa2cb633c01af81ca8f699a321879a7854d3896a0ba89056363be" 1415 - dependencies = [ 1416 - "bit_field", 1417 - "half", 1418 - "lebe", 1419 - "miniz_oxide 0.8.9", 1420 - "rayon-core", 1421 - "smallvec", 1422 - "zune-inflate", 1423 - ] 1424 - 1425 - [[package]] 1426 639 name = "fastrand" 1427 640 version = "2.3.0" 1428 641 source = "registry+https://github.com/rust-lang/crates.io-index" 1429 642 checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" 1430 643 1431 644 [[package]] 1432 - name = "fax" 1433 - version = "0.2.6" 1434 - source = "registry+https://github.com/rust-lang/crates.io-index" 1435 - checksum = "f05de7d48f37cd6730705cbca900770cab77a89f413d23e100ad7fad7795a0ab" 1436 - dependencies = [ 1437 - "fax_derive", 1438 - ] 1439 - 1440 - [[package]] 1441 - name = "fax_derive" 1442 - version = "0.2.0" 1443 - source = "registry+https://github.com/rust-lang/crates.io-index" 1444 - checksum = "a0aca10fb742cb43f9e7bb8467c91aa9bcb8e3ffbc6a6f7389bb93ffc920577d" 1445 - dependencies = [ 1446 - "proc-macro2", 1447 - "quote", 1448 - "syn", 1449 - ] 1450 - 1451 - [[package]] 1452 - name = "fdeflate" 1453 - version = "0.3.7" 1454 - source = "registry+https://github.com/rust-lang/crates.io-index" 1455 - checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c" 1456 - dependencies = [ 1457 - "simd-adler32", 1458 - ] 1459 - 1460 - [[package]] 1461 645 name = "ff" 1462 646 version = "0.13.1" 1463 647 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1474 658 checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" 1475 659 1476 660 [[package]] 1477 - name = "filetime" 1478 - version = "0.2.27" 1479 - source = "registry+https://github.com/rust-lang/crates.io-index" 1480 - checksum = "f98844151eee8917efc50bd9e8318cb963ae8b297431495d3f758616ea5c57db" 1481 - dependencies = [ 1482 - "cfg-if", 1483 - "libc", 1484 - "libredox", 1485 - ] 1486 - 1487 - [[package]] 1488 661 name = "find-msvc-tools" 1489 662 version = "0.1.9" 1490 663 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1497 670 checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" 1498 671 dependencies = [ 1499 672 "crc32fast", 1500 - "miniz_oxide 0.8.9", 673 + "miniz_oxide", 1501 674 ] 1502 675 1503 676 [[package]] ··· 1533 706 ] 1534 707 1535 708 [[package]] 1536 - name = "futf" 1537 - version = "0.1.5" 1538 - source = "registry+https://github.com/rust-lang/crates.io-index" 1539 - checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" 1540 - dependencies = [ 1541 - "mac 0.1.1", 1542 - "new_debug_unreachable", 1543 - ] 1544 - 1545 - [[package]] 1546 709 name = "futures" 1547 710 version = "0.3.32" 1548 711 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1550 713 dependencies = [ 1551 714 "futures-channel", 1552 715 "futures-core", 1553 - "futures-executor", 1554 716 "futures-io", 1555 717 "futures-sink", 1556 718 "futures-task", ··· 1587 749 checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" 1588 750 1589 751 [[package]] 1590 - name = "futures-executor" 1591 - version = "0.3.32" 1592 - source = "registry+https://github.com/rust-lang/crates.io-index" 1593 - checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d" 1594 - dependencies = [ 1595 - "futures-core", 1596 - "futures-task", 1597 - "futures-util", 1598 - ] 1599 - 1600 - [[package]] 1601 752 name = "futures-io" 1602 753 version = "0.3.32" 1603 754 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1645 796 source = "registry+https://github.com/rust-lang/crates.io-index" 1646 797 checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" 1647 798 dependencies = [ 1648 - "futures-channel", 1649 799 "futures-core", 1650 800 "futures-io", 1651 801 "futures-macro", ··· 1704 854 "cfg-if", 1705 855 "js-sys", 1706 856 "libc", 1707 - "r-efi 5.3.0", 1708 - "wasip2", 1709 - "wasm-bindgen", 1710 - ] 1711 - 1712 - [[package]] 1713 - name = "getrandom" 1714 - version = "0.4.2" 1715 - source = "registry+https://github.com/rust-lang/crates.io-index" 1716 - checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" 1717 - dependencies = [ 1718 - "cfg-if", 1719 - "libc", 1720 - "r-efi 6.0.0", 857 + "r-efi", 1721 858 "wasip2", 1722 - "wasip3", 1723 - ] 1724 - 1725 - [[package]] 1726 - name = "gif" 1727 - version = "0.14.1" 1728 - source = "registry+https://github.com/rust-lang/crates.io-index" 1729 - checksum = "f5df2ba84018d80c213569363bdcd0c64e6933c67fe4c1d60ecf822971a3c35e" 1730 - dependencies = [ 1731 - "color_quant", 1732 - "weezl", 1733 - ] 1734 - 1735 - [[package]] 1736 - name = "gimli" 1737 - version = "0.32.3" 1738 - source = "registry+https://github.com/rust-lang/crates.io-index" 1739 - checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7" 1740 - 1741 - [[package]] 1742 - name = "glob" 1743 - version = "0.3.3" 1744 - source = "registry+https://github.com/rust-lang/crates.io-index" 1745 - checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" 1746 - 1747 - [[package]] 1748 - name = "gloo-storage" 1749 - version = "0.3.0" 1750 - source = "registry+https://github.com/rust-lang/crates.io-index" 1751 - checksum = "fbc8031e8c92758af912f9bc08fbbadd3c6f3cfcbf6b64cdf3d6a81f0139277a" 1752 - dependencies = [ 1753 - "gloo-utils", 1754 - "js-sys", 1755 - "serde", 1756 - "serde_json", 1757 - "thiserror 1.0.69", 1758 859 "wasm-bindgen", 1759 - "web-sys", 1760 - ] 1761 - 1762 - [[package]] 1763 - name = "gloo-utils" 1764 - version = "0.2.0" 1765 - source = "registry+https://github.com/rust-lang/crates.io-index" 1766 - checksum = "0b5555354113b18c547c1d3a98fbf7fb32a9ff4f6fa112ce823a21641a0ba3aa" 1767 - dependencies = [ 1768 - "js-sys", 1769 - "serde", 1770 - "serde_json", 1771 - "wasm-bindgen", 1772 - "web-sys", 1773 860 ] 1774 861 1775 862 [[package]] ··· 1784 871 ] 1785 872 1786 873 [[package]] 1787 - name = "gzip-header" 1788 - version = "1.0.0" 1789 - source = "registry+https://github.com/rust-lang/crates.io-index" 1790 - checksum = "95cc527b92e6029a62960ad99aa8a6660faa4555fe5f731aab13aa6a921795a2" 1791 - dependencies = [ 1792 - "crc32fast", 1793 - ] 1794 - 1795 - [[package]] 1796 874 name = "h2" 1797 875 version = "0.4.13" 1798 876 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1808 886 "slab", 1809 887 "tokio", 1810 888 "tokio-util", 1811 - "tracing 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", 889 + "tracing", 1812 890 ] 1813 891 1814 892 [[package]] ··· 1832 910 ] 1833 911 1834 912 [[package]] 1835 - name = "hash32" 1836 - version = "0.3.1" 1837 - source = "registry+https://github.com/rust-lang/crates.io-index" 1838 - checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" 1839 - dependencies = [ 1840 - "byteorder", 1841 - ] 1842 - 1843 - [[package]] 1844 - name = "hashbrown" 1845 - version = "0.14.5" 1846 - source = "registry+https://github.com/rust-lang/crates.io-index" 1847 - checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" 1848 - 1849 - [[package]] 1850 913 name = "hashbrown" 1851 914 version = "0.15.5" 1852 915 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1870 933 checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" 1871 934 dependencies = [ 1872 935 "atomic-polyfill", 1873 - "hash32 0.2.1", 936 + "hash32", 1874 937 "rustc_version", 1875 938 "serde", 1876 939 "spin 0.9.8", ··· 1878 941 ] 1879 942 1880 943 [[package]] 1881 - name = "heapless" 1882 - version = "0.9.2" 1883 - source = "registry+https://github.com/rust-lang/crates.io-index" 1884 - checksum = "2af2455f757db2b292a9b1768c4b70186d443bcb3b316252d6b540aec1cd89ed" 1885 - dependencies = [ 1886 - "hash32 0.3.1", 1887 - "stable_deref_trait", 1888 - ] 1889 - 1890 - [[package]] 1891 944 name = "heck" 1892 945 version = "0.4.1" 1893 946 source = "registry+https://github.com/rust-lang/crates.io-index" 1894 947 checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" 1895 948 1896 949 [[package]] 1897 - name = "heck" 1898 - version = "0.5.0" 1899 - source = "registry+https://github.com/rust-lang/crates.io-index" 1900 - checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" 1901 - 1902 - [[package]] 1903 - name = "hermit-abi" 1904 - version = "0.5.2" 1905 - source = "registry+https://github.com/rust-lang/crates.io-index" 1906 - checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" 1907 - 1908 - [[package]] 1909 - name = "hex" 1910 - version = "0.4.3" 1911 - source = "registry+https://github.com/rust-lang/crates.io-index" 1912 - checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" 1913 - 1914 - [[package]] 1915 - name = "hickory-proto" 1916 - version = "0.24.4" 1917 - source = "registry+https://github.com/rust-lang/crates.io-index" 1918 - checksum = "92652067c9ce6f66ce53cc38d1169daa36e6e7eb7dd3b63b5103bd9d97117248" 1919 - dependencies = [ 1920 - "async-trait", 1921 - "cfg-if", 1922 - "data-encoding", 1923 - "enum-as-inner", 1924 - "futures-channel", 1925 - "futures-io", 1926 - "futures-util", 1927 - "idna", 1928 - "ipnet", 1929 - "once_cell", 1930 - "rand 0.8.5", 1931 - "thiserror 1.0.69", 1932 - "tinyvec", 1933 - "tokio", 1934 - "tracing 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", 1935 - "url", 1936 - ] 1937 - 1938 - [[package]] 1939 - name = "hickory-resolver" 1940 - version = "0.24.4" 1941 - source = "registry+https://github.com/rust-lang/crates.io-index" 1942 - checksum = "cbb117a1ca520e111743ab2f6688eddee69db4e0ea242545a604dce8a66fd22e" 1943 - dependencies = [ 1944 - "cfg-if", 1945 - "futures-util", 1946 - "hickory-proto", 1947 - "ipconfig", 1948 - "lru-cache", 1949 - "once_cell", 1950 - "parking_lot", 1951 - "rand 0.8.5", 1952 - "resolv-conf", 1953 - "smallvec", 1954 - "thiserror 1.0.69", 1955 - "tokio", 1956 - "tracing 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", 1957 - ] 1958 - 1959 - [[package]] 1960 - name = "hkdf" 1961 - version = "0.12.4" 1962 - source = "registry+https://github.com/rust-lang/crates.io-index" 1963 - checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" 1964 - dependencies = [ 1965 - "hmac", 1966 - ] 1967 - 1968 - [[package]] 1969 950 name = "hmac" 1970 951 version = "0.12.1" 1971 952 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 1975 956 ] 1976 957 1977 958 [[package]] 1978 - name = "html5ever" 1979 - version = "0.27.0" 1980 - source = "registry+https://github.com/rust-lang/crates.io-index" 1981 - checksum = "c13771afe0e6e846f1e67d038d4cb29998a6779f93c809212e4e9c32efd244d4" 1982 - dependencies = [ 1983 - "log", 1984 - "mac 0.1.1", 1985 - "markup5ever", 1986 - "proc-macro2", 1987 - "quote", 1988 - "syn", 1989 - ] 1990 - 1991 - [[package]] 1992 959 name = "http" 1993 960 version = "1.4.0" 1994 961 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2028 995 checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" 2029 996 2030 997 [[package]] 2031 - name = "httpdate" 2032 - version = "1.0.3" 2033 - source = "registry+https://github.com/rust-lang/crates.io-index" 2034 - checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" 2035 - 2036 - [[package]] 2037 998 name = "hyper" 2038 999 version = "1.8.1" 2039 1000 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2047 1008 "http", 2048 1009 "http-body", 2049 1010 "httparse", 2050 - "httpdate", 2051 1011 "itoa", 2052 1012 "pin-project-lite", 2053 1013 "pin-utils", ··· 2079 1039 source = "registry+https://github.com/rust-lang/crates.io-index" 2080 1040 checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" 2081 1041 dependencies = [ 2082 - "base64 0.22.1", 1042 + "base64", 2083 1043 "bytes", 2084 1044 "futures-channel", 2085 1045 "futures-util", ··· 2090 1050 "libc", 2091 1051 "percent-encoding", 2092 1052 "pin-project-lite", 2093 - "socket2 0.6.3", 1053 + "socket2", 2094 1054 "system-configuration", 2095 1055 "tokio", 2096 1056 "tower-service", 2097 - "tracing 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", 1057 + "tracing", 2098 1058 "windows-registry", 2099 1059 ] 2100 1060 ··· 2204 1164 ] 2205 1165 2206 1166 [[package]] 2207 - name = "id-arena" 2208 - version = "2.3.0" 2209 - source = "registry+https://github.com/rust-lang/crates.io-index" 2210 - checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" 2211 - 2212 - [[package]] 2213 1167 name = "ident_case" 2214 1168 version = "1.0.1" 2215 1169 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2237 1191 ] 2238 1192 2239 1193 [[package]] 2240 - name = "image" 2241 - version = "0.25.10" 2242 - source = "registry+https://github.com/rust-lang/crates.io-index" 2243 - checksum = "85ab80394333c02fe689eaf900ab500fbd0c2213da414687ebf995a65d5a6104" 2244 - dependencies = [ 2245 - "bytemuck", 2246 - "byteorder-lite", 2247 - "color_quant", 2248 - "exr", 2249 - "gif", 2250 - "image-webp", 2251 - "moxcms", 2252 - "num-traits", 2253 - "png", 2254 - "qoi", 2255 - "ravif", 2256 - "rayon", 2257 - "rgb", 2258 - "tiff 0.11.3", 2259 - "zune-core", 2260 - "zune-jpeg", 2261 - ] 2262 - 2263 - [[package]] 2264 - name = "image-webp" 2265 - version = "0.2.4" 2266 - source = "registry+https://github.com/rust-lang/crates.io-index" 2267 - checksum = "525e9ff3e1a4be2fbea1fdf0e98686a6d98b4d8f937e1bf7402245af1909e8c3" 2268 - dependencies = [ 2269 - "byteorder-lite", 2270 - "quick-error 2.0.1", 2271 - ] 2272 - 2273 - [[package]] 2274 - name = "imgref" 2275 - version = "1.12.0" 2276 - source = "registry+https://github.com/rust-lang/crates.io-index" 2277 - checksum = "e7c5cedc30da3a610cac6b4ba17597bdf7152cf974e8aab3afb3d54455e371c8" 2278 - 2279 - [[package]] 2280 1194 name = "indexmap" 2281 1195 version = "2.13.0" 2282 1196 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2284 1198 dependencies = [ 2285 1199 "equivalent", 2286 1200 "hashbrown 0.16.1", 2287 - "serde", 2288 - "serde_core", 2289 - ] 2290 - 2291 - [[package]] 2292 - name = "interpolate_name" 2293 - version = "0.2.4" 2294 - source = "registry+https://github.com/rust-lang/crates.io-index" 2295 - checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60" 2296 - dependencies = [ 2297 - "proc-macro2", 2298 - "quote", 2299 - "syn", 2300 - ] 2301 - 2302 - [[package]] 2303 - name = "inventory" 2304 - version = "0.3.22" 2305 - source = "registry+https://github.com/rust-lang/crates.io-index" 2306 - checksum = "009ae045c87e7082cb72dab0ccd01ae075dd00141ddc108f43a0ea150a9e7227" 2307 - dependencies = [ 2308 - "rustversion", 2309 - ] 2310 - 2311 - [[package]] 2312 - name = "ipconfig" 2313 - version = "0.3.2" 2314 - source = "registry+https://github.com/rust-lang/crates.io-index" 2315 - checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" 2316 - dependencies = [ 2317 - "socket2 0.5.10", 2318 - "widestring", 2319 - "windows-sys 0.48.0", 2320 - "winreg", 2321 1201 ] 2322 1202 2323 1203 [[package]] ··· 2348 1228 ] 2349 1229 2350 1230 [[package]] 2351 - name = "iroh-car" 2352 - version = "0.5.1" 2353 - source = "registry+https://github.com/rust-lang/crates.io-index" 2354 - checksum = "cb7f8cd4cb9aa083fba8b52e921764252d0b4dcb1cd6d120b809dbfe1106e81a" 2355 - dependencies = [ 2356 - "anyhow", 2357 - "cid", 2358 - "futures", 2359 - "serde", 2360 - "serde_ipld_dagcbor", 2361 - "thiserror 1.0.69", 2362 - "tokio", 2363 - "unsigned-varint 0.7.2", 2364 - ] 2365 - 2366 - [[package]] 2367 - name = "is_ci" 2368 - version = "1.2.0" 2369 - source = "registry+https://github.com/rust-lang/crates.io-index" 2370 - checksum = "7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45" 2371 - 2372 - [[package]] 2373 - name = "is_terminal_polyfill" 2374 - version = "1.70.2" 2375 - source = "registry+https://github.com/rust-lang/crates.io-index" 2376 - checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" 2377 - 2378 - [[package]] 2379 - name = "itertools" 2380 - version = "0.14.0" 2381 - source = "registry+https://github.com/rust-lang/crates.io-index" 2382 - checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" 2383 - dependencies = [ 2384 - "either", 2385 - ] 2386 - 2387 - [[package]] 2388 1231 name = "itoa" 2389 1232 version = "1.0.18" 2390 1233 source = "registry+https://github.com/rust-lang/crates.io-index" 2391 1234 checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" 2392 1235 2393 1236 [[package]] 2394 - name = "jacquard" 2395 - version = "0.11.0" 2396 - dependencies = [ 2397 - "bytes", 2398 - "clap", 2399 - "getrandom 0.2.17", 2400 - "gloo-storage", 2401 - "http", 2402 - "image", 2403 - "jacquard-api", 2404 - "jacquard-common", 2405 - "jacquard-derive", 2406 - "jacquard-identity", 2407 - "jacquard-oauth", 2408 - "jose-jwk", 2409 - "miette", 2410 - "n0-future", 2411 - "regex", 2412 - "regex-lite", 2413 - "reqwest", 2414 - "serde", 2415 - "serde_html_form", 2416 - "serde_json", 2417 - "smol_str", 2418 - "thiserror 2.0.18", 2419 - "tiff 0.6.1", 2420 - "tokio", 2421 - "tracing 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", 2422 - "trait-variant", 2423 - "viuer", 2424 - "webpage", 2425 - ] 2426 - 2427 - [[package]] 2428 - name = "jacquard-api" 2429 - version = "0.11.1" 2430 - dependencies = [ 2431 - "jacquard-common", 2432 - "jacquard-derive", 2433 - "jacquard-lexicon", 2434 - "miette", 2435 - "serde", 2436 - "thiserror 2.0.18", 2437 - ] 2438 - 2439 - [[package]] 2440 - name = "jacquard-axum" 2441 - version = "0.11.0" 2442 - dependencies = [ 2443 - "axum", 2444 - "axum-macros", 2445 - "axum-test", 2446 - "base64 0.22.1", 2447 - "bytes", 2448 - "chrono", 2449 - "jacquard", 2450 - "jacquard-common", 2451 - "jacquard-derive", 2452 - "jacquard-identity", 2453 - "k256", 2454 - "miette", 2455 - "multibase", 2456 - "rand 0.8.5", 2457 - "reqwest", 2458 - "serde", 2459 - "serde_html_form", 2460 - "serde_json", 2461 - "thiserror 2.0.18", 2462 - "tokio", 2463 - "tower", 2464 - "tower-http", 2465 - "tracing 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", 2466 - "tracing-subscriber 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)", 2467 - ] 2468 - 2469 - [[package]] 2470 - name = "jacquard-codegen-tests" 2471 - version = "0.0.0" 2472 - dependencies = [ 2473 - "jacquard-common", 2474 - "jacquard-derive", 2475 - "jacquard-lexicon", 2476 - "miette", 2477 - "serde", 2478 - "serde_ipld_dagcbor", 2479 - "serde_json", 2480 - "smol_str", 2481 - "thiserror 2.0.18", 2482 - ] 2483 - 2484 - [[package]] 2485 1237 name = "jacquard-common" 2486 1238 version = "0.11.0" 2487 1239 dependencies = [ 2488 - "base64 0.22.1", 1240 + "base64", 2489 1241 "bon", 2490 1242 "bytes", 2491 1243 "chrono", ··· 2502 1254 "http", 2503 1255 "ipld-core", 2504 1256 "k256", 2505 - "maitake-sync 0.1.2", 1257 + "maitake-sync", 2506 1258 "miette", 2507 1259 "multibase", 2508 1260 "multihash", ··· 2530 1282 "tokio", 2531 1283 "tokio-tungstenite-wasm", 2532 1284 "tokio-util", 2533 - "tracing 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", 1285 + "tracing", 2534 1286 "trait-variant", 2535 1287 "unicode-segmentation", 2536 1288 "zstd", 2537 1289 ] 2538 1290 2539 1291 [[package]] 2540 - name = "jacquard-derive" 2541 - version = "0.11.0" 2542 - dependencies = [ 2543 - "heck 0.5.0", 2544 - "inventory", 2545 - "jacquard-common", 2546 - "jacquard-lexicon", 2547 - "proc-macro2", 2548 - "quote", 2549 - "serde", 2550 - "serde_json", 2551 - "syn", 2552 - "unicode-segmentation", 2553 - ] 2554 - 2555 - [[package]] 2556 - name = "jacquard-identity" 2557 - version = "0.11.0" 2558 - dependencies = [ 2559 - "bon", 2560 - "bytes", 2561 - "hickory-resolver", 2562 - "http", 2563 - "jacquard-common", 2564 - "jacquard-lexicon", 2565 - "miette", 2566 - "mini-moka-wasm", 2567 - "n0-future", 2568 - "reqwest", 2569 - "serde", 2570 - "serde_html_form", 2571 - "serde_json", 2572 - "thiserror 2.0.18", 2573 - "tokio", 2574 - "tracing 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", 2575 - "trait-variant", 2576 - ] 2577 - 2578 - [[package]] 2579 - name = "jacquard-lexgen" 2580 - version = "0.11.1" 2581 - dependencies = [ 2582 - "clap", 2583 - "clap_complete", 2584 - "clap_mangen", 2585 - "glob", 2586 - "inventory", 2587 - "jacquard-common", 2588 - "jacquard-derive", 2589 - "jacquard-identity", 2590 - "jacquard-lexicon", 2591 - "kdl", 2592 - "miette", 2593 - "reqwest", 2594 - "serde", 2595 - "serde_json", 2596 - "syn", 2597 - "tempfile", 2598 - "thiserror 2.0.18", 2599 - "tokio", 2600 - "toml 0.8.23", 2601 - "walkdir", 2602 - ] 2603 - 2604 - [[package]] 2605 - name = "jacquard-lexicon" 2606 - version = "0.11.1" 2607 - dependencies = [ 2608 - "bytes", 2609 - "cid", 2610 - "dashmap", 2611 - "heck 0.5.0", 2612 - "inventory", 2613 - "jacquard-common", 2614 - "jacquard-derive", 2615 - "miette", 2616 - "multihash", 2617 - "prettyplease", 2618 - "proc-macro2", 2619 - "quote", 2620 - "serde", 2621 - "serde_ipld_dagcbor", 2622 - "serde_json", 2623 - "serde_path_to_error", 2624 - "serde_repr", 2625 - "serde_with", 2626 - "sha2", 2627 - "syn", 2628 - "tempfile", 2629 - "thiserror 2.0.18", 2630 - "unicode-segmentation", 2631 - ] 2632 - 2633 - [[package]] 2634 - name = "jacquard-oauth" 2635 - version = "0.11.0" 2636 - dependencies = [ 2637 - "base64 0.22.1", 2638 - "bytes", 2639 - "chrono", 2640 - "dashmap", 2641 - "ed25519-dalek", 2642 - "elliptic-curve", 2643 - "http", 2644 - "jacquard-common", 2645 - "jacquard-identity", 2646 - "jose-jwa", 2647 - "jose-jwk", 2648 - "k256", 2649 - "miette", 2650 - "n0-future", 2651 - "p256", 2652 - "p384", 2653 - "rand 0.8.5", 2654 - "rouille", 2655 - "serde", 2656 - "serde_html_form", 2657 - "serde_json", 2658 - "sha2", 2659 - "smol_str", 2660 - "thiserror 2.0.18", 2661 - "tokio", 2662 - "tracing 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", 2663 - "trait-variant", 2664 - "webbrowser", 2665 - ] 2666 - 2667 - [[package]] 2668 - name = "jacquard-repo" 2669 - version = "0.11.0" 2670 - dependencies = [ 2671 - "anyhow", 2672 - "bytes", 2673 - "cid", 2674 - "ed25519-dalek", 2675 - "hex", 2676 - "iroh-car", 2677 - "jacquard-api", 2678 - "jacquard-common", 2679 - "jacquard-derive", 2680 - "k256", 2681 - "miette", 2682 - "multihash", 2683 - "n0-future", 2684 - "p256", 2685 - "rand 0.8.5", 2686 - "serde", 2687 - "serde_bytes", 2688 - "serde_ipld_dagcbor", 2689 - "serde_ipld_dagjson", 2690 - "serde_json", 2691 - "sha2", 2692 - "smol_str", 2693 - "tempfile", 2694 - "thiserror 2.0.18", 2695 - "tokio", 2696 - "trait-variant", 2697 - ] 2698 - 2699 - [[package]] 2700 - name = "jni" 2701 - version = "0.22.4" 2702 - source = "registry+https://github.com/rust-lang/crates.io-index" 2703 - checksum = "5efd9a482cf3a427f00d6b35f14332adc7902ce91efb778580e180ff90fa3498" 2704 - dependencies = [ 2705 - "cfg-if", 2706 - "combine", 2707 - "jni-macros", 2708 - "jni-sys", 2709 - "log", 2710 - "simd_cesu8", 2711 - "thiserror 2.0.18", 2712 - "walkdir", 2713 - "windows-link", 2714 - ] 2715 - 2716 - [[package]] 2717 - name = "jni-macros" 2718 - version = "0.22.4" 2719 - source = "registry+https://github.com/rust-lang/crates.io-index" 2720 - checksum = "a00109accc170f0bdb141fed3e393c565b6f5e072365c3bd58f5b062591560a3" 2721 - dependencies = [ 2722 - "proc-macro2", 2723 - "quote", 2724 - "rustc_version", 2725 - "simd_cesu8", 2726 - "syn", 2727 - ] 2728 - 2729 - [[package]] 2730 - name = "jni-sys" 2731 - version = "0.4.1" 2732 - source = "registry+https://github.com/rust-lang/crates.io-index" 2733 - checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" 2734 - dependencies = [ 2735 - "jni-sys-macros", 2736 - ] 2737 - 2738 - [[package]] 2739 - name = "jni-sys-macros" 2740 - version = "0.4.1" 2741 - source = "registry+https://github.com/rust-lang/crates.io-index" 2742 - checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" 2743 - dependencies = [ 2744 - "quote", 2745 - "syn", 2746 - ] 2747 - 2748 - [[package]] 2749 1292 name = "jobserver" 2750 1293 version = "0.1.34" 2751 1294 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2756 1299 ] 2757 1300 2758 1301 [[package]] 2759 - name = "jose-b64" 2760 - version = "0.1.2" 2761 - source = "registry+https://github.com/rust-lang/crates.io-index" 2762 - checksum = "bec69375368709666b21c76965ce67549f2d2db7605f1f8707d17c9656801b56" 2763 - dependencies = [ 2764 - "base64ct", 2765 - "serde", 2766 - "subtle", 2767 - "zeroize", 2768 - ] 2769 - 2770 - [[package]] 2771 - name = "jose-jwa" 2772 - version = "0.1.2" 2773 - source = "registry+https://github.com/rust-lang/crates.io-index" 2774 - checksum = "9ab78e053fe886a351d67cf0d194c000f9d0dcb92906eb34d853d7e758a4b3a7" 2775 - dependencies = [ 2776 - "serde", 2777 - ] 2778 - 2779 - [[package]] 2780 - name = "jose-jwk" 2781 - version = "0.1.2" 2782 - source = "registry+https://github.com/rust-lang/crates.io-index" 2783 - checksum = "280fa263807fe0782ecb6f2baadc28dffc04e00558a58e33bfdb801d11fd58e7" 2784 - dependencies = [ 2785 - "jose-b64", 2786 - "jose-jwa", 2787 - "p256", 2788 - "p384", 2789 - "rsa", 2790 - "serde", 2791 - "zeroize", 2792 - ] 2793 - 2794 - [[package]] 2795 - name = "jpeg-decoder" 2796 - version = "0.1.22" 2797 - source = "registry+https://github.com/rust-lang/crates.io-index" 2798 - checksum = "229d53d58899083193af11e15917b5640cd40b29ff475a1fe4ef725deb02d0f2" 2799 - 2800 - [[package]] 2801 1302 name = "js-sys" 2802 1303 version = "0.3.91" 2803 1304 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 2816 1317 "cfg-if", 2817 1318 "ecdsa", 2818 1319 "elliptic-curve", 2819 - "once_cell", 2820 1320 "sha2", 2821 - "signature", 2822 - ] 2823 - 2824 - [[package]] 2825 - name = "kdl" 2826 - version = "6.5.0" 2827 - source = "registry+https://github.com/rust-lang/crates.io-index" 2828 - checksum = "81a29e7b50079ff44549f68c0becb1c73d7f6de2a4ea952da77966daf3d4761e" 2829 - dependencies = [ 2830 - "miette", 2831 - "num", 2832 - "winnow 0.6.24", 2833 - ] 2834 - 2835 - [[package]] 2836 - name = "lazy-collections" 2837 - version = "0.11.0" 2838 - dependencies = [ 2839 - "buffer", 2840 - "bytes", 2841 - "chrono", 2842 - "embedded-io 0.6.1", 2843 - "embedded-io-adapters", 2844 - "embedded-io-async", 2845 - "heapless 0.9.2", 2846 - "lock_api", 2847 - "loom", 2848 - "maitake-sync 0.2.2", 2849 - "managed", 2850 - "miette", 2851 - "n0-future", 2852 - "pin-project", 2853 - "postcard", 2854 - "proptest", 2855 - "serde", 2856 - "serde_bytes", 2857 - "tokio", 2858 - "tracing 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", 2859 - "tracing 0.1.44 (git+https://github.com/tokio-rs/tracing)", 2860 - "tracing-subscriber 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)", 2861 - "tracing-subscriber 0.3.23 (git+https://github.com/tokio-rs/tracing)", 2862 1321 ] 2863 1322 2864 1323 [[package]] ··· 2866 1325 version = "1.5.0" 2867 1326 source = "registry+https://github.com/rust-lang/crates.io-index" 2868 1327 checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 2869 - dependencies = [ 2870 - "spin 0.9.8", 2871 - ] 2872 - 2873 - [[package]] 2874 - name = "leb128fmt" 2875 - version = "0.1.0" 2876 - source = "registry+https://github.com/rust-lang/crates.io-index" 2877 - checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" 2878 - 2879 - [[package]] 2880 - name = "lebe" 2881 - version = "0.5.3" 2882 - source = "registry+https://github.com/rust-lang/crates.io-index" 2883 - checksum = "7a79a3332a6609480d7d0c9eab957bca6b455b91bb84e66d19f5ff66294b85b8" 2884 1328 2885 1329 [[package]] 2886 1330 name = "libc" 2887 1331 version = "0.2.183" 2888 1332 source = "registry+https://github.com/rust-lang/crates.io-index" 2889 1333 checksum = "b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d" 2890 - 2891 - [[package]] 2892 - name = "libfuzzer-sys" 2893 - version = "0.4.12" 2894 - source = "registry+https://github.com/rust-lang/crates.io-index" 2895 - checksum = "f12a681b7dd8ce12bff52488013ba614b869148d54dd79836ab85aafdd53f08d" 2896 - dependencies = [ 2897 - "arbitrary", 2898 - "cc", 2899 - ] 2900 - 2901 - [[package]] 2902 - name = "libm" 2903 - version = "0.2.16" 2904 - source = "registry+https://github.com/rust-lang/crates.io-index" 2905 - checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" 2906 - 2907 - [[package]] 2908 - name = "libredox" 2909 - version = "0.1.14" 2910 - source = "registry+https://github.com/rust-lang/crates.io-index" 2911 - checksum = "1744e39d1d6a9948f4f388969627434e31128196de472883b39f148769bfe30a" 2912 - dependencies = [ 2913 - "bitflags", 2914 - "libc", 2915 - "plain", 2916 - "redox_syscall 0.7.3", 2917 - ] 2918 - 2919 - [[package]] 2920 - name = "linked-hash-map" 2921 - version = "0.5.6" 2922 - source = "registry+https://github.com/rust-lang/crates.io-index" 2923 - checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" 2924 - 2925 - [[package]] 2926 - name = "linux-raw-sys" 2927 - version = "0.4.15" 2928 - source = "registry+https://github.com/rust-lang/crates.io-index" 2929 - checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" 2930 - 2931 - [[package]] 2932 - name = "linux-raw-sys" 2933 - version = "0.12.1" 2934 - source = "registry+https://github.com/rust-lang/crates.io-index" 2935 - checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" 2936 1334 2937 1335 [[package]] 2938 1336 name = "litemap" ··· 2964 1362 "cfg-if", 2965 1363 "generator", 2966 1364 "scoped-tls", 2967 - "tracing 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", 2968 - "tracing-subscriber 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)", 2969 - ] 2970 - 2971 - [[package]] 2972 - name = "loop9" 2973 - version = "0.1.5" 2974 - source = "registry+https://github.com/rust-lang/crates.io-index" 2975 - checksum = "0fae87c125b03c1d2c0150c90365d7d6bcc53fb73a9acaef207d2d065860f062" 2976 - dependencies = [ 2977 - "imgref", 2978 - ] 2979 - 2980 - [[package]] 2981 - name = "lru-cache" 2982 - version = "0.1.2" 2983 - source = "registry+https://github.com/rust-lang/crates.io-index" 2984 - checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" 2985 - dependencies = [ 2986 - "linked-hash-map", 1365 + "tracing", 1366 + "tracing-subscriber", 2987 1367 ] 2988 1368 2989 1369 [[package]] ··· 2993 1373 checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" 2994 1374 2995 1375 [[package]] 2996 - name = "mac" 2997 - version = "0.0.2" 2998 - source = "registry+https://github.com/rust-lang/crates.io-index" 2999 - checksum = "1b1db08c0d0ddbb591e65f1da58d1cefccc94a2faa0c55bf979ce215a3e04d5e" 3000 - 3001 - [[package]] 3002 - name = "mac" 3003 - version = "0.1.1" 3004 - source = "registry+https://github.com/rust-lang/crates.io-index" 3005 - checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" 3006 - 3007 - [[package]] 3008 1376 name = "maitake-sync" 3009 1377 version = "0.1.2" 3010 1378 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3018 1386 ] 3019 1387 3020 1388 [[package]] 3021 - name = "maitake-sync" 3022 - version = "0.2.2" 3023 - source = "registry+https://github.com/rust-lang/crates.io-index" 3024 - checksum = "748f86d9befd480b602c3bebc9ef30dbf2f3dfc8acc4a73d07b90f0117e6de3f" 3025 - dependencies = [ 3026 - "cordyceps", 3027 - "loom", 3028 - "mutex-traits", 3029 - "mycelium-bitfield", 3030 - "pin-project", 3031 - "portable-atomic", 3032 - "tracing 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", 3033 - ] 3034 - 3035 - [[package]] 3036 - name = "managed" 3037 - version = "0.8.0" 3038 - source = "registry+https://github.com/rust-lang/crates.io-index" 3039 - checksum = "0ca88d725a0a943b096803bd34e73a4437208b6077654cc4ecb2947a5f91618d" 3040 - 3041 - [[package]] 3042 - name = "markup5ever" 3043 - version = "0.12.1" 3044 - source = "registry+https://github.com/rust-lang/crates.io-index" 3045 - checksum = "16ce3abbeba692c8b8441d036ef91aea6df8da2c6b6e21c7e14d3c18e526be45" 3046 - dependencies = [ 3047 - "log", 3048 - "phf", 3049 - "phf_codegen", 3050 - "string_cache", 3051 - "string_cache_codegen", 3052 - "tendril", 3053 - ] 3054 - 3055 - [[package]] 3056 - name = "markup5ever_rcdom" 3057 - version = "0.3.0" 3058 - source = "registry+https://github.com/rust-lang/crates.io-index" 3059 - checksum = "edaa21ab3701bfee5099ade5f7e1f84553fd19228cf332f13cd6e964bf59be18" 3060 - dependencies = [ 3061 - "html5ever", 3062 - "markup5ever", 3063 - "tendril", 3064 - "xml5ever", 3065 - ] 3066 - 3067 - [[package]] 3068 1389 name = "match-lookup" 3069 1390 version = "0.1.2" 3070 1391 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3085 1406 ] 3086 1407 3087 1408 [[package]] 3088 - name = "matchit" 3089 - version = "0.8.4" 3090 - source = "registry+https://github.com/rust-lang/crates.io-index" 3091 - checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" 3092 - 3093 - [[package]] 3094 - name = "maybe-rayon" 3095 - version = "0.1.1" 3096 - source = "registry+https://github.com/rust-lang/crates.io-index" 3097 - checksum = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519" 3098 - dependencies = [ 3099 - "cfg-if", 3100 - "rayon", 3101 - ] 3102 - 3103 - [[package]] 3104 1409 name = "memchr" 3105 1410 version = "2.8.0" 3106 1411 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3112 1417 source = "registry+https://github.com/rust-lang/crates.io-index" 3113 1418 checksum = "5f98efec8807c63c752b5bd61f862c165c115b0a35685bdcfd9238c7aeb592b7" 3114 1419 dependencies = [ 3115 - "backtrace", 3116 - "backtrace-ext", 3117 1420 "cfg-if", 3118 1421 "miette-derive", 3119 - "owo-colors", 3120 - "supports-color", 3121 - "supports-hyperlinks", 3122 - "supports-unicode", 3123 - "terminal_size", 3124 - "textwrap", 3125 - "unicode-width 0.1.14", 1422 + "unicode-width", 3126 1423 ] 3127 1424 3128 1425 [[package]] ··· 3143 1440 checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 3144 1441 3145 1442 [[package]] 3146 - name = "mime_guess" 3147 - version = "2.0.5" 3148 - source = "registry+https://github.com/rust-lang/crates.io-index" 3149 - checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" 3150 - dependencies = [ 3151 - "mime", 3152 - "unicase", 3153 - ] 3154 - 3155 - [[package]] 3156 - name = "mini-moka-wasm" 3157 - version = "0.10.99" 3158 - dependencies = [ 3159 - "anyhow", 3160 - "crossbeam-channel", 3161 - "crossbeam-utils", 3162 - "dashmap", 3163 - "getrandom 0.2.17", 3164 - "once_cell", 3165 - "smallvec", 3166 - "tagptr", 3167 - "triomphe", 3168 - "trybuild", 3169 - "wasm-bindgen-test", 3170 - "web-time", 3171 - ] 3172 - 3173 - [[package]] 3174 - name = "minicov" 3175 - version = "0.3.8" 3176 - source = "registry+https://github.com/rust-lang/crates.io-index" 3177 - checksum = "4869b6a491569605d66d3952bcdf03df789e5b536e5f0cf7758a7f08a55ae24d" 3178 - dependencies = [ 3179 - "cc", 3180 - "walkdir", 3181 - ] 3182 - 3183 - [[package]] 3184 - name = "miniz_oxide" 3185 - version = "0.4.4" 3186 - source = "registry+https://github.com/rust-lang/crates.io-index" 3187 - checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" 3188 - dependencies = [ 3189 - "adler", 3190 - "autocfg", 3191 - ] 3192 - 3193 - [[package]] 3194 1443 name = "miniz_oxide" 3195 1444 version = "0.8.9" 3196 1445 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3212 1461 ] 3213 1462 3214 1463 [[package]] 3215 - name = "moxcms" 3216 - version = "0.8.1" 3217 - source = "registry+https://github.com/rust-lang/crates.io-index" 3218 - checksum = "bb85c154ba489f01b25c0d36ae69a87e4a1c73a72631fc6c0eb6dde34a73e44b" 3219 - dependencies = [ 3220 - "num-traits", 3221 - "pxfm", 3222 - ] 3223 - 3224 - [[package]] 3225 1464 name = "multibase" 3226 1465 version = "0.9.2" 3227 1466 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3241 1480 dependencies = [ 3242 1481 "core2", 3243 1482 "serde", 3244 - "unsigned-varint 0.8.0", 1483 + "unsigned-varint", 3245 1484 ] 3246 1485 3247 1486 [[package]] 3248 - name = "multipart" 3249 - version = "0.18.0" 3250 - source = "registry+https://github.com/rust-lang/crates.io-index" 3251 - checksum = "00dec633863867f29cb39df64a397cdf4a6354708ddd7759f70c7fb51c5f9182" 3252 - dependencies = [ 3253 - "buf_redux", 3254 - "httparse", 3255 - "log", 3256 - "mime", 3257 - "mime_guess", 3258 - "quick-error 1.2.3", 3259 - "rand 0.8.5", 3260 - "safemem", 3261 - "tempfile", 3262 - "twoway", 3263 - ] 3264 - 3265 - [[package]] 3266 - name = "mutex-traits" 3267 - version = "1.0.1" 3268 - source = "registry+https://github.com/rust-lang/crates.io-index" 3269 - checksum = "3929f2b5633d29cf7b6624992e5f3c1e9334f1193423e12d17be4faf678cde3f" 3270 - 3271 - [[package]] 3272 1487 name = "mycelium-bitfield" 3273 1488 version = "0.1.5" 3274 1489 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3296 1511 ] 3297 1512 3298 1513 [[package]] 3299 - name = "ndk-context" 3300 - version = "0.1.1" 3301 - source = "registry+https://github.com/rust-lang/crates.io-index" 3302 - checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" 3303 - 3304 - [[package]] 3305 - name = "new_debug_unreachable" 3306 - version = "1.0.6" 3307 - source = "registry+https://github.com/rust-lang/crates.io-index" 3308 - checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" 3309 - 3310 - [[package]] 3311 - name = "nom" 3312 - version = "8.0.0" 3313 - source = "registry+https://github.com/rust-lang/crates.io-index" 3314 - checksum = "df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405" 3315 - dependencies = [ 3316 - "memchr", 3317 - ] 3318 - 3319 - [[package]] 3320 - name = "noop_proc_macro" 3321 - version = "0.3.0" 3322 - source = "registry+https://github.com/rust-lang/crates.io-index" 3323 - checksum = "0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8" 3324 - 3325 - [[package]] 3326 1514 name = "nu-ansi-term" 3327 1515 version = "0.50.3" 3328 1516 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3332 1520 ] 3333 1521 3334 1522 [[package]] 3335 - name = "num" 3336 - version = "0.4.3" 3337 - source = "registry+https://github.com/rust-lang/crates.io-index" 3338 - checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" 3339 - dependencies = [ 3340 - "num-bigint", 3341 - "num-complex", 3342 - "num-integer", 3343 - "num-iter", 3344 - "num-rational", 3345 - "num-traits", 3346 - ] 3347 - 3348 - [[package]] 3349 - name = "num-bigint" 3350 - version = "0.4.6" 3351 - source = "registry+https://github.com/rust-lang/crates.io-index" 3352 - checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" 3353 - dependencies = [ 3354 - "num-integer", 3355 - "num-traits", 3356 - ] 3357 - 3358 - [[package]] 3359 - name = "num-bigint-dig" 3360 - version = "0.8.6" 3361 - source = "registry+https://github.com/rust-lang/crates.io-index" 3362 - checksum = "e661dda6640fad38e827a6d4a310ff4763082116fe217f279885c97f511bb0b7" 3363 - dependencies = [ 3364 - "lazy_static", 3365 - "libm", 3366 - "num-integer", 3367 - "num-iter", 3368 - "num-traits", 3369 - "rand 0.8.5", 3370 - "smallvec", 3371 - "zeroize", 3372 - ] 3373 - 3374 - [[package]] 3375 - name = "num-complex" 3376 - version = "0.4.6" 3377 - source = "registry+https://github.com/rust-lang/crates.io-index" 3378 - checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" 3379 - dependencies = [ 3380 - "num-traits", 3381 - ] 3382 - 3383 - [[package]] 3384 - name = "num-conv" 3385 - version = "0.2.0" 3386 - source = "registry+https://github.com/rust-lang/crates.io-index" 3387 - checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050" 3388 - 3389 - [[package]] 3390 - name = "num-derive" 3391 - version = "0.4.2" 3392 - source = "registry+https://github.com/rust-lang/crates.io-index" 3393 - checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" 3394 - dependencies = [ 3395 - "proc-macro2", 3396 - "quote", 3397 - "syn", 3398 - ] 3399 - 3400 - [[package]] 3401 - name = "num-integer" 3402 - version = "0.1.46" 3403 - source = "registry+https://github.com/rust-lang/crates.io-index" 3404 - checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" 3405 - dependencies = [ 3406 - "num-traits", 3407 - ] 3408 - 3409 - [[package]] 3410 - name = "num-iter" 3411 - version = "0.1.45" 3412 - source = "registry+https://github.com/rust-lang/crates.io-index" 3413 - checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" 3414 - dependencies = [ 3415 - "autocfg", 3416 - "num-integer", 3417 - "num-traits", 3418 - ] 3419 - 3420 - [[package]] 3421 - name = "num-rational" 3422 - version = "0.4.2" 3423 - source = "registry+https://github.com/rust-lang/crates.io-index" 3424 - checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" 3425 - dependencies = [ 3426 - "num-bigint", 3427 - "num-integer", 3428 - "num-traits", 3429 - ] 3430 - 3431 - [[package]] 3432 1523 name = "num-traits" 3433 1524 version = "0.2.19" 3434 1525 source = "registry+https://github.com/rust-lang/crates.io-index" 3435 1526 checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 3436 1527 dependencies = [ 3437 1528 "autocfg", 3438 - "libm", 3439 - ] 3440 - 3441 - [[package]] 3442 - name = "num_cpus" 3443 - version = "1.17.0" 3444 - source = "registry+https://github.com/rust-lang/crates.io-index" 3445 - checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" 3446 - dependencies = [ 3447 - "hermit-abi", 3448 - "libc", 3449 - ] 3450 - 3451 - [[package]] 3452 - name = "num_threads" 3453 - version = "0.1.7" 3454 - source = "registry+https://github.com/rust-lang/crates.io-index" 3455 - checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" 3456 - dependencies = [ 3457 - "libc", 3458 - ] 3459 - 3460 - [[package]] 3461 - name = "objc2" 3462 - version = "0.6.4" 3463 - source = "registry+https://github.com/rust-lang/crates.io-index" 3464 - checksum = "3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f" 3465 - dependencies = [ 3466 - "objc2-encode", 3467 - ] 3468 - 3469 - [[package]] 3470 - name = "objc2-encode" 3471 - version = "4.1.0" 3472 - source = "registry+https://github.com/rust-lang/crates.io-index" 3473 - checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" 3474 - 3475 - [[package]] 3476 - name = "objc2-foundation" 3477 - version = "0.3.2" 3478 - source = "registry+https://github.com/rust-lang/crates.io-index" 3479 - checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" 3480 - dependencies = [ 3481 - "bitflags", 3482 - "objc2", 3483 - ] 3484 - 3485 - [[package]] 3486 - name = "object" 3487 - version = "0.37.3" 3488 - source = "registry+https://github.com/rust-lang/crates.io-index" 3489 - checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" 3490 - dependencies = [ 3491 - "memchr", 3492 1529 ] 3493 1530 3494 1531 [[package]] ··· 3498 1535 checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" 3499 1536 3500 1537 [[package]] 3501 - name = "once_cell_polyfill" 3502 - version = "1.70.2" 3503 - source = "registry+https://github.com/rust-lang/crates.io-index" 3504 - checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" 3505 - 3506 - [[package]] 3507 - name = "oorandom" 3508 - version = "11.1.5" 3509 - source = "registry+https://github.com/rust-lang/crates.io-index" 3510 - checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" 3511 - 3512 - [[package]] 3513 1538 name = "openssl-probe" 3514 1539 version = "0.2.1" 3515 1540 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3532 1557 source = "registry+https://github.com/rust-lang/crates.io-index" 3533 1558 checksum = "3c7028bdd3d43083f6d8d4d5187680d0d3560d54df4cc9d752005268b41e64d0" 3534 1559 dependencies = [ 3535 - "heck 0.4.1", 1560 + "heck", 3536 1561 "proc-macro2", 3537 1562 "proc-macro2-diagnostics", 3538 1563 "quote", ··· 3540 1565 ] 3541 1566 3542 1567 [[package]] 3543 - name = "owo-colors" 3544 - version = "4.3.0" 3545 - source = "registry+https://github.com/rust-lang/crates.io-index" 3546 - checksum = "d211803b9b6b570f68772237e415a029d5a50c65d382910b879fb19d3271f94d" 3547 - 3548 - [[package]] 3549 1568 name = "oxilangtag" 3550 1569 version = "0.1.5" 3551 1570 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3567 1586 ] 3568 1587 3569 1588 [[package]] 3570 - name = "p384" 3571 - version = "0.13.1" 3572 - source = "registry+https://github.com/rust-lang/crates.io-index" 3573 - checksum = "fe42f1670a52a47d448f14b6a5c61dd78fce51856e68edaa38f7ae3a46b8d6b6" 3574 - dependencies = [ 3575 - "ecdsa", 3576 - "elliptic-curve", 3577 - "primeorder", 3578 - "sha2", 3579 - ] 3580 - 3581 - [[package]] 3582 1589 name = "parking" 3583 1590 version = "2.2.1" 3584 1591 source = "registry+https://github.com/rust-lang/crates.io-index" 3585 1592 checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" 3586 1593 3587 1594 [[package]] 3588 - name = "parking_lot" 3589 - version = "0.12.5" 3590 - source = "registry+https://github.com/rust-lang/crates.io-index" 3591 - checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" 3592 - dependencies = [ 3593 - "lock_api", 3594 - "parking_lot_core", 3595 - ] 3596 - 3597 - [[package]] 3598 - name = "parking_lot_core" 3599 - version = "0.9.12" 3600 - source = "registry+https://github.com/rust-lang/crates.io-index" 3601 - checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" 3602 - dependencies = [ 3603 - "cfg-if", 3604 - "libc", 3605 - "redox_syscall 0.5.18", 3606 - "smallvec", 3607 - "windows-link", 3608 - ] 3609 - 3610 - [[package]] 3611 - name = "paste" 3612 - version = "1.0.15" 3613 - source = "registry+https://github.com/rust-lang/crates.io-index" 3614 - checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" 3615 - 3616 - [[package]] 3617 - name = "pastey" 3618 - version = "0.1.1" 3619 - source = "registry+https://github.com/rust-lang/crates.io-index" 3620 - checksum = "35fb2e5f958ec131621fdd531e9fc186ed768cbe395337403ae56c17a74c68ec" 3621 - 3622 - [[package]] 3623 1595 name = "pem-rfc7468" 3624 1596 version = "0.7.0" 3625 1597 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3641 1613 checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" 3642 1614 dependencies = [ 3643 1615 "phf_macros", 3644 - "phf_shared", 3645 - ] 3646 - 3647 - [[package]] 3648 - name = "phf_codegen" 3649 - version = "0.11.3" 3650 - source = "registry+https://github.com/rust-lang/crates.io-index" 3651 - checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" 3652 - dependencies = [ 3653 - "phf_generator", 3654 1616 "phf_shared", 3655 1617 ] 3656 1618 ··· 3719 1681 checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 3720 1682 3721 1683 [[package]] 3722 - name = "pkcs1" 3723 - version = "0.7.5" 3724 - source = "registry+https://github.com/rust-lang/crates.io-index" 3725 - checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" 3726 - dependencies = [ 3727 - "der", 3728 - "pkcs8", 3729 - "spki", 3730 - ] 3731 - 3732 - [[package]] 3733 1684 name = "pkcs8" 3734 1685 version = "0.10.2" 3735 1686 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3746 1697 checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" 3747 1698 3748 1699 [[package]] 3749 - name = "plain" 3750 - version = "0.2.3" 3751 - source = "registry+https://github.com/rust-lang/crates.io-index" 3752 - checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" 3753 - 3754 - [[package]] 3755 - name = "png" 3756 - version = "0.18.1" 3757 - source = "registry+https://github.com/rust-lang/crates.io-index" 3758 - checksum = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61" 3759 - dependencies = [ 3760 - "bitflags", 3761 - "crc32fast", 3762 - "fdeflate", 3763 - "flate2", 3764 - "miniz_oxide 0.8.9", 3765 - ] 3766 - 3767 - [[package]] 3768 1700 name = "portable-atomic" 3769 1701 version = "1.13.1" 3770 1702 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3779 1711 "cobs", 3780 1712 "embedded-io 0.4.0", 3781 1713 "embedded-io 0.6.1", 3782 - "heapless 0.7.17", 1714 + "heapless", 3783 1715 "serde", 3784 1716 ] 3785 1717 ··· 3793 1725 ] 3794 1726 3795 1727 [[package]] 3796 - name = "powerfmt" 3797 - version = "0.2.0" 3798 - source = "registry+https://github.com/rust-lang/crates.io-index" 3799 - checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" 3800 - 3801 - [[package]] 3802 1728 name = "ppv-lite86" 3803 1729 version = "0.2.21" 3804 1730 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3808 1734 ] 3809 1735 3810 1736 [[package]] 3811 - name = "precomputed-hash" 3812 - version = "0.1.1" 3813 - source = "registry+https://github.com/rust-lang/crates.io-index" 3814 - checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" 3815 - 3816 - [[package]] 3817 - name = "pretty_assertions" 3818 - version = "1.4.1" 3819 - source = "registry+https://github.com/rust-lang/crates.io-index" 3820 - checksum = "3ae130e2f271fbc2ac3a40fb1d07180839cdbbe443c7a27e1e3c13c5cac0116d" 3821 - dependencies = [ 3822 - "diff", 3823 - "yansi", 3824 - ] 3825 - 3826 - [[package]] 3827 1737 name = "prettyplease" 3828 1738 version = "0.2.37" 3829 1739 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3865 1775 ] 3866 1776 3867 1777 [[package]] 3868 - name = "profiling" 3869 - version = "1.0.17" 3870 - source = "registry+https://github.com/rust-lang/crates.io-index" 3871 - checksum = "3eb8486b569e12e2c32ad3e204dbaba5e4b5b216e9367044f25f1dba42341773" 3872 - dependencies = [ 3873 - "profiling-procmacros", 3874 - ] 3875 - 3876 - [[package]] 3877 - name = "profiling-procmacros" 3878 - version = "1.0.17" 3879 - source = "registry+https://github.com/rust-lang/crates.io-index" 3880 - checksum = "52717f9a02b6965224f95ca2a81e2e0c5c43baacd28ca057577988930b6c3d5b" 3881 - dependencies = [ 3882 - "quote", 3883 - "syn", 3884 - ] 3885 - 3886 - [[package]] 3887 - name = "proptest" 3888 - version = "1.10.0" 3889 - source = "registry+https://github.com/rust-lang/crates.io-index" 3890 - checksum = "37566cb3fdacef14c0737f9546df7cfeadbfbc9fef10991038bf5015d0c80532" 3891 - dependencies = [ 3892 - "bit-set", 3893 - "bit-vec", 3894 - "bitflags", 3895 - "num-traits", 3896 - "rand 0.9.2", 3897 - "rand_chacha 0.9.0", 3898 - "rand_xorshift", 3899 - "regex-syntax", 3900 - "rusty-fork", 3901 - "tempfile", 3902 - "unarray", 3903 - ] 3904 - 3905 - [[package]] 3906 - name = "pxfm" 3907 - version = "0.1.28" 3908 - source = "registry+https://github.com/rust-lang/crates.io-index" 3909 - checksum = "b5a041e753da8b807c9255f28de81879c78c876392ff2469cde94799b2896b9d" 3910 - 3911 - [[package]] 3912 - name = "qoi" 3913 - version = "0.4.1" 3914 - source = "registry+https://github.com/rust-lang/crates.io-index" 3915 - checksum = "7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001" 3916 - dependencies = [ 3917 - "bytemuck", 3918 - ] 3919 - 3920 - [[package]] 3921 - name = "quick-error" 3922 - version = "1.2.3" 3923 - source = "registry+https://github.com/rust-lang/crates.io-index" 3924 - checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" 3925 - 3926 - [[package]] 3927 - name = "quick-error" 3928 - version = "2.0.1" 3929 - source = "registry+https://github.com/rust-lang/crates.io-index" 3930 - checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" 3931 - 3932 - [[package]] 3933 1778 name = "quinn" 3934 1779 version = "0.11.9" 3935 1780 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 3942 1787 "quinn-udp", 3943 1788 "rustc-hash", 3944 1789 "rustls", 3945 - "socket2 0.6.3", 1790 + "socket2", 3946 1791 "thiserror 2.0.18", 3947 1792 "tokio", 3948 - "tracing 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", 1793 + "tracing", 3949 1794 "web-time", 3950 1795 ] 3951 1796 ··· 3966 1811 "slab", 3967 1812 "thiserror 2.0.18", 3968 1813 "tinyvec", 3969 - "tracing 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", 1814 + "tracing", 3970 1815 "web-time", 3971 1816 ] 3972 1817 ··· 3979 1824 "cfg_aliases", 3980 1825 "libc", 3981 1826 "once_cell", 3982 - "socket2 0.6.3", 3983 - "tracing 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", 1827 + "socket2", 1828 + "tracing", 3984 1829 "windows-sys 0.60.2", 3985 1830 ] 3986 1831 ··· 3998 1843 version = "5.3.0" 3999 1844 source = "registry+https://github.com/rust-lang/crates.io-index" 4000 1845 checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" 4001 - 4002 - [[package]] 4003 - name = "r-efi" 4004 - version = "6.0.0" 4005 - source = "registry+https://github.com/rust-lang/crates.io-index" 4006 - checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" 4007 1846 4008 1847 [[package]] 4009 1848 name = "rand" ··· 4065 1904 ] 4066 1905 4067 1906 [[package]] 4068 - name = "rand_xorshift" 4069 - version = "0.4.0" 4070 - source = "registry+https://github.com/rust-lang/crates.io-index" 4071 - checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" 4072 - dependencies = [ 4073 - "rand_core 0.9.5", 4074 - ] 4075 - 4076 - [[package]] 4077 - name = "rav1e" 4078 - version = "0.8.1" 4079 - source = "registry+https://github.com/rust-lang/crates.io-index" 4080 - checksum = "43b6dd56e85d9483277cde964fd1bdb0428de4fec5ebba7540995639a21cb32b" 4081 - dependencies = [ 4082 - "aligned-vec", 4083 - "arbitrary", 4084 - "arg_enum_proc_macro", 4085 - "arrayvec 0.7.6", 4086 - "av-scenechange", 4087 - "av1-grain", 4088 - "bitstream-io", 4089 - "built", 4090 - "cfg-if", 4091 - "interpolate_name", 4092 - "itertools", 4093 - "libc", 4094 - "libfuzzer-sys", 4095 - "log", 4096 - "maybe-rayon", 4097 - "new_debug_unreachable", 4098 - "noop_proc_macro", 4099 - "num-derive", 4100 - "num-traits", 4101 - "paste", 4102 - "profiling", 4103 - "rand 0.9.2", 4104 - "rand_chacha 0.9.0", 4105 - "simd_helpers", 4106 - "thiserror 2.0.18", 4107 - "v_frame", 4108 - "wasm-bindgen", 4109 - ] 4110 - 4111 - [[package]] 4112 - name = "ravif" 4113 - version = "0.13.0" 4114 - source = "registry+https://github.com/rust-lang/crates.io-index" 4115 - checksum = "e52310197d971b0f5be7fe6b57530dcd27beb35c1b013f29d66c1ad73fbbcc45" 4116 - dependencies = [ 4117 - "avif-serialize", 4118 - "imgref", 4119 - "loop9", 4120 - "quick-error 2.0.1", 4121 - "rav1e", 4122 - "rayon", 4123 - "rgb", 4124 - ] 4125 - 4126 - [[package]] 4127 - name = "rayon" 4128 - version = "1.11.0" 4129 - source = "registry+https://github.com/rust-lang/crates.io-index" 4130 - checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" 4131 - dependencies = [ 4132 - "either", 4133 - "rayon-core", 4134 - ] 4135 - 4136 - [[package]] 4137 - name = "rayon-core" 4138 - version = "1.13.0" 4139 - source = "registry+https://github.com/rust-lang/crates.io-index" 4140 - checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" 4141 - dependencies = [ 4142 - "crossbeam-deque", 4143 - "crossbeam-utils", 4144 - ] 4145 - 4146 - [[package]] 4147 - name = "redox_syscall" 4148 - version = "0.5.18" 4149 - source = "registry+https://github.com/rust-lang/crates.io-index" 4150 - checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" 4151 - dependencies = [ 4152 - "bitflags", 4153 - ] 4154 - 4155 - [[package]] 4156 - name = "redox_syscall" 4157 - version = "0.7.3" 4158 - source = "registry+https://github.com/rust-lang/crates.io-index" 4159 - checksum = "6ce70a74e890531977d37e532c34d45e9055d2409ed08ddba14529471ed0be16" 4160 - dependencies = [ 4161 - "bitflags", 4162 - ] 4163 - 4164 - [[package]] 4165 1907 name = "ref-cast" 4166 1908 version = "1.0.25" 4167 1909 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 4222 1964 source = "registry+https://github.com/rust-lang/crates.io-index" 4223 1965 checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" 4224 1966 dependencies = [ 4225 - "base64 0.22.1", 1967 + "base64", 4226 1968 "bytes", 4227 1969 "encoding_rs", 4228 1970 "futures-core", ··· 4261 2003 ] 4262 2004 4263 2005 [[package]] 4264 - name = "reserve-port" 4265 - version = "2.4.0" 4266 - source = "registry+https://github.com/rust-lang/crates.io-index" 4267 - checksum = "94070964579245eb2f76e62a7668fe87bd9969ed6c41256f3bf614e3323dd3cc" 4268 - dependencies = [ 4269 - "thiserror 2.0.18", 4270 - ] 4271 - 4272 - [[package]] 4273 - name = "resolv-conf" 4274 - version = "0.7.6" 4275 - source = "registry+https://github.com/rust-lang/crates.io-index" 4276 - checksum = "1e061d1b48cb8d38042de4ae0a7a6401009d6143dc80d2e2d6f31f0bdd6470c7" 4277 - 4278 - [[package]] 4279 2006 name = "rfc6979" 4280 2007 version = "0.4.0" 4281 2008 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 4286 2013 ] 4287 2014 4288 2015 [[package]] 4289 - name = "rgb" 4290 - version = "0.8.53" 4291 - source = "registry+https://github.com/rust-lang/crates.io-index" 4292 - checksum = "47b34b781b31e5d73e9fbc8689c70551fd1ade9a19e3e28cfec8580a79290cc4" 4293 - dependencies = [ 4294 - "bytemuck", 4295 - ] 4296 - 4297 - [[package]] 4298 2016 name = "ring" 4299 2017 version = "0.17.14" 4300 2018 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 4309 2027 ] 4310 2028 4311 2029 [[package]] 4312 - name = "roff" 4313 - version = "1.1.0" 4314 - source = "registry+https://github.com/rust-lang/crates.io-index" 4315 - checksum = "dbf2048e0e979efb2ca7b91c4f1a8d77c91853e9b987c94c555668a8994915ad" 4316 - 4317 - [[package]] 4318 - name = "rouille" 4319 - version = "3.6.2" 4320 - source = "registry+https://github.com/rust-lang/crates.io-index" 4321 - checksum = "3716fbf57fc1084d7a706adf4e445298d123e4a44294c4e8213caf1b85fcc921" 4322 - dependencies = [ 4323 - "base64 0.13.1", 4324 - "brotli", 4325 - "chrono", 4326 - "deflate", 4327 - "filetime", 4328 - "multipart", 4329 - "percent-encoding", 4330 - "rand 0.8.5", 4331 - "serde", 4332 - "serde_derive", 4333 - "serde_json", 4334 - "sha1_smol", 4335 - "threadpool", 4336 - "time", 4337 - "tiny_http", 4338 - "url", 4339 - ] 4340 - 4341 - [[package]] 4342 - name = "rsa" 4343 - version = "0.9.10" 4344 - source = "registry+https://github.com/rust-lang/crates.io-index" 4345 - checksum = "b8573f03f5883dcaebdfcf4725caa1ecb9c15b2ef50c43a07b816e06799bb12d" 4346 - dependencies = [ 4347 - "const-oid", 4348 - "digest", 4349 - "num-bigint-dig", 4350 - "num-integer", 4351 - "num-traits", 4352 - "pkcs1", 4353 - "pkcs8", 4354 - "rand_core 0.6.4", 4355 - "signature", 4356 - "spki", 4357 - "subtle", 4358 - "zeroize", 4359 - ] 4360 - 4361 - [[package]] 4362 - name = "rust-multipart-rfc7578_2" 4363 - version = "0.8.0" 4364 - source = "registry+https://github.com/rust-lang/crates.io-index" 4365 - checksum = "c839d037155ebc06a571e305af66ff9fd9063a6e662447051737e1ac75beea41" 4366 - dependencies = [ 4367 - "bytes", 4368 - "futures-core", 4369 - "futures-util", 4370 - "http", 4371 - "mime", 4372 - "rand 0.9.2", 4373 - "thiserror 2.0.18", 4374 - ] 4375 - 4376 - [[package]] 4377 - name = "rustc-demangle" 4378 - version = "0.1.27" 4379 - source = "registry+https://github.com/rust-lang/crates.io-index" 4380 - checksum = "b50b8869d9fc858ce7266cce0194bd74df58b9d0e3f6df3a9fc8eb470d95c09d" 4381 - 4382 - [[package]] 4383 2030 name = "rustc-hash" 4384 2031 version = "2.1.1" 4385 2032 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 4395 2042 ] 4396 2043 4397 2044 [[package]] 4398 - name = "rustix" 4399 - version = "0.38.44" 4400 - source = "registry+https://github.com/rust-lang/crates.io-index" 4401 - checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" 4402 - dependencies = [ 4403 - "bitflags", 4404 - "errno", 4405 - "libc", 4406 - "linux-raw-sys 0.4.15", 4407 - "windows-sys 0.59.0", 4408 - ] 4409 - 4410 - [[package]] 4411 - name = "rustix" 4412 - version = "1.1.4" 4413 - source = "registry+https://github.com/rust-lang/crates.io-index" 4414 - checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" 4415 - dependencies = [ 4416 - "bitflags", 4417 - "errno", 4418 - "libc", 4419 - "linux-raw-sys 0.12.1", 4420 - "windows-sys 0.61.2", 4421 - ] 4422 - 4423 - [[package]] 4424 2045 name = "rustls" 4425 2046 version = "0.23.37" 4426 2047 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 4474 2095 checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" 4475 2096 4476 2097 [[package]] 4477 - name = "rusty-fork" 4478 - version = "0.3.1" 4479 - source = "registry+https://github.com/rust-lang/crates.io-index" 4480 - checksum = "cc6bf79ff24e648f6da1f8d1f011e9cac26491b619e6b9280f2b47f1774e6ee2" 4481 - dependencies = [ 4482 - "fnv", 4483 - "quick-error 1.2.3", 4484 - "tempfile", 4485 - "wait-timeout", 4486 - ] 4487 - 4488 - [[package]] 4489 2098 name = "ryu" 4490 2099 version = "1.0.23" 4491 2100 source = "registry+https://github.com/rust-lang/crates.io-index" 4492 2101 checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" 4493 2102 4494 2103 [[package]] 4495 - name = "safemem" 4496 - version = "0.3.3" 4497 - source = "registry+https://github.com/rust-lang/crates.io-index" 4498 - checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" 4499 - 4500 - [[package]] 4501 - name = "same-file" 4502 - version = "1.0.6" 4503 - source = "registry+https://github.com/rust-lang/crates.io-index" 4504 - checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 4505 - dependencies = [ 4506 - "winapi-util", 4507 - ] 4508 - 4509 - [[package]] 4510 2104 name = "schannel" 4511 2105 version = "0.1.29" 4512 2106 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 4641 2235 ] 4642 2236 4643 2237 [[package]] 4644 - name = "serde_ipld_dagjson" 4645 - version = "0.2.1" 4646 - source = "registry+https://github.com/rust-lang/crates.io-index" 4647 - checksum = "82d2d9d1f29999ee9a3d774fe2a5db4cc199da5178d0350f5e4482ea04252aee" 4648 - dependencies = [ 4649 - "ipld-core", 4650 - "serde", 4651 - "serde_json", 4652 - ] 4653 - 4654 - [[package]] 4655 2238 name = "serde_json" 4656 2239 version = "1.0.149" 4657 2240 source = "registry+https://github.com/rust-lang/crates.io-index" 4658 2241 checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" 4659 2242 dependencies = [ 4660 - "indexmap", 4661 2243 "itoa", 4662 2244 "memchr", 4663 2245 "serde", ··· 4666 2248 ] 4667 2249 4668 2250 [[package]] 4669 - name = "serde_path_to_error" 4670 - version = "0.1.20" 4671 - source = "registry+https://github.com/rust-lang/crates.io-index" 4672 - checksum = "10a9ff822e371bb5403e391ecd83e182e0e77ba7f6fe0160b795797109d1b457" 4673 - dependencies = [ 4674 - "itoa", 4675 - "serde", 4676 - "serde_core", 4677 - ] 4678 - 4679 - [[package]] 4680 - name = "serde_repr" 4681 - version = "0.1.20" 4682 - source = "registry+https://github.com/rust-lang/crates.io-index" 4683 - checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" 4684 - dependencies = [ 4685 - "proc-macro2", 4686 - "quote", 4687 - "syn", 4688 - ] 4689 - 4690 - [[package]] 4691 - name = "serde_spanned" 4692 - version = "0.6.9" 4693 - source = "registry+https://github.com/rust-lang/crates.io-index" 4694 - checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" 4695 - dependencies = [ 4696 - "serde", 4697 - ] 4698 - 4699 - [[package]] 4700 - name = "serde_spanned" 4701 - version = "1.0.4" 4702 - source = "registry+https://github.com/rust-lang/crates.io-index" 4703 - checksum = "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776" 4704 - dependencies = [ 4705 - "serde_core", 4706 - ] 4707 - 4708 - [[package]] 4709 2251 name = "serde_urlencoded" 4710 2252 version = "0.7.1" 4711 2253 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 4718 2260 ] 4719 2261 4720 2262 [[package]] 4721 - name = "serde_with" 4722 - version = "3.18.0" 4723 - source = "registry+https://github.com/rust-lang/crates.io-index" 4724 - checksum = "dd5414fad8e6907dbdd5bc441a50ae8d6e26151a03b1de04d89a5576de61d01f" 4725 - dependencies = [ 4726 - "base64 0.22.1", 4727 - "chrono", 4728 - "hex", 4729 - "serde_core", 4730 - "serde_json", 4731 - "serde_with_macros", 4732 - "time", 4733 - ] 4734 - 4735 - [[package]] 4736 - name = "serde_with_macros" 4737 - version = "3.18.0" 4738 - source = "registry+https://github.com/rust-lang/crates.io-index" 4739 - checksum = "d3db8978e608f1fe7357e211969fd9abdcae80bac1ba7a3369bb7eb6b404eb65" 4740 - dependencies = [ 4741 - "darling", 4742 - "proc-macro2", 4743 - "quote", 4744 - "syn", 4745 - ] 4746 - 4747 - [[package]] 4748 2263 name = "sha1" 4749 2264 version = "0.10.6" 4750 2265 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 4756 2271 ] 4757 2272 4758 2273 [[package]] 4759 - name = "sha1_smol" 4760 - version = "1.0.1" 4761 - source = "registry+https://github.com/rust-lang/crates.io-index" 4762 - checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d" 4763 - 4764 - [[package]] 4765 2274 name = "sha2" 4766 2275 version = "0.10.9" 4767 2276 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 4788 2297 checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 4789 2298 4790 2299 [[package]] 4791 - name = "signal-hook-registry" 4792 - version = "1.4.8" 4793 - source = "registry+https://github.com/rust-lang/crates.io-index" 4794 - checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" 4795 - dependencies = [ 4796 - "errno", 4797 - "libc", 4798 - ] 4799 - 4800 - [[package]] 4801 2300 name = "signature" 4802 2301 version = "2.2.0" 4803 2302 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 4814 2313 checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" 4815 2314 4816 2315 [[package]] 4817 - name = "simd_cesu8" 4818 - version = "1.1.1" 4819 - source = "registry+https://github.com/rust-lang/crates.io-index" 4820 - checksum = "94f90157bb87cddf702797c5dadfa0be7d266cdf49e22da2fcaa32eff75b2c33" 4821 - dependencies = [ 4822 - "rustc_version", 4823 - "simdutf8", 4824 - ] 4825 - 4826 - [[package]] 4827 - name = "simd_helpers" 4828 - version = "0.1.0" 4829 - source = "registry+https://github.com/rust-lang/crates.io-index" 4830 - checksum = "95890f873bec569a0362c235787f3aca6e1e887302ba4840839bcc6459c42da6" 4831 - dependencies = [ 4832 - "quote", 4833 - ] 4834 - 4835 - [[package]] 4836 - name = "simdutf8" 4837 - version = "0.1.5" 4838 - source = "registry+https://github.com/rust-lang/crates.io-index" 4839 - checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" 4840 - 4841 - [[package]] 4842 2316 name = "siphasher" 4843 2317 version = "1.0.2" 4844 2318 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 4868 2342 4869 2343 [[package]] 4870 2344 name = "socket2" 4871 - version = "0.5.10" 4872 - source = "registry+https://github.com/rust-lang/crates.io-index" 4873 - checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" 4874 - dependencies = [ 4875 - "libc", 4876 - "windows-sys 0.52.0", 4877 - ] 4878 - 4879 - [[package]] 4880 - name = "socket2" 4881 2345 version = "0.6.3" 4882 2346 source = "registry+https://github.com/rust-lang/crates.io-index" 4883 2347 checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" ··· 4924 2388 checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 4925 2389 4926 2390 [[package]] 4927 - name = "string_cache" 4928 - version = "0.8.9" 4929 - source = "registry+https://github.com/rust-lang/crates.io-index" 4930 - checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f" 4931 - dependencies = [ 4932 - "new_debug_unreachable", 4933 - "parking_lot", 4934 - "phf_shared", 4935 - "precomputed-hash", 4936 - "serde", 4937 - ] 4938 - 4939 - [[package]] 4940 - name = "string_cache_codegen" 4941 - version = "0.5.4" 4942 - source = "registry+https://github.com/rust-lang/crates.io-index" 4943 - checksum = "c711928715f1fe0fe509c53b43e993a9a557babc2d0a3567d0a3006f1ac931a0" 4944 - dependencies = [ 4945 - "phf_generator", 4946 - "phf_shared", 4947 - "proc-macro2", 4948 - "quote", 4949 - ] 4950 - 4951 - [[package]] 4952 2391 name = "strsim" 4953 2392 version = "0.11.1" 4954 2393 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 4959 2398 version = "2.6.1" 4960 2399 source = "registry+https://github.com/rust-lang/crates.io-index" 4961 2400 checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" 4962 - 4963 - [[package]] 4964 - name = "supports-color" 4965 - version = "3.0.2" 4966 - source = "registry+https://github.com/rust-lang/crates.io-index" 4967 - checksum = "c64fc7232dd8d2e4ac5ce4ef302b1d81e0b80d055b9d77c7c4f51f6aa4c867d6" 4968 - dependencies = [ 4969 - "is_ci", 4970 - ] 4971 - 4972 - [[package]] 4973 - name = "supports-hyperlinks" 4974 - version = "3.2.0" 4975 - source = "registry+https://github.com/rust-lang/crates.io-index" 4976 - checksum = "e396b6523b11ccb83120b115a0b7366de372751aa6edf19844dfb13a6af97e91" 4977 - 4978 - [[package]] 4979 - name = "supports-unicode" 4980 - version = "3.0.0" 4981 - source = "registry+https://github.com/rust-lang/crates.io-index" 4982 - checksum = "b7401a30af6cb5818bb64852270bb722533397edcfc7344954a38f420819ece2" 4983 2401 4984 2402 [[package]] 4985 2403 name = "syn" ··· 5034 2452 ] 5035 2453 5036 2454 [[package]] 5037 - name = "tagptr" 5038 - version = "0.2.0" 5039 - source = "registry+https://github.com/rust-lang/crates.io-index" 5040 - checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" 5041 - 5042 - [[package]] 5043 - name = "target-triple" 5044 - version = "1.0.0" 5045 - source = "registry+https://github.com/rust-lang/crates.io-index" 5046 - checksum = "591ef38edfb78ca4771ee32cf494cb8771944bee237a9b91fc9c1424ac4b777b" 5047 - 5048 - [[package]] 5049 - name = "tempfile" 5050 - version = "3.27.0" 5051 - source = "registry+https://github.com/rust-lang/crates.io-index" 5052 - checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" 5053 - dependencies = [ 5054 - "fastrand", 5055 - "getrandom 0.4.2", 5056 - "once_cell", 5057 - "rustix 1.1.4", 5058 - "windows-sys 0.61.2", 5059 - ] 5060 - 5061 - [[package]] 5062 - name = "tendril" 5063 - version = "0.4.3" 5064 - source = "registry+https://github.com/rust-lang/crates.io-index" 5065 - checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" 5066 - dependencies = [ 5067 - "futf", 5068 - "mac 0.1.1", 5069 - "utf-8", 5070 - ] 5071 - 5072 - [[package]] 5073 - name = "termcolor" 5074 - version = "1.4.1" 5075 - source = "registry+https://github.com/rust-lang/crates.io-index" 5076 - checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" 5077 - dependencies = [ 5078 - "winapi-util", 5079 - ] 5080 - 5081 - [[package]] 5082 - name = "terminal_size" 5083 - version = "0.4.3" 5084 - source = "registry+https://github.com/rust-lang/crates.io-index" 5085 - checksum = "60b8cb979cb11c32ce1603f8137b22262a9d131aaa5c37b5678025f22b8becd0" 5086 - dependencies = [ 5087 - "rustix 1.1.4", 5088 - "windows-sys 0.60.2", 5089 - ] 5090 - 5091 - [[package]] 5092 - name = "textwrap" 5093 - version = "0.16.2" 5094 - source = "registry+https://github.com/rust-lang/crates.io-index" 5095 - checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057" 5096 - dependencies = [ 5097 - "unicode-linebreak", 5098 - "unicode-width 0.2.2", 5099 - ] 5100 - 5101 - [[package]] 5102 2455 name = "thiserror" 5103 2456 version = "1.0.69" 5104 2457 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 5148 2501 ] 5149 2502 5150 2503 [[package]] 5151 - name = "threadpool" 5152 - version = "1.8.1" 5153 - source = "registry+https://github.com/rust-lang/crates.io-index" 5154 - checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" 5155 - dependencies = [ 5156 - "num_cpus", 5157 - ] 5158 - 5159 - [[package]] 5160 - name = "tiff" 5161 - version = "0.6.1" 5162 - source = "registry+https://github.com/rust-lang/crates.io-index" 5163 - checksum = "9a53f4706d65497df0c4349241deddf35f84cee19c87ed86ea8ca590f4464437" 5164 - dependencies = [ 5165 - "jpeg-decoder", 5166 - "miniz_oxide 0.4.4", 5167 - "weezl", 5168 - ] 5169 - 5170 - [[package]] 5171 - name = "tiff" 5172 - version = "0.11.3" 5173 - source = "registry+https://github.com/rust-lang/crates.io-index" 5174 - checksum = "b63feaf3343d35b6ca4d50483f94843803b0f51634937cc2ec519fc32232bc52" 5175 - dependencies = [ 5176 - "fax", 5177 - "flate2", 5178 - "half", 5179 - "quick-error 2.0.1", 5180 - "weezl", 5181 - "zune-jpeg", 5182 - ] 5183 - 5184 - [[package]] 5185 - name = "time" 5186 - version = "0.3.47" 5187 - source = "registry+https://github.com/rust-lang/crates.io-index" 5188 - checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" 5189 - dependencies = [ 5190 - "deranged", 5191 - "itoa", 5192 - "libc", 5193 - "num-conv", 5194 - "num_threads", 5195 - "powerfmt", 5196 - "serde_core", 5197 - "time-core", 5198 - "time-macros", 5199 - ] 5200 - 5201 - [[package]] 5202 - name = "time-core" 5203 - version = "0.1.8" 5204 - source = "registry+https://github.com/rust-lang/crates.io-index" 5205 - checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" 5206 - 5207 - [[package]] 5208 - name = "time-macros" 5209 - version = "0.2.27" 5210 - source = "registry+https://github.com/rust-lang/crates.io-index" 5211 - checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" 5212 - dependencies = [ 5213 - "num-conv", 5214 - "time-core", 5215 - ] 5216 - 5217 - [[package]] 5218 - name = "tiny_http" 5219 - version = "0.12.0" 5220 - source = "registry+https://github.com/rust-lang/crates.io-index" 5221 - checksum = "389915df6413a2e74fb181895f933386023c71110878cd0825588928e64cdc82" 5222 - dependencies = [ 5223 - "ascii", 5224 - "chunked_transfer", 5225 - "httpdate", 5226 - "log", 5227 - ] 5228 - 5229 - [[package]] 5230 2504 name = "tinystr" 5231 2505 version = "0.8.2" 5232 2506 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 5260 2534 "bytes", 5261 2535 "libc", 5262 2536 "mio", 5263 - "parking_lot", 5264 2537 "pin-project-lite", 5265 - "signal-hook-registry", 5266 - "socket2 0.6.3", 2538 + "socket2", 5267 2539 "tokio-macros", 5268 2540 "windows-sys 0.61.2", 5269 2541 ] ··· 5339 2611 ] 5340 2612 5341 2613 [[package]] 5342 - name = "toml" 5343 - version = "0.8.23" 5344 - source = "registry+https://github.com/rust-lang/crates.io-index" 5345 - checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" 5346 - dependencies = [ 5347 - "serde", 5348 - "serde_spanned 0.6.9", 5349 - "toml_datetime 0.6.11", 5350 - "toml_edit", 5351 - ] 5352 - 5353 - [[package]] 5354 - name = "toml" 5355 - version = "1.0.7+spec-1.1.0" 5356 - source = "registry+https://github.com/rust-lang/crates.io-index" 5357 - checksum = "dd28d57d8a6f6e458bc0b8784f8fdcc4b99a437936056fa122cb234f18656a96" 5358 - dependencies = [ 5359 - "indexmap", 5360 - "serde_core", 5361 - "serde_spanned 1.0.4", 5362 - "toml_datetime 1.0.1+spec-1.1.0", 5363 - "toml_parser", 5364 - "toml_writer", 5365 - "winnow 1.0.0", 5366 - ] 5367 - 5368 - [[package]] 5369 - name = "toml_datetime" 5370 - version = "0.6.11" 5371 - source = "registry+https://github.com/rust-lang/crates.io-index" 5372 - checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" 5373 - dependencies = [ 5374 - "serde", 5375 - ] 5376 - 5377 - [[package]] 5378 - name = "toml_datetime" 5379 - version = "1.0.1+spec-1.1.0" 5380 - source = "registry+https://github.com/rust-lang/crates.io-index" 5381 - checksum = "9b320e741db58cac564e26c607d3cc1fdc4a88fd36c879568c07856ed83ff3e9" 5382 - dependencies = [ 5383 - "serde_core", 5384 - ] 5385 - 5386 - [[package]] 5387 - name = "toml_edit" 5388 - version = "0.22.27" 5389 - source = "registry+https://github.com/rust-lang/crates.io-index" 5390 - checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" 5391 - dependencies = [ 5392 - "indexmap", 5393 - "serde", 5394 - "serde_spanned 0.6.9", 5395 - "toml_datetime 0.6.11", 5396 - "toml_write", 5397 - "winnow 0.7.15", 5398 - ] 5399 - 5400 - [[package]] 5401 - name = "toml_parser" 5402 - version = "1.0.10+spec-1.1.0" 5403 - source = "registry+https://github.com/rust-lang/crates.io-index" 5404 - checksum = "7df25b4befd31c4816df190124375d5a20c6b6921e2cad937316de3fccd63420" 5405 - dependencies = [ 5406 - "winnow 1.0.0", 5407 - ] 5408 - 5409 - [[package]] 5410 - name = "toml_write" 5411 - version = "0.1.2" 5412 - source = "registry+https://github.com/rust-lang/crates.io-index" 5413 - checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" 5414 - 5415 - [[package]] 5416 - name = "toml_writer" 5417 - version = "1.0.7+spec-1.1.0" 5418 - source = "registry+https://github.com/rust-lang/crates.io-index" 5419 - checksum = "f17aaa1c6e3dc22b1da4b6bba97d066e354c7945cac2f7852d4e4e7ca7a6b56d" 5420 - 5421 - [[package]] 5422 2614 name = "tower" 5423 2615 version = "0.5.3" 5424 2616 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 5431 2623 "tokio", 5432 2624 "tower-layer", 5433 2625 "tower-service", 5434 - "tracing 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", 5435 2626 ] 5436 2627 5437 2628 [[package]] ··· 5455 2646 "tower", 5456 2647 "tower-layer", 5457 2648 "tower-service", 5458 - "tracing 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", 5459 2649 ] 5460 2650 5461 2651 [[package]] ··· 5476 2666 source = "registry+https://github.com/rust-lang/crates.io-index" 5477 2667 checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" 5478 2668 dependencies = [ 5479 - "log", 5480 2669 "pin-project-lite", 5481 - "tracing-attributes 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)", 5482 - "tracing-core 0.1.36 (registry+https://github.com/rust-lang/crates.io-index)", 5483 - ] 5484 - 5485 - [[package]] 5486 - name = "tracing" 5487 - version = "0.1.44" 5488 - source = "git+https://github.com/tokio-rs/tracing#54ede4d5d85a536aed5485c5213011d9ec961935" 5489 - dependencies = [ 5490 - "pin-project-lite", 5491 - "tracing-attributes 0.1.31 (git+https://github.com/tokio-rs/tracing)", 5492 - "tracing-core 0.1.36 (git+https://github.com/tokio-rs/tracing)", 2670 + "tracing-attributes", 2671 + "tracing-core", 5493 2672 ] 5494 2673 5495 2674 [[package]] ··· 5504 2683 ] 5505 2684 5506 2685 [[package]] 5507 - name = "tracing-attributes" 5508 - version = "0.1.31" 5509 - source = "git+https://github.com/tokio-rs/tracing#54ede4d5d85a536aed5485c5213011d9ec961935" 5510 - dependencies = [ 5511 - "proc-macro2", 5512 - "quote", 5513 - "syn", 5514 - ] 5515 - 5516 - [[package]] 5517 2686 name = "tracing-core" 5518 2687 version = "0.1.36" 5519 2688 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 5524 2693 ] 5525 2694 5526 2695 [[package]] 5527 - name = "tracing-core" 5528 - version = "0.1.36" 5529 - source = "git+https://github.com/tokio-rs/tracing#54ede4d5d85a536aed5485c5213011d9ec961935" 5530 - dependencies = [ 5531 - "valuable", 5532 - ] 5533 - 5534 - [[package]] 5535 2696 name = "tracing-log" 5536 2697 version = "0.2.0" 5537 2698 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 5539 2700 dependencies = [ 5540 2701 "log", 5541 2702 "once_cell", 5542 - "tracing-core 0.1.36 (registry+https://github.com/rust-lang/crates.io-index)", 5543 - ] 5544 - 5545 - [[package]] 5546 - name = "tracing-log" 5547 - version = "0.2.0" 5548 - source = "git+https://github.com/tokio-rs/tracing#54ede4d5d85a536aed5485c5213011d9ec961935" 5549 - dependencies = [ 5550 - "log", 5551 - "once_cell", 5552 - "tracing-core 0.1.36 (git+https://github.com/tokio-rs/tracing)", 2703 + "tracing-core", 5553 2704 ] 5554 2705 5555 2706 [[package]] ··· 5565 2716 "sharded-slab", 5566 2717 "smallvec", 5567 2718 "thread_local", 5568 - "time", 5569 - "tracing 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)", 5570 - "tracing-core 0.1.36 (registry+https://github.com/rust-lang/crates.io-index)", 5571 - "tracing-log 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 5572 - ] 5573 - 5574 - [[package]] 5575 - name = "tracing-subscriber" 5576 - version = "0.3.23" 5577 - source = "git+https://github.com/tokio-rs/tracing#54ede4d5d85a536aed5485c5213011d9ec961935" 5578 - dependencies = [ 5579 - "matchers", 5580 - "nu-ansi-term", 5581 - "once_cell", 5582 - "regex-automata", 5583 - "sharded-slab", 5584 - "smallvec", 5585 - "thread_local", 5586 - "tracing 0.1.44 (git+https://github.com/tokio-rs/tracing)", 5587 - "tracing-core 0.1.36 (git+https://github.com/tokio-rs/tracing)", 5588 - "tracing-log 0.2.0 (git+https://github.com/tokio-rs/tracing)", 2719 + "tracing", 2720 + "tracing-core", 2721 + "tracing-log", 5589 2722 ] 5590 2723 5591 2724 [[package]] ··· 5598 2731 "quote", 5599 2732 "syn", 5600 2733 ] 5601 - 5602 - [[package]] 5603 - name = "triomphe" 5604 - version = "0.1.15" 5605 - source = "registry+https://github.com/rust-lang/crates.io-index" 5606 - checksum = "dd69c5aa8f924c7519d6372789a74eac5b94fb0f8fcf0d4a97eb0bfc3e785f39" 5607 2734 5608 2735 [[package]] 5609 2736 name = "try-lock" ··· 5612 2739 checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" 5613 2740 5614 2741 [[package]] 5615 - name = "trybuild" 5616 - version = "1.0.116" 5617 - source = "registry+https://github.com/rust-lang/crates.io-index" 5618 - checksum = "47c635f0191bd3a2941013e5062667100969f8c4e9cd787c14f977265d73616e" 5619 - dependencies = [ 5620 - "glob", 5621 - "serde", 5622 - "serde_derive", 5623 - "serde_json", 5624 - "target-triple", 5625 - "termcolor", 5626 - "toml 1.0.7+spec-1.1.0", 5627 - ] 5628 - 5629 - [[package]] 5630 2742 name = "tungstenite" 5631 2743 version = "0.24.0" 5632 2744 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 5647 2759 ] 5648 2760 5649 2761 [[package]] 5650 - name = "twoway" 5651 - version = "0.1.8" 5652 - source = "registry+https://github.com/rust-lang/crates.io-index" 5653 - checksum = "59b11b2b5241ba34be09c3cc85a36e56e48f9888862e19cedf23336d35316ed1" 5654 - dependencies = [ 5655 - "memchr", 5656 - ] 5657 - 5658 - [[package]] 5659 - name = "typeid" 5660 - version = "1.0.3" 5661 - source = "registry+https://github.com/rust-lang/crates.io-index" 5662 - checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" 5663 - 5664 - [[package]] 5665 2762 name = "typenum" 5666 2763 version = "1.19.0" 5667 2764 source = "registry+https://github.com/rust-lang/crates.io-index" 5668 2765 checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" 5669 2766 5670 2767 [[package]] 5671 - name = "typetag" 5672 - version = "0.2.21" 5673 - source = "registry+https://github.com/rust-lang/crates.io-index" 5674 - checksum = "be2212c8a9b9bcfca32024de14998494cf9a5dfa59ea1b829de98bac374b86bf" 5675 - dependencies = [ 5676 - "erased-serde", 5677 - "inventory", 5678 - "once_cell", 5679 - "serde", 5680 - "typetag-impl", 5681 - ] 5682 - 5683 - [[package]] 5684 - name = "typetag-impl" 5685 - version = "0.2.21" 5686 - source = "registry+https://github.com/rust-lang/crates.io-index" 5687 - checksum = "27a7a9b72ba121f6f1f6c3632b85604cac41aedb5ddc70accbebb6cac83de846" 5688 - dependencies = [ 5689 - "proc-macro2", 5690 - "quote", 5691 - "syn", 5692 - ] 5693 - 5694 - [[package]] 5695 - name = "unarray" 5696 - version = "0.1.4" 5697 - source = "registry+https://github.com/rust-lang/crates.io-index" 5698 - checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" 5699 - 5700 - [[package]] 5701 - name = "unicase" 5702 - version = "2.9.0" 5703 - source = "registry+https://github.com/rust-lang/crates.io-index" 5704 - checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142" 5705 - 5706 - [[package]] 5707 2768 name = "unicode-ident" 5708 2769 version = "1.0.24" 5709 2770 source = "registry+https://github.com/rust-lang/crates.io-index" 5710 2771 checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" 5711 2772 5712 2773 [[package]] 5713 - name = "unicode-linebreak" 5714 - version = "0.1.5" 5715 - source = "registry+https://github.com/rust-lang/crates.io-index" 5716 - checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" 5717 - 5718 - [[package]] 5719 2774 name = "unicode-segmentation" 5720 2775 version = "1.12.0" 5721 2776 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 5728 2783 checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" 5729 2784 5730 2785 [[package]] 5731 - name = "unicode-width" 5732 - version = "0.2.2" 5733 - source = "registry+https://github.com/rust-lang/crates.io-index" 5734 - checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" 5735 - 5736 - [[package]] 5737 2786 name = "unicode-xid" 5738 2787 version = "0.2.6" 5739 2788 source = "registry+https://github.com/rust-lang/crates.io-index" 5740 2789 checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" 5741 - 5742 - [[package]] 5743 - name = "unsigned-varint" 5744 - version = "0.7.2" 5745 - source = "registry+https://github.com/rust-lang/crates.io-index" 5746 - checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" 5747 2790 5748 2791 [[package]] 5749 2792 name = "unsigned-varint" ··· 5782 2825 checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" 5783 2826 5784 2827 [[package]] 5785 - name = "utf8parse" 5786 - version = "0.2.2" 5787 - source = "registry+https://github.com/rust-lang/crates.io-index" 5788 - checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" 5789 - 5790 - [[package]] 5791 - name = "uuid" 5792 - version = "1.22.0" 5793 - source = "registry+https://github.com/rust-lang/crates.io-index" 5794 - checksum = "a68d3c8f01c0cfa54a75291d83601161799e4a89a39e0929f4b0354d88757a37" 5795 - dependencies = [ 5796 - "js-sys", 5797 - "wasm-bindgen", 5798 - ] 5799 - 5800 - [[package]] 5801 - name = "v_frame" 5802 - version = "0.3.9" 5803 - source = "registry+https://github.com/rust-lang/crates.io-index" 5804 - checksum = "666b7727c8875d6ab5db9533418d7c764233ac9c0cff1d469aec8fa127597be2" 5805 - dependencies = [ 5806 - "aligned-vec", 5807 - "num-traits", 5808 - "wasm-bindgen", 5809 - ] 5810 - 5811 - [[package]] 5812 2828 name = "valuable" 5813 2829 version = "0.1.1" 5814 2830 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 5821 2837 checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 5822 2838 5823 2839 [[package]] 5824 - name = "viuer" 5825 - version = "0.9.2" 5826 - source = "registry+https://github.com/rust-lang/crates.io-index" 5827 - checksum = "0ae7c6870b98c838123f22cac9a594cbe2d74ea48d79271c08f8c9e680b40fac" 5828 - dependencies = [ 5829 - "ansi_colours", 5830 - "base64 0.22.1", 5831 - "console", 5832 - "crossterm", 5833 - "image", 5834 - "lazy_static", 5835 - "tempfile", 5836 - "termcolor", 5837 - ] 5838 - 5839 - [[package]] 5840 - name = "wait-timeout" 5841 - version = "0.2.1" 5842 - source = "registry+https://github.com/rust-lang/crates.io-index" 5843 - checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11" 5844 - dependencies = [ 5845 - "libc", 5846 - ] 5847 - 5848 - [[package]] 5849 - name = "walkdir" 5850 - version = "2.5.0" 5851 - source = "registry+https://github.com/rust-lang/crates.io-index" 5852 - checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" 5853 - dependencies = [ 5854 - "same-file", 5855 - "winapi-util", 5856 - ] 5857 - 5858 - [[package]] 5859 2840 name = "want" 5860 2841 version = "0.3.1" 5861 2842 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 5875 2856 version = "1.0.2+wasi-0.2.9" 5876 2857 source = "registry+https://github.com/rust-lang/crates.io-index" 5877 2858 checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" 5878 - dependencies = [ 5879 - "wit-bindgen", 5880 - ] 5881 - 5882 - [[package]] 5883 - name = "wasip3" 5884 - version = "0.4.0+wasi-0.3.0-rc-2026-01-06" 5885 - source = "registry+https://github.com/rust-lang/crates.io-index" 5886 - checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" 5887 2859 dependencies = [ 5888 2860 "wit-bindgen", 5889 2861 ] ··· 5948 2920 ] 5949 2921 5950 2922 [[package]] 5951 - name = "wasm-bindgen-test" 5952 - version = "0.3.64" 5953 - source = "registry+https://github.com/rust-lang/crates.io-index" 5954 - checksum = "6311c867385cc7d5602463b31825d454d0837a3aba7cdb5e56d5201792a3f7fe" 5955 - dependencies = [ 5956 - "async-trait", 5957 - "cast", 5958 - "js-sys", 5959 - "libm", 5960 - "minicov", 5961 - "nu-ansi-term", 5962 - "num-traits", 5963 - "oorandom", 5964 - "serde", 5965 - "serde_json", 5966 - "wasm-bindgen", 5967 - "wasm-bindgen-futures", 5968 - "wasm-bindgen-test-macro", 5969 - "wasm-bindgen-test-shared", 5970 - ] 5971 - 5972 - [[package]] 5973 - name = "wasm-bindgen-test-macro" 5974 - version = "0.3.64" 5975 - source = "registry+https://github.com/rust-lang/crates.io-index" 5976 - checksum = "67008cdde4769831958536b0f11b3bdd0380bde882be17fff9c2f34bb4549abd" 5977 - dependencies = [ 5978 - "proc-macro2", 5979 - "quote", 5980 - "syn", 5981 - ] 5982 - 5983 - [[package]] 5984 - name = "wasm-bindgen-test-shared" 5985 - version = "0.2.114" 5986 - source = "registry+https://github.com/rust-lang/crates.io-index" 5987 - checksum = "cfe29135b180b72b04c74aa97b2b4a2ef275161eff9a6c7955ea9eaedc7e1d4e" 5988 - 5989 - [[package]] 5990 - name = "wasm-encoder" 5991 - version = "0.244.0" 5992 - source = "registry+https://github.com/rust-lang/crates.io-index" 5993 - checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" 5994 - dependencies = [ 5995 - "leb128fmt", 5996 - "wasmparser", 5997 - ] 5998 - 5999 - [[package]] 6000 - name = "wasm-metadata" 6001 - version = "0.244.0" 6002 - source = "registry+https://github.com/rust-lang/crates.io-index" 6003 - checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" 6004 - dependencies = [ 6005 - "anyhow", 6006 - "indexmap", 6007 - "wasm-encoder", 6008 - "wasmparser", 6009 - ] 6010 - 6011 - [[package]] 6012 2923 name = "wasm-streams" 6013 2924 version = "0.4.2" 6014 2925 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 6022 2933 ] 6023 2934 6024 2935 [[package]] 6025 - name = "wasmparser" 6026 - version = "0.244.0" 6027 - source = "registry+https://github.com/rust-lang/crates.io-index" 6028 - checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" 6029 - dependencies = [ 6030 - "bitflags", 6031 - "hashbrown 0.15.5", 6032 - "indexmap", 6033 - "semver", 6034 - ] 6035 - 6036 - [[package]] 6037 2936 name = "web-sys" 6038 2937 version = "0.3.91" 6039 2938 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 6054 2953 ] 6055 2954 6056 2955 [[package]] 6057 - name = "webbrowser" 6058 - version = "1.2.0" 6059 - source = "registry+https://github.com/rust-lang/crates.io-index" 6060 - checksum = "fe985f41e291eecef5e5c0770a18d28390addb03331c043964d9e916453d6f16" 6061 - dependencies = [ 6062 - "core-foundation 0.10.1", 6063 - "jni", 6064 - "log", 6065 - "ndk-context", 6066 - "objc2", 6067 - "objc2-foundation", 6068 - "url", 6069 - "web-sys", 6070 - ] 6071 - 6072 - [[package]] 6073 - name = "webpage" 6074 - version = "2.0.1" 6075 - source = "registry+https://github.com/rust-lang/crates.io-index" 6076 - checksum = "70862efc041d46e6bbaa82bb9c34ae0596d090e86cbd14bd9e93b36ee6802eac" 6077 - dependencies = [ 6078 - "html5ever", 6079 - "markup5ever_rcdom", 6080 - "serde_json", 6081 - "url", 6082 - ] 6083 - 6084 - [[package]] 6085 2956 name = "webpki-roots" 6086 2957 version = "1.0.6" 6087 2958 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 6091 2962 ] 6092 2963 6093 2964 [[package]] 6094 - name = "weezl" 6095 - version = "0.1.12" 6096 - source = "registry+https://github.com/rust-lang/crates.io-index" 6097 - checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" 6098 - 6099 - [[package]] 6100 - name = "widestring" 6101 - version = "1.2.1" 6102 - source = "registry+https://github.com/rust-lang/crates.io-index" 6103 - checksum = "72069c3113ab32ab29e5584db3c6ec55d416895e60715417b5b883a357c3e471" 6104 - 6105 - [[package]] 6106 - name = "winapi" 6107 - version = "0.3.9" 6108 - source = "registry+https://github.com/rust-lang/crates.io-index" 6109 - checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 6110 - dependencies = [ 6111 - "winapi-i686-pc-windows-gnu", 6112 - "winapi-x86_64-pc-windows-gnu", 6113 - ] 6114 - 6115 - [[package]] 6116 - name = "winapi-i686-pc-windows-gnu" 6117 - version = "0.4.0" 6118 - source = "registry+https://github.com/rust-lang/crates.io-index" 6119 - checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 6120 - 6121 - [[package]] 6122 - name = "winapi-util" 6123 - version = "0.1.11" 6124 - source = "registry+https://github.com/rust-lang/crates.io-index" 6125 - checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" 6126 - dependencies = [ 6127 - "windows-sys 0.61.2", 6128 - ] 6129 - 6130 - [[package]] 6131 - name = "winapi-x86_64-pc-windows-gnu" 6132 - version = "0.4.0" 6133 - source = "registry+https://github.com/rust-lang/crates.io-index" 6134 - checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 6135 - 6136 - [[package]] 6137 2965 name = "windows-core" 6138 2966 version = "0.62.2" 6139 2967 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 6205 3033 6206 3034 [[package]] 6207 3035 name = "windows-sys" 6208 - version = "0.48.0" 6209 - source = "registry+https://github.com/rust-lang/crates.io-index" 6210 - checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 6211 - dependencies = [ 6212 - "windows-targets 0.48.5", 6213 - ] 6214 - 6215 - [[package]] 6216 - name = "windows-sys" 6217 3036 version = "0.52.0" 6218 3037 source = "registry+https://github.com/rust-lang/crates.io-index" 6219 3038 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 6220 - dependencies = [ 6221 - "windows-targets 0.52.6", 6222 - ] 6223 - 6224 - [[package]] 6225 - name = "windows-sys" 6226 - version = "0.59.0" 6227 - source = "registry+https://github.com/rust-lang/crates.io-index" 6228 - checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 6229 3039 dependencies = [ 6230 3040 "windows-targets 0.52.6", 6231 3041 ] ··· 6250 3060 6251 3061 [[package]] 6252 3062 name = "windows-targets" 6253 - version = "0.48.5" 6254 - source = "registry+https://github.com/rust-lang/crates.io-index" 6255 - checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 6256 - dependencies = [ 6257 - "windows_aarch64_gnullvm 0.48.5", 6258 - "windows_aarch64_msvc 0.48.5", 6259 - "windows_i686_gnu 0.48.5", 6260 - "windows_i686_msvc 0.48.5", 6261 - "windows_x86_64_gnu 0.48.5", 6262 - "windows_x86_64_gnullvm 0.48.5", 6263 - "windows_x86_64_msvc 0.48.5", 6264 - ] 6265 - 6266 - [[package]] 6267 - name = "windows-targets" 6268 3063 version = "0.52.6" 6269 3064 source = "registry+https://github.com/rust-lang/crates.io-index" 6270 3065 checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" ··· 6298 3093 6299 3094 [[package]] 6300 3095 name = "windows_aarch64_gnullvm" 6301 - version = "0.48.5" 6302 - source = "registry+https://github.com/rust-lang/crates.io-index" 6303 - checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 6304 - 6305 - [[package]] 6306 - name = "windows_aarch64_gnullvm" 6307 3096 version = "0.52.6" 6308 3097 source = "registry+https://github.com/rust-lang/crates.io-index" 6309 3098 checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" ··· 6316 3105 6317 3106 [[package]] 6318 3107 name = "windows_aarch64_msvc" 6319 - version = "0.48.5" 6320 - source = "registry+https://github.com/rust-lang/crates.io-index" 6321 - checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 6322 - 6323 - [[package]] 6324 - name = "windows_aarch64_msvc" 6325 3108 version = "0.52.6" 6326 3109 source = "registry+https://github.com/rust-lang/crates.io-index" 6327 3110 checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" ··· 6334 3117 6335 3118 [[package]] 6336 3119 name = "windows_i686_gnu" 6337 - version = "0.48.5" 6338 - source = "registry+https://github.com/rust-lang/crates.io-index" 6339 - checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 6340 - 6341 - [[package]] 6342 - name = "windows_i686_gnu" 6343 3120 version = "0.52.6" 6344 3121 source = "registry+https://github.com/rust-lang/crates.io-index" 6345 3122 checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" ··· 6364 3141 6365 3142 [[package]] 6366 3143 name = "windows_i686_msvc" 6367 - version = "0.48.5" 6368 - source = "registry+https://github.com/rust-lang/crates.io-index" 6369 - checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 6370 - 6371 - [[package]] 6372 - name = "windows_i686_msvc" 6373 3144 version = "0.52.6" 6374 3145 source = "registry+https://github.com/rust-lang/crates.io-index" 6375 3146 checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" ··· 6382 3153 6383 3154 [[package]] 6384 3155 name = "windows_x86_64_gnu" 6385 - version = "0.48.5" 6386 - source = "registry+https://github.com/rust-lang/crates.io-index" 6387 - checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 6388 - 6389 - [[package]] 6390 - name = "windows_x86_64_gnu" 6391 3156 version = "0.52.6" 6392 3157 source = "registry+https://github.com/rust-lang/crates.io-index" 6393 3158 checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" ··· 6400 3165 6401 3166 [[package]] 6402 3167 name = "windows_x86_64_gnullvm" 6403 - version = "0.48.5" 6404 - source = "registry+https://github.com/rust-lang/crates.io-index" 6405 - checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 6406 - 6407 - [[package]] 6408 - name = "windows_x86_64_gnullvm" 6409 3168 version = "0.52.6" 6410 3169 source = "registry+https://github.com/rust-lang/crates.io-index" 6411 3170 checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" ··· 6418 3177 6419 3178 [[package]] 6420 3179 name = "windows_x86_64_msvc" 6421 - version = "0.48.5" 6422 - source = "registry+https://github.com/rust-lang/crates.io-index" 6423 - checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 6424 - 6425 - [[package]] 6426 - name = "windows_x86_64_msvc" 6427 3180 version = "0.52.6" 6428 3181 source = "registry+https://github.com/rust-lang/crates.io-index" 6429 3182 checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" ··· 6435 3188 checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" 6436 3189 6437 3190 [[package]] 6438 - name = "winnow" 6439 - version = "0.6.24" 6440 - source = "registry+https://github.com/rust-lang/crates.io-index" 6441 - checksum = "c8d71a593cc5c42ad7876e2c1fda56f314f3754c084128833e64f1345ff8a03a" 6442 - dependencies = [ 6443 - "memchr", 6444 - ] 6445 - 6446 - [[package]] 6447 - name = "winnow" 6448 - version = "0.7.15" 6449 - source = "registry+https://github.com/rust-lang/crates.io-index" 6450 - checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" 6451 - dependencies = [ 6452 - "memchr", 6453 - ] 6454 - 6455 - [[package]] 6456 - name = "winnow" 6457 - version = "1.0.0" 6458 - source = "registry+https://github.com/rust-lang/crates.io-index" 6459 - checksum = "a90e88e4667264a994d34e6d1ab2d26d398dcdca8b7f52bec8668957517fc7d8" 6460 - 6461 - [[package]] 6462 - name = "winreg" 6463 - version = "0.50.0" 6464 - source = "registry+https://github.com/rust-lang/crates.io-index" 6465 - checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" 6466 - dependencies = [ 6467 - "cfg-if", 6468 - "windows-sys 0.48.0", 6469 - ] 6470 - 6471 - [[package]] 6472 3191 name = "wit-bindgen" 6473 3192 version = "0.51.0" 6474 3193 source = "registry+https://github.com/rust-lang/crates.io-index" 6475 3194 checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" 6476 - dependencies = [ 6477 - "wit-bindgen-rust-macro", 6478 - ] 6479 - 6480 - [[package]] 6481 - name = "wit-bindgen-core" 6482 - version = "0.51.0" 6483 - source = "registry+https://github.com/rust-lang/crates.io-index" 6484 - checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" 6485 - dependencies = [ 6486 - "anyhow", 6487 - "heck 0.5.0", 6488 - "wit-parser", 6489 - ] 6490 - 6491 - [[package]] 6492 - name = "wit-bindgen-rust" 6493 - version = "0.51.0" 6494 - source = "registry+https://github.com/rust-lang/crates.io-index" 6495 - checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" 6496 - dependencies = [ 6497 - "anyhow", 6498 - "heck 0.5.0", 6499 - "indexmap", 6500 - "prettyplease", 6501 - "syn", 6502 - "wasm-metadata", 6503 - "wit-bindgen-core", 6504 - "wit-component", 6505 - ] 6506 - 6507 - [[package]] 6508 - name = "wit-bindgen-rust-macro" 6509 - version = "0.51.0" 6510 - source = "registry+https://github.com/rust-lang/crates.io-index" 6511 - checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" 6512 - dependencies = [ 6513 - "anyhow", 6514 - "prettyplease", 6515 - "proc-macro2", 6516 - "quote", 6517 - "syn", 6518 - "wit-bindgen-core", 6519 - "wit-bindgen-rust", 6520 - ] 6521 - 6522 - [[package]] 6523 - name = "wit-component" 6524 - version = "0.244.0" 6525 - source = "registry+https://github.com/rust-lang/crates.io-index" 6526 - checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" 6527 - dependencies = [ 6528 - "anyhow", 6529 - "bitflags", 6530 - "indexmap", 6531 - "log", 6532 - "serde", 6533 - "serde_derive", 6534 - "serde_json", 6535 - "wasm-encoder", 6536 - "wasm-metadata", 6537 - "wasmparser", 6538 - "wit-parser", 6539 - ] 6540 - 6541 - [[package]] 6542 - name = "wit-parser" 6543 - version = "0.244.0" 6544 - source = "registry+https://github.com/rust-lang/crates.io-index" 6545 - checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" 6546 - dependencies = [ 6547 - "anyhow", 6548 - "id-arena", 6549 - "indexmap", 6550 - "log", 6551 - "semver", 6552 - "serde", 6553 - "serde_derive", 6554 - "serde_json", 6555 - "unicode-xid", 6556 - "wasmparser", 6557 - ] 6558 3195 6559 3196 [[package]] 6560 3197 name = "writeable" 6561 3198 version = "0.6.2" 6562 3199 source = "registry+https://github.com/rust-lang/crates.io-index" 6563 3200 checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" 6564 - 6565 - [[package]] 6566 - name = "xml5ever" 6567 - version = "0.18.1" 6568 - source = "registry+https://github.com/rust-lang/crates.io-index" 6569 - checksum = "9bbb26405d8e919bc1547a5aa9abc95cbfa438f04844f5fdd9dc7596b748bf69" 6570 - dependencies = [ 6571 - "log", 6572 - "mac 0.1.1", 6573 - "markup5ever", 6574 - ] 6575 - 6576 - [[package]] 6577 - name = "y4m" 6578 - version = "0.8.0" 6579 - source = "registry+https://github.com/rust-lang/crates.io-index" 6580 - checksum = "7a5a4b21e1a62b67a2970e6831bc091d7b87e119e7f9791aef9702e3bef04448" 6581 3201 6582 3202 [[package]] 6583 3203 name = "yansi" ··· 6654 3274 version = "1.8.2" 6655 3275 source = "registry+https://github.com/rust-lang/crates.io-index" 6656 3276 checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" 6657 - dependencies = [ 6658 - "serde", 6659 - ] 6660 3277 6661 3278 [[package]] 6662 3279 name = "zerotrie" ··· 6724 3341 "cc", 6725 3342 "pkg-config", 6726 3343 ] 6727 - 6728 - [[package]] 6729 - name = "zune-core" 6730 - version = "0.5.1" 6731 - source = "registry+https://github.com/rust-lang/crates.io-index" 6732 - checksum = "cb8a0807f7c01457d0379ba880ba6322660448ddebc890ce29bb64da71fb40f9" 6733 - 6734 - [[package]] 6735 - name = "zune-inflate" 6736 - version = "0.2.54" 6737 - source = "registry+https://github.com/rust-lang/crates.io-index" 6738 - checksum = "73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02" 6739 - dependencies = [ 6740 - "simd-adler32", 6741 - ] 6742 - 6743 - [[package]] 6744 - name = "zune-jpeg" 6745 - version = "0.5.13" 6746 - source = "registry+https://github.com/rust-lang/crates.io-index" 6747 - checksum = "ec5f41c76397b7da451efd19915684f727d7e1d516384ca6bd0ec43ec94de23c" 6748 - dependencies = [ 6749 - "zune-core", 6750 - ]
+1 -1
Cargo.toml
··· 1 1 [workspace] 2 2 resolver = "2" 3 - members = ["crates/*"] 3 + members = ["crates/jacquard-common"] 4 4 5 5 6 6 [workspace.package]
+1 -1
crates/jacquard-common/Cargo.toml
··· 12 12 license.workspace = true 13 13 14 14 [features] 15 - default = ["std", "service-auth", "reqwest-client", "crypto"] 15 + default = ["std", "service-auth", "reqwest-client", "crypto", "websocket"] 16 16 std = [ 17 17 "dep:tokio", 18 18 "dep:tokio-util",
+3 -3
crates/jacquard-common/src/jetstream.rs
··· 99 99 /// Record data (present for create/update) 100 100 #[serde(skip_serializing_if = "Option::is_none")] 101 101 #[serde(borrow)] 102 - pub record: Option<Data<'a>>, 102 + pub record: Option<Data<CowStr<'a>>>, 103 103 /// Content identifier 104 104 #[serde(skip_serializing_if = "Option::is_none")] 105 105 #[serde(borrow)] ··· 372 372 type Message<'de> = JetstreamMessage<'de>; 373 373 374 374 /// Generic error type 375 - type Error<'de> = crate::xrpc::GenericError<'de>; 375 + type Error = crate::xrpc::GenericError; 376 376 } 377 377 378 378 impl<'a> XrpcSubscription for JetstreamParams<'a> { ··· 447 447 type Message<'de> = RawJetstreamMessage<'de>; 448 448 449 449 /// Generic error type 450 - type Error<'de> = crate::xrpc::GenericError<'de>; 450 + type Error = crate::xrpc::GenericError; 451 451 } 452 452 453 453 impl<'a> XrpcSubscription for RawJetstreamParams<'a> {
+4 -3
crates/jacquard-common/src/types/did_doc.rs
··· 67 67 /// Services associated with this DID (e.g., AtprotoPersonalDataServer) 68 68 #[serde(skip_serializing_if = "Option::is_none")] 69 69 pub service: Option<Vec<Service<S>>>, 70 - // Forward‑compatible capture of unmodeled fields 70 + /// Forward‑compatible capture of unmodeled fields 71 71 #[serde(flatten)] 72 72 pub extra_data: BTreeMap<SmolStr, Data<S>>, 73 73 } ··· 141 141 if s.r#type.as_ref() == "AtprotoPersonalDataServer" { 142 142 match &s.service_endpoint { 143 143 Some(Data::String(AtprotoStr::Uri(u))) => Uri::parse(u.as_ref()).ok(), 144 + Some(Data::String(AtprotoStr::String(s))) => Uri::parse(s.as_ref()).ok(), 144 145 _ => None, 145 146 } 146 147 } else { ··· 181 182 /// Multikey `publicKeyMultibase` (base58btc) 182 183 #[serde(skip_serializing_if = "Option::is_none")] 183 184 pub public_key_multibase: Option<S>, 184 - // Forward‑compatible capture of unmodeled fields 185 + /// Forward‑compatible capture of unmodeled fields 185 186 #[serde(flatten)] 186 187 pub extra_data: BTreeMap<SmolStr, Data<S>>, 187 188 } ··· 222 223 /// currently atproto expects this to be a url 223 224 #[serde(skip_serializing_if = "Option::is_none")] 224 225 pub service_endpoint: Option<Data<S>>, 225 - // Forward‑compatible capture of unmodeled fields 226 + /// Forward‑compatible capture of unmodeled fields 226 227 #[serde(flatten)] 227 228 pub extra_data: BTreeMap<SmolStr, Data<S>>, 228 229 }
-2
crates/jacquard-common/src/types/ident.rs
··· 58 58 pub fn new(ident: S) -> Result<Self, AtStrError> { 59 59 let s = ident.as_ref(); 60 60 if validate_did(s).is_ok() { 61 - drop(s); 62 61 Ok(AtIdentifier::Did(unsafe { Did::unchecked(ident) })) 63 62 } else { 64 - drop(s); 65 63 Handle::new(ident).map(AtIdentifier::Handle) 66 64 } 67 65 }
-2
crates/jacquard-common/src/types/string.rs
··· 130 130 match uri { 131 131 UriValue::Any(_) => {} 132 132 _ => { 133 - drop(s); 134 133 return Self::Uri(UriValue::new(string).expect("already checked")); 135 134 } 136 135 } ··· 141 140 if IpldCid::try_from(s).is_ok() || s.starts_with("bafy") { 142 141 return Self::Cid(unsafe { Cid::unchecked_str(string) }); 143 142 } 144 - drop(s); 145 143 // Fallback: plain string. 146 144 Self::String(string) 147 145 }
+6
crates/jacquard-common/src/types/value.rs
··· 62 62 /// Floating point numbers are not allowed in AT Protocol 63 63 #[error("floating point numbers not allowed in AT protocol data")] 64 64 FloatNotAllowed, 65 + /// Invalid data type for AT Protocol data 66 + #[error("invalid data type for AT protocol data")] 67 + InvalidType, 68 + /// Deserialization error 69 + #[error("deserialization error")] 70 + Deserialization, 65 71 } 66 72 67 73 impl<S> Data<S>
-2
crates/jacquard-common/src/types/value/parsing.rs
··· 260 260 return AtprotoStr::Uri(UriValue::Any(string)); 261 261 } 262 262 } else if s.len() == 13 { 263 - drop(s); 264 263 if let Ok(tid) = Tid::new(string.as_ref()) { 265 264 return AtprotoStr::Tid(tid); 266 265 } ··· 270 269 return AtprotoStr::Cid(unsafe { Cid::unchecked_str(string) }); 271 270 } 272 271 } 273 - drop(s); 274 272 275 273 AtprotoStr::String(string) 276 274 }
+34 -45
crates/jacquard-common/src/types/value/serde_impl.rs
··· 304 304 } 305 305 } 306 306 307 - // Check for $type field to detect special structures 308 - let type_field = map.remove("$type").and_then(|v| { 309 - if let Data::String(AtprotoStr::String(s)) = v { 310 - Some(s) 311 - } else { 312 - None 313 - } 314 - }); 307 + // Check for $type field to detect blobs. Peek first, only remove if we match. 308 + let is_blob = map 309 + .get("$type") 310 + .and_then(|v| match v { 311 + Data::String(AtprotoStr::String(s)) => { 312 + Some(infer_from_type(s.as_ref()) == DataModelType::Blob) 313 + } 314 + _ => None, 315 + }) 316 + .unwrap_or(false); 315 317 316 - // Check for blob 317 - if let Some(type_str) = type_field { 318 - if infer_from_type(type_str.as_ref()) == DataModelType::Blob { 319 - // Try to construct blob from the collected data 320 - let ref_cid = map.remove("ref").and_then(|v| { 321 - if let Data::CidLink(cid) = v { 322 - Some(cid) 323 - } else { 324 - None 325 - } 326 - }); 327 - 328 - let mime_type = map.remove("mimeType").and_then(|v| { 329 - if let Data::String(AtprotoStr::String(s)) = v { 330 - Some(s) 331 - } else { 332 - None 333 - } 334 - }); 335 - 336 - let size = map.remove("size").and_then(|v| { 337 - if let Data::Integer(i) = v { 338 - Some(i as usize) 339 - } else { 340 - None 341 - } 342 - }); 343 - 344 - if let (Some(ref_cid), Some(mime_cowstr), Some(size)) = (ref_cid, mime_type, size) { 345 - return Ok(Data::Blob(Blob { 346 - // ref_cid is already Cid<CowStr<'s>>; wrap directly. 347 - r#ref: CidLink(ref_cid), 348 - mime_type: MimeType::new(mime_cowstr), 349 - size, 350 - })); 351 - } 352 - } 318 + if is_blob 319 + && matches!(map.get("ref"), Some(Data::CidLink(_))) 320 + && matches!( 321 + map.get("mimeType"), 322 + Some(Data::String(AtprotoStr::String(_))) 323 + ) 324 + && matches!(map.get("size"), Some(Data::Integer(_))) 325 + { 326 + // All fields verified — remove by key. 327 + let Some(Data::CidLink(ref_cid)) = map.remove("ref") else { 328 + return Err(AtDataError::Deserialization); 329 + }; 330 + let Some(Data::String(AtprotoStr::String(mime_str))) = map.remove("mimeType") else { 331 + return Err(AtDataError::Deserialization); 332 + }; 333 + let Some(Data::Integer(size)) = map.remove("size") else { 334 + return Err(AtDataError::Deserialization); 335 + }; 336 + map.remove("$type"); 337 + return Ok(Data::Blob(Blob { 338 + r#ref: CidLink(ref_cid), 339 + mime_type: MimeType::new(mime_str), 340 + size: size as usize, 341 + })); 353 342 } 354 343 355 344 // Apply type inference for string fields based on key names.
+136 -323
crates/jacquard-common/src/xrpc.rs
··· 31 31 32 32 #[cfg(feature = "streaming")] 33 33 use crate::StreamError; 34 + use crate::bos::Bos; 34 35 use crate::error::DecodeError; 35 36 use crate::http_client::HttpClient; 36 37 #[cfg(feature = "streaming")] ··· 47 48 HeaderName, HeaderValue, Request, StatusCode, 48 49 header::{AUTHORIZATION, CONTENT_TYPE}, 49 50 }; 51 + use serde::de::DeserializeOwned; 50 52 use serde::{Deserialize, Serialize}; 51 53 use smol_str::SmolStr; 52 54 ··· 146 148 /// Encode the request body for procedures. 147 149 /// 148 150 /// Default implementation serializes to JSON. Override for non-JSON encodings. 149 - fn encode_body(&self) -> Result<Vec<u8>, EncodeError> { 150 - Ok(serde_json::to_vec(self)?) 151 + fn encode_body(&self, buffer: &mut [u8]) -> Result<(), EncodeError> { 152 + Ok(serde_json::to_writer(buffer, self)?) 151 153 } 152 154 153 155 /// Decode the request body for procedures. 154 156 /// 155 157 /// Default implementation deserializes from JSON. Override for non-JSON encodings. 156 - fn decode_body<'de>(body: &'de [u8]) -> Result<Box<Self>, DecodeError> 158 + fn decode_body<'de>(body: &'de [u8]) -> Result<Self, DecodeError> 157 159 where 158 160 Self: Deserialize<'de>, 159 161 { 160 162 let body: Self = serde_json::from_slice(body)?; 161 163 162 - Ok(Box::new(body)) 164 + Ok(body) 163 165 } 164 166 } 165 167 166 168 /// Trait for XRPC Response types 167 169 /// 168 - /// It mirrors the NSID and carries the encoding types as well as Output (success) and Err types 170 + /// It mirrors the NSID and carries the encoding types as well as Output (success) and Err types. 171 + /// 172 + /// `Output` is parameterised on a backing string type `S: Bos<str>`, allowing callers to choose 173 + /// between zero-copy (`CowStr<'_>`), small-string-optimised (`SmolStr`), or other backing types. 174 + /// 175 + /// `Err` is a plain associated type (not a GAT) — error types are always `SmolStr`-backed and 176 + /// `DeserializeOwned`. This keeps error handling simple and avoids lifetime gymnastics on the 177 + /// unhappy path. 169 178 pub trait XrpcResp { 170 179 /// The NSID for this XRPC method 171 180 const NSID: &'static str; ··· 173 182 /// Output encoding (MIME type) 174 183 const ENCODING: &'static str; 175 184 176 - /// Response output type 177 - type Output<'de>: Serialize + Deserialize<'de> + IntoStatic; 185 + /// Response output type, parameterised on backing string type. 186 + type Output<S: Bos<str> + AsRef<str>>; 178 187 179 - /// Error type for this request 180 - type Err<'de>: Error + Deserialize<'de> + Serialize + IntoStatic; 188 + /// Error type for this request. Always owned (`DeserializeOwned`). 189 + type Err: Error + Serialize + DeserializeOwned; 181 190 182 - /// Output body encoding function, similar to the request-side type 183 - fn encode_output(output: &Self::Output<'_>) -> Result<Vec<u8>, EncodeError> { 191 + /// Encode the response output body. 192 + /// 193 + /// Default implementation serializes to JSON. Override for non-JSON encodings. 194 + fn encode_output<S: Bos<str> + AsRef<str>>( 195 + output: &Self::Output<S>, 196 + ) -> Result<Vec<u8>, EncodeError> 197 + where 198 + Self::Output<S>: Serialize, 199 + { 184 200 Ok(serde_json::to_vec(output)?) 185 201 } 186 202 187 203 /// Decode the response output body. 188 204 /// 189 205 /// Default implementation deserializes from JSON. Override for non-JSON encodings. 190 - fn decode_output<'de>(body: &'de [u8]) -> core::result::Result<Self::Output<'de>, DecodeError> 206 + fn decode_output<'de, S>(body: &'de [u8]) -> core::result::Result<Self::Output<S>, DecodeError> 191 207 where 192 - Self::Output<'de>: Deserialize<'de>, 208 + S: Bos<str> + AsRef<str> + Deserialize<'de>, 209 + Self::Output<S>: Deserialize<'de>, 193 210 { 194 - let body = serde_json::from_slice(body).map_err(|e| DecodeError::Json(e))?; 211 + let body = serde_json::from_slice(body).map_err(DecodeError::Json)?; 195 212 Ok(body) 196 213 } 197 214 } 198 215 199 216 /// XRPC server endpoint trait 200 217 /// 201 - /// Defines the fully-qualified path and method, as well as request and response types 202 - /// This exists primarily to work around lifetime issues for crates like Axum 203 - /// by moving the lifetime from the trait itself into an associated type. 218 + /// Defines the fully-qualified path and method, as well as request and response types. 219 + /// The `Request` associated type is parameterised on `S` so codegen doesn't need to pick 220 + /// a backing string type — the server picks it at the call site. 204 221 /// 205 222 /// It is implemented by the code generation on a marker struct, like the client-side [XrpcResp] trait. 206 223 pub trait XrpcEndpoint { ··· 209 226 /// XRPC method (query/GET or procedure/POST) 210 227 const METHOD: XrpcMethod; 211 228 /// XRPC Request data type 212 - type Request<'de>: XrpcRequest + Deserialize<'de> + IntoStatic; 229 + type Request<S: Bos<str> + AsRef<str>>: XrpcRequest; 213 230 /// XRPC Response data type 214 231 type Response: XrpcResp; 215 232 } 216 233 217 - /// Error type for XRPC endpoints that don't define any errors 234 + /// Error type for XRPC endpoints that don't define any errors. 235 + /// 236 + /// Always `SmolStr`-backed and owned — error types don't need zero-copy deserialization. 218 237 #[derive(Debug, Clone, PartialEq, Eq, Deserialize, Serialize)] 219 - pub struct GenericError<'a>(#[serde(borrow)] Data<'a>); 238 + pub struct GenericError(Data<SmolStr>); 220 239 221 - impl<'de> fmt::Display for GenericError<'de> { 240 + impl fmt::Display for GenericError { 222 241 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { 223 242 self.0.fmt(f) 224 243 } 225 244 } 226 245 227 - impl Error for GenericError<'_> {} 228 - 229 - impl IntoStatic for GenericError<'_> { 230 - type Output = GenericError<'static>; 231 - fn into_static(self) -> Self::Output { 232 - GenericError(self.0.into_static()) 233 - } 234 - } 246 + impl Error for GenericError {} 235 247 236 248 /// Per-request options for XRPC calls. 237 249 #[derive(Debug, Default, Clone)] ··· 682 694 } 683 695 684 696 let body = if let XrpcMethod::Procedure(_) = R::METHOD { 685 - req.encode_body() 686 - .map_err(|e| ClientError::invalid_request(format!("Failed to encode body: {}", e)))? 697 + let mut buf = Vec::with_capacity(300); 698 + req.encode_body(&mut buf) 699 + .map_err(|e| ClientError::invalid_request(format!("Failed to encode body: {}", e)))?; 700 + buf 687 701 } else { 688 702 vec![] 689 703 }; ··· 729 743 &self.buffer 730 744 } 731 745 732 - /// Parse the response, borrowing from the internal buffer 733 - pub fn parse<'s>(&'s self) -> Result<RespOutput<'s, R>, XrpcError<RespErr<'s, R>>> { 734 - // 200: parse as output 746 + /// Parse the response with caller-chosen backing string type. 747 + /// 748 + /// Use turbofish to select: `response.parse::<CowStr<'_>>()` for zero-copy, 749 + /// `response.parse::<SmolStr>()` for owned. 750 + pub fn parse<'s, S>(&'s self) -> Result<R::Output<S>, XrpcError<R::Err>> 751 + where 752 + S: Bos<str> + AsRef<str> + Deserialize<'s>, 753 + R::Output<S>: Deserialize<'s>, 754 + { 735 755 if self.status.is_success() { 736 - match R::decode_output(&self.buffer) { 737 - Ok(output) => Ok(output), 738 - Err(e) => Err(XrpcError::Decode(e)), 739 - } 740 - // 400: try typed XRPC error, fallback to generic error 741 - } else if self.status.as_u16() == 400 { 742 - match serde_json::from_slice::<R::Err<'_>>(&self.buffer) { 743 - Ok(error) => { 744 - use alloc::string::ToString; 745 - if error.to_string().contains("InvalidToken") { 746 - Err(XrpcError::Auth(AuthError::InvalidToken)) 747 - } else if error.to_string().contains("ExpiredToken") { 748 - Err(XrpcError::Auth(AuthError::TokenExpired)) 749 - } else { 750 - Err(XrpcError::Xrpc(error)) 751 - } 752 - } 753 - Err(_) => { 754 - // Fallback to generic error (InvalidRequest, ExpiredToken, etc.) 755 - match serde_json::from_slice::<GenericXrpcError>(&self.buffer) { 756 - Ok(mut generic) => { 757 - generic.nsid = R::NSID; 758 - generic.method = ""; // method info only available on request 759 - generic.http_status = self.status; 760 - // Map auth-related errors to AuthError 761 - match generic.error.as_str() { 762 - "ExpiredToken" => Err(XrpcError::Auth(AuthError::TokenExpired)), 763 - "InvalidToken" => Err(XrpcError::Auth(AuthError::InvalidToken)), 764 - _ => Err(XrpcError::Generic(generic)), 765 - } 766 - } 767 - Err(e) => Err(XrpcError::Decode(DecodeError::Json(e))), 768 - } 769 - } 770 - } 771 - // 401: always auth error 756 + R::decode_output::<S>(&self.buffer).map_err(XrpcError::Decode) 772 757 } else { 773 - match serde_json::from_slice::<GenericXrpcError>(&self.buffer) { 774 - Ok(mut generic) => { 775 - generic.nsid = R::NSID; 776 - generic.method = ""; // method info only available on request 777 - generic.http_status = self.status; 778 - match generic.error.as_str() { 779 - "ExpiredToken" => Err(XrpcError::Auth(AuthError::TokenExpired)), 780 - "InvalidToken" => Err(XrpcError::Auth(AuthError::InvalidToken)), 781 - _ => Err(XrpcError::Auth(AuthError::NotAuthenticated)), 782 - } 783 - } 784 - Err(e) => Err(XrpcError::Decode(DecodeError::Json(e))), 785 - } 758 + Err(self.parse_error()) 786 759 } 787 760 } 788 761 789 762 /// Parse this as validated, loosely typed atproto data. 790 763 /// 791 - /// NOTE: If the response is an error, it will still parse as the matching error type for the request. 792 - pub fn parse_data<'s>(&'s self) -> Result<Data<'s>, XrpcError<RespErr<'s, R>>> { 793 - // 200: parse as output 764 + /// Returns `Data<CowStr>` borrowing from the buffer where possible. 765 + /// If the response is an error, it will still parse as the matching error type for the request. 766 + pub fn parse_data(&self) -> Result<Data<CowStr<'_>>, XrpcError<R::Err>> { 794 767 if self.status.is_success() { 795 - match serde_json::from_slice::<_>(&self.buffer) { 768 + match serde_json::from_slice::<Data<CowStr<'_>>>(&self.buffer) { 796 769 Ok(output) => Ok(output), 797 770 Err(_) => { 798 - if let Ok(data) = serde_ipld_dagcbor::from_slice::<Ipld>(&self.buffer) { 799 - if let Ok(data) = Data::from_cbor(&data) { 800 - Ok(data.into_static()) 771 + if let Ok(ipld) = serde_ipld_dagcbor::from_slice::<Ipld>(&self.buffer) { 772 + if let Ok(data) = RawData::from_cbor(&ipld) { 773 + // CBOR path always allocates, convert RawData → Data via SmolStr. 774 + Ok(data 775 + .into_static() 776 + .try_into() 777 + .unwrap_or(Data::Bytes(self.buffer.clone()))) 801 778 } else { 802 779 Ok(Data::Bytes(self.buffer.clone())) 803 780 } ··· 806 783 } 807 784 } 808 785 } 809 - // 400: try typed XRPC error, fallback to generic error 810 - } else if self.status.as_u16() == 400 { 811 - match serde_json::from_slice::<R::Err<'_>>(&self.buffer) { 812 - Ok(error) => { 813 - use alloc::string::ToString; 814 - if error.to_string().contains("InvalidToken") { 815 - Err(XrpcError::Auth(AuthError::InvalidToken)) 816 - } else if error.to_string().contains("ExpiredToken") { 817 - Err(XrpcError::Auth(AuthError::TokenExpired)) 818 - } else { 819 - Err(XrpcError::Xrpc(error)) 820 - } 821 - } 822 - Err(_) => { 823 - // Fallback to generic error (InvalidRequest, ExpiredToken, etc.) 824 - match serde_json::from_slice::<GenericXrpcError>(&self.buffer) { 825 - Ok(mut generic) => { 826 - generic.nsid = R::NSID; 827 - generic.method = ""; // method info only available on request 828 - generic.http_status = self.status; 829 - // Map auth-related errors to AuthError 830 - match generic.error.as_str() { 831 - "ExpiredToken" => Err(XrpcError::Auth(AuthError::TokenExpired)), 832 - "InvalidToken" => Err(XrpcError::Auth(AuthError::InvalidToken)), 833 - _ => Err(XrpcError::Generic(generic)), 834 - } 835 - } 836 - Err(e) => Err(XrpcError::Decode(DecodeError::Json(e))), 837 - } 838 - } 839 - } 840 - // 401: always auth error 841 786 } else { 842 - match serde_json::from_slice::<GenericXrpcError>(&self.buffer) { 843 - Ok(mut generic) => { 844 - generic.nsid = R::NSID; 845 - generic.method = ""; // method info only available on request 846 - generic.http_status = self.status; 847 - match generic.error.as_str() { 848 - "ExpiredToken" => Err(XrpcError::Auth(AuthError::TokenExpired)), 849 - "InvalidToken" => Err(XrpcError::Auth(AuthError::InvalidToken)), 850 - _ => Err(XrpcError::Auth(AuthError::NotAuthenticated)), 851 - } 852 - } 853 - Err(e) => Err(XrpcError::Decode(DecodeError::Json(e))), 854 - } 787 + Err(self.parse_error()) 855 788 } 856 789 } 857 790 858 791 /// Parse this as raw atproto data with minimal validation. 859 792 /// 860 - /// NOTE: If the response is an error, it will still parse as the matching error type for the request. 861 - pub fn parse_raw<'s>(&'s self) -> Result<RawData<'s>, XrpcError<RespErr<'s, R>>> { 862 - // 200: parse as output 793 + /// If the response is an error, it will still parse as the matching error type for the request. 794 + pub fn parse_raw(&self) -> Result<RawData<'_>, XrpcError<R::Err>> { 863 795 if self.status.is_success() { 864 - match serde_json::from_slice::<_>(&self.buffer) { 796 + match serde_json::from_slice::<RawData<'_>>(&self.buffer) { 865 797 Ok(output) => Ok(output), 866 798 Err(_) => { 867 - if let Ok(data) = serde_ipld_dagcbor::from_slice::<Ipld>(&self.buffer) { 868 - if let Ok(data) = RawData::from_cbor(&data) { 799 + if let Ok(ipld) = serde_ipld_dagcbor::from_slice::<Ipld>(&self.buffer) { 800 + if let Ok(data) = RawData::from_cbor(&ipld) { 869 801 Ok(data.into_static()) 870 802 } else { 871 803 Ok(RawData::Bytes(self.buffer.clone())) ··· 875 807 } 876 808 } 877 809 } 878 - // 400: try typed XRPC error, fallback to generic error 879 - } else if self.status.as_u16() == 400 { 880 - match serde_json::from_slice::<R::Err<'_>>(&self.buffer) { 810 + } else { 811 + Err(self.parse_error()) 812 + } 813 + } 814 + 815 + /// Parse error response body. Errors are always owned (`DeserializeOwned`). 816 + fn parse_error(&self) -> XrpcError<R::Err> { 817 + // 400: try typed XRPC error, fallback to generic error. 818 + if self.status.as_u16() == 400 { 819 + match serde_json::from_slice::<R::Err>(&self.buffer) { 881 820 Ok(error) => { 882 821 use alloc::string::ToString; 883 822 if error.to_string().contains("InvalidToken") { 884 - Err(XrpcError::Auth(AuthError::InvalidToken)) 823 + XrpcError::Auth(AuthError::InvalidToken) 885 824 } else if error.to_string().contains("ExpiredToken") { 886 - Err(XrpcError::Auth(AuthError::TokenExpired)) 825 + XrpcError::Auth(AuthError::TokenExpired) 887 826 } else { 888 - Err(XrpcError::Xrpc(error)) 827 + XrpcError::Xrpc(error) 889 828 } 890 829 } 891 - Err(_) => { 892 - // Fallback to generic error (InvalidRequest, ExpiredToken, etc.) 893 - match serde_json::from_slice::<GenericXrpcError>(&self.buffer) { 894 - Ok(mut generic) => { 895 - generic.nsid = R::NSID; 896 - generic.method = ""; // method info only available on request 897 - generic.http_status = self.status; 898 - // Map auth-related errors to AuthError 899 - match generic.error.as_str() { 900 - "ExpiredToken" => Err(XrpcError::Auth(AuthError::TokenExpired)), 901 - "InvalidToken" => Err(XrpcError::Auth(AuthError::InvalidToken)), 902 - _ => Err(XrpcError::Generic(generic)), 903 - } 904 - } 905 - Err(e) => Err(XrpcError::Decode(DecodeError::Json(e))), 906 - } 907 - } 830 + Err(_) => self.parse_generic_error(), 908 831 } 909 - // 401: always auth error 832 + // 401: always auth error. 910 833 } else { 911 - match serde_json::from_slice::<GenericXrpcError>(&self.buffer) { 912 - Ok(mut generic) => { 913 - generic.nsid = R::NSID; 914 - generic.method = ""; // method info only available on request 915 - generic.http_status = self.status; 916 - match generic.error.as_str() { 917 - "ExpiredToken" => Err(XrpcError::Auth(AuthError::TokenExpired)), 918 - "InvalidToken" => Err(XrpcError::Auth(AuthError::InvalidToken)), 919 - _ => Err(XrpcError::Auth(AuthError::NotAuthenticated)), 920 - } 834 + self.parse_generic_error() 835 + } 836 + } 837 + 838 + /// Fallback: parse as generic XRPC error (InvalidRequest, ExpiredToken, etc.). 839 + fn parse_generic_error(&self) -> XrpcError<R::Err> { 840 + match serde_json::from_slice::<GenericXrpcError>(&self.buffer) { 841 + Ok(mut generic) => { 842 + generic.nsid = R::NSID; 843 + generic.method = ""; 844 + generic.http_status = self.status; 845 + match generic.error.as_str() { 846 + "ExpiredToken" => XrpcError::Auth(AuthError::TokenExpired), 847 + "InvalidToken" => XrpcError::Auth(AuthError::InvalidToken), 848 + _ => XrpcError::Generic(generic), 921 849 } 922 - Err(e) => Err(XrpcError::Decode(DecodeError::Json(e))), 923 850 } 851 + Err(e) => XrpcError::Decode(DecodeError::Json(e)), 924 852 } 925 853 } 926 854 ··· 930 858 /// but changing the type-level marker. Useful for converting generic XRPC responses 931 859 /// into collection-specific typed responses. 932 860 /// 933 - /// # Safety 861 + /// # Invariants 934 862 /// 935 863 /// This is safe in the sense that no memory unsafety occurs, but logical correctness 936 864 /// depends on ensuring the buffer actually contains data that can deserialize to `NEW`. ··· 944 872 } 945 873 } 946 874 947 - /// doc 948 - pub type RespOutput<'a, Resp> = <Resp as XrpcResp>::Output<'a>; 949 - /// doc 950 - pub type RespErr<'a, Resp> = <Resp as XrpcResp>::Err<'a>; 875 + /// Output type alias for a given response marker and backing string type. 876 + pub type RespOutput<S, Resp> = <Resp as XrpcResp>::Output<S>; 877 + /// Error type alias for a given response marker. 878 + pub type RespErr<Resp> = <Resp as XrpcResp>::Err; 951 879 952 880 impl<R> Response<R> 953 881 where 954 882 R: XrpcResp, 955 883 { 956 - /// Parse the response into an owned output 957 - pub fn into_output(self) -> Result<RespOutput<'static, R>, XrpcError<RespErr<'static, R>>> 884 + /// Parse the response into an owned `SmolStr`-backed output. 885 + pub fn into_output(self) -> Result<R::Output<SmolStr>, XrpcError<R::Err>> 958 886 where 959 - for<'a> RespOutput<'a, R>: IntoStatic<Output = RespOutput<'static, R>>, 960 - for<'a> RespErr<'a, R>: IntoStatic<Output = RespErr<'static, R>>, 887 + R::Output<SmolStr>: DeserializeOwned, 961 888 { 962 - fn parse_error<'b, R: XrpcResp>(buffer: &'b [u8]) -> Result<R::Err<'b>, serde_json::Error> { 963 - serde_json::from_slice(buffer) 964 - } 965 - 966 - // 200: parse as output 967 889 if self.status.is_success() { 968 - match R::decode_output(&self.buffer) { 969 - Ok(output) => Ok(output.into_static()), 970 - Err(e) => Err(XrpcError::Decode(e)), 971 - } 972 - // 400: try typed XRPC error, fallback to generic error 973 - } else if self.status.as_u16() == 400 { 974 - let error = match parse_error::<R>(&self.buffer) { 975 - Ok(error) => { 976 - use alloc::string::ToString; 977 - if error.to_string().contains("InvalidToken") { 978 - XrpcError::Auth(AuthError::InvalidToken) 979 - } else if error.to_string().contains("ExpiredToken") { 980 - XrpcError::Auth(AuthError::TokenExpired) 981 - } else { 982 - XrpcError::Xrpc(error) 983 - } 984 - } 985 - Err(_) => { 986 - // Fallback to generic error (InvalidRequest, ExpiredToken, etc.) 987 - match serde_json::from_slice::<GenericXrpcError>(&self.buffer) { 988 - Ok(mut generic) => { 989 - generic.nsid = R::NSID; 990 - generic.method = ""; // method info only available on request 991 - generic.http_status = self.status; 992 - // Map auth-related errors to AuthError 993 - match generic.error.as_ref() { 994 - "ExpiredToken" => XrpcError::Auth(AuthError::TokenExpired), 995 - "InvalidToken" => XrpcError::Auth(AuthError::InvalidToken), 996 - _ => XrpcError::Generic(generic), 997 - } 998 - } 999 - Err(e) => XrpcError::Decode(DecodeError::Json(e)), 1000 - } 1001 - } 1002 - }; 1003 - Err(error.into_static()) 1004 - // 401: always auth error 890 + R::decode_output::<SmolStr>(&self.buffer).map_err(XrpcError::Decode) 1005 891 } else { 1006 - let error: XrpcError<<R as XrpcResp>::Err<'_>> = 1007 - match serde_json::from_slice::<GenericXrpcError>(&self.buffer) { 1008 - Ok(mut generic) => { 1009 - let status = self.status; 1010 - generic.nsid = R::NSID; 1011 - generic.method = ""; // method info only available on request 1012 - generic.http_status = status; 1013 - match generic.error.as_ref() { 1014 - "ExpiredToken" => XrpcError::Auth(AuthError::TokenExpired), 1015 - "InvalidToken" => XrpcError::Auth(AuthError::InvalidToken), 1016 - _ => XrpcError::Auth(AuthError::NotAuthenticated), 1017 - } 1018 - } 1019 - Err(e) => XrpcError::Decode(DecodeError::Json(e)), 1020 - }; 1021 - 1022 - Err(error.into_static()) 892 + Err(self.parse_error()) 1023 893 } 1024 894 } 1025 895 } ··· 1062 932 } 1063 933 } 1064 934 1065 - impl IntoStatic for GenericXrpcError { 1066 - type Output = Self; 1067 - 1068 - fn into_static(self) -> Self::Output { 1069 - self 1070 - } 1071 - } 1072 - 1073 935 impl core::error::Error for GenericXrpcError {} 1074 936 1075 937 /// XRPC-specific errors returned from endpoints 1076 938 /// 1077 - /// Represents errors returned in the response body 1078 - /// Type parameter `E` is the endpoint's specific error enum type. 939 + /// Represents errors returned in the response body. 940 + /// Type parameter `E` is the endpoint's specific error enum type, which is always 941 + /// `DeserializeOwned` (SmolStr-backed, no lifetime). 1079 942 #[derive(Debug, thiserror::Error)] 1080 943 #[cfg_attr(feature = "std", derive(miette::Diagnostic))] 1081 944 #[non_exhaustive] 1082 - pub enum XrpcError<E: core::error::Error + IntoStatic> { 945 + pub enum XrpcError<E: core::error::Error> { 1083 946 /// Typed XRPC error from the endpoint's specific error enum 1084 947 #[error("XRPC error: {0}")] 1085 948 #[cfg_attr(feature = "std", diagnostic(code(jacquard_common::xrpc::typed)))] ··· 1101 964 Decode(#[from] DecodeError), 1102 965 } 1103 966 1104 - impl<E> IntoStatic for XrpcError<E> 1105 - where 1106 - E: core::error::Error + IntoStatic, 1107 - E::Output: core::error::Error + IntoStatic, 1108 - <E as IntoStatic>::Output: core::error::Error + IntoStatic, 1109 - { 1110 - type Output = XrpcError<E::Output>; 1111 - fn into_static(self) -> Self::Output { 1112 - match self { 1113 - XrpcError::Xrpc(e) => XrpcError::Xrpc(e.into_static()), 1114 - XrpcError::Auth(e) => XrpcError::Auth(e.into_static()), 1115 - XrpcError::Generic(e) => XrpcError::Generic(e), 1116 - XrpcError::Decode(e) => XrpcError::Decode(e), 1117 - } 1118 - } 1119 - } 1120 - 1121 967 impl<E> Serialize for XrpcError<E> 1122 968 where 1123 - E: core::error::Error + IntoStatic + Serialize, 969 + E: core::error::Error + Serialize, 1124 970 { 1125 971 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> 1126 972 where ··· 1283 1129 1284 1130 #[derive(Deserialize, Serialize, Debug, thiserror::Error)] 1285 1131 #[error("{0}")] 1286 - struct DummyErr<'a>(#[serde(borrow)] CowStr<'a>); 1287 - 1288 - impl IntoStatic for DummyErr<'_> { 1289 - type Output = DummyErr<'static>; 1290 - fn into_static(self) -> Self::Output { 1291 - DummyErr(self.0.into_static()) 1292 - } 1293 - } 1132 + struct DummyErr(SmolStr); 1294 1133 1295 1134 struct DummyResp; 1296 1135 1297 1136 impl XrpcResp for DummyResp { 1298 1137 const NSID: &'static str = "test.dummy"; 1299 1138 const ENCODING: &'static str = "application/json"; 1300 - type Output<'de> = (); 1301 - type Err<'de> = DummyErr<'de>; 1139 + type Output<S: Bos<str> + AsRef<str>> = (); 1140 + type Err = DummyErr; 1302 1141 } 1303 1142 1304 1143 impl XrpcRequest for DummyReq { ··· 1312 1151 let body = serde_json::json!({"error":"InvalidRequest","message":"missing"}); 1313 1152 let buf = Bytes::from(serde_json::to_vec(&body).unwrap()); 1314 1153 let resp: Response<DummyResp> = Response::new(buf, StatusCode::BAD_REQUEST); 1315 - match resp.parse().unwrap_err() { 1154 + match resp.parse::<SmolStr>().unwrap_err() { 1316 1155 XrpcError::Generic(g) => { 1317 1156 assert_eq!(g.error.as_str(), "InvalidRequest"); 1318 1157 assert_eq!(g.message.as_deref(), Some("missing")); ··· 1333 1172 let body = serde_json::json!({"error": code}); 1334 1173 let buf = Bytes::from(serde_json::to_vec(&body).unwrap()); 1335 1174 let resp: Response<DummyResp> = Response::new(buf, StatusCode::UNAUTHORIZED); 1336 - match resp.parse().unwrap_err() { 1175 + match resp.parse::<SmolStr>().unwrap_err() { 1337 1176 XrpcError::Auth(e) => match (e, expect) { 1338 1177 (AuthError::TokenExpired, AuthError::TokenExpired) => {} 1339 1178 (AuthError::InvalidToken, AuthError::InvalidToken) => {} ··· 1350 1189 #[derive(Serialize, Deserialize)] 1351 1190 struct Req; 1352 1191 #[derive(Deserialize, Serialize, Debug, thiserror::Error)] 1353 - #[error("{0}")] 1354 - struct Err<'a>(#[serde(borrow)] CowStr<'a>); 1355 - impl IntoStatic for Err<'_> { 1356 - type Output = Err<'static>; 1357 - fn into_static(self) -> Self::Output { 1358 - Err(self.0.into_static()) 1359 - } 1360 - } 1192 + #[error("test error")] 1193 + struct Err; 1361 1194 struct Resp; 1362 1195 impl XrpcResp for Resp { 1363 1196 const NSID: &'static str = "com.example.test"; 1364 1197 const ENCODING: &'static str = "application/json"; 1365 - type Output<'de> = (); 1366 - type Err<'de> = Err<'de>; 1198 + type Output<S: Bos<str> + AsRef<str>> = (); 1199 + type Err = Err; 1367 1200 } 1368 1201 impl XrpcRequest for Req { 1369 1202 const NSID: &'static str = "com.example.test"; ··· 1438 1271 #[derive(Serialize, Deserialize, Debug, thiserror::Error)] 1439 1272 #[error("test error")] 1440 1273 struct Err; 1441 - impl IntoStatic for Err { 1442 - type Output = Err; 1443 - fn into_static(self) -> Self::Output { 1444 - self 1445 - } 1446 - } 1447 - 1448 1274 struct Resp; 1449 1275 impl XrpcResp for Resp { 1450 1276 const NSID: &'static str = "com.example.test"; 1451 1277 const ENCODING: &'static str = "application/json"; 1452 - type Output<'de> = (); 1453 - type Err<'de> = Err; 1278 + type Output<S: Bos<str> + AsRef<str>> = (); 1279 + type Err = Err; 1454 1280 } 1455 1281 impl XrpcRequest for QueryReq { 1456 1282 const NSID: &'static str = "com.example.test"; ··· 1519 1345 #[derive(Serialize, Deserialize, Debug, thiserror::Error)] 1520 1346 #[error("test error")] 1521 1347 struct Err; 1522 - impl IntoStatic for Err { 1523 - type Output = Err; 1524 - fn into_static(self) -> Self::Output { 1525 - self 1526 - } 1527 - } 1528 - 1529 1348 struct Resp; 1530 1349 impl XrpcResp for Resp { 1531 1350 const NSID: &'static str = "com.example.test"; 1532 1351 const ENCODING: &'static str = "application/json"; 1533 - type Output<'de> = (); 1534 - type Err<'de> = Err; 1352 + type Output<S: Bos<str> + AsRef<str>> = (); 1353 + type Err = Err; 1535 1354 } 1536 1355 impl XrpcRequest for QueryReq { 1537 1356 const NSID: &'static str = "com.example.test"; ··· 1610 1429 #[derive(Serialize, Deserialize)] 1611 1430 struct Req; 1612 1431 #[derive(Deserialize, Serialize, Debug, thiserror::Error)] 1613 - #[error("{0}")] 1614 - struct Err<'a>(#[serde(borrow)] CowStr<'a>); 1615 - impl IntoStatic for Err<'_> { 1616 - type Output = Err<'static>; 1617 - fn into_static(self) -> Self::Output { 1618 - Err(self.0.into_static()) 1619 - } 1620 - } 1432 + #[error("test error")] 1433 + struct Err; 1621 1434 struct Resp; 1622 1435 impl XrpcResp for Resp { 1623 1436 const NSID: &'static str = "com.example.test"; 1624 1437 const ENCODING: &'static str = "application/json"; 1625 - type Output<'de> = (); 1626 - type Err<'de> = Err<'de>; 1438 + type Output<S: Bos<str> + AsRef<str>> = (); 1439 + type Err = Err; 1627 1440 } 1628 1441 impl XrpcRequest for Req { 1629 1442 const NSID: &'static str = "com.example.test";
+39 -65
crates/jacquard-common/src/xrpc/atproto.rs
··· 17 17 use alloc::vec::Vec; 18 18 use core::error::Error; 19 19 use core::fmt::{self, Display}; 20 - use core::marker::PhantomData; 21 20 use serde::{Deserialize, Serialize}; 22 21 use smol_str::SmolStr; 23 22 ··· 125 124 impl XrpcResp for ListRecordsResponse { 126 125 const NSID: &'static str = "com.atproto.repo.listRecords"; 127 126 const ENCODING: &'static str = "application/json"; 128 - type Output<'de> = ListRecordsOutput; 129 - type Err<'de> = GenericError<'de>; 127 + type Output<S: Bos<str> + AsRef<str>> = ListRecordsOutput<S>; 128 + type Err = GenericError; 130 129 } 131 130 132 - impl<'a, S> XrpcRequest for ListRecords<S> 131 + impl<S> XrpcRequest for ListRecords<S> 133 132 where 134 133 S: Bos<str> + AsRef<str> + Serialize, 135 134 { ··· 201 200 } 202 201 } 203 202 204 - /// Error type for com.atproto.repo.getRecord. 203 + /// Error type for com.atproto.repo.getRecord. Always SmolStr-backed. 205 204 #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)] 206 205 #[allow(missing_docs)] 207 206 #[serde(tag = "error", content = "message")] 208 - #[serde(bound(deserialize = "'de: 'a"))] 209 - pub enum GetRecordError<'a> { 207 + pub enum GetRecordError { 210 208 #[serde(rename = "RecordNotFound")] 211 - RecordNotFound(Option<CowStr<'a>>), 209 + RecordNotFound(Option<SmolStr>), 210 + /// Catch-all for unknown error codes. 211 + #[serde(other)] 212 + Other, 212 213 } 213 214 214 - impl<'a> Display for GetRecordError<'a> { 215 + impl Display for GetRecordError { 215 216 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { 216 217 match self { 217 218 Self::RecordNotFound(msg) => { ··· 221 222 } 222 223 Ok(()) 223 224 } 225 + Self::Other => write!(f, "Unknown error"), 224 226 } 225 227 } 226 228 } 227 229 228 - impl Error for GetRecordError<'_> {} 229 - 230 - impl IntoStatic for GetRecordError<'_> { 231 - type Output = GetRecordError<'static>; 232 - 233 - fn into_static(self) -> Self::Output { 234 - match self { 235 - Self::RecordNotFound(msg) => GetRecordError::RecordNotFound(msg.into_static()), 236 - } 237 - } 238 - } 230 + impl Error for GetRecordError {} 239 231 240 232 /// Response marker for com.atproto.repo.getRecord. 241 233 pub struct GetRecordResponse; ··· 243 235 impl XrpcResp for GetRecordResponse { 244 236 const NSID: &'static str = "com.atproto.repo.getRecord"; 245 237 const ENCODING: &'static str = "application/json"; 246 - type Output<'de> = GetRecordOutput; 247 - type Err<'de> = GetRecordError<'de>; 238 + type Output<S: Bos<str> + AsRef<str>> = GetRecordOutput<S>; 239 + type Err = GetRecordError; 248 240 } 249 241 250 242 impl<'a> XrpcRequest for GetRecord<'a> { ··· 268 260 impl<S> IntoStatic for ResolveHandle<S> 269 261 where 270 262 S: Bos<str> + AsRef<str> + IntoStatic, 271 - <S as IntoStatic>::Output: Bos<str>, 272 - <S as IntoStatic>::Output: AsRef<str>, 263 + S::Output: Bos<str> + AsRef<str>, 273 264 { 274 265 type Output = ResolveHandle<<S as IntoStatic>::Output>; 275 266 ··· 291 282 impl<S> IntoStatic for ResolveHandleOutput<S> 292 283 where 293 284 S: Bos<str> + AsRef<str> + IntoStatic, 294 - <S as IntoStatic>::Output: Bos<str>, 295 - <S as IntoStatic>::Output: AsRef<str>, 285 + S::Output: Bos<str> + AsRef<str>, 296 286 { 297 287 type Output = ResolveHandleOutput<<S as IntoStatic>::Output>; 298 288 ··· 303 293 } 304 294 } 305 295 306 - /// Error type for com.atproto.identity.resolveHandle. 296 + /// Error type for com.atproto.identity.resolveHandle. Always SmolStr-backed. 307 297 #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)] 308 298 #[serde(tag = "error", content = "message")] 309 299 #[allow(missing_docs)] 310 - #[serde(bound(deserialize = "'de: 'a"))] 311 - pub enum ResolveHandleError<'a> { 300 + pub enum ResolveHandleError { 312 301 #[serde(rename = "HandleNotFound")] 313 - HandleNotFound(Option<CowStr<'a>>), 302 + HandleNotFound(Option<SmolStr>), 303 + /// Catch-all for unknown error codes. 304 + #[serde(other)] 305 + Other, 314 306 } 315 307 316 - impl<'a> Display for ResolveHandleError<'a> { 308 + impl Display for ResolveHandleError { 317 309 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { 318 310 match self { 319 311 Self::HandleNotFound(msg) => { ··· 323 315 } 324 316 Ok(()) 325 317 } 318 + Self::Other => write!(f, "Unknown error"), 326 319 } 327 320 } 328 321 } 329 322 330 - impl Error for ResolveHandleError<'_> {} 331 - 332 - impl IntoStatic for ResolveHandleError<'_> { 333 - type Output = ResolveHandleError<'static>; 334 - 335 - fn into_static(self) -> Self::Output { 336 - match self { 337 - Self::HandleNotFound(msg) => ResolveHandleError::HandleNotFound(msg.into_static()), 338 - } 339 - } 340 - } 323 + impl Error for ResolveHandleError {} 341 324 342 325 /// Response marker for com.atproto.identity.resolveHandle. 343 326 pub struct ResolveHandleResponse; ··· 345 328 impl XrpcResp for ResolveHandleResponse { 346 329 const NSID: &'static str = "com.atproto.identity.resolveHandle"; 347 330 const ENCODING: &'static str = "application/json"; 348 - type Output<'de> = ResolveHandleOutput; 349 - type Err<'de> = ResolveHandleError<'de>; 331 + type Output<S: Bos<str> + AsRef<str>> = ResolveHandleOutput<S>; 332 + type Err = ResolveHandleError; 350 333 } 351 334 352 335 impl<S: Bos<str> + AsRef<str> + Serialize> XrpcRequest for ResolveHandle<S> { ··· 407 390 } 408 391 } 409 392 410 - /// Error type for com.atproto.identity.resolveDid. 393 + /// Error type for com.atproto.identity.resolveDid. Always SmolStr-backed. 411 394 #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)] 412 395 #[serde(tag = "error", content = "message")] 413 - #[serde(bound(deserialize = "'de: 'a"))] 414 396 #[allow(missing_docs)] 415 - pub enum ResolveDidError<'a> { 397 + pub enum ResolveDidError { 416 398 #[serde(rename = "DidNotFound")] 417 - DidNotFound(Option<CowStr<'a>>), 399 + DidNotFound(Option<SmolStr>), 418 400 #[serde(rename = "DidDeactivated")] 419 - DidDeactivated(Option<CowStr<'a>>), 401 + DidDeactivated(Option<SmolStr>), 402 + /// Catch-all for unknown error codes. 403 + #[serde(other)] 404 + Other, 420 405 } 421 406 422 - impl<'a> Display for ResolveDidError<'a> { 407 + impl Display for ResolveDidError { 423 408 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { 424 409 match self { 425 410 Self::DidNotFound(msg) => { ··· 436 421 } 437 422 Ok(()) 438 423 } 424 + Self::Other => write!(f, "Unknown error"), 439 425 } 440 426 } 441 427 } 442 428 443 - impl Error for ResolveDidError<'_> {} 444 - 445 - impl IntoStatic for ResolveDidError<'_> { 446 - type Output = ResolveDidError<'static>; 447 - 448 - fn into_static(self) -> Self::Output { 449 - match self { 450 - Self::DidNotFound(msg) => ResolveDidError::DidNotFound(msg.into_static()), 451 - Self::DidDeactivated(msg) => ResolveDidError::DidDeactivated(msg.into_static()), 452 - } 453 - } 454 - } 429 + impl Error for ResolveDidError {} 455 430 456 431 /// Response marker for com.atproto.identity.resolveDid. 457 432 pub struct ResolveDidResponse; ··· 459 434 impl XrpcResp for ResolveDidResponse { 460 435 const NSID: &'static str = "com.atproto.identity.resolveDid"; 461 436 const ENCODING: &'static str = "application/json"; 462 - type Output<'de> = ResolveDidOutput; 463 - type Err<'de> = ResolveDidError<'de>; 437 + type Output<S: Bos<str> + AsRef<str>> = ResolveDidOutput<S>; 438 + type Err = ResolveDidError; 464 439 } 465 440 466 441 impl<S> XrpcRequest for ResolveDid<S> ··· 557 532 fn test_resolve_did_output_deserializes() { 558 533 let json_str = r#"{"didDoc": {}}"#; 559 534 let output: ResolveDidOutput = serde_json::from_str(json_str).unwrap(); 560 - // Just verify it parses without error 561 535 let _ = output; 562 536 } 563 537
+8 -7
crates/jacquard-common/src/xrpc/subscription.rs
··· 26 26 #[cfg(target_arch = "wasm32")] 27 27 use n0_future::stream::BoxedLocal as Boxed; 28 28 use serde::{Deserialize, Serialize}; 29 + use serde::de::DeserializeOwned; 29 30 30 31 /// Encoding format for subscription messages 31 32 #[derive(Debug, Clone, Copy, PartialEq, Eq)] ··· 53 54 /// Message union type 54 55 type Message<'de>: Deserialize<'de> + IntoStatic; 55 56 56 - /// Error union type 57 - type Error<'de>: Error + Deserialize<'de> + IntoStatic; 57 + /// Error union type. Always owned (`DeserializeOwned`). 58 + type Error: Error + DeserializeOwned; 58 59 59 60 /// Decode a message from bytes. 60 61 /// ··· 531 532 } 532 533 533 534 /// Converts the subscription into a stream of loosely-typed atproto data. 534 - pub fn into_data_stream(self) -> (WsSink, Boxed<Result<Data<'static>, StreamError>>) { 535 + pub fn into_data_stream(self) -> (WsSink, Boxed<Result<Data<smol_str::SmolStr>, StreamError>>) { 535 536 use n0_future::StreamExt as _; 536 537 537 538 let (tx, rx) = self.connection.split(); 538 539 539 - fn parse_msg<'a>(bytes: &'a [u8]) -> Result<Data<'a>, serde_json::Error> { 540 + fn parse_msg(bytes: &[u8]) -> Result<Data<smol_str::SmolStr>, serde_json::Error> { 540 541 serde_json::from_slice(bytes) 541 542 } 542 - fn parse_cbor<'a>( 543 - bytes: &'a [u8], 544 - ) -> Result<Data<'a>, serde_ipld_dagcbor::DecodeError<core::convert::Infallible>> { 543 + fn parse_cbor( 544 + bytes: &[u8], 545 + ) -> Result<Data<smol_str::SmolStr>, serde_ipld_dagcbor::DecodeError<core::convert::Infallible>> { 545 546 serde_ipld_dagcbor::from_slice(bytes) 546 547 } 547 548