Live video on the AT Protocol

iroh: set up project for iroh-streamplace

+7696 -38
+1
.gitignore
··· 20 20 oom 21 21 *.tsbuildinfo 22 22 node-compile-cache 23 + target
+4713
Cargo.lock
··· 1 + # This file is automatically @generated by Cargo. 2 + # It is not intended for manual editing. 3 + version = 4 4 + 5 + [[package]] 6 + name = "acto" 7 + version = "0.7.4" 8 + source = "registry+https://github.com/rust-lang/crates.io-index" 9 + checksum = "a026259da4f1a13b4af60cda453c392de64c58c12d239c560923e0382f42f2b9" 10 + dependencies = [ 11 + "parking_lot", 12 + "pin-project-lite", 13 + "rustc_version", 14 + "smol_str", 15 + "tokio", 16 + "tracing", 17 + ] 18 + 19 + [[package]] 20 + name = "addr2line" 21 + version = "0.24.2" 22 + source = "registry+https://github.com/rust-lang/crates.io-index" 23 + checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" 24 + dependencies = [ 25 + "gimli", 26 + ] 27 + 28 + [[package]] 29 + name = "adler2" 30 + version = "2.0.1" 31 + source = "registry+https://github.com/rust-lang/crates.io-index" 32 + checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" 33 + 34 + [[package]] 35 + name = "aead" 36 + version = "0.5.2" 37 + source = "registry+https://github.com/rust-lang/crates.io-index" 38 + checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" 39 + dependencies = [ 40 + "bytes", 41 + "crypto-common", 42 + "generic-array", 43 + ] 44 + 45 + [[package]] 46 + name = "aho-corasick" 47 + version = "1.1.3" 48 + source = "registry+https://github.com/rust-lang/crates.io-index" 49 + checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" 50 + dependencies = [ 51 + "memchr", 52 + ] 53 + 54 + [[package]] 55 + name = "allocator-api2" 56 + version = "0.2.21" 57 + source = "registry+https://github.com/rust-lang/crates.io-index" 58 + checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" 59 + 60 + [[package]] 61 + name = "android-tzdata" 62 + version = "0.1.1" 63 + source = "registry+https://github.com/rust-lang/crates.io-index" 64 + checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" 65 + 66 + [[package]] 67 + name = "android_system_properties" 68 + version = "0.1.5" 69 + source = "registry+https://github.com/rust-lang/crates.io-index" 70 + checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 71 + dependencies = [ 72 + "libc", 73 + ] 74 + 75 + [[package]] 76 + name = "anyhow" 77 + version = "1.0.99" 78 + source = "registry+https://github.com/rust-lang/crates.io-index" 79 + checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" 80 + dependencies = [ 81 + "backtrace", 82 + ] 83 + 84 + [[package]] 85 + name = "arrayref" 86 + version = "0.3.9" 87 + source = "registry+https://github.com/rust-lang/crates.io-index" 88 + checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" 89 + 90 + [[package]] 91 + name = "arrayvec" 92 + version = "0.7.6" 93 + source = "registry+https://github.com/rust-lang/crates.io-index" 94 + checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" 95 + 96 + [[package]] 97 + name = "askama" 98 + version = "0.12.1" 99 + source = "registry+https://github.com/rust-lang/crates.io-index" 100 + checksum = "b79091df18a97caea757e28cd2d5fda49c6cd4bd01ddffd7ff01ace0c0ad2c28" 101 + dependencies = [ 102 + "askama_derive", 103 + "askama_escape", 104 + ] 105 + 106 + [[package]] 107 + name = "askama_derive" 108 + version = "0.12.5" 109 + source = "registry+https://github.com/rust-lang/crates.io-index" 110 + checksum = "19fe8d6cb13c4714962c072ea496f3392015f0989b1a2847bb4b2d9effd71d83" 111 + dependencies = [ 112 + "askama_parser", 113 + "basic-toml", 114 + "mime", 115 + "mime_guess", 116 + "proc-macro2", 117 + "quote", 118 + "serde", 119 + "syn 2.0.105", 120 + ] 121 + 122 + [[package]] 123 + name = "askama_escape" 124 + version = "0.10.3" 125 + source = "registry+https://github.com/rust-lang/crates.io-index" 126 + checksum = "619743e34b5ba4e9703bba34deac3427c72507c7159f5fd030aea8cac0cfe341" 127 + 128 + [[package]] 129 + name = "askama_parser" 130 + version = "0.2.1" 131 + source = "registry+https://github.com/rust-lang/crates.io-index" 132 + checksum = "acb1161c6b64d1c3d83108213c2a2533a342ac225aabd0bda218278c2ddb00c0" 133 + dependencies = [ 134 + "nom", 135 + ] 136 + 137 + [[package]] 138 + name = "async-compat" 139 + version = "0.2.4" 140 + source = "registry+https://github.com/rust-lang/crates.io-index" 141 + checksum = "7bab94bde396a3f7b4962e396fdad640e241ed797d4d8d77fc8c237d14c58fc0" 142 + dependencies = [ 143 + "futures-core", 144 + "futures-io", 145 + "once_cell", 146 + "pin-project-lite", 147 + "tokio", 148 + ] 149 + 150 + [[package]] 151 + name = "async-trait" 152 + version = "0.1.89" 153 + source = "registry+https://github.com/rust-lang/crates.io-index" 154 + checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" 155 + dependencies = [ 156 + "proc-macro2", 157 + "quote", 158 + "syn 2.0.105", 159 + ] 160 + 161 + [[package]] 162 + name = "async_io_stream" 163 + version = "0.3.3" 164 + source = "registry+https://github.com/rust-lang/crates.io-index" 165 + checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" 166 + dependencies = [ 167 + "futures", 168 + "pharos", 169 + "rustc_version", 170 + ] 171 + 172 + [[package]] 173 + name = "atomic-polyfill" 174 + version = "1.0.3" 175 + source = "registry+https://github.com/rust-lang/crates.io-index" 176 + checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4" 177 + dependencies = [ 178 + "critical-section", 179 + ] 180 + 181 + [[package]] 182 + name = "atomic-waker" 183 + version = "1.1.2" 184 + source = "registry+https://github.com/rust-lang/crates.io-index" 185 + checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" 186 + 187 + [[package]] 188 + name = "attohttpc" 189 + version = "0.30.1" 190 + source = "registry+https://github.com/rust-lang/crates.io-index" 191 + checksum = "16e2cdb6d5ed835199484bb92bb8b3edd526effe995c61732580439c1a67e2e9" 192 + dependencies = [ 193 + "base64", 194 + "http", 195 + "log", 196 + "url", 197 + ] 198 + 199 + [[package]] 200 + name = "autocfg" 201 + version = "1.5.0" 202 + source = "registry+https://github.com/rust-lang/crates.io-index" 203 + checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" 204 + 205 + [[package]] 206 + name = "backon" 207 + version = "1.5.2" 208 + source = "registry+https://github.com/rust-lang/crates.io-index" 209 + checksum = "592277618714fbcecda9a02ba7a8781f319d26532a88553bbacc77ba5d2b3a8d" 210 + dependencies = [ 211 + "fastrand", 212 + "gloo-timers", 213 + "tokio", 214 + ] 215 + 216 + [[package]] 217 + name = "backtrace" 218 + version = "0.3.75" 219 + source = "registry+https://github.com/rust-lang/crates.io-index" 220 + checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" 221 + dependencies = [ 222 + "addr2line", 223 + "cfg-if", 224 + "libc", 225 + "miniz_oxide", 226 + "object", 227 + "rustc-demangle", 228 + "windows-targets 0.52.6", 229 + ] 230 + 231 + [[package]] 232 + name = "base16ct" 233 + version = "0.2.0" 234 + source = "registry+https://github.com/rust-lang/crates.io-index" 235 + checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" 236 + 237 + [[package]] 238 + name = "base32" 239 + version = "0.5.1" 240 + source = "registry+https://github.com/rust-lang/crates.io-index" 241 + checksum = "022dfe9eb35f19ebbcb51e0b40a5ab759f46ad60cadf7297e0bd085afb50e076" 242 + 243 + [[package]] 244 + name = "base64" 245 + version = "0.22.1" 246 + source = "registry+https://github.com/rust-lang/crates.io-index" 247 + checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 248 + 249 + [[package]] 250 + name = "base64ct" 251 + version = "1.8.0" 252 + source = "registry+https://github.com/rust-lang/crates.io-index" 253 + checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" 254 + 255 + [[package]] 256 + name = "basic-toml" 257 + version = "0.1.10" 258 + source = "registry+https://github.com/rust-lang/crates.io-index" 259 + checksum = "ba62675e8242a4c4e806d12f11d136e626e6c8361d6b829310732241652a178a" 260 + dependencies = [ 261 + "serde", 262 + ] 263 + 264 + [[package]] 265 + name = "bincode" 266 + version = "1.3.3" 267 + source = "registry+https://github.com/rust-lang/crates.io-index" 268 + checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" 269 + dependencies = [ 270 + "serde", 271 + ] 272 + 273 + [[package]] 274 + name = "bitflags" 275 + version = "2.9.1" 276 + source = "registry+https://github.com/rust-lang/crates.io-index" 277 + checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" 278 + 279 + [[package]] 280 + name = "blake3" 281 + version = "1.8.2" 282 + source = "registry+https://github.com/rust-lang/crates.io-index" 283 + checksum = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0" 284 + dependencies = [ 285 + "arrayref", 286 + "arrayvec", 287 + "cc", 288 + "cfg-if", 289 + "constant_time_eq", 290 + ] 291 + 292 + [[package]] 293 + name = "block-buffer" 294 + version = "0.10.4" 295 + source = "registry+https://github.com/rust-lang/crates.io-index" 296 + checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 297 + dependencies = [ 298 + "generic-array", 299 + ] 300 + 301 + [[package]] 302 + name = "bounded-integer" 303 + version = "0.5.8" 304 + source = "registry+https://github.com/rust-lang/crates.io-index" 305 + checksum = "102dbef1187b1893e6dfe05a774e79fd52265f49f214f6879c8ff49f52c8188b" 306 + 307 + [[package]] 308 + name = "btparse" 309 + version = "0.2.0" 310 + source = "registry+https://github.com/rust-lang/crates.io-index" 311 + checksum = "387e80962b798815a2b5c4bcfdb6bf626fa922ffe9f74e373103b858738e9f31" 312 + 313 + [[package]] 314 + name = "bumpalo" 315 + version = "3.19.0" 316 + source = "registry+https://github.com/rust-lang/crates.io-index" 317 + checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" 318 + 319 + [[package]] 320 + name = "byteorder" 321 + version = "1.5.0" 322 + source = "registry+https://github.com/rust-lang/crates.io-index" 323 + checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 324 + 325 + [[package]] 326 + name = "bytes" 327 + version = "1.10.1" 328 + source = "registry+https://github.com/rust-lang/crates.io-index" 329 + checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" 330 + dependencies = [ 331 + "serde", 332 + ] 333 + 334 + [[package]] 335 + name = "camino" 336 + version = "1.1.11" 337 + source = "registry+https://github.com/rust-lang/crates.io-index" 338 + checksum = "5d07aa9a93b00c76f71bc35d598bed923f6d4f3a9ca5c24b7737ae1a292841c0" 339 + dependencies = [ 340 + "serde", 341 + ] 342 + 343 + [[package]] 344 + name = "cargo-platform" 345 + version = "0.1.9" 346 + source = "registry+https://github.com/rust-lang/crates.io-index" 347 + checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" 348 + dependencies = [ 349 + "serde", 350 + ] 351 + 352 + [[package]] 353 + name = "cargo_metadata" 354 + version = "0.15.4" 355 + source = "registry+https://github.com/rust-lang/crates.io-index" 356 + checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a" 357 + dependencies = [ 358 + "camino", 359 + "cargo-platform", 360 + "semver", 361 + "serde", 362 + "serde_json", 363 + "thiserror 1.0.69", 364 + ] 365 + 366 + [[package]] 367 + name = "cc" 368 + version = "1.2.32" 369 + source = "registry+https://github.com/rust-lang/crates.io-index" 370 + checksum = "2352e5597e9c544d5e6d9c95190d5d27738ade584fa8db0a16e130e5c2b5296e" 371 + dependencies = [ 372 + "shlex", 373 + ] 374 + 375 + [[package]] 376 + name = "cfg-if" 377 + version = "1.0.1" 378 + source = "registry+https://github.com/rust-lang/crates.io-index" 379 + checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" 380 + 381 + [[package]] 382 + name = "cfg_aliases" 383 + version = "0.2.1" 384 + source = "registry+https://github.com/rust-lang/crates.io-index" 385 + checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" 386 + 387 + [[package]] 388 + name = "chacha20" 389 + version = "0.9.1" 390 + source = "registry+https://github.com/rust-lang/crates.io-index" 391 + checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" 392 + dependencies = [ 393 + "cfg-if", 394 + "cipher", 395 + "cpufeatures", 396 + ] 397 + 398 + [[package]] 399 + name = "chrono" 400 + version = "0.4.41" 401 + source = "registry+https://github.com/rust-lang/crates.io-index" 402 + checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" 403 + dependencies = [ 404 + "android-tzdata", 405 + "iana-time-zone", 406 + "num-traits", 407 + "serde", 408 + "windows-link", 409 + ] 410 + 411 + [[package]] 412 + name = "cipher" 413 + version = "0.4.4" 414 + source = "registry+https://github.com/rust-lang/crates.io-index" 415 + checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" 416 + dependencies = [ 417 + "crypto-common", 418 + "inout", 419 + "zeroize", 420 + ] 421 + 422 + [[package]] 423 + name = "cobs" 424 + version = "0.3.0" 425 + source = "registry+https://github.com/rust-lang/crates.io-index" 426 + checksum = "0fa961b519f0b462e3a3b4a34b64d119eeaca1d59af726fe450bbba07a9fc0a1" 427 + dependencies = [ 428 + "thiserror 2.0.14", 429 + ] 430 + 431 + [[package]] 432 + name = "color-backtrace" 433 + version = "0.7.0" 434 + source = "registry+https://github.com/rust-lang/crates.io-index" 435 + checksum = "2123a5984bd52ca861c66f66a9ab9883b27115c607f801f86c1bc2a84eb69f0f" 436 + dependencies = [ 437 + "backtrace", 438 + "btparse", 439 + "termcolor", 440 + ] 441 + 442 + [[package]] 443 + name = "const-oid" 444 + version = "0.9.6" 445 + source = "registry+https://github.com/rust-lang/crates.io-index" 446 + checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" 447 + 448 + [[package]] 449 + name = "constant_time_eq" 450 + version = "0.3.1" 451 + source = "registry+https://github.com/rust-lang/crates.io-index" 452 + checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" 453 + 454 + [[package]] 455 + name = "cordyceps" 456 + version = "0.3.4" 457 + source = "registry+https://github.com/rust-lang/crates.io-index" 458 + checksum = "688d7fbb8092b8de775ef2536f36c8c31f2bc4006ece2e8d8ad2d17d00ce0a2a" 459 + dependencies = [ 460 + "loom", 461 + "tracing", 462 + ] 463 + 464 + [[package]] 465 + name = "core-foundation" 466 + version = "0.9.4" 467 + source = "registry+https://github.com/rust-lang/crates.io-index" 468 + checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" 469 + dependencies = [ 470 + "core-foundation-sys", 471 + "libc", 472 + ] 473 + 474 + [[package]] 475 + name = "core-foundation-sys" 476 + version = "0.8.7" 477 + source = "registry+https://github.com/rust-lang/crates.io-index" 478 + checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 479 + 480 + [[package]] 481 + name = "cpufeatures" 482 + version = "0.2.17" 483 + source = "registry+https://github.com/rust-lang/crates.io-index" 484 + checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" 485 + dependencies = [ 486 + "libc", 487 + ] 488 + 489 + [[package]] 490 + name = "crc" 491 + version = "3.3.0" 492 + source = "registry+https://github.com/rust-lang/crates.io-index" 493 + checksum = "9710d3b3739c2e349eb44fe848ad0b7c8cb1e42bd87ee49371df2f7acaf3e675" 494 + dependencies = [ 495 + "crc-catalog", 496 + ] 497 + 498 + [[package]] 499 + name = "crc-catalog" 500 + version = "2.4.0" 501 + source = "registry+https://github.com/rust-lang/crates.io-index" 502 + checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" 503 + 504 + [[package]] 505 + name = "critical-section" 506 + version = "1.2.0" 507 + source = "registry+https://github.com/rust-lang/crates.io-index" 508 + checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" 509 + 510 + [[package]] 511 + name = "crossbeam-channel" 512 + version = "0.5.15" 513 + source = "registry+https://github.com/rust-lang/crates.io-index" 514 + checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" 515 + dependencies = [ 516 + "crossbeam-utils", 517 + ] 518 + 519 + [[package]] 520 + name = "crossbeam-epoch" 521 + version = "0.9.18" 522 + source = "registry+https://github.com/rust-lang/crates.io-index" 523 + checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" 524 + dependencies = [ 525 + "crossbeam-utils", 526 + ] 527 + 528 + [[package]] 529 + name = "crossbeam-utils" 530 + version = "0.8.21" 531 + source = "registry+https://github.com/rust-lang/crates.io-index" 532 + checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" 533 + 534 + [[package]] 535 + name = "crypto-common" 536 + version = "0.1.6" 537 + source = "registry+https://github.com/rust-lang/crates.io-index" 538 + checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 539 + dependencies = [ 540 + "generic-array", 541 + "rand_core 0.6.4", 542 + "typenum", 543 + ] 544 + 545 + [[package]] 546 + name = "crypto_box" 547 + version = "0.9.1" 548 + source = "registry+https://github.com/rust-lang/crates.io-index" 549 + checksum = "16182b4f39a82ec8a6851155cc4c0cda3065bb1db33651726a29e1951de0f009" 550 + dependencies = [ 551 + "aead", 552 + "chacha20", 553 + "crypto_secretbox", 554 + "curve25519-dalek", 555 + "salsa20", 556 + "serdect", 557 + "subtle", 558 + "zeroize", 559 + ] 560 + 561 + [[package]] 562 + name = "crypto_secretbox" 563 + version = "0.1.1" 564 + source = "registry+https://github.com/rust-lang/crates.io-index" 565 + checksum = "b9d6cf87adf719ddf43a805e92c6870a531aedda35ff640442cbaf8674e141e1" 566 + dependencies = [ 567 + "aead", 568 + "chacha20", 569 + "cipher", 570 + "generic-array", 571 + "poly1305", 572 + "salsa20", 573 + "subtle", 574 + "zeroize", 575 + ] 576 + 577 + [[package]] 578 + name = "curve25519-dalek" 579 + version = "4.1.3" 580 + source = "registry+https://github.com/rust-lang/crates.io-index" 581 + checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" 582 + dependencies = [ 583 + "cfg-if", 584 + "cpufeatures", 585 + "curve25519-dalek-derive", 586 + "digest", 587 + "fiat-crypto", 588 + "rand_core 0.6.4", 589 + "rustc_version", 590 + "serde", 591 + "subtle", 592 + "zeroize", 593 + ] 594 + 595 + [[package]] 596 + name = "curve25519-dalek-derive" 597 + version = "0.1.1" 598 + source = "registry+https://github.com/rust-lang/crates.io-index" 599 + checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" 600 + dependencies = [ 601 + "proc-macro2", 602 + "quote", 603 + "syn 2.0.105", 604 + ] 605 + 606 + [[package]] 607 + name = "data-encoding" 608 + version = "2.9.0" 609 + source = "registry+https://github.com/rust-lang/crates.io-index" 610 + checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" 611 + 612 + [[package]] 613 + name = "der" 614 + version = "0.7.10" 615 + source = "registry+https://github.com/rust-lang/crates.io-index" 616 + checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" 617 + dependencies = [ 618 + "const-oid", 619 + "der_derive", 620 + "pem-rfc7468", 621 + "zeroize", 622 + ] 623 + 624 + [[package]] 625 + name = "der_derive" 626 + version = "0.7.3" 627 + source = "registry+https://github.com/rust-lang/crates.io-index" 628 + checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18" 629 + dependencies = [ 630 + "proc-macro2", 631 + "quote", 632 + "syn 2.0.105", 633 + ] 634 + 635 + [[package]] 636 + name = "deranged" 637 + version = "0.4.0" 638 + source = "registry+https://github.com/rust-lang/crates.io-index" 639 + checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" 640 + dependencies = [ 641 + "powerfmt", 642 + ] 643 + 644 + [[package]] 645 + name = "derive_more" 646 + version = "1.0.0" 647 + source = "registry+https://github.com/rust-lang/crates.io-index" 648 + checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" 649 + dependencies = [ 650 + "derive_more-impl 1.0.0", 651 + ] 652 + 653 + [[package]] 654 + name = "derive_more" 655 + version = "2.0.1" 656 + source = "registry+https://github.com/rust-lang/crates.io-index" 657 + checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" 658 + dependencies = [ 659 + "derive_more-impl 2.0.1", 660 + ] 661 + 662 + [[package]] 663 + name = "derive_more-impl" 664 + version = "1.0.0" 665 + source = "registry+https://github.com/rust-lang/crates.io-index" 666 + checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" 667 + dependencies = [ 668 + "proc-macro2", 669 + "quote", 670 + "syn 2.0.105", 671 + "unicode-xid", 672 + ] 673 + 674 + [[package]] 675 + name = "derive_more-impl" 676 + version = "2.0.1" 677 + source = "registry+https://github.com/rust-lang/crates.io-index" 678 + checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" 679 + dependencies = [ 680 + "proc-macro2", 681 + "quote", 682 + "syn 2.0.105", 683 + "unicode-xid", 684 + ] 685 + 686 + [[package]] 687 + name = "diatomic-waker" 688 + version = "0.2.3" 689 + source = "registry+https://github.com/rust-lang/crates.io-index" 690 + checksum = "ab03c107fafeb3ee9f5925686dbb7a73bc76e3932abb0d2b365cb64b169cf04c" 691 + 692 + [[package]] 693 + name = "digest" 694 + version = "0.10.7" 695 + source = "registry+https://github.com/rust-lang/crates.io-index" 696 + checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 697 + dependencies = [ 698 + "block-buffer", 699 + "crypto-common", 700 + "subtle", 701 + ] 702 + 703 + [[package]] 704 + name = "displaydoc" 705 + version = "0.2.5" 706 + source = "registry+https://github.com/rust-lang/crates.io-index" 707 + checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" 708 + dependencies = [ 709 + "proc-macro2", 710 + "quote", 711 + "syn 2.0.105", 712 + ] 713 + 714 + [[package]] 715 + name = "dlopen2" 716 + version = "0.5.0" 717 + source = "registry+https://github.com/rust-lang/crates.io-index" 718 + checksum = "09b4f5f101177ff01b8ec4ecc81eead416a8aa42819a2869311b3420fa114ffa" 719 + dependencies = [ 720 + "libc", 721 + "once_cell", 722 + "winapi", 723 + ] 724 + 725 + [[package]] 726 + name = "document-features" 727 + version = "0.2.11" 728 + source = "registry+https://github.com/rust-lang/crates.io-index" 729 + checksum = "95249b50c6c185bee49034bcb378a49dc2b5dff0be90ff6616d31d64febab05d" 730 + dependencies = [ 731 + "litrs", 732 + ] 733 + 734 + [[package]] 735 + name = "dyn-clone" 736 + version = "1.0.20" 737 + source = "registry+https://github.com/rust-lang/crates.io-index" 738 + checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" 739 + 740 + [[package]] 741 + name = "ed25519" 742 + version = "2.2.3" 743 + source = "registry+https://github.com/rust-lang/crates.io-index" 744 + checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" 745 + dependencies = [ 746 + "pkcs8", 747 + "serde", 748 + "signature", 749 + ] 750 + 751 + [[package]] 752 + name = "ed25519-dalek" 753 + version = "2.2.0" 754 + source = "registry+https://github.com/rust-lang/crates.io-index" 755 + checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" 756 + dependencies = [ 757 + "curve25519-dalek", 758 + "ed25519", 759 + "rand_core 0.6.4", 760 + "serde", 761 + "sha2", 762 + "subtle", 763 + "zeroize", 764 + ] 765 + 766 + [[package]] 767 + name = "embedded-io" 768 + version = "0.4.0" 769 + source = "registry+https://github.com/rust-lang/crates.io-index" 770 + checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" 771 + 772 + [[package]] 773 + name = "embedded-io" 774 + version = "0.6.1" 775 + source = "registry+https://github.com/rust-lang/crates.io-index" 776 + checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" 777 + 778 + [[package]] 779 + name = "enum-as-inner" 780 + version = "0.6.1" 781 + source = "registry+https://github.com/rust-lang/crates.io-index" 782 + checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" 783 + dependencies = [ 784 + "heck", 785 + "proc-macro2", 786 + "quote", 787 + "syn 2.0.105", 788 + ] 789 + 790 + [[package]] 791 + name = "enumflags2" 792 + version = "0.7.12" 793 + source = "registry+https://github.com/rust-lang/crates.io-index" 794 + checksum = "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef" 795 + dependencies = [ 796 + "enumflags2_derive", 797 + ] 798 + 799 + [[package]] 800 + name = "enumflags2_derive" 801 + version = "0.7.12" 802 + source = "registry+https://github.com/rust-lang/crates.io-index" 803 + checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" 804 + dependencies = [ 805 + "proc-macro2", 806 + "quote", 807 + "syn 2.0.105", 808 + ] 809 + 810 + [[package]] 811 + name = "equivalent" 812 + version = "1.0.2" 813 + source = "registry+https://github.com/rust-lang/crates.io-index" 814 + checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" 815 + 816 + [[package]] 817 + name = "fallible-iterator" 818 + version = "0.3.0" 819 + source = "registry+https://github.com/rust-lang/crates.io-index" 820 + checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" 821 + 822 + [[package]] 823 + name = "fastrand" 824 + version = "2.3.0" 825 + source = "registry+https://github.com/rust-lang/crates.io-index" 826 + checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" 827 + 828 + [[package]] 829 + name = "fiat-crypto" 830 + version = "0.2.9" 831 + source = "registry+https://github.com/rust-lang/crates.io-index" 832 + checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" 833 + 834 + [[package]] 835 + name = "fnv" 836 + version = "1.0.7" 837 + source = "registry+https://github.com/rust-lang/crates.io-index" 838 + checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 839 + 840 + [[package]] 841 + name = "foldhash" 842 + version = "0.1.5" 843 + source = "registry+https://github.com/rust-lang/crates.io-index" 844 + checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" 845 + 846 + [[package]] 847 + name = "form_urlencoded" 848 + version = "1.2.1" 849 + source = "registry+https://github.com/rust-lang/crates.io-index" 850 + checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" 851 + dependencies = [ 852 + "percent-encoding", 853 + ] 854 + 855 + [[package]] 856 + name = "fs-err" 857 + version = "2.11.0" 858 + source = "registry+https://github.com/rust-lang/crates.io-index" 859 + checksum = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41" 860 + dependencies = [ 861 + "autocfg", 862 + ] 863 + 864 + [[package]] 865 + name = "futures" 866 + version = "0.3.31" 867 + source = "registry+https://github.com/rust-lang/crates.io-index" 868 + checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" 869 + dependencies = [ 870 + "futures-channel", 871 + "futures-core", 872 + "futures-executor", 873 + "futures-io", 874 + "futures-sink", 875 + "futures-task", 876 + "futures-util", 877 + ] 878 + 879 + [[package]] 880 + name = "futures-buffered" 881 + version = "0.2.12" 882 + source = "registry+https://github.com/rust-lang/crates.io-index" 883 + checksum = "a8e0e1f38ec07ba4abbde21eed377082f17ccb988be9d988a5adbf4bafc118fd" 884 + dependencies = [ 885 + "cordyceps", 886 + "diatomic-waker", 887 + "futures-core", 888 + "pin-project-lite", 889 + "spin 0.10.0", 890 + ] 891 + 892 + [[package]] 893 + name = "futures-channel" 894 + version = "0.3.31" 895 + source = "registry+https://github.com/rust-lang/crates.io-index" 896 + checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" 897 + dependencies = [ 898 + "futures-core", 899 + "futures-sink", 900 + ] 901 + 902 + [[package]] 903 + name = "futures-core" 904 + version = "0.3.31" 905 + source = "registry+https://github.com/rust-lang/crates.io-index" 906 + checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" 907 + 908 + [[package]] 909 + name = "futures-executor" 910 + version = "0.3.31" 911 + source = "registry+https://github.com/rust-lang/crates.io-index" 912 + checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" 913 + dependencies = [ 914 + "futures-core", 915 + "futures-task", 916 + "futures-util", 917 + ] 918 + 919 + [[package]] 920 + name = "futures-io" 921 + version = "0.3.31" 922 + source = "registry+https://github.com/rust-lang/crates.io-index" 923 + checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" 924 + 925 + [[package]] 926 + name = "futures-lite" 927 + version = "2.6.1" 928 + source = "registry+https://github.com/rust-lang/crates.io-index" 929 + checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" 930 + dependencies = [ 931 + "fastrand", 932 + "futures-core", 933 + "futures-io", 934 + "parking", 935 + "pin-project-lite", 936 + ] 937 + 938 + [[package]] 939 + name = "futures-macro" 940 + version = "0.3.31" 941 + source = "registry+https://github.com/rust-lang/crates.io-index" 942 + checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" 943 + dependencies = [ 944 + "proc-macro2", 945 + "quote", 946 + "syn 2.0.105", 947 + ] 948 + 949 + [[package]] 950 + name = "futures-sink" 951 + version = "0.3.31" 952 + source = "registry+https://github.com/rust-lang/crates.io-index" 953 + checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" 954 + 955 + [[package]] 956 + name = "futures-task" 957 + version = "0.3.31" 958 + source = "registry+https://github.com/rust-lang/crates.io-index" 959 + checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" 960 + 961 + [[package]] 962 + name = "futures-util" 963 + version = "0.3.31" 964 + source = "registry+https://github.com/rust-lang/crates.io-index" 965 + checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" 966 + dependencies = [ 967 + "futures-channel", 968 + "futures-core", 969 + "futures-io", 970 + "futures-macro", 971 + "futures-sink", 972 + "futures-task", 973 + "memchr", 974 + "pin-project-lite", 975 + "pin-utils", 976 + "slab", 977 + ] 978 + 979 + [[package]] 980 + name = "generator" 981 + version = "0.8.5" 982 + source = "registry+https://github.com/rust-lang/crates.io-index" 983 + checksum = "d18470a76cb7f8ff746cf1f7470914f900252ec36bbc40b569d74b1258446827" 984 + dependencies = [ 985 + "cc", 986 + "cfg-if", 987 + "libc", 988 + "log", 989 + "rustversion", 990 + "windows", 991 + ] 992 + 993 + [[package]] 994 + name = "generic-array" 995 + version = "0.14.7" 996 + source = "registry+https://github.com/rust-lang/crates.io-index" 997 + checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 998 + dependencies = [ 999 + "typenum", 1000 + "version_check", 1001 + "zeroize", 1002 + ] 1003 + 1004 + [[package]] 1005 + name = "getrandom" 1006 + version = "0.2.16" 1007 + source = "registry+https://github.com/rust-lang/crates.io-index" 1008 + checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" 1009 + dependencies = [ 1010 + "cfg-if", 1011 + "js-sys", 1012 + "libc", 1013 + "wasi 0.11.1+wasi-snapshot-preview1", 1014 + "wasm-bindgen", 1015 + ] 1016 + 1017 + [[package]] 1018 + name = "getrandom" 1019 + version = "0.3.3" 1020 + source = "registry+https://github.com/rust-lang/crates.io-index" 1021 + checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" 1022 + dependencies = [ 1023 + "cfg-if", 1024 + "js-sys", 1025 + "libc", 1026 + "r-efi", 1027 + "wasi 0.14.2+wasi-0.2.4", 1028 + "wasm-bindgen", 1029 + ] 1030 + 1031 + [[package]] 1032 + name = "gimli" 1033 + version = "0.31.1" 1034 + source = "registry+https://github.com/rust-lang/crates.io-index" 1035 + checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" 1036 + 1037 + [[package]] 1038 + name = "glob" 1039 + version = "0.3.3" 1040 + source = "registry+https://github.com/rust-lang/crates.io-index" 1041 + checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" 1042 + 1043 + [[package]] 1044 + name = "gloo-timers" 1045 + version = "0.3.0" 1046 + source = "registry+https://github.com/rust-lang/crates.io-index" 1047 + checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" 1048 + dependencies = [ 1049 + "futures-channel", 1050 + "futures-core", 1051 + "js-sys", 1052 + "wasm-bindgen", 1053 + ] 1054 + 1055 + [[package]] 1056 + name = "goblin" 1057 + version = "0.8.2" 1058 + source = "registry+https://github.com/rust-lang/crates.io-index" 1059 + checksum = "1b363a30c165f666402fe6a3024d3bec7ebc898f96a4a23bd1c99f8dbf3f4f47" 1060 + dependencies = [ 1061 + "log", 1062 + "plain", 1063 + "scroll", 1064 + ] 1065 + 1066 + [[package]] 1067 + name = "h2" 1068 + version = "0.4.12" 1069 + source = "registry+https://github.com/rust-lang/crates.io-index" 1070 + checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" 1071 + dependencies = [ 1072 + "atomic-waker", 1073 + "bytes", 1074 + "fnv", 1075 + "futures-core", 1076 + "futures-sink", 1077 + "http", 1078 + "indexmap", 1079 + "slab", 1080 + "tokio", 1081 + "tokio-util", 1082 + "tracing", 1083 + ] 1084 + 1085 + [[package]] 1086 + name = "hash32" 1087 + version = "0.2.1" 1088 + source = "registry+https://github.com/rust-lang/crates.io-index" 1089 + checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" 1090 + dependencies = [ 1091 + "byteorder", 1092 + ] 1093 + 1094 + [[package]] 1095 + name = "hashbrown" 1096 + version = "0.15.5" 1097 + source = "registry+https://github.com/rust-lang/crates.io-index" 1098 + checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" 1099 + dependencies = [ 1100 + "allocator-api2", 1101 + "equivalent", 1102 + "foldhash", 1103 + ] 1104 + 1105 + [[package]] 1106 + name = "heapless" 1107 + version = "0.7.17" 1108 + source = "registry+https://github.com/rust-lang/crates.io-index" 1109 + checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" 1110 + dependencies = [ 1111 + "atomic-polyfill", 1112 + "hash32", 1113 + "rustc_version", 1114 + "serde", 1115 + "spin 0.9.8", 1116 + "stable_deref_trait", 1117 + ] 1118 + 1119 + [[package]] 1120 + name = "heck" 1121 + version = "0.5.0" 1122 + source = "registry+https://github.com/rust-lang/crates.io-index" 1123 + checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" 1124 + 1125 + [[package]] 1126 + name = "hex" 1127 + version = "0.4.3" 1128 + source = "registry+https://github.com/rust-lang/crates.io-index" 1129 + checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" 1130 + 1131 + [[package]] 1132 + name = "hickory-proto" 1133 + version = "0.25.2" 1134 + source = "registry+https://github.com/rust-lang/crates.io-index" 1135 + checksum = "f8a6fe56c0038198998a6f217ca4e7ef3a5e51f46163bd6dd60b5c71ca6c6502" 1136 + dependencies = [ 1137 + "async-trait", 1138 + "cfg-if", 1139 + "data-encoding", 1140 + "enum-as-inner", 1141 + "futures-channel", 1142 + "futures-io", 1143 + "futures-util", 1144 + "idna", 1145 + "ipnet", 1146 + "once_cell", 1147 + "rand 0.9.2", 1148 + "ring", 1149 + "thiserror 2.0.14", 1150 + "tinyvec", 1151 + "tokio", 1152 + "tracing", 1153 + "url", 1154 + ] 1155 + 1156 + [[package]] 1157 + name = "hickory-resolver" 1158 + version = "0.25.2" 1159 + source = "registry+https://github.com/rust-lang/crates.io-index" 1160 + checksum = "dc62a9a99b0bfb44d2ab95a7208ac952d31060efc16241c87eaf36406fecf87a" 1161 + dependencies = [ 1162 + "cfg-if", 1163 + "futures-util", 1164 + "hickory-proto", 1165 + "ipconfig", 1166 + "moka", 1167 + "once_cell", 1168 + "parking_lot", 1169 + "rand 0.9.2", 1170 + "resolv-conf", 1171 + "smallvec", 1172 + "thiserror 2.0.14", 1173 + "tokio", 1174 + "tracing", 1175 + ] 1176 + 1177 + [[package]] 1178 + name = "hmac" 1179 + version = "0.12.1" 1180 + source = "registry+https://github.com/rust-lang/crates.io-index" 1181 + checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" 1182 + dependencies = [ 1183 + "digest", 1184 + ] 1185 + 1186 + [[package]] 1187 + name = "hmac-sha1" 1188 + version = "0.2.2" 1189 + source = "registry+https://github.com/rust-lang/crates.io-index" 1190 + checksum = "6b05da5b9e5d4720bfb691eebb2b9d42da3570745da71eac8a1f5bb7e59aab88" 1191 + dependencies = [ 1192 + "hmac", 1193 + "sha1", 1194 + ] 1195 + 1196 + [[package]] 1197 + name = "hmac-sha256" 1198 + version = "1.1.12" 1199 + source = "registry+https://github.com/rust-lang/crates.io-index" 1200 + checksum = "ad6880c8d4a9ebf39c6e8b77007ce223f646a4d21ce29d99f70cb16420545425" 1201 + 1202 + [[package]] 1203 + name = "hostname-validator" 1204 + version = "1.1.1" 1205 + source = "registry+https://github.com/rust-lang/crates.io-index" 1206 + checksum = "f558a64ac9af88b5ba400d99b579451af0d39c6d360980045b91aac966d705e2" 1207 + 1208 + [[package]] 1209 + name = "http" 1210 + version = "1.3.1" 1211 + source = "registry+https://github.com/rust-lang/crates.io-index" 1212 + checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" 1213 + dependencies = [ 1214 + "bytes", 1215 + "fnv", 1216 + "itoa", 1217 + ] 1218 + 1219 + [[package]] 1220 + name = "http-body" 1221 + version = "1.0.1" 1222 + source = "registry+https://github.com/rust-lang/crates.io-index" 1223 + checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" 1224 + dependencies = [ 1225 + "bytes", 1226 + "http", 1227 + ] 1228 + 1229 + [[package]] 1230 + name = "http-body-util" 1231 + version = "0.1.3" 1232 + source = "registry+https://github.com/rust-lang/crates.io-index" 1233 + checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" 1234 + dependencies = [ 1235 + "bytes", 1236 + "futures-core", 1237 + "http", 1238 + "http-body", 1239 + "pin-project-lite", 1240 + ] 1241 + 1242 + [[package]] 1243 + name = "httparse" 1244 + version = "1.10.1" 1245 + source = "registry+https://github.com/rust-lang/crates.io-index" 1246 + checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" 1247 + 1248 + [[package]] 1249 + name = "httpdate" 1250 + version = "1.0.3" 1251 + source = "registry+https://github.com/rust-lang/crates.io-index" 1252 + checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" 1253 + 1254 + [[package]] 1255 + name = "hyper" 1256 + version = "1.6.0" 1257 + source = "registry+https://github.com/rust-lang/crates.io-index" 1258 + checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" 1259 + dependencies = [ 1260 + "bytes", 1261 + "futures-channel", 1262 + "futures-util", 1263 + "h2", 1264 + "http", 1265 + "http-body", 1266 + "httparse", 1267 + "httpdate", 1268 + "itoa", 1269 + "pin-project-lite", 1270 + "smallvec", 1271 + "tokio", 1272 + "want", 1273 + ] 1274 + 1275 + [[package]] 1276 + name = "hyper-rustls" 1277 + version = "0.27.7" 1278 + source = "registry+https://github.com/rust-lang/crates.io-index" 1279 + checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" 1280 + dependencies = [ 1281 + "http", 1282 + "hyper", 1283 + "hyper-util", 1284 + "rustls", 1285 + "rustls-pki-types", 1286 + "tokio", 1287 + "tokio-rustls", 1288 + "tower-service", 1289 + "webpki-roots 1.0.2", 1290 + ] 1291 + 1292 + [[package]] 1293 + name = "hyper-util" 1294 + version = "0.1.16" 1295 + source = "registry+https://github.com/rust-lang/crates.io-index" 1296 + checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" 1297 + dependencies = [ 1298 + "base64", 1299 + "bytes", 1300 + "futures-channel", 1301 + "futures-core", 1302 + "futures-util", 1303 + "http", 1304 + "http-body", 1305 + "hyper", 1306 + "ipnet", 1307 + "libc", 1308 + "percent-encoding", 1309 + "pin-project-lite", 1310 + "socket2 0.6.0", 1311 + "tokio", 1312 + "tower-service", 1313 + "tracing", 1314 + ] 1315 + 1316 + [[package]] 1317 + name = "iana-time-zone" 1318 + version = "0.1.63" 1319 + source = "registry+https://github.com/rust-lang/crates.io-index" 1320 + checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" 1321 + dependencies = [ 1322 + "android_system_properties", 1323 + "core-foundation-sys", 1324 + "iana-time-zone-haiku", 1325 + "js-sys", 1326 + "log", 1327 + "wasm-bindgen", 1328 + "windows-core", 1329 + ] 1330 + 1331 + [[package]] 1332 + name = "iana-time-zone-haiku" 1333 + version = "0.1.2" 1334 + source = "registry+https://github.com/rust-lang/crates.io-index" 1335 + checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" 1336 + dependencies = [ 1337 + "cc", 1338 + ] 1339 + 1340 + [[package]] 1341 + name = "icu_collections" 1342 + version = "2.0.0" 1343 + source = "registry+https://github.com/rust-lang/crates.io-index" 1344 + checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" 1345 + dependencies = [ 1346 + "displaydoc", 1347 + "potential_utf", 1348 + "yoke", 1349 + "zerofrom", 1350 + "zerovec", 1351 + ] 1352 + 1353 + [[package]] 1354 + name = "icu_locale_core" 1355 + version = "2.0.0" 1356 + source = "registry+https://github.com/rust-lang/crates.io-index" 1357 + checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" 1358 + dependencies = [ 1359 + "displaydoc", 1360 + "litemap", 1361 + "tinystr", 1362 + "writeable", 1363 + "zerovec", 1364 + ] 1365 + 1366 + [[package]] 1367 + name = "icu_normalizer" 1368 + version = "2.0.0" 1369 + source = "registry+https://github.com/rust-lang/crates.io-index" 1370 + checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" 1371 + dependencies = [ 1372 + "displaydoc", 1373 + "icu_collections", 1374 + "icu_normalizer_data", 1375 + "icu_properties", 1376 + "icu_provider", 1377 + "smallvec", 1378 + "zerovec", 1379 + ] 1380 + 1381 + [[package]] 1382 + name = "icu_normalizer_data" 1383 + version = "2.0.0" 1384 + source = "registry+https://github.com/rust-lang/crates.io-index" 1385 + checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" 1386 + 1387 + [[package]] 1388 + name = "icu_properties" 1389 + version = "2.0.1" 1390 + source = "registry+https://github.com/rust-lang/crates.io-index" 1391 + checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" 1392 + dependencies = [ 1393 + "displaydoc", 1394 + "icu_collections", 1395 + "icu_locale_core", 1396 + "icu_properties_data", 1397 + "icu_provider", 1398 + "potential_utf", 1399 + "zerotrie", 1400 + "zerovec", 1401 + ] 1402 + 1403 + [[package]] 1404 + name = "icu_properties_data" 1405 + version = "2.0.1" 1406 + source = "registry+https://github.com/rust-lang/crates.io-index" 1407 + checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" 1408 + 1409 + [[package]] 1410 + name = "icu_provider" 1411 + version = "2.0.0" 1412 + source = "registry+https://github.com/rust-lang/crates.io-index" 1413 + checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" 1414 + dependencies = [ 1415 + "displaydoc", 1416 + "icu_locale_core", 1417 + "stable_deref_trait", 1418 + "tinystr", 1419 + "writeable", 1420 + "yoke", 1421 + "zerofrom", 1422 + "zerotrie", 1423 + "zerovec", 1424 + ] 1425 + 1426 + [[package]] 1427 + name = "idna" 1428 + version = "1.0.3" 1429 + source = "registry+https://github.com/rust-lang/crates.io-index" 1430 + checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" 1431 + dependencies = [ 1432 + "idna_adapter", 1433 + "smallvec", 1434 + "utf8_iter", 1435 + ] 1436 + 1437 + [[package]] 1438 + name = "idna_adapter" 1439 + version = "1.2.1" 1440 + source = "registry+https://github.com/rust-lang/crates.io-index" 1441 + checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" 1442 + dependencies = [ 1443 + "icu_normalizer", 1444 + "icu_properties", 1445 + ] 1446 + 1447 + [[package]] 1448 + name = "igd-next" 1449 + version = "0.16.2" 1450 + source = "registry+https://github.com/rust-lang/crates.io-index" 1451 + checksum = "516893339c97f6011282d5825ac94fc1c7aad5cad26bdc2d0cee068c0bf97f97" 1452 + dependencies = [ 1453 + "async-trait", 1454 + "attohttpc", 1455 + "bytes", 1456 + "futures", 1457 + "http", 1458 + "http-body-util", 1459 + "hyper", 1460 + "hyper-util", 1461 + "log", 1462 + "rand 0.9.2", 1463 + "tokio", 1464 + "url", 1465 + "xmltree", 1466 + ] 1467 + 1468 + [[package]] 1469 + name = "indexmap" 1470 + version = "2.10.0" 1471 + source = "registry+https://github.com/rust-lang/crates.io-index" 1472 + checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" 1473 + dependencies = [ 1474 + "equivalent", 1475 + "hashbrown", 1476 + ] 1477 + 1478 + [[package]] 1479 + name = "inout" 1480 + version = "0.1.4" 1481 + source = "registry+https://github.com/rust-lang/crates.io-index" 1482 + checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" 1483 + dependencies = [ 1484 + "generic-array", 1485 + ] 1486 + 1487 + [[package]] 1488 + name = "instant" 1489 + version = "0.1.13" 1490 + source = "registry+https://github.com/rust-lang/crates.io-index" 1491 + checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" 1492 + dependencies = [ 1493 + "cfg-if", 1494 + "js-sys", 1495 + "wasm-bindgen", 1496 + "web-sys", 1497 + ] 1498 + 1499 + [[package]] 1500 + name = "io-uring" 1501 + version = "0.7.9" 1502 + source = "registry+https://github.com/rust-lang/crates.io-index" 1503 + checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4" 1504 + dependencies = [ 1505 + "bitflags", 1506 + "cfg-if", 1507 + "libc", 1508 + ] 1509 + 1510 + [[package]] 1511 + name = "ipconfig" 1512 + version = "0.3.2" 1513 + source = "registry+https://github.com/rust-lang/crates.io-index" 1514 + checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" 1515 + dependencies = [ 1516 + "socket2 0.5.10", 1517 + "widestring", 1518 + "windows-sys 0.48.0", 1519 + "winreg", 1520 + ] 1521 + 1522 + [[package]] 1523 + name = "ipnet" 1524 + version = "2.11.0" 1525 + source = "registry+https://github.com/rust-lang/crates.io-index" 1526 + checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" 1527 + 1528 + [[package]] 1529 + name = "iri-string" 1530 + version = "0.7.8" 1531 + source = "registry+https://github.com/rust-lang/crates.io-index" 1532 + checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" 1533 + dependencies = [ 1534 + "memchr", 1535 + "serde", 1536 + ] 1537 + 1538 + [[package]] 1539 + name = "iroh" 1540 + version = "0.91.1" 1541 + source = "registry+https://github.com/rust-lang/crates.io-index" 1542 + checksum = "c6a98c47bb5f720edeb77be502a8acd238a3c0755f0b1ad865a716224d794a59" 1543 + dependencies = [ 1544 + "aead", 1545 + "backon", 1546 + "bytes", 1547 + "cfg_aliases", 1548 + "crypto_box", 1549 + "data-encoding", 1550 + "der", 1551 + "derive_more 2.0.1", 1552 + "ed25519-dalek", 1553 + "futures-buffered", 1554 + "futures-util", 1555 + "getrandom 0.3.3", 1556 + "hickory-resolver", 1557 + "http", 1558 + "igd-next", 1559 + "instant", 1560 + "iroh-base", 1561 + "iroh-metrics", 1562 + "iroh-quinn", 1563 + "iroh-quinn-proto", 1564 + "iroh-quinn-udp", 1565 + "iroh-relay", 1566 + "n0-future 0.1.3", 1567 + "n0-snafu", 1568 + "n0-watcher", 1569 + "nested_enum_utils", 1570 + "netdev", 1571 + "netwatch", 1572 + "pin-project", 1573 + "pkarr", 1574 + "portmapper", 1575 + "rand 0.8.5", 1576 + "reqwest", 1577 + "ring", 1578 + "rustls", 1579 + "rustls-pki-types", 1580 + "rustls-webpki", 1581 + "serde", 1582 + "smallvec", 1583 + "snafu", 1584 + "spki", 1585 + "strum", 1586 + "stun-rs", 1587 + "surge-ping", 1588 + "swarm-discovery", 1589 + "time", 1590 + "tokio", 1591 + "tokio-stream", 1592 + "tokio-util", 1593 + "tracing", 1594 + "url", 1595 + "wasm-bindgen-futures", 1596 + "webpki-roots 0.26.11", 1597 + "z32", 1598 + ] 1599 + 1600 + [[package]] 1601 + name = "iroh-base" 1602 + version = "0.91.1" 1603 + source = "registry+https://github.com/rust-lang/crates.io-index" 1604 + checksum = "78bde4e612191173e8ade55e3aa719044514edfff952292ffbf581be35cbb59c" 1605 + dependencies = [ 1606 + "curve25519-dalek", 1607 + "data-encoding", 1608 + "derive_more 2.0.1", 1609 + "ed25519-dalek", 1610 + "n0-snafu", 1611 + "nested_enum_utils", 1612 + "rand_core 0.6.4", 1613 + "serde", 1614 + "snafu", 1615 + "url", 1616 + ] 1617 + 1618 + [[package]] 1619 + name = "iroh-metrics" 1620 + version = "0.35.0" 1621 + source = "registry+https://github.com/rust-lang/crates.io-index" 1622 + checksum = "c8922c169f1b84d39d325c02ef1bbe1419d4de6e35f0403462b3c7e60cc19634" 1623 + dependencies = [ 1624 + "iroh-metrics-derive", 1625 + "itoa", 1626 + "postcard", 1627 + "serde", 1628 + "snafu", 1629 + "tracing", 1630 + ] 1631 + 1632 + [[package]] 1633 + name = "iroh-metrics-derive" 1634 + version = "0.2.0" 1635 + source = "registry+https://github.com/rust-lang/crates.io-index" 1636 + checksum = "8d12f5c45c4ed2436302a4e03cad9a0ad34b2962ad0c5791e1019c0ee30eeb09" 1637 + dependencies = [ 1638 + "heck", 1639 + "proc-macro2", 1640 + "quote", 1641 + "syn 2.0.105", 1642 + ] 1643 + 1644 + [[package]] 1645 + name = "iroh-quinn" 1646 + version = "0.14.0" 1647 + source = "registry+https://github.com/rust-lang/crates.io-index" 1648 + checksum = "0cde160ebee7aabede6ae887460cd303c8b809054224815addf1469d54a6fcf7" 1649 + dependencies = [ 1650 + "bytes", 1651 + "cfg_aliases", 1652 + "iroh-quinn-proto", 1653 + "iroh-quinn-udp", 1654 + "pin-project-lite", 1655 + "rustc-hash", 1656 + "rustls", 1657 + "socket2 0.5.10", 1658 + "thiserror 2.0.14", 1659 + "tokio", 1660 + "tracing", 1661 + "web-time", 1662 + ] 1663 + 1664 + [[package]] 1665 + name = "iroh-quinn-proto" 1666 + version = "0.13.0" 1667 + source = "registry+https://github.com/rust-lang/crates.io-index" 1668 + checksum = "929d5d8fa77d5c304d3ee7cae9aede31f13908bd049f9de8c7c0094ad6f7c535" 1669 + dependencies = [ 1670 + "bytes", 1671 + "getrandom 0.2.16", 1672 + "rand 0.8.5", 1673 + "ring", 1674 + "rustc-hash", 1675 + "rustls", 1676 + "rustls-pki-types", 1677 + "slab", 1678 + "thiserror 2.0.14", 1679 + "tinyvec", 1680 + "tracing", 1681 + "web-time", 1682 + ] 1683 + 1684 + [[package]] 1685 + name = "iroh-quinn-udp" 1686 + version = "0.5.7" 1687 + source = "registry+https://github.com/rust-lang/crates.io-index" 1688 + checksum = "c53afaa1049f7c83ea1331f5ebb9e6ebc5fdd69c468b7a22dd598b02c9bcc973" 1689 + dependencies = [ 1690 + "cfg_aliases", 1691 + "libc", 1692 + "once_cell", 1693 + "socket2 0.5.10", 1694 + "tracing", 1695 + "windows-sys 0.59.0", 1696 + ] 1697 + 1698 + [[package]] 1699 + name = "iroh-relay" 1700 + version = "0.91.1" 1701 + source = "registry+https://github.com/rust-lang/crates.io-index" 1702 + checksum = "9f19e43de2cfc04748054e1cbf7854ae1e192ddc45a4adeae7be7076a8f1fd43" 1703 + dependencies = [ 1704 + "blake3", 1705 + "bytes", 1706 + "cfg_aliases", 1707 + "data-encoding", 1708 + "derive_more 2.0.1", 1709 + "getrandom 0.3.3", 1710 + "hickory-resolver", 1711 + "http", 1712 + "http-body-util", 1713 + "hyper", 1714 + "hyper-util", 1715 + "iroh-base", 1716 + "iroh-metrics", 1717 + "iroh-quinn", 1718 + "iroh-quinn-proto", 1719 + "lru", 1720 + "n0-future 0.1.3", 1721 + "n0-snafu", 1722 + "nested_enum_utils", 1723 + "num_enum", 1724 + "pin-project", 1725 + "pkarr", 1726 + "postcard", 1727 + "rand 0.8.5", 1728 + "reqwest", 1729 + "rustls", 1730 + "rustls-pki-types", 1731 + "rustls-webpki", 1732 + "serde", 1733 + "serde_bytes", 1734 + "sha1", 1735 + "snafu", 1736 + "strum", 1737 + "tokio", 1738 + "tokio-rustls", 1739 + "tokio-util", 1740 + "tokio-websockets", 1741 + "tracing", 1742 + "url", 1743 + "webpki-roots 0.26.11", 1744 + "ws_stream_wasm", 1745 + "z32", 1746 + ] 1747 + 1748 + [[package]] 1749 + name = "iroh-streamplace" 1750 + version = "0.1.0" 1751 + dependencies = [ 1752 + "anyhow", 1753 + "async-trait", 1754 + "bytes", 1755 + "iroh", 1756 + "irpc", 1757 + "irpc-iroh", 1758 + "n0-future 0.2.0", 1759 + "postcard", 1760 + "serde", 1761 + "snafu", 1762 + "tokio", 1763 + "tracing", 1764 + "tracing-subscriber", 1765 + "uniffi", 1766 + "url", 1767 + ] 1768 + 1769 + [[package]] 1770 + name = "irpc" 1771 + version = "0.7.0" 1772 + source = "registry+https://github.com/rust-lang/crates.io-index" 1773 + checksum = "a9f8f1d0987ea9da3d74698f921d0a817a214c83b2635a33ed4bc3efa4de1acd" 1774 + dependencies = [ 1775 + "anyhow", 1776 + "futures-buffered", 1777 + "futures-util", 1778 + "iroh-quinn", 1779 + "irpc-derive", 1780 + "n0-future 0.1.3", 1781 + "postcard", 1782 + "rcgen", 1783 + "rustls", 1784 + "serde", 1785 + "smallvec", 1786 + "thiserror 2.0.14", 1787 + "tokio", 1788 + "tokio-util", 1789 + "tracing", 1790 + ] 1791 + 1792 + [[package]] 1793 + name = "irpc-derive" 1794 + version = "0.5.0" 1795 + source = "registry+https://github.com/rust-lang/crates.io-index" 1796 + checksum = "3e0b26b834d401a046dd9d47bc236517c746eddbb5d25ff3e1a6075bfa4eebdb" 1797 + dependencies = [ 1798 + "proc-macro2", 1799 + "quote", 1800 + "syn 1.0.109", 1801 + ] 1802 + 1803 + [[package]] 1804 + name = "irpc-iroh" 1805 + version = "0.7.0" 1806 + source = "registry+https://github.com/rust-lang/crates.io-index" 1807 + checksum = "f5926531af491c6962db4d79f43ea219404cb800889922a728b1d3b92f887eda" 1808 + dependencies = [ 1809 + "anyhow", 1810 + "getrandom 0.3.3", 1811 + "iroh", 1812 + "irpc", 1813 + "n0-future 0.1.3", 1814 + "postcard", 1815 + "serde", 1816 + "tokio", 1817 + "tracing", 1818 + ] 1819 + 1820 + [[package]] 1821 + name = "itoa" 1822 + version = "1.0.15" 1823 + source = "registry+https://github.com/rust-lang/crates.io-index" 1824 + checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" 1825 + 1826 + [[package]] 1827 + name = "js-sys" 1828 + version = "0.3.77" 1829 + source = "registry+https://github.com/rust-lang/crates.io-index" 1830 + checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" 1831 + dependencies = [ 1832 + "once_cell", 1833 + "wasm-bindgen", 1834 + ] 1835 + 1836 + [[package]] 1837 + name = "lazy_static" 1838 + version = "1.5.0" 1839 + source = "registry+https://github.com/rust-lang/crates.io-index" 1840 + checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 1841 + 1842 + [[package]] 1843 + name = "libc" 1844 + version = "0.2.175" 1845 + source = "registry+https://github.com/rust-lang/crates.io-index" 1846 + checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" 1847 + 1848 + [[package]] 1849 + name = "litemap" 1850 + version = "0.8.0" 1851 + source = "registry+https://github.com/rust-lang/crates.io-index" 1852 + checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" 1853 + 1854 + [[package]] 1855 + name = "litrs" 1856 + version = "0.4.2" 1857 + source = "registry+https://github.com/rust-lang/crates.io-index" 1858 + checksum = "f5e54036fe321fd421e10d732f155734c4e4afd610dd556d9a82833ab3ee0bed" 1859 + 1860 + [[package]] 1861 + name = "lock_api" 1862 + version = "0.4.13" 1863 + source = "registry+https://github.com/rust-lang/crates.io-index" 1864 + checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" 1865 + dependencies = [ 1866 + "autocfg", 1867 + "scopeguard", 1868 + ] 1869 + 1870 + [[package]] 1871 + name = "log" 1872 + version = "0.4.27" 1873 + source = "registry+https://github.com/rust-lang/crates.io-index" 1874 + checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" 1875 + 1876 + [[package]] 1877 + name = "loom" 1878 + version = "0.7.2" 1879 + source = "registry+https://github.com/rust-lang/crates.io-index" 1880 + checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca" 1881 + dependencies = [ 1882 + "cfg-if", 1883 + "generator", 1884 + "scoped-tls", 1885 + "tracing", 1886 + "tracing-subscriber", 1887 + ] 1888 + 1889 + [[package]] 1890 + name = "lru" 1891 + version = "0.13.0" 1892 + source = "registry+https://github.com/rust-lang/crates.io-index" 1893 + checksum = "227748d55f2f0ab4735d87fd623798cb6b664512fe979705f829c9f81c934465" 1894 + dependencies = [ 1895 + "hashbrown", 1896 + ] 1897 + 1898 + [[package]] 1899 + name = "lru-slab" 1900 + version = "0.1.2" 1901 + source = "registry+https://github.com/rust-lang/crates.io-index" 1902 + checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" 1903 + 1904 + [[package]] 1905 + name = "matchers" 1906 + version = "0.1.0" 1907 + source = "registry+https://github.com/rust-lang/crates.io-index" 1908 + checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" 1909 + dependencies = [ 1910 + "regex-automata 0.1.10", 1911 + ] 1912 + 1913 + [[package]] 1914 + name = "md5" 1915 + version = "0.7.0" 1916 + source = "registry+https://github.com/rust-lang/crates.io-index" 1917 + checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771" 1918 + 1919 + [[package]] 1920 + name = "memchr" 1921 + version = "2.7.5" 1922 + source = "registry+https://github.com/rust-lang/crates.io-index" 1923 + checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" 1924 + 1925 + [[package]] 1926 + name = "mime" 1927 + version = "0.3.17" 1928 + source = "registry+https://github.com/rust-lang/crates.io-index" 1929 + checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 1930 + 1931 + [[package]] 1932 + name = "mime_guess" 1933 + version = "2.0.5" 1934 + source = "registry+https://github.com/rust-lang/crates.io-index" 1935 + checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" 1936 + dependencies = [ 1937 + "mime", 1938 + "unicase", 1939 + ] 1940 + 1941 + [[package]] 1942 + name = "minimal-lexical" 1943 + version = "0.2.1" 1944 + source = "registry+https://github.com/rust-lang/crates.io-index" 1945 + checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" 1946 + 1947 + [[package]] 1948 + name = "miniz_oxide" 1949 + version = "0.8.9" 1950 + source = "registry+https://github.com/rust-lang/crates.io-index" 1951 + checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" 1952 + dependencies = [ 1953 + "adler2", 1954 + ] 1955 + 1956 + [[package]] 1957 + name = "mio" 1958 + version = "1.0.4" 1959 + source = "registry+https://github.com/rust-lang/crates.io-index" 1960 + checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" 1961 + dependencies = [ 1962 + "libc", 1963 + "wasi 0.11.1+wasi-snapshot-preview1", 1964 + "windows-sys 0.59.0", 1965 + ] 1966 + 1967 + [[package]] 1968 + name = "moka" 1969 + version = "0.12.10" 1970 + source = "registry+https://github.com/rust-lang/crates.io-index" 1971 + checksum = "a9321642ca94a4282428e6ea4af8cc2ca4eac48ac7a6a4ea8f33f76d0ce70926" 1972 + dependencies = [ 1973 + "crossbeam-channel", 1974 + "crossbeam-epoch", 1975 + "crossbeam-utils", 1976 + "loom", 1977 + "parking_lot", 1978 + "portable-atomic", 1979 + "rustc_version", 1980 + "smallvec", 1981 + "tagptr", 1982 + "thiserror 1.0.69", 1983 + "uuid", 1984 + ] 1985 + 1986 + [[package]] 1987 + name = "n0-future" 1988 + version = "0.1.3" 1989 + source = "registry+https://github.com/rust-lang/crates.io-index" 1990 + checksum = "7bb0e5d99e681ab3c938842b96fcb41bf8a7bb4bfdb11ccbd653a7e83e06c794" 1991 + dependencies = [ 1992 + "cfg_aliases", 1993 + "derive_more 1.0.0", 1994 + "futures-buffered", 1995 + "futures-lite", 1996 + "futures-util", 1997 + "js-sys", 1998 + "pin-project", 1999 + "send_wrapper", 2000 + "tokio", 2001 + "tokio-util", 2002 + "wasm-bindgen", 2003 + "wasm-bindgen-futures", 2004 + "web-time", 2005 + ] 2006 + 2007 + [[package]] 2008 + name = "n0-future" 2009 + version = "0.2.0" 2010 + source = "registry+https://github.com/rust-lang/crates.io-index" 2011 + checksum = "89d7dd42bd0114c9daa9c4f2255d692a73bba45767ec32cf62892af6fe5d31f6" 2012 + dependencies = [ 2013 + "cfg_aliases", 2014 + "derive_more 1.0.0", 2015 + "futures-buffered", 2016 + "futures-lite", 2017 + "futures-util", 2018 + "js-sys", 2019 + "pin-project", 2020 + "send_wrapper", 2021 + "tokio", 2022 + "tokio-util", 2023 + "wasm-bindgen", 2024 + "wasm-bindgen-futures", 2025 + "web-time", 2026 + ] 2027 + 2028 + [[package]] 2029 + name = "n0-snafu" 2030 + version = "0.2.1" 2031 + source = "registry+https://github.com/rust-lang/crates.io-index" 2032 + checksum = "c4fed465ff57041f29db78a9adc8864296ef93c6c16029f9e192dc303404ebd0" 2033 + dependencies = [ 2034 + "anyhow", 2035 + "btparse", 2036 + "color-backtrace", 2037 + "snafu", 2038 + "tracing-error", 2039 + ] 2040 + 2041 + [[package]] 2042 + name = "n0-watcher" 2043 + version = "0.3.0" 2044 + source = "registry+https://github.com/rust-lang/crates.io-index" 2045 + checksum = "c31462392a10d5ada4b945e840cbec2d5f3fee752b96c4b33eb41414d8f45c2a" 2046 + dependencies = [ 2047 + "derive_more 1.0.0", 2048 + "n0-future 0.1.3", 2049 + "snafu", 2050 + ] 2051 + 2052 + [[package]] 2053 + name = "nested_enum_utils" 2054 + version = "0.2.2" 2055 + source = "registry+https://github.com/rust-lang/crates.io-index" 2056 + checksum = "43fa9161ed44d30e9702fe42bd78693bceac0fed02f647da749f36109023d3a3" 2057 + dependencies = [ 2058 + "proc-macro-crate", 2059 + "proc-macro2", 2060 + "quote", 2061 + "syn 1.0.109", 2062 + ] 2063 + 2064 + [[package]] 2065 + name = "netdev" 2066 + version = "0.36.0" 2067 + source = "registry+https://github.com/rust-lang/crates.io-index" 2068 + checksum = "862209dce034f82a44c95ce2b5183730d616f2a68746b9c1959aa2572e77c0a1" 2069 + dependencies = [ 2070 + "dlopen2", 2071 + "ipnet", 2072 + "libc", 2073 + "netlink-packet-core", 2074 + "netlink-packet-route 0.22.0", 2075 + "netlink-sys", 2076 + "once_cell", 2077 + "system-configuration", 2078 + "windows-sys 0.59.0", 2079 + ] 2080 + 2081 + [[package]] 2082 + name = "netlink-packet-core" 2083 + version = "0.7.0" 2084 + source = "registry+https://github.com/rust-lang/crates.io-index" 2085 + checksum = "72724faf704479d67b388da142b186f916188505e7e0b26719019c525882eda4" 2086 + dependencies = [ 2087 + "anyhow", 2088 + "byteorder", 2089 + "netlink-packet-utils", 2090 + ] 2091 + 2092 + [[package]] 2093 + name = "netlink-packet-route" 2094 + version = "0.22.0" 2095 + source = "registry+https://github.com/rust-lang/crates.io-index" 2096 + checksum = "fc0e7987b28514adf555dc1f9a5c30dfc3e50750bbaffb1aec41ca7b23dcd8e4" 2097 + dependencies = [ 2098 + "anyhow", 2099 + "bitflags", 2100 + "byteorder", 2101 + "libc", 2102 + "log", 2103 + "netlink-packet-core", 2104 + "netlink-packet-utils", 2105 + ] 2106 + 2107 + [[package]] 2108 + name = "netlink-packet-route" 2109 + version = "0.24.0" 2110 + source = "registry+https://github.com/rust-lang/crates.io-index" 2111 + checksum = "56d83370a96813d7c977f8b63054f1162df6e5784f1c598d689236564fb5a6f2" 2112 + dependencies = [ 2113 + "anyhow", 2114 + "bitflags", 2115 + "byteorder", 2116 + "libc", 2117 + "log", 2118 + "netlink-packet-core", 2119 + "netlink-packet-utils", 2120 + ] 2121 + 2122 + [[package]] 2123 + name = "netlink-packet-utils" 2124 + version = "0.5.2" 2125 + source = "registry+https://github.com/rust-lang/crates.io-index" 2126 + checksum = "0ede8a08c71ad5a95cdd0e4e52facd37190977039a4704eb82a283f713747d34" 2127 + dependencies = [ 2128 + "anyhow", 2129 + "byteorder", 2130 + "paste", 2131 + "thiserror 1.0.69", 2132 + ] 2133 + 2134 + [[package]] 2135 + name = "netlink-proto" 2136 + version = "0.11.5" 2137 + source = "registry+https://github.com/rust-lang/crates.io-index" 2138 + checksum = "72452e012c2f8d612410d89eea01e2d9b56205274abb35d53f60200b2ec41d60" 2139 + dependencies = [ 2140 + "bytes", 2141 + "futures", 2142 + "log", 2143 + "netlink-packet-core", 2144 + "netlink-sys", 2145 + "thiserror 2.0.14", 2146 + ] 2147 + 2148 + [[package]] 2149 + name = "netlink-sys" 2150 + version = "0.8.7" 2151 + source = "registry+https://github.com/rust-lang/crates.io-index" 2152 + checksum = "16c903aa70590cb93691bf97a767c8d1d6122d2cc9070433deb3bbf36ce8bd23" 2153 + dependencies = [ 2154 + "bytes", 2155 + "futures", 2156 + "libc", 2157 + "log", 2158 + "tokio", 2159 + ] 2160 + 2161 + [[package]] 2162 + name = "netwatch" 2163 + version = "0.8.0" 2164 + source = "registry+https://github.com/rust-lang/crates.io-index" 2165 + checksum = "8901dbb408894af3df3fc51420ba0c6faf3a7d896077b797c39b7001e2f787bd" 2166 + dependencies = [ 2167 + "atomic-waker", 2168 + "bytes", 2169 + "cfg_aliases", 2170 + "derive_more 2.0.1", 2171 + "iroh-quinn-udp", 2172 + "js-sys", 2173 + "libc", 2174 + "n0-future 0.1.3", 2175 + "n0-watcher", 2176 + "nested_enum_utils", 2177 + "netdev", 2178 + "netlink-packet-core", 2179 + "netlink-packet-route 0.24.0", 2180 + "netlink-proto", 2181 + "netlink-sys", 2182 + "pin-project-lite", 2183 + "serde", 2184 + "snafu", 2185 + "socket2 0.6.0", 2186 + "time", 2187 + "tokio", 2188 + "tokio-util", 2189 + "tracing", 2190 + "web-sys", 2191 + "windows", 2192 + "windows-result", 2193 + "wmi", 2194 + ] 2195 + 2196 + [[package]] 2197 + name = "no-std-net" 2198 + version = "0.6.0" 2199 + source = "registry+https://github.com/rust-lang/crates.io-index" 2200 + checksum = "43794a0ace135be66a25d3ae77d41b91615fb68ae937f904090203e81f755b65" 2201 + 2202 + [[package]] 2203 + name = "nom" 2204 + version = "7.1.3" 2205 + source = "registry+https://github.com/rust-lang/crates.io-index" 2206 + checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" 2207 + dependencies = [ 2208 + "memchr", 2209 + "minimal-lexical", 2210 + ] 2211 + 2212 + [[package]] 2213 + name = "ntimestamp" 2214 + version = "1.0.0" 2215 + source = "registry+https://github.com/rust-lang/crates.io-index" 2216 + checksum = "c50f94c405726d3e0095e89e72f75ce7f6587b94a8bd8dc8054b73f65c0fd68c" 2217 + dependencies = [ 2218 + "base32", 2219 + "document-features", 2220 + "getrandom 0.2.16", 2221 + "httpdate", 2222 + "js-sys", 2223 + "once_cell", 2224 + "serde", 2225 + ] 2226 + 2227 + [[package]] 2228 + name = "nu-ansi-term" 2229 + version = "0.46.0" 2230 + source = "registry+https://github.com/rust-lang/crates.io-index" 2231 + checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" 2232 + dependencies = [ 2233 + "overload", 2234 + "winapi", 2235 + ] 2236 + 2237 + [[package]] 2238 + name = "num-conv" 2239 + version = "0.1.0" 2240 + source = "registry+https://github.com/rust-lang/crates.io-index" 2241 + checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" 2242 + 2243 + [[package]] 2244 + name = "num-traits" 2245 + version = "0.2.19" 2246 + source = "registry+https://github.com/rust-lang/crates.io-index" 2247 + checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 2248 + dependencies = [ 2249 + "autocfg", 2250 + ] 2251 + 2252 + [[package]] 2253 + name = "num_enum" 2254 + version = "0.7.4" 2255 + source = "registry+https://github.com/rust-lang/crates.io-index" 2256 + checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a" 2257 + dependencies = [ 2258 + "num_enum_derive", 2259 + "rustversion", 2260 + ] 2261 + 2262 + [[package]] 2263 + name = "num_enum_derive" 2264 + version = "0.7.4" 2265 + source = "registry+https://github.com/rust-lang/crates.io-index" 2266 + checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" 2267 + dependencies = [ 2268 + "proc-macro-crate", 2269 + "proc-macro2", 2270 + "quote", 2271 + "syn 2.0.105", 2272 + ] 2273 + 2274 + [[package]] 2275 + name = "object" 2276 + version = "0.36.7" 2277 + source = "registry+https://github.com/rust-lang/crates.io-index" 2278 + checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" 2279 + dependencies = [ 2280 + "memchr", 2281 + ] 2282 + 2283 + [[package]] 2284 + name = "once_cell" 2285 + version = "1.21.3" 2286 + source = "registry+https://github.com/rust-lang/crates.io-index" 2287 + checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" 2288 + dependencies = [ 2289 + "critical-section", 2290 + "portable-atomic", 2291 + ] 2292 + 2293 + [[package]] 2294 + name = "opaque-debug" 2295 + version = "0.3.1" 2296 + source = "registry+https://github.com/rust-lang/crates.io-index" 2297 + checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" 2298 + 2299 + [[package]] 2300 + name = "overload" 2301 + version = "0.1.1" 2302 + source = "registry+https://github.com/rust-lang/crates.io-index" 2303 + checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" 2304 + 2305 + [[package]] 2306 + name = "parking" 2307 + version = "2.2.1" 2308 + source = "registry+https://github.com/rust-lang/crates.io-index" 2309 + checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" 2310 + 2311 + [[package]] 2312 + name = "parking_lot" 2313 + version = "0.12.4" 2314 + source = "registry+https://github.com/rust-lang/crates.io-index" 2315 + checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" 2316 + dependencies = [ 2317 + "lock_api", 2318 + "parking_lot_core", 2319 + ] 2320 + 2321 + [[package]] 2322 + name = "parking_lot_core" 2323 + version = "0.9.11" 2324 + source = "registry+https://github.com/rust-lang/crates.io-index" 2325 + checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" 2326 + dependencies = [ 2327 + "cfg-if", 2328 + "libc", 2329 + "redox_syscall", 2330 + "smallvec", 2331 + "windows-targets 0.52.6", 2332 + ] 2333 + 2334 + [[package]] 2335 + name = "paste" 2336 + version = "1.0.15" 2337 + source = "registry+https://github.com/rust-lang/crates.io-index" 2338 + checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" 2339 + 2340 + [[package]] 2341 + name = "pem" 2342 + version = "3.0.5" 2343 + source = "registry+https://github.com/rust-lang/crates.io-index" 2344 + checksum = "38af38e8470ac9dee3ce1bae1af9c1671fffc44ddfd8bd1d0a3445bf349a8ef3" 2345 + dependencies = [ 2346 + "base64", 2347 + "serde", 2348 + ] 2349 + 2350 + [[package]] 2351 + name = "pem-rfc7468" 2352 + version = "0.7.0" 2353 + source = "registry+https://github.com/rust-lang/crates.io-index" 2354 + checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" 2355 + dependencies = [ 2356 + "base64ct", 2357 + ] 2358 + 2359 + [[package]] 2360 + name = "percent-encoding" 2361 + version = "2.3.1" 2362 + source = "registry+https://github.com/rust-lang/crates.io-index" 2363 + checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 2364 + 2365 + [[package]] 2366 + name = "pest" 2367 + version = "2.8.1" 2368 + source = "registry+https://github.com/rust-lang/crates.io-index" 2369 + checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323" 2370 + dependencies = [ 2371 + "memchr", 2372 + "thiserror 2.0.14", 2373 + "ucd-trie", 2374 + ] 2375 + 2376 + [[package]] 2377 + name = "pest_derive" 2378 + version = "2.8.1" 2379 + source = "registry+https://github.com/rust-lang/crates.io-index" 2380 + checksum = "bb056d9e8ea77922845ec74a1c4e8fb17e7c218cc4fc11a15c5d25e189aa40bc" 2381 + dependencies = [ 2382 + "pest", 2383 + "pest_generator", 2384 + ] 2385 + 2386 + [[package]] 2387 + name = "pest_generator" 2388 + version = "2.8.1" 2389 + source = "registry+https://github.com/rust-lang/crates.io-index" 2390 + checksum = "87e404e638f781eb3202dc82db6760c8ae8a1eeef7fb3fa8264b2ef280504966" 2391 + dependencies = [ 2392 + "pest", 2393 + "pest_meta", 2394 + "proc-macro2", 2395 + "quote", 2396 + "syn 2.0.105", 2397 + ] 2398 + 2399 + [[package]] 2400 + name = "pest_meta" 2401 + version = "2.8.1" 2402 + source = "registry+https://github.com/rust-lang/crates.io-index" 2403 + checksum = "edd1101f170f5903fde0914f899bb503d9ff5271d7ba76bbb70bea63690cc0d5" 2404 + dependencies = [ 2405 + "pest", 2406 + "sha2", 2407 + ] 2408 + 2409 + [[package]] 2410 + name = "pharos" 2411 + version = "0.5.3" 2412 + source = "registry+https://github.com/rust-lang/crates.io-index" 2413 + checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" 2414 + dependencies = [ 2415 + "futures", 2416 + "rustc_version", 2417 + ] 2418 + 2419 + [[package]] 2420 + name = "pin-project" 2421 + version = "1.1.10" 2422 + source = "registry+https://github.com/rust-lang/crates.io-index" 2423 + checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" 2424 + dependencies = [ 2425 + "pin-project-internal", 2426 + ] 2427 + 2428 + [[package]] 2429 + name = "pin-project-internal" 2430 + version = "1.1.10" 2431 + source = "registry+https://github.com/rust-lang/crates.io-index" 2432 + checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" 2433 + dependencies = [ 2434 + "proc-macro2", 2435 + "quote", 2436 + "syn 2.0.105", 2437 + ] 2438 + 2439 + [[package]] 2440 + name = "pin-project-lite" 2441 + version = "0.2.16" 2442 + source = "registry+https://github.com/rust-lang/crates.io-index" 2443 + checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" 2444 + 2445 + [[package]] 2446 + name = "pin-utils" 2447 + version = "0.1.0" 2448 + source = "registry+https://github.com/rust-lang/crates.io-index" 2449 + checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 2450 + 2451 + [[package]] 2452 + name = "pkarr" 2453 + version = "3.10.0" 2454 + source = "registry+https://github.com/rust-lang/crates.io-index" 2455 + checksum = "5eb1f2f4311bae1da11f930c804c724c9914cf55ae51a9ee0440fc98826984f7" 2456 + dependencies = [ 2457 + "async-compat", 2458 + "base32", 2459 + "bytes", 2460 + "cfg_aliases", 2461 + "document-features", 2462 + "dyn-clone", 2463 + "ed25519-dalek", 2464 + "futures-buffered", 2465 + "futures-lite", 2466 + "getrandom 0.2.16", 2467 + "log", 2468 + "lru", 2469 + "ntimestamp", 2470 + "reqwest", 2471 + "self_cell", 2472 + "serde", 2473 + "sha1_smol", 2474 + "simple-dns", 2475 + "thiserror 2.0.14", 2476 + "tokio", 2477 + "tracing", 2478 + "url", 2479 + "wasm-bindgen-futures", 2480 + ] 2481 + 2482 + [[package]] 2483 + name = "pkcs8" 2484 + version = "0.10.2" 2485 + source = "registry+https://github.com/rust-lang/crates.io-index" 2486 + checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" 2487 + dependencies = [ 2488 + "der", 2489 + "spki", 2490 + ] 2491 + 2492 + [[package]] 2493 + name = "plain" 2494 + version = "0.2.3" 2495 + source = "registry+https://github.com/rust-lang/crates.io-index" 2496 + checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" 2497 + 2498 + [[package]] 2499 + name = "pnet_base" 2500 + version = "0.34.0" 2501 + source = "registry+https://github.com/rust-lang/crates.io-index" 2502 + checksum = "fe4cf6fb3ab38b68d01ab2aea03ed3d1132b4868fa4e06285f29f16da01c5f4c" 2503 + dependencies = [ 2504 + "no-std-net", 2505 + ] 2506 + 2507 + [[package]] 2508 + name = "pnet_macros" 2509 + version = "0.34.0" 2510 + source = "registry+https://github.com/rust-lang/crates.io-index" 2511 + checksum = "688b17499eee04a0408aca0aa5cba5fc86401d7216de8a63fdf7a4c227871804" 2512 + dependencies = [ 2513 + "proc-macro2", 2514 + "quote", 2515 + "regex", 2516 + "syn 2.0.105", 2517 + ] 2518 + 2519 + [[package]] 2520 + name = "pnet_macros_support" 2521 + version = "0.34.0" 2522 + source = "registry+https://github.com/rust-lang/crates.io-index" 2523 + checksum = "eea925b72f4bd37f8eab0f221bbe4c78b63498350c983ffa9dd4bcde7e030f56" 2524 + dependencies = [ 2525 + "pnet_base", 2526 + ] 2527 + 2528 + [[package]] 2529 + name = "pnet_packet" 2530 + version = "0.34.0" 2531 + source = "registry+https://github.com/rust-lang/crates.io-index" 2532 + checksum = "a9a005825396b7fe7a38a8e288dbc342d5034dac80c15212436424fef8ea90ba" 2533 + dependencies = [ 2534 + "glob", 2535 + "pnet_base", 2536 + "pnet_macros", 2537 + "pnet_macros_support", 2538 + ] 2539 + 2540 + [[package]] 2541 + name = "poly1305" 2542 + version = "0.8.0" 2543 + source = "registry+https://github.com/rust-lang/crates.io-index" 2544 + checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" 2545 + dependencies = [ 2546 + "cpufeatures", 2547 + "opaque-debug", 2548 + "universal-hash", 2549 + ] 2550 + 2551 + [[package]] 2552 + name = "portable-atomic" 2553 + version = "1.11.1" 2554 + source = "registry+https://github.com/rust-lang/crates.io-index" 2555 + checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" 2556 + 2557 + [[package]] 2558 + name = "portmapper" 2559 + version = "0.8.0" 2560 + source = "registry+https://github.com/rust-lang/crates.io-index" 2561 + checksum = "62f1975debe62a70557e42b9ff9466e4890cf9d3d156d296408a711f1c5f642b" 2562 + dependencies = [ 2563 + "base64", 2564 + "bytes", 2565 + "derive_more 2.0.1", 2566 + "futures-lite", 2567 + "futures-util", 2568 + "hyper-util", 2569 + "igd-next", 2570 + "iroh-metrics", 2571 + "libc", 2572 + "nested_enum_utils", 2573 + "netwatch", 2574 + "num_enum", 2575 + "rand 0.9.2", 2576 + "serde", 2577 + "smallvec", 2578 + "snafu", 2579 + "socket2 0.6.0", 2580 + "time", 2581 + "tokio", 2582 + "tokio-util", 2583 + "tower-layer", 2584 + "tracing", 2585 + "url", 2586 + ] 2587 + 2588 + [[package]] 2589 + name = "postcard" 2590 + version = "1.1.3" 2591 + source = "registry+https://github.com/rust-lang/crates.io-index" 2592 + checksum = "6764c3b5dd454e283a30e6dfe78e9b31096d9e32036b5d1eaac7a6119ccb9a24" 2593 + dependencies = [ 2594 + "cobs", 2595 + "embedded-io 0.4.0", 2596 + "embedded-io 0.6.1", 2597 + "heapless", 2598 + "postcard-derive", 2599 + "serde", 2600 + ] 2601 + 2602 + [[package]] 2603 + name = "postcard-derive" 2604 + version = "0.2.2" 2605 + source = "registry+https://github.com/rust-lang/crates.io-index" 2606 + checksum = "e0232bd009a197ceec9cc881ba46f727fcd8060a2d8d6a9dde7a69030a6fe2bb" 2607 + dependencies = [ 2608 + "proc-macro2", 2609 + "quote", 2610 + "syn 2.0.105", 2611 + ] 2612 + 2613 + [[package]] 2614 + name = "potential_utf" 2615 + version = "0.1.2" 2616 + source = "registry+https://github.com/rust-lang/crates.io-index" 2617 + checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" 2618 + dependencies = [ 2619 + "zerovec", 2620 + ] 2621 + 2622 + [[package]] 2623 + name = "powerfmt" 2624 + version = "0.2.0" 2625 + source = "registry+https://github.com/rust-lang/crates.io-index" 2626 + checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" 2627 + 2628 + [[package]] 2629 + name = "ppv-lite86" 2630 + version = "0.2.21" 2631 + source = "registry+https://github.com/rust-lang/crates.io-index" 2632 + checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" 2633 + dependencies = [ 2634 + "zerocopy", 2635 + ] 2636 + 2637 + [[package]] 2638 + name = "precis-core" 2639 + version = "0.1.11" 2640 + source = "registry+https://github.com/rust-lang/crates.io-index" 2641 + checksum = "9c2e7b31f132e0c6f8682cfb7bf4a5340dbe925b7986618d0826a56dfe0c8e56" 2642 + dependencies = [ 2643 + "precis-tools", 2644 + "ucd-parse", 2645 + "unicode-normalization", 2646 + ] 2647 + 2648 + [[package]] 2649 + name = "precis-profiles" 2650 + version = "0.1.12" 2651 + source = "registry+https://github.com/rust-lang/crates.io-index" 2652 + checksum = "dc4f67f78f50388f03494794766ba824a704db16fb5d400fe8d545fa7bc0d3f1" 2653 + dependencies = [ 2654 + "lazy_static", 2655 + "precis-core", 2656 + "precis-tools", 2657 + "unicode-normalization", 2658 + ] 2659 + 2660 + [[package]] 2661 + name = "precis-tools" 2662 + version = "0.1.9" 2663 + source = "registry+https://github.com/rust-lang/crates.io-index" 2664 + checksum = "6cc1eb2d5887ac7bfd2c0b745764db89edb84b856e4214e204ef48ef96d10c4a" 2665 + dependencies = [ 2666 + "lazy_static", 2667 + "regex", 2668 + "ucd-parse", 2669 + ] 2670 + 2671 + [[package]] 2672 + name = "proc-macro-crate" 2673 + version = "3.3.0" 2674 + source = "registry+https://github.com/rust-lang/crates.io-index" 2675 + checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" 2676 + dependencies = [ 2677 + "toml_edit", 2678 + ] 2679 + 2680 + [[package]] 2681 + name = "proc-macro2" 2682 + version = "1.0.97" 2683 + source = "registry+https://github.com/rust-lang/crates.io-index" 2684 + checksum = "d61789d7719defeb74ea5fe81f2fdfdbd28a803847077cecce2ff14e1472f6f1" 2685 + dependencies = [ 2686 + "unicode-ident", 2687 + ] 2688 + 2689 + [[package]] 2690 + name = "quinn" 2691 + version = "0.11.8" 2692 + source = "registry+https://github.com/rust-lang/crates.io-index" 2693 + checksum = "626214629cda6781b6dc1d316ba307189c85ba657213ce642d9c77670f8202c8" 2694 + dependencies = [ 2695 + "bytes", 2696 + "cfg_aliases", 2697 + "pin-project-lite", 2698 + "quinn-proto", 2699 + "quinn-udp", 2700 + "rustc-hash", 2701 + "rustls", 2702 + "socket2 0.5.10", 2703 + "thiserror 2.0.14", 2704 + "tokio", 2705 + "tracing", 2706 + "web-time", 2707 + ] 2708 + 2709 + [[package]] 2710 + name = "quinn-proto" 2711 + version = "0.11.12" 2712 + source = "registry+https://github.com/rust-lang/crates.io-index" 2713 + checksum = "49df843a9161c85bb8aae55f101bc0bac8bcafd637a620d9122fd7e0b2f7422e" 2714 + dependencies = [ 2715 + "bytes", 2716 + "getrandom 0.3.3", 2717 + "lru-slab", 2718 + "rand 0.9.2", 2719 + "ring", 2720 + "rustc-hash", 2721 + "rustls", 2722 + "rustls-pki-types", 2723 + "slab", 2724 + "thiserror 2.0.14", 2725 + "tinyvec", 2726 + "tracing", 2727 + "web-time", 2728 + ] 2729 + 2730 + [[package]] 2731 + name = "quinn-udp" 2732 + version = "0.5.13" 2733 + source = "registry+https://github.com/rust-lang/crates.io-index" 2734 + checksum = "fcebb1209ee276352ef14ff8732e24cc2b02bbac986cd74a4c81bcb2f9881970" 2735 + dependencies = [ 2736 + "cfg_aliases", 2737 + "libc", 2738 + "once_cell", 2739 + "socket2 0.5.10", 2740 + "tracing", 2741 + "windows-sys 0.59.0", 2742 + ] 2743 + 2744 + [[package]] 2745 + name = "quote" 2746 + version = "1.0.40" 2747 + source = "registry+https://github.com/rust-lang/crates.io-index" 2748 + checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" 2749 + dependencies = [ 2750 + "proc-macro2", 2751 + ] 2752 + 2753 + [[package]] 2754 + name = "quoted-string-parser" 2755 + version = "0.1.0" 2756 + source = "registry+https://github.com/rust-lang/crates.io-index" 2757 + checksum = "0dc75379cdb451d001f1cb667a9f74e8b355e9df84cc5193513cbe62b96fc5e9" 2758 + dependencies = [ 2759 + "pest", 2760 + "pest_derive", 2761 + ] 2762 + 2763 + [[package]] 2764 + name = "r-efi" 2765 + version = "5.3.0" 2766 + source = "registry+https://github.com/rust-lang/crates.io-index" 2767 + checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" 2768 + 2769 + [[package]] 2770 + name = "rand" 2771 + version = "0.8.5" 2772 + source = "registry+https://github.com/rust-lang/crates.io-index" 2773 + checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 2774 + dependencies = [ 2775 + "libc", 2776 + "rand_chacha 0.3.1", 2777 + "rand_core 0.6.4", 2778 + ] 2779 + 2780 + [[package]] 2781 + name = "rand" 2782 + version = "0.9.2" 2783 + source = "registry+https://github.com/rust-lang/crates.io-index" 2784 + checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" 2785 + dependencies = [ 2786 + "rand_chacha 0.9.0", 2787 + "rand_core 0.9.3", 2788 + ] 2789 + 2790 + [[package]] 2791 + name = "rand_chacha" 2792 + version = "0.3.1" 2793 + source = "registry+https://github.com/rust-lang/crates.io-index" 2794 + checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 2795 + dependencies = [ 2796 + "ppv-lite86", 2797 + "rand_core 0.6.4", 2798 + ] 2799 + 2800 + [[package]] 2801 + name = "rand_chacha" 2802 + version = "0.9.0" 2803 + source = "registry+https://github.com/rust-lang/crates.io-index" 2804 + checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" 2805 + dependencies = [ 2806 + "ppv-lite86", 2807 + "rand_core 0.9.3", 2808 + ] 2809 + 2810 + [[package]] 2811 + name = "rand_core" 2812 + version = "0.6.4" 2813 + source = "registry+https://github.com/rust-lang/crates.io-index" 2814 + checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 2815 + dependencies = [ 2816 + "getrandom 0.2.16", 2817 + ] 2818 + 2819 + [[package]] 2820 + name = "rand_core" 2821 + version = "0.9.3" 2822 + source = "registry+https://github.com/rust-lang/crates.io-index" 2823 + checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" 2824 + dependencies = [ 2825 + "getrandom 0.3.3", 2826 + ] 2827 + 2828 + [[package]] 2829 + name = "rcgen" 2830 + version = "0.13.2" 2831 + source = "registry+https://github.com/rust-lang/crates.io-index" 2832 + checksum = "75e669e5202259b5314d1ea5397316ad400819437857b90861765f24c4cf80a2" 2833 + dependencies = [ 2834 + "pem", 2835 + "ring", 2836 + "rustls-pki-types", 2837 + "time", 2838 + "yasna", 2839 + ] 2840 + 2841 + [[package]] 2842 + name = "redox_syscall" 2843 + version = "0.5.17" 2844 + source = "registry+https://github.com/rust-lang/crates.io-index" 2845 + checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" 2846 + dependencies = [ 2847 + "bitflags", 2848 + ] 2849 + 2850 + [[package]] 2851 + name = "regex" 2852 + version = "1.11.1" 2853 + source = "registry+https://github.com/rust-lang/crates.io-index" 2854 + checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" 2855 + dependencies = [ 2856 + "aho-corasick", 2857 + "memchr", 2858 + "regex-automata 0.4.9", 2859 + "regex-syntax 0.8.5", 2860 + ] 2861 + 2862 + [[package]] 2863 + name = "regex-automata" 2864 + version = "0.1.10" 2865 + source = "registry+https://github.com/rust-lang/crates.io-index" 2866 + checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" 2867 + dependencies = [ 2868 + "regex-syntax 0.6.29", 2869 + ] 2870 + 2871 + [[package]] 2872 + name = "regex-automata" 2873 + version = "0.4.9" 2874 + source = "registry+https://github.com/rust-lang/crates.io-index" 2875 + checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" 2876 + dependencies = [ 2877 + "aho-corasick", 2878 + "memchr", 2879 + "regex-syntax 0.8.5", 2880 + ] 2881 + 2882 + [[package]] 2883 + name = "regex-lite" 2884 + version = "0.1.6" 2885 + source = "registry+https://github.com/rust-lang/crates.io-index" 2886 + checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a" 2887 + 2888 + [[package]] 2889 + name = "regex-syntax" 2890 + version = "0.6.29" 2891 + source = "registry+https://github.com/rust-lang/crates.io-index" 2892 + checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" 2893 + 2894 + [[package]] 2895 + name = "regex-syntax" 2896 + version = "0.8.5" 2897 + source = "registry+https://github.com/rust-lang/crates.io-index" 2898 + checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" 2899 + 2900 + [[package]] 2901 + name = "reqwest" 2902 + version = "0.12.23" 2903 + source = "registry+https://github.com/rust-lang/crates.io-index" 2904 + checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" 2905 + dependencies = [ 2906 + "base64", 2907 + "bytes", 2908 + "futures-core", 2909 + "futures-util", 2910 + "http", 2911 + "http-body", 2912 + "http-body-util", 2913 + "hyper", 2914 + "hyper-rustls", 2915 + "hyper-util", 2916 + "js-sys", 2917 + "log", 2918 + "percent-encoding", 2919 + "pin-project-lite", 2920 + "quinn", 2921 + "rustls", 2922 + "rustls-pki-types", 2923 + "serde", 2924 + "serde_json", 2925 + "serde_urlencoded", 2926 + "sync_wrapper", 2927 + "tokio", 2928 + "tokio-rustls", 2929 + "tokio-util", 2930 + "tower", 2931 + "tower-http", 2932 + "tower-service", 2933 + "url", 2934 + "wasm-bindgen", 2935 + "wasm-bindgen-futures", 2936 + "wasm-streams", 2937 + "web-sys", 2938 + "webpki-roots 1.0.2", 2939 + ] 2940 + 2941 + [[package]] 2942 + name = "resolv-conf" 2943 + version = "0.7.4" 2944 + source = "registry+https://github.com/rust-lang/crates.io-index" 2945 + checksum = "95325155c684b1c89f7765e30bc1c42e4a6da51ca513615660cb8a62ef9a88e3" 2946 + 2947 + [[package]] 2948 + name = "ring" 2949 + version = "0.17.14" 2950 + source = "registry+https://github.com/rust-lang/crates.io-index" 2951 + checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" 2952 + dependencies = [ 2953 + "cc", 2954 + "cfg-if", 2955 + "getrandom 0.2.16", 2956 + "libc", 2957 + "untrusted", 2958 + "windows-sys 0.52.0", 2959 + ] 2960 + 2961 + [[package]] 2962 + name = "rustc-demangle" 2963 + version = "0.1.26" 2964 + source = "registry+https://github.com/rust-lang/crates.io-index" 2965 + checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" 2966 + 2967 + [[package]] 2968 + name = "rustc-hash" 2969 + version = "2.1.1" 2970 + source = "registry+https://github.com/rust-lang/crates.io-index" 2971 + checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" 2972 + 2973 + [[package]] 2974 + name = "rustc_version" 2975 + version = "0.4.1" 2976 + source = "registry+https://github.com/rust-lang/crates.io-index" 2977 + checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" 2978 + dependencies = [ 2979 + "semver", 2980 + ] 2981 + 2982 + [[package]] 2983 + name = "rustls" 2984 + version = "0.23.31" 2985 + source = "registry+https://github.com/rust-lang/crates.io-index" 2986 + checksum = "c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc" 2987 + dependencies = [ 2988 + "log", 2989 + "once_cell", 2990 + "ring", 2991 + "rustls-pki-types", 2992 + "rustls-webpki", 2993 + "subtle", 2994 + "zeroize", 2995 + ] 2996 + 2997 + [[package]] 2998 + name = "rustls-pki-types" 2999 + version = "1.12.0" 3000 + source = "registry+https://github.com/rust-lang/crates.io-index" 3001 + checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" 3002 + dependencies = [ 3003 + "web-time", 3004 + "zeroize", 3005 + ] 3006 + 3007 + [[package]] 3008 + name = "rustls-webpki" 3009 + version = "0.103.4" 3010 + source = "registry+https://github.com/rust-lang/crates.io-index" 3011 + checksum = "0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc" 3012 + dependencies = [ 3013 + "ring", 3014 + "rustls-pki-types", 3015 + "untrusted", 3016 + ] 3017 + 3018 + [[package]] 3019 + name = "rustversion" 3020 + version = "1.0.22" 3021 + source = "registry+https://github.com/rust-lang/crates.io-index" 3022 + checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" 3023 + 3024 + [[package]] 3025 + name = "ryu" 3026 + version = "1.0.20" 3027 + source = "registry+https://github.com/rust-lang/crates.io-index" 3028 + checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" 3029 + 3030 + [[package]] 3031 + name = "salsa20" 3032 + version = "0.10.2" 3033 + source = "registry+https://github.com/rust-lang/crates.io-index" 3034 + checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" 3035 + dependencies = [ 3036 + "cipher", 3037 + ] 3038 + 3039 + [[package]] 3040 + name = "scoped-tls" 3041 + version = "1.0.1" 3042 + source = "registry+https://github.com/rust-lang/crates.io-index" 3043 + checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" 3044 + 3045 + [[package]] 3046 + name = "scopeguard" 3047 + version = "1.2.0" 3048 + source = "registry+https://github.com/rust-lang/crates.io-index" 3049 + checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 3050 + 3051 + [[package]] 3052 + name = "scroll" 3053 + version = "0.12.0" 3054 + source = "registry+https://github.com/rust-lang/crates.io-index" 3055 + checksum = "6ab8598aa408498679922eff7fa985c25d58a90771bd6be794434c5277eab1a6" 3056 + dependencies = [ 3057 + "scroll_derive", 3058 + ] 3059 + 3060 + [[package]] 3061 + name = "scroll_derive" 3062 + version = "0.12.1" 3063 + source = "registry+https://github.com/rust-lang/crates.io-index" 3064 + checksum = "1783eabc414609e28a5ba76aee5ddd52199f7107a0b24c2e9746a1ecc34a683d" 3065 + dependencies = [ 3066 + "proc-macro2", 3067 + "quote", 3068 + "syn 2.0.105", 3069 + ] 3070 + 3071 + [[package]] 3072 + name = "self_cell" 3073 + version = "1.2.0" 3074 + source = "registry+https://github.com/rust-lang/crates.io-index" 3075 + checksum = "0f7d95a54511e0c7be3f51e8867aa8cf35148d7b9445d44de2f943e2b206e749" 3076 + 3077 + [[package]] 3078 + name = "semver" 3079 + version = "1.0.26" 3080 + source = "registry+https://github.com/rust-lang/crates.io-index" 3081 + checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" 3082 + dependencies = [ 3083 + "serde", 3084 + ] 3085 + 3086 + [[package]] 3087 + name = "send_wrapper" 3088 + version = "0.6.0" 3089 + source = "registry+https://github.com/rust-lang/crates.io-index" 3090 + checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" 3091 + 3092 + [[package]] 3093 + name = "serde" 3094 + version = "1.0.219" 3095 + source = "registry+https://github.com/rust-lang/crates.io-index" 3096 + checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" 3097 + dependencies = [ 3098 + "serde_derive", 3099 + ] 3100 + 3101 + [[package]] 3102 + name = "serde_bytes" 3103 + version = "0.11.17" 3104 + source = "registry+https://github.com/rust-lang/crates.io-index" 3105 + checksum = "8437fd221bde2d4ca316d61b90e337e9e702b3820b87d63caa9ba6c02bd06d96" 3106 + dependencies = [ 3107 + "serde", 3108 + ] 3109 + 3110 + [[package]] 3111 + name = "serde_derive" 3112 + version = "1.0.219" 3113 + source = "registry+https://github.com/rust-lang/crates.io-index" 3114 + checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" 3115 + dependencies = [ 3116 + "proc-macro2", 3117 + "quote", 3118 + "syn 2.0.105", 3119 + ] 3120 + 3121 + [[package]] 3122 + name = "serde_json" 3123 + version = "1.0.142" 3124 + source = "registry+https://github.com/rust-lang/crates.io-index" 3125 + checksum = "030fedb782600dcbd6f02d479bf0d817ac3bb40d644745b769d6a96bc3afc5a7" 3126 + dependencies = [ 3127 + "itoa", 3128 + "memchr", 3129 + "ryu", 3130 + "serde", 3131 + ] 3132 + 3133 + [[package]] 3134 + name = "serde_urlencoded" 3135 + version = "0.7.1" 3136 + source = "registry+https://github.com/rust-lang/crates.io-index" 3137 + checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 3138 + dependencies = [ 3139 + "form_urlencoded", 3140 + "itoa", 3141 + "ryu", 3142 + "serde", 3143 + ] 3144 + 3145 + [[package]] 3146 + name = "serdect" 3147 + version = "0.2.0" 3148 + source = "registry+https://github.com/rust-lang/crates.io-index" 3149 + checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177" 3150 + dependencies = [ 3151 + "base16ct", 3152 + "serde", 3153 + ] 3154 + 3155 + [[package]] 3156 + name = "sha1" 3157 + version = "0.10.6" 3158 + source = "registry+https://github.com/rust-lang/crates.io-index" 3159 + checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" 3160 + dependencies = [ 3161 + "cfg-if", 3162 + "cpufeatures", 3163 + "digest", 3164 + ] 3165 + 3166 + [[package]] 3167 + name = "sha1_smol" 3168 + version = "1.0.1" 3169 + source = "registry+https://github.com/rust-lang/crates.io-index" 3170 + checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d" 3171 + 3172 + [[package]] 3173 + name = "sha2" 3174 + version = "0.10.9" 3175 + source = "registry+https://github.com/rust-lang/crates.io-index" 3176 + checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" 3177 + dependencies = [ 3178 + "cfg-if", 3179 + "cpufeatures", 3180 + "digest", 3181 + ] 3182 + 3183 + [[package]] 3184 + name = "sharded-slab" 3185 + version = "0.1.7" 3186 + source = "registry+https://github.com/rust-lang/crates.io-index" 3187 + checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" 3188 + dependencies = [ 3189 + "lazy_static", 3190 + ] 3191 + 3192 + [[package]] 3193 + name = "shlex" 3194 + version = "1.3.0" 3195 + source = "registry+https://github.com/rust-lang/crates.io-index" 3196 + checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 3197 + 3198 + [[package]] 3199 + name = "signal-hook-registry" 3200 + version = "1.4.6" 3201 + source = "registry+https://github.com/rust-lang/crates.io-index" 3202 + checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" 3203 + dependencies = [ 3204 + "libc", 3205 + ] 3206 + 3207 + [[package]] 3208 + name = "signature" 3209 + version = "2.2.0" 3210 + source = "registry+https://github.com/rust-lang/crates.io-index" 3211 + checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" 3212 + dependencies = [ 3213 + "rand_core 0.6.4", 3214 + ] 3215 + 3216 + [[package]] 3217 + name = "simdutf8" 3218 + version = "0.1.5" 3219 + source = "registry+https://github.com/rust-lang/crates.io-index" 3220 + checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" 3221 + 3222 + [[package]] 3223 + name = "simple-dns" 3224 + version = "0.9.3" 3225 + source = "registry+https://github.com/rust-lang/crates.io-index" 3226 + checksum = "dee851d0e5e7af3721faea1843e8015e820a234f81fda3dea9247e15bac9a86a" 3227 + dependencies = [ 3228 + "bitflags", 3229 + ] 3230 + 3231 + [[package]] 3232 + name = "siphasher" 3233 + version = "0.3.11" 3234 + source = "registry+https://github.com/rust-lang/crates.io-index" 3235 + checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" 3236 + 3237 + [[package]] 3238 + name = "slab" 3239 + version = "0.4.11" 3240 + source = "registry+https://github.com/rust-lang/crates.io-index" 3241 + checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" 3242 + 3243 + [[package]] 3244 + name = "smallvec" 3245 + version = "1.15.1" 3246 + source = "registry+https://github.com/rust-lang/crates.io-index" 3247 + checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" 3248 + 3249 + [[package]] 3250 + name = "smawk" 3251 + version = "0.3.2" 3252 + source = "registry+https://github.com/rust-lang/crates.io-index" 3253 + checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" 3254 + 3255 + [[package]] 3256 + name = "smol_str" 3257 + version = "0.1.24" 3258 + source = "registry+https://github.com/rust-lang/crates.io-index" 3259 + checksum = "fad6c857cbab2627dcf01ec85a623ca4e7dcb5691cbaa3d7fb7653671f0d09c9" 3260 + 3261 + [[package]] 3262 + name = "snafu" 3263 + version = "0.8.6" 3264 + source = "registry+https://github.com/rust-lang/crates.io-index" 3265 + checksum = "320b01e011bf8d5d7a4a4a4be966d9160968935849c83b918827f6a435e7f627" 3266 + dependencies = [ 3267 + "backtrace", 3268 + "snafu-derive", 3269 + ] 3270 + 3271 + [[package]] 3272 + name = "snafu-derive" 3273 + version = "0.8.6" 3274 + source = "registry+https://github.com/rust-lang/crates.io-index" 3275 + checksum = "1961e2ef424c1424204d3a5d6975f934f56b6d50ff5732382d84ebf460e147f7" 3276 + dependencies = [ 3277 + "heck", 3278 + "proc-macro2", 3279 + "quote", 3280 + "syn 2.0.105", 3281 + ] 3282 + 3283 + [[package]] 3284 + name = "socket2" 3285 + version = "0.5.10" 3286 + source = "registry+https://github.com/rust-lang/crates.io-index" 3287 + checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" 3288 + dependencies = [ 3289 + "libc", 3290 + "windows-sys 0.52.0", 3291 + ] 3292 + 3293 + [[package]] 3294 + name = "socket2" 3295 + version = "0.6.0" 3296 + source = "registry+https://github.com/rust-lang/crates.io-index" 3297 + checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" 3298 + dependencies = [ 3299 + "libc", 3300 + "windows-sys 0.59.0", 3301 + ] 3302 + 3303 + [[package]] 3304 + name = "spin" 3305 + version = "0.9.8" 3306 + source = "registry+https://github.com/rust-lang/crates.io-index" 3307 + checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" 3308 + dependencies = [ 3309 + "lock_api", 3310 + ] 3311 + 3312 + [[package]] 3313 + name = "spin" 3314 + version = "0.10.0" 3315 + source = "registry+https://github.com/rust-lang/crates.io-index" 3316 + checksum = "d5fe4ccb98d9c292d56fec89a5e07da7fc4cf0dc11e156b41793132775d3e591" 3317 + 3318 + [[package]] 3319 + name = "spki" 3320 + version = "0.7.3" 3321 + source = "registry+https://github.com/rust-lang/crates.io-index" 3322 + checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" 3323 + dependencies = [ 3324 + "base64ct", 3325 + "der", 3326 + ] 3327 + 3328 + [[package]] 3329 + name = "stable_deref_trait" 3330 + version = "1.2.0" 3331 + source = "registry+https://github.com/rust-lang/crates.io-index" 3332 + checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" 3333 + 3334 + [[package]] 3335 + name = "static_assertions" 3336 + version = "1.1.0" 3337 + source = "registry+https://github.com/rust-lang/crates.io-index" 3338 + checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 3339 + 3340 + [[package]] 3341 + name = "strum" 3342 + version = "0.27.2" 3343 + source = "registry+https://github.com/rust-lang/crates.io-index" 3344 + checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" 3345 + dependencies = [ 3346 + "strum_macros", 3347 + ] 3348 + 3349 + [[package]] 3350 + name = "strum_macros" 3351 + version = "0.27.2" 3352 + source = "registry+https://github.com/rust-lang/crates.io-index" 3353 + checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" 3354 + dependencies = [ 3355 + "heck", 3356 + "proc-macro2", 3357 + "quote", 3358 + "syn 2.0.105", 3359 + ] 3360 + 3361 + [[package]] 3362 + name = "stun-rs" 3363 + version = "0.1.11" 3364 + source = "registry+https://github.com/rust-lang/crates.io-index" 3365 + checksum = "fb921f10397d5669e1af6455e9e2d367bf1f9cebcd6b1dd1dc50e19f6a9ac2ac" 3366 + dependencies = [ 3367 + "base64", 3368 + "bounded-integer", 3369 + "byteorder", 3370 + "crc", 3371 + "enumflags2", 3372 + "fallible-iterator", 3373 + "hmac-sha1", 3374 + "hmac-sha256", 3375 + "hostname-validator", 3376 + "lazy_static", 3377 + "md5", 3378 + "paste", 3379 + "precis-core", 3380 + "precis-profiles", 3381 + "quoted-string-parser", 3382 + "rand 0.9.2", 3383 + ] 3384 + 3385 + [[package]] 3386 + name = "subtle" 3387 + version = "2.6.1" 3388 + source = "registry+https://github.com/rust-lang/crates.io-index" 3389 + checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" 3390 + 3391 + [[package]] 3392 + name = "surge-ping" 3393 + version = "0.8.2" 3394 + source = "registry+https://github.com/rust-lang/crates.io-index" 3395 + checksum = "6fda78103d8016bb25c331ddc54af634e801806463682cc3e549d335df644d95" 3396 + dependencies = [ 3397 + "hex", 3398 + "parking_lot", 3399 + "pnet_packet", 3400 + "rand 0.9.2", 3401 + "socket2 0.5.10", 3402 + "thiserror 1.0.69", 3403 + "tokio", 3404 + "tracing", 3405 + ] 3406 + 3407 + [[package]] 3408 + name = "swarm-discovery" 3409 + version = "0.4.0" 3410 + source = "registry+https://github.com/rust-lang/crates.io-index" 3411 + checksum = "4eae338a4551897c6a50fa2c041c4b75f578962d9fca8adb828cf81f7158740f" 3412 + dependencies = [ 3413 + "acto", 3414 + "hickory-proto", 3415 + "rand 0.9.2", 3416 + "socket2 0.5.10", 3417 + "thiserror 2.0.14", 3418 + "tokio", 3419 + "tracing", 3420 + ] 3421 + 3422 + [[package]] 3423 + name = "syn" 3424 + version = "1.0.109" 3425 + source = "registry+https://github.com/rust-lang/crates.io-index" 3426 + checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 3427 + dependencies = [ 3428 + "proc-macro2", 3429 + "quote", 3430 + "unicode-ident", 3431 + ] 3432 + 3433 + [[package]] 3434 + name = "syn" 3435 + version = "2.0.105" 3436 + source = "registry+https://github.com/rust-lang/crates.io-index" 3437 + checksum = "7bc3fcb250e53458e712715cf74285c1f889686520d79294a9ef3bd7aa1fc619" 3438 + dependencies = [ 3439 + "proc-macro2", 3440 + "quote", 3441 + "unicode-ident", 3442 + ] 3443 + 3444 + [[package]] 3445 + name = "sync_wrapper" 3446 + version = "1.0.2" 3447 + source = "registry+https://github.com/rust-lang/crates.io-index" 3448 + checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" 3449 + dependencies = [ 3450 + "futures-core", 3451 + ] 3452 + 3453 + [[package]] 3454 + name = "synstructure" 3455 + version = "0.13.2" 3456 + source = "registry+https://github.com/rust-lang/crates.io-index" 3457 + checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" 3458 + dependencies = [ 3459 + "proc-macro2", 3460 + "quote", 3461 + "syn 2.0.105", 3462 + ] 3463 + 3464 + [[package]] 3465 + name = "system-configuration" 3466 + version = "0.6.1" 3467 + source = "registry+https://github.com/rust-lang/crates.io-index" 3468 + checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" 3469 + dependencies = [ 3470 + "bitflags", 3471 + "core-foundation", 3472 + "system-configuration-sys", 3473 + ] 3474 + 3475 + [[package]] 3476 + name = "system-configuration-sys" 3477 + version = "0.6.0" 3478 + source = "registry+https://github.com/rust-lang/crates.io-index" 3479 + checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" 3480 + dependencies = [ 3481 + "core-foundation-sys", 3482 + "libc", 3483 + ] 3484 + 3485 + [[package]] 3486 + name = "tagptr" 3487 + version = "0.2.0" 3488 + source = "registry+https://github.com/rust-lang/crates.io-index" 3489 + checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" 3490 + 3491 + [[package]] 3492 + name = "termcolor" 3493 + version = "1.4.1" 3494 + source = "registry+https://github.com/rust-lang/crates.io-index" 3495 + checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" 3496 + dependencies = [ 3497 + "winapi-util", 3498 + ] 3499 + 3500 + [[package]] 3501 + name = "textwrap" 3502 + version = "0.16.2" 3503 + source = "registry+https://github.com/rust-lang/crates.io-index" 3504 + checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057" 3505 + dependencies = [ 3506 + "smawk", 3507 + ] 3508 + 3509 + [[package]] 3510 + name = "thiserror" 3511 + version = "1.0.69" 3512 + source = "registry+https://github.com/rust-lang/crates.io-index" 3513 + checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" 3514 + dependencies = [ 3515 + "thiserror-impl 1.0.69", 3516 + ] 3517 + 3518 + [[package]] 3519 + name = "thiserror" 3520 + version = "2.0.14" 3521 + source = "registry+https://github.com/rust-lang/crates.io-index" 3522 + checksum = "0b0949c3a6c842cbde3f1686d6eea5a010516deb7085f79db747562d4102f41e" 3523 + dependencies = [ 3524 + "thiserror-impl 2.0.14", 3525 + ] 3526 + 3527 + [[package]] 3528 + name = "thiserror-impl" 3529 + version = "1.0.69" 3530 + source = "registry+https://github.com/rust-lang/crates.io-index" 3531 + checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" 3532 + dependencies = [ 3533 + "proc-macro2", 3534 + "quote", 3535 + "syn 2.0.105", 3536 + ] 3537 + 3538 + [[package]] 3539 + name = "thiserror-impl" 3540 + version = "2.0.14" 3541 + source = "registry+https://github.com/rust-lang/crates.io-index" 3542 + checksum = "cc5b44b4ab9c2fdd0e0512e6bece8388e214c0749f5862b114cc5b7a25daf227" 3543 + dependencies = [ 3544 + "proc-macro2", 3545 + "quote", 3546 + "syn 2.0.105", 3547 + ] 3548 + 3549 + [[package]] 3550 + name = "thread_local" 3551 + version = "1.1.9" 3552 + source = "registry+https://github.com/rust-lang/crates.io-index" 3553 + checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" 3554 + dependencies = [ 3555 + "cfg-if", 3556 + ] 3557 + 3558 + [[package]] 3559 + name = "time" 3560 + version = "0.3.41" 3561 + source = "registry+https://github.com/rust-lang/crates.io-index" 3562 + checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" 3563 + dependencies = [ 3564 + "deranged", 3565 + "js-sys", 3566 + "num-conv", 3567 + "powerfmt", 3568 + "serde", 3569 + "time-core", 3570 + ] 3571 + 3572 + [[package]] 3573 + name = "time-core" 3574 + version = "0.1.4" 3575 + source = "registry+https://github.com/rust-lang/crates.io-index" 3576 + checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" 3577 + 3578 + [[package]] 3579 + name = "tinystr" 3580 + version = "0.8.1" 3581 + source = "registry+https://github.com/rust-lang/crates.io-index" 3582 + checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" 3583 + dependencies = [ 3584 + "displaydoc", 3585 + "zerovec", 3586 + ] 3587 + 3588 + [[package]] 3589 + name = "tinyvec" 3590 + version = "1.9.0" 3591 + source = "registry+https://github.com/rust-lang/crates.io-index" 3592 + checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" 3593 + dependencies = [ 3594 + "tinyvec_macros", 3595 + ] 3596 + 3597 + [[package]] 3598 + name = "tinyvec_macros" 3599 + version = "0.1.1" 3600 + source = "registry+https://github.com/rust-lang/crates.io-index" 3601 + checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 3602 + 3603 + [[package]] 3604 + name = "tokio" 3605 + version = "1.47.1" 3606 + source = "registry+https://github.com/rust-lang/crates.io-index" 3607 + checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" 3608 + dependencies = [ 3609 + "backtrace", 3610 + "bytes", 3611 + "io-uring", 3612 + "libc", 3613 + "mio", 3614 + "pin-project-lite", 3615 + "signal-hook-registry", 3616 + "slab", 3617 + "socket2 0.6.0", 3618 + "tokio-macros", 3619 + "windows-sys 0.59.0", 3620 + ] 3621 + 3622 + [[package]] 3623 + name = "tokio-macros" 3624 + version = "2.5.0" 3625 + source = "registry+https://github.com/rust-lang/crates.io-index" 3626 + checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" 3627 + dependencies = [ 3628 + "proc-macro2", 3629 + "quote", 3630 + "syn 2.0.105", 3631 + ] 3632 + 3633 + [[package]] 3634 + name = "tokio-rustls" 3635 + version = "0.26.2" 3636 + source = "registry+https://github.com/rust-lang/crates.io-index" 3637 + checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" 3638 + dependencies = [ 3639 + "rustls", 3640 + "tokio", 3641 + ] 3642 + 3643 + [[package]] 3644 + name = "tokio-stream" 3645 + version = "0.1.17" 3646 + source = "registry+https://github.com/rust-lang/crates.io-index" 3647 + checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" 3648 + dependencies = [ 3649 + "futures-core", 3650 + "pin-project-lite", 3651 + "tokio", 3652 + "tokio-util", 3653 + ] 3654 + 3655 + [[package]] 3656 + name = "tokio-util" 3657 + version = "0.7.16" 3658 + source = "registry+https://github.com/rust-lang/crates.io-index" 3659 + checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" 3660 + dependencies = [ 3661 + "bytes", 3662 + "futures-core", 3663 + "futures-sink", 3664 + "futures-util", 3665 + "pin-project-lite", 3666 + "tokio", 3667 + ] 3668 + 3669 + [[package]] 3670 + name = "tokio-websockets" 3671 + version = "0.12.0" 3672 + source = "registry+https://github.com/rust-lang/crates.io-index" 3673 + checksum = "3f29ba084eb43becc9864ba514b4a64f5f65b82f9a6ffbafa5436c1c80605f03" 3674 + dependencies = [ 3675 + "base64", 3676 + "bytes", 3677 + "futures-core", 3678 + "futures-sink", 3679 + "getrandom 0.3.3", 3680 + "http", 3681 + "httparse", 3682 + "rand 0.9.2", 3683 + "ring", 3684 + "rustls-pki-types", 3685 + "simdutf8", 3686 + "tokio", 3687 + "tokio-rustls", 3688 + "tokio-util", 3689 + ] 3690 + 3691 + [[package]] 3692 + name = "toml" 3693 + version = "0.5.11" 3694 + source = "registry+https://github.com/rust-lang/crates.io-index" 3695 + checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" 3696 + dependencies = [ 3697 + "serde", 3698 + ] 3699 + 3700 + [[package]] 3701 + name = "toml_datetime" 3702 + version = "0.6.11" 3703 + source = "registry+https://github.com/rust-lang/crates.io-index" 3704 + checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" 3705 + 3706 + [[package]] 3707 + name = "toml_edit" 3708 + version = "0.22.27" 3709 + source = "registry+https://github.com/rust-lang/crates.io-index" 3710 + checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" 3711 + dependencies = [ 3712 + "indexmap", 3713 + "toml_datetime", 3714 + "winnow", 3715 + ] 3716 + 3717 + [[package]] 3718 + name = "tower" 3719 + version = "0.5.2" 3720 + source = "registry+https://github.com/rust-lang/crates.io-index" 3721 + checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" 3722 + dependencies = [ 3723 + "futures-core", 3724 + "futures-util", 3725 + "pin-project-lite", 3726 + "sync_wrapper", 3727 + "tokio", 3728 + "tower-layer", 3729 + "tower-service", 3730 + ] 3731 + 3732 + [[package]] 3733 + name = "tower-http" 3734 + version = "0.6.6" 3735 + source = "registry+https://github.com/rust-lang/crates.io-index" 3736 + checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" 3737 + dependencies = [ 3738 + "bitflags", 3739 + "bytes", 3740 + "futures-util", 3741 + "http", 3742 + "http-body", 3743 + "iri-string", 3744 + "pin-project-lite", 3745 + "tower", 3746 + "tower-layer", 3747 + "tower-service", 3748 + ] 3749 + 3750 + [[package]] 3751 + name = "tower-layer" 3752 + version = "0.3.3" 3753 + source = "registry+https://github.com/rust-lang/crates.io-index" 3754 + checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" 3755 + 3756 + [[package]] 3757 + name = "tower-service" 3758 + version = "0.3.3" 3759 + source = "registry+https://github.com/rust-lang/crates.io-index" 3760 + checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" 3761 + 3762 + [[package]] 3763 + name = "tracing" 3764 + version = "0.1.41" 3765 + source = "registry+https://github.com/rust-lang/crates.io-index" 3766 + checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" 3767 + dependencies = [ 3768 + "log", 3769 + "pin-project-lite", 3770 + "tracing-attributes", 3771 + "tracing-core", 3772 + ] 3773 + 3774 + [[package]] 3775 + name = "tracing-attributes" 3776 + version = "0.1.30" 3777 + source = "registry+https://github.com/rust-lang/crates.io-index" 3778 + checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" 3779 + dependencies = [ 3780 + "proc-macro2", 3781 + "quote", 3782 + "syn 2.0.105", 3783 + ] 3784 + 3785 + [[package]] 3786 + name = "tracing-core" 3787 + version = "0.1.34" 3788 + source = "registry+https://github.com/rust-lang/crates.io-index" 3789 + checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" 3790 + dependencies = [ 3791 + "once_cell", 3792 + "valuable", 3793 + ] 3794 + 3795 + [[package]] 3796 + name = "tracing-error" 3797 + version = "0.2.1" 3798 + source = "registry+https://github.com/rust-lang/crates.io-index" 3799 + checksum = "8b1581020d7a273442f5b45074a6a57d5757ad0a47dac0e9f0bd57b81936f3db" 3800 + dependencies = [ 3801 + "tracing", 3802 + "tracing-subscriber", 3803 + ] 3804 + 3805 + [[package]] 3806 + name = "tracing-log" 3807 + version = "0.2.0" 3808 + source = "registry+https://github.com/rust-lang/crates.io-index" 3809 + checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" 3810 + dependencies = [ 3811 + "log", 3812 + "once_cell", 3813 + "tracing-core", 3814 + ] 3815 + 3816 + [[package]] 3817 + name = "tracing-subscriber" 3818 + version = "0.3.19" 3819 + source = "registry+https://github.com/rust-lang/crates.io-index" 3820 + checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" 3821 + dependencies = [ 3822 + "matchers", 3823 + "nu-ansi-term", 3824 + "once_cell", 3825 + "regex", 3826 + "sharded-slab", 3827 + "smallvec", 3828 + "thread_local", 3829 + "tracing", 3830 + "tracing-core", 3831 + "tracing-log", 3832 + ] 3833 + 3834 + [[package]] 3835 + name = "try-lock" 3836 + version = "0.2.5" 3837 + source = "registry+https://github.com/rust-lang/crates.io-index" 3838 + checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" 3839 + 3840 + [[package]] 3841 + name = "typenum" 3842 + version = "1.18.0" 3843 + source = "registry+https://github.com/rust-lang/crates.io-index" 3844 + checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" 3845 + 3846 + [[package]] 3847 + name = "ucd-parse" 3848 + version = "0.1.13" 3849 + source = "registry+https://github.com/rust-lang/crates.io-index" 3850 + checksum = "c06ff81122fcbf4df4c1660b15f7e3336058e7aec14437c9f85c6b31a0f279b9" 3851 + dependencies = [ 3852 + "regex-lite", 3853 + ] 3854 + 3855 + [[package]] 3856 + name = "ucd-trie" 3857 + version = "0.1.7" 3858 + source = "registry+https://github.com/rust-lang/crates.io-index" 3859 + checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" 3860 + 3861 + [[package]] 3862 + name = "unicase" 3863 + version = "2.8.1" 3864 + source = "registry+https://github.com/rust-lang/crates.io-index" 3865 + checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" 3866 + 3867 + [[package]] 3868 + name = "unicode-ident" 3869 + version = "1.0.18" 3870 + source = "registry+https://github.com/rust-lang/crates.io-index" 3871 + checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" 3872 + 3873 + [[package]] 3874 + name = "unicode-normalization" 3875 + version = "0.1.24" 3876 + source = "registry+https://github.com/rust-lang/crates.io-index" 3877 + checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" 3878 + dependencies = [ 3879 + "tinyvec", 3880 + ] 3881 + 3882 + [[package]] 3883 + name = "unicode-xid" 3884 + version = "0.2.6" 3885 + source = "registry+https://github.com/rust-lang/crates.io-index" 3886 + checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" 3887 + 3888 + [[package]] 3889 + name = "uniffi" 3890 + version = "0.28.3" 3891 + source = "registry+https://github.com/rust-lang/crates.io-index" 3892 + checksum = "4cb08c58c7ed7033150132febe696bef553f891b1ede57424b40d87a89e3c170" 3893 + dependencies = [ 3894 + "anyhow", 3895 + "cargo_metadata", 3896 + "uniffi_bindgen", 3897 + "uniffi_core", 3898 + "uniffi_macros", 3899 + ] 3900 + 3901 + [[package]] 3902 + name = "uniffi_bindgen" 3903 + version = "0.28.3" 3904 + source = "registry+https://github.com/rust-lang/crates.io-index" 3905 + checksum = "cade167af943e189a55020eda2c314681e223f1e42aca7c4e52614c2b627698f" 3906 + dependencies = [ 3907 + "anyhow", 3908 + "askama", 3909 + "camino", 3910 + "cargo_metadata", 3911 + "fs-err", 3912 + "glob", 3913 + "goblin", 3914 + "heck", 3915 + "once_cell", 3916 + "paste", 3917 + "serde", 3918 + "textwrap", 3919 + "toml", 3920 + "uniffi_meta", 3921 + "uniffi_udl", 3922 + ] 3923 + 3924 + [[package]] 3925 + name = "uniffi_checksum_derive" 3926 + version = "0.28.3" 3927 + source = "registry+https://github.com/rust-lang/crates.io-index" 3928 + checksum = "802d2051a700e3ec894c79f80d2705b69d85844dafbbe5d1a92776f8f48b563a" 3929 + dependencies = [ 3930 + "quote", 3931 + "syn 2.0.105", 3932 + ] 3933 + 3934 + [[package]] 3935 + name = "uniffi_core" 3936 + version = "0.28.3" 3937 + source = "registry+https://github.com/rust-lang/crates.io-index" 3938 + checksum = "bc7687007d2546c454d8ae609b105daceb88175477dac280707ad6d95bcd6f1f" 3939 + dependencies = [ 3940 + "anyhow", 3941 + "async-compat", 3942 + "bytes", 3943 + "log", 3944 + "once_cell", 3945 + "paste", 3946 + "static_assertions", 3947 + ] 3948 + 3949 + [[package]] 3950 + name = "uniffi_macros" 3951 + version = "0.28.3" 3952 + source = "registry+https://github.com/rust-lang/crates.io-index" 3953 + checksum = "12c65a5b12ec544ef136693af8759fb9d11aefce740fb76916721e876639033b" 3954 + dependencies = [ 3955 + "bincode", 3956 + "camino", 3957 + "fs-err", 3958 + "once_cell", 3959 + "proc-macro2", 3960 + "quote", 3961 + "serde", 3962 + "syn 2.0.105", 3963 + "toml", 3964 + "uniffi_meta", 3965 + ] 3966 + 3967 + [[package]] 3968 + name = "uniffi_meta" 3969 + version = "0.28.3" 3970 + source = "registry+https://github.com/rust-lang/crates.io-index" 3971 + checksum = "4a74ed96c26882dac1ca9b93ca23c827e284bacbd7ec23c6f0b0372f747d59e4" 3972 + dependencies = [ 3973 + "anyhow", 3974 + "bytes", 3975 + "siphasher", 3976 + "uniffi_checksum_derive", 3977 + ] 3978 + 3979 + [[package]] 3980 + name = "uniffi_testing" 3981 + version = "0.28.3" 3982 + source = "registry+https://github.com/rust-lang/crates.io-index" 3983 + checksum = "6a6f984f0781f892cc864a62c3a5c60361b1ccbd68e538e6c9fbced5d82268ac" 3984 + dependencies = [ 3985 + "anyhow", 3986 + "camino", 3987 + "cargo_metadata", 3988 + "fs-err", 3989 + "once_cell", 3990 + ] 3991 + 3992 + [[package]] 3993 + name = "uniffi_udl" 3994 + version = "0.28.3" 3995 + source = "registry+https://github.com/rust-lang/crates.io-index" 3996 + checksum = "037820a4cfc4422db1eaa82f291a3863c92c7d1789dc513489c36223f9b4cdfc" 3997 + dependencies = [ 3998 + "anyhow", 3999 + "textwrap", 4000 + "uniffi_meta", 4001 + "uniffi_testing", 4002 + "weedle2", 4003 + ] 4004 + 4005 + [[package]] 4006 + name = "universal-hash" 4007 + version = "0.5.1" 4008 + source = "registry+https://github.com/rust-lang/crates.io-index" 4009 + checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" 4010 + dependencies = [ 4011 + "crypto-common", 4012 + "subtle", 4013 + ] 4014 + 4015 + [[package]] 4016 + name = "untrusted" 4017 + version = "0.9.0" 4018 + source = "registry+https://github.com/rust-lang/crates.io-index" 4019 + checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" 4020 + 4021 + [[package]] 4022 + name = "url" 4023 + version = "2.5.4" 4024 + source = "registry+https://github.com/rust-lang/crates.io-index" 4025 + checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" 4026 + dependencies = [ 4027 + "form_urlencoded", 4028 + "idna", 4029 + "percent-encoding", 4030 + "serde", 4031 + ] 4032 + 4033 + [[package]] 4034 + name = "utf8_iter" 4035 + version = "1.0.4" 4036 + source = "registry+https://github.com/rust-lang/crates.io-index" 4037 + checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" 4038 + 4039 + [[package]] 4040 + name = "uuid" 4041 + version = "1.18.0" 4042 + source = "registry+https://github.com/rust-lang/crates.io-index" 4043 + checksum = "f33196643e165781c20a5ead5582283a7dacbb87855d867fbc2df3f81eddc1be" 4044 + dependencies = [ 4045 + "getrandom 0.3.3", 4046 + "js-sys", 4047 + "wasm-bindgen", 4048 + ] 4049 + 4050 + [[package]] 4051 + name = "valuable" 4052 + version = "0.1.1" 4053 + source = "registry+https://github.com/rust-lang/crates.io-index" 4054 + checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" 4055 + 4056 + [[package]] 4057 + name = "version_check" 4058 + version = "0.9.5" 4059 + source = "registry+https://github.com/rust-lang/crates.io-index" 4060 + checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 4061 + 4062 + [[package]] 4063 + name = "want" 4064 + version = "0.3.1" 4065 + source = "registry+https://github.com/rust-lang/crates.io-index" 4066 + checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" 4067 + dependencies = [ 4068 + "try-lock", 4069 + ] 4070 + 4071 + [[package]] 4072 + name = "wasi" 4073 + version = "0.11.1+wasi-snapshot-preview1" 4074 + source = "registry+https://github.com/rust-lang/crates.io-index" 4075 + checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" 4076 + 4077 + [[package]] 4078 + name = "wasi" 4079 + version = "0.14.2+wasi-0.2.4" 4080 + source = "registry+https://github.com/rust-lang/crates.io-index" 4081 + checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" 4082 + dependencies = [ 4083 + "wit-bindgen-rt", 4084 + ] 4085 + 4086 + [[package]] 4087 + name = "wasm-bindgen" 4088 + version = "0.2.100" 4089 + source = "registry+https://github.com/rust-lang/crates.io-index" 4090 + checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" 4091 + dependencies = [ 4092 + "cfg-if", 4093 + "once_cell", 4094 + "rustversion", 4095 + "wasm-bindgen-macro", 4096 + ] 4097 + 4098 + [[package]] 4099 + name = "wasm-bindgen-backend" 4100 + version = "0.2.100" 4101 + source = "registry+https://github.com/rust-lang/crates.io-index" 4102 + checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" 4103 + dependencies = [ 4104 + "bumpalo", 4105 + "log", 4106 + "proc-macro2", 4107 + "quote", 4108 + "syn 2.0.105", 4109 + "wasm-bindgen-shared", 4110 + ] 4111 + 4112 + [[package]] 4113 + name = "wasm-bindgen-futures" 4114 + version = "0.4.50" 4115 + source = "registry+https://github.com/rust-lang/crates.io-index" 4116 + checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" 4117 + dependencies = [ 4118 + "cfg-if", 4119 + "js-sys", 4120 + "once_cell", 4121 + "wasm-bindgen", 4122 + "web-sys", 4123 + ] 4124 + 4125 + [[package]] 4126 + name = "wasm-bindgen-macro" 4127 + version = "0.2.100" 4128 + source = "registry+https://github.com/rust-lang/crates.io-index" 4129 + checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" 4130 + dependencies = [ 4131 + "quote", 4132 + "wasm-bindgen-macro-support", 4133 + ] 4134 + 4135 + [[package]] 4136 + name = "wasm-bindgen-macro-support" 4137 + version = "0.2.100" 4138 + source = "registry+https://github.com/rust-lang/crates.io-index" 4139 + checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" 4140 + dependencies = [ 4141 + "proc-macro2", 4142 + "quote", 4143 + "syn 2.0.105", 4144 + "wasm-bindgen-backend", 4145 + "wasm-bindgen-shared", 4146 + ] 4147 + 4148 + [[package]] 4149 + name = "wasm-bindgen-shared" 4150 + version = "0.2.100" 4151 + source = "registry+https://github.com/rust-lang/crates.io-index" 4152 + checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" 4153 + dependencies = [ 4154 + "unicode-ident", 4155 + ] 4156 + 4157 + [[package]] 4158 + name = "wasm-streams" 4159 + version = "0.4.2" 4160 + source = "registry+https://github.com/rust-lang/crates.io-index" 4161 + checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" 4162 + dependencies = [ 4163 + "futures-util", 4164 + "js-sys", 4165 + "wasm-bindgen", 4166 + "wasm-bindgen-futures", 4167 + "web-sys", 4168 + ] 4169 + 4170 + [[package]] 4171 + name = "web-sys" 4172 + version = "0.3.77" 4173 + source = "registry+https://github.com/rust-lang/crates.io-index" 4174 + checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" 4175 + dependencies = [ 4176 + "js-sys", 4177 + "wasm-bindgen", 4178 + ] 4179 + 4180 + [[package]] 4181 + name = "web-time" 4182 + version = "1.1.0" 4183 + source = "registry+https://github.com/rust-lang/crates.io-index" 4184 + checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" 4185 + dependencies = [ 4186 + "js-sys", 4187 + "wasm-bindgen", 4188 + ] 4189 + 4190 + [[package]] 4191 + name = "webpki-roots" 4192 + version = "0.26.11" 4193 + source = "registry+https://github.com/rust-lang/crates.io-index" 4194 + checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" 4195 + dependencies = [ 4196 + "webpki-roots 1.0.2", 4197 + ] 4198 + 4199 + [[package]] 4200 + name = "webpki-roots" 4201 + version = "1.0.2" 4202 + source = "registry+https://github.com/rust-lang/crates.io-index" 4203 + checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2" 4204 + dependencies = [ 4205 + "rustls-pki-types", 4206 + ] 4207 + 4208 + [[package]] 4209 + name = "weedle2" 4210 + version = "5.0.0" 4211 + source = "registry+https://github.com/rust-lang/crates.io-index" 4212 + checksum = "998d2c24ec099a87daf9467808859f9d82b61f1d9c9701251aea037f514eae0e" 4213 + dependencies = [ 4214 + "nom", 4215 + ] 4216 + 4217 + [[package]] 4218 + name = "widestring" 4219 + version = "1.2.0" 4220 + source = "registry+https://github.com/rust-lang/crates.io-index" 4221 + checksum = "dd7cf3379ca1aac9eea11fba24fd7e315d621f8dfe35c8d7d2be8b793726e07d" 4222 + 4223 + [[package]] 4224 + name = "winapi" 4225 + version = "0.3.9" 4226 + source = "registry+https://github.com/rust-lang/crates.io-index" 4227 + checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 4228 + dependencies = [ 4229 + "winapi-i686-pc-windows-gnu", 4230 + "winapi-x86_64-pc-windows-gnu", 4231 + ] 4232 + 4233 + [[package]] 4234 + name = "winapi-i686-pc-windows-gnu" 4235 + version = "0.4.0" 4236 + source = "registry+https://github.com/rust-lang/crates.io-index" 4237 + checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 4238 + 4239 + [[package]] 4240 + name = "winapi-util" 4241 + version = "0.1.9" 4242 + source = "registry+https://github.com/rust-lang/crates.io-index" 4243 + checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" 4244 + dependencies = [ 4245 + "windows-sys 0.59.0", 4246 + ] 4247 + 4248 + [[package]] 4249 + name = "winapi-x86_64-pc-windows-gnu" 4250 + version = "0.4.0" 4251 + source = "registry+https://github.com/rust-lang/crates.io-index" 4252 + checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 4253 + 4254 + [[package]] 4255 + name = "windows" 4256 + version = "0.61.3" 4257 + source = "registry+https://github.com/rust-lang/crates.io-index" 4258 + checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" 4259 + dependencies = [ 4260 + "windows-collections", 4261 + "windows-core", 4262 + "windows-future", 4263 + "windows-link", 4264 + "windows-numerics", 4265 + ] 4266 + 4267 + [[package]] 4268 + name = "windows-collections" 4269 + version = "0.2.0" 4270 + source = "registry+https://github.com/rust-lang/crates.io-index" 4271 + checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" 4272 + dependencies = [ 4273 + "windows-core", 4274 + ] 4275 + 4276 + [[package]] 4277 + name = "windows-core" 4278 + version = "0.61.2" 4279 + source = "registry+https://github.com/rust-lang/crates.io-index" 4280 + checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" 4281 + dependencies = [ 4282 + "windows-implement", 4283 + "windows-interface", 4284 + "windows-link", 4285 + "windows-result", 4286 + "windows-strings", 4287 + ] 4288 + 4289 + [[package]] 4290 + name = "windows-future" 4291 + version = "0.2.1" 4292 + source = "registry+https://github.com/rust-lang/crates.io-index" 4293 + checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" 4294 + dependencies = [ 4295 + "windows-core", 4296 + "windows-link", 4297 + "windows-threading", 4298 + ] 4299 + 4300 + [[package]] 4301 + name = "windows-implement" 4302 + version = "0.60.0" 4303 + source = "registry+https://github.com/rust-lang/crates.io-index" 4304 + checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" 4305 + dependencies = [ 4306 + "proc-macro2", 4307 + "quote", 4308 + "syn 2.0.105", 4309 + ] 4310 + 4311 + [[package]] 4312 + name = "windows-interface" 4313 + version = "0.59.1" 4314 + source = "registry+https://github.com/rust-lang/crates.io-index" 4315 + checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" 4316 + dependencies = [ 4317 + "proc-macro2", 4318 + "quote", 4319 + "syn 2.0.105", 4320 + ] 4321 + 4322 + [[package]] 4323 + name = "windows-link" 4324 + version = "0.1.3" 4325 + source = "registry+https://github.com/rust-lang/crates.io-index" 4326 + checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" 4327 + 4328 + [[package]] 4329 + name = "windows-numerics" 4330 + version = "0.2.0" 4331 + source = "registry+https://github.com/rust-lang/crates.io-index" 4332 + checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" 4333 + dependencies = [ 4334 + "windows-core", 4335 + "windows-link", 4336 + ] 4337 + 4338 + [[package]] 4339 + name = "windows-result" 4340 + version = "0.3.4" 4341 + source = "registry+https://github.com/rust-lang/crates.io-index" 4342 + checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" 4343 + dependencies = [ 4344 + "windows-link", 4345 + ] 4346 + 4347 + [[package]] 4348 + name = "windows-strings" 4349 + version = "0.4.2" 4350 + source = "registry+https://github.com/rust-lang/crates.io-index" 4351 + checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" 4352 + dependencies = [ 4353 + "windows-link", 4354 + ] 4355 + 4356 + [[package]] 4357 + name = "windows-sys" 4358 + version = "0.48.0" 4359 + source = "registry+https://github.com/rust-lang/crates.io-index" 4360 + checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 4361 + dependencies = [ 4362 + "windows-targets 0.48.5", 4363 + ] 4364 + 4365 + [[package]] 4366 + name = "windows-sys" 4367 + version = "0.52.0" 4368 + source = "registry+https://github.com/rust-lang/crates.io-index" 4369 + checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 4370 + dependencies = [ 4371 + "windows-targets 0.52.6", 4372 + ] 4373 + 4374 + [[package]] 4375 + name = "windows-sys" 4376 + version = "0.59.0" 4377 + source = "registry+https://github.com/rust-lang/crates.io-index" 4378 + checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 4379 + dependencies = [ 4380 + "windows-targets 0.52.6", 4381 + ] 4382 + 4383 + [[package]] 4384 + name = "windows-targets" 4385 + version = "0.48.5" 4386 + source = "registry+https://github.com/rust-lang/crates.io-index" 4387 + checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 4388 + dependencies = [ 4389 + "windows_aarch64_gnullvm 0.48.5", 4390 + "windows_aarch64_msvc 0.48.5", 4391 + "windows_i686_gnu 0.48.5", 4392 + "windows_i686_msvc 0.48.5", 4393 + "windows_x86_64_gnu 0.48.5", 4394 + "windows_x86_64_gnullvm 0.48.5", 4395 + "windows_x86_64_msvc 0.48.5", 4396 + ] 4397 + 4398 + [[package]] 4399 + name = "windows-targets" 4400 + version = "0.52.6" 4401 + source = "registry+https://github.com/rust-lang/crates.io-index" 4402 + checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 4403 + dependencies = [ 4404 + "windows_aarch64_gnullvm 0.52.6", 4405 + "windows_aarch64_msvc 0.52.6", 4406 + "windows_i686_gnu 0.52.6", 4407 + "windows_i686_gnullvm", 4408 + "windows_i686_msvc 0.52.6", 4409 + "windows_x86_64_gnu 0.52.6", 4410 + "windows_x86_64_gnullvm 0.52.6", 4411 + "windows_x86_64_msvc 0.52.6", 4412 + ] 4413 + 4414 + [[package]] 4415 + name = "windows-threading" 4416 + version = "0.1.0" 4417 + source = "registry+https://github.com/rust-lang/crates.io-index" 4418 + checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" 4419 + dependencies = [ 4420 + "windows-link", 4421 + ] 4422 + 4423 + [[package]] 4424 + name = "windows_aarch64_gnullvm" 4425 + version = "0.48.5" 4426 + source = "registry+https://github.com/rust-lang/crates.io-index" 4427 + checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 4428 + 4429 + [[package]] 4430 + name = "windows_aarch64_gnullvm" 4431 + version = "0.52.6" 4432 + source = "registry+https://github.com/rust-lang/crates.io-index" 4433 + checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 4434 + 4435 + [[package]] 4436 + name = "windows_aarch64_msvc" 4437 + version = "0.48.5" 4438 + source = "registry+https://github.com/rust-lang/crates.io-index" 4439 + checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 4440 + 4441 + [[package]] 4442 + name = "windows_aarch64_msvc" 4443 + version = "0.52.6" 4444 + source = "registry+https://github.com/rust-lang/crates.io-index" 4445 + checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 4446 + 4447 + [[package]] 4448 + name = "windows_i686_gnu" 4449 + version = "0.48.5" 4450 + source = "registry+https://github.com/rust-lang/crates.io-index" 4451 + checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 4452 + 4453 + [[package]] 4454 + name = "windows_i686_gnu" 4455 + version = "0.52.6" 4456 + source = "registry+https://github.com/rust-lang/crates.io-index" 4457 + checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 4458 + 4459 + [[package]] 4460 + name = "windows_i686_gnullvm" 4461 + version = "0.52.6" 4462 + source = "registry+https://github.com/rust-lang/crates.io-index" 4463 + checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 4464 + 4465 + [[package]] 4466 + name = "windows_i686_msvc" 4467 + version = "0.48.5" 4468 + source = "registry+https://github.com/rust-lang/crates.io-index" 4469 + checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 4470 + 4471 + [[package]] 4472 + name = "windows_i686_msvc" 4473 + version = "0.52.6" 4474 + source = "registry+https://github.com/rust-lang/crates.io-index" 4475 + checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 4476 + 4477 + [[package]] 4478 + name = "windows_x86_64_gnu" 4479 + version = "0.48.5" 4480 + source = "registry+https://github.com/rust-lang/crates.io-index" 4481 + checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 4482 + 4483 + [[package]] 4484 + name = "windows_x86_64_gnu" 4485 + version = "0.52.6" 4486 + source = "registry+https://github.com/rust-lang/crates.io-index" 4487 + checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 4488 + 4489 + [[package]] 4490 + name = "windows_x86_64_gnullvm" 4491 + version = "0.48.5" 4492 + source = "registry+https://github.com/rust-lang/crates.io-index" 4493 + checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 4494 + 4495 + [[package]] 4496 + name = "windows_x86_64_gnullvm" 4497 + version = "0.52.6" 4498 + source = "registry+https://github.com/rust-lang/crates.io-index" 4499 + checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 4500 + 4501 + [[package]] 4502 + name = "windows_x86_64_msvc" 4503 + version = "0.48.5" 4504 + source = "registry+https://github.com/rust-lang/crates.io-index" 4505 + checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 4506 + 4507 + [[package]] 4508 + name = "windows_x86_64_msvc" 4509 + version = "0.52.6" 4510 + source = "registry+https://github.com/rust-lang/crates.io-index" 4511 + checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 4512 + 4513 + [[package]] 4514 + name = "winnow" 4515 + version = "0.7.12" 4516 + source = "registry+https://github.com/rust-lang/crates.io-index" 4517 + checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95" 4518 + dependencies = [ 4519 + "memchr", 4520 + ] 4521 + 4522 + [[package]] 4523 + name = "winreg" 4524 + version = "0.50.0" 4525 + source = "registry+https://github.com/rust-lang/crates.io-index" 4526 + checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" 4527 + dependencies = [ 4528 + "cfg-if", 4529 + "windows-sys 0.48.0", 4530 + ] 4531 + 4532 + [[package]] 4533 + name = "wit-bindgen-rt" 4534 + version = "0.39.0" 4535 + source = "registry+https://github.com/rust-lang/crates.io-index" 4536 + checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" 4537 + dependencies = [ 4538 + "bitflags", 4539 + ] 4540 + 4541 + [[package]] 4542 + name = "wmi" 4543 + version = "0.17.2" 4544 + source = "registry+https://github.com/rust-lang/crates.io-index" 4545 + checksum = "3d3de777dce4cbcdc661d5d18e78ce4b46a37adc2bb7c0078a556c7f07bcce2f" 4546 + dependencies = [ 4547 + "chrono", 4548 + "futures", 4549 + "log", 4550 + "serde", 4551 + "thiserror 2.0.14", 4552 + "windows", 4553 + "windows-core", 4554 + ] 4555 + 4556 + [[package]] 4557 + name = "writeable" 4558 + version = "0.6.1" 4559 + source = "registry+https://github.com/rust-lang/crates.io-index" 4560 + checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" 4561 + 4562 + [[package]] 4563 + name = "ws_stream_wasm" 4564 + version = "0.7.5" 4565 + source = "registry+https://github.com/rust-lang/crates.io-index" 4566 + checksum = "6c173014acad22e83f16403ee360115b38846fe754e735c5d9d3803fe70c6abc" 4567 + dependencies = [ 4568 + "async_io_stream", 4569 + "futures", 4570 + "js-sys", 4571 + "log", 4572 + "pharos", 4573 + "rustc_version", 4574 + "send_wrapper", 4575 + "thiserror 2.0.14", 4576 + "wasm-bindgen", 4577 + "wasm-bindgen-futures", 4578 + "web-sys", 4579 + ] 4580 + 4581 + [[package]] 4582 + name = "xml-rs" 4583 + version = "0.8.27" 4584 + source = "registry+https://github.com/rust-lang/crates.io-index" 4585 + checksum = "6fd8403733700263c6eb89f192880191f1b83e332f7a20371ddcf421c4a337c7" 4586 + 4587 + [[package]] 4588 + name = "xmltree" 4589 + version = "0.10.3" 4590 + source = "registry+https://github.com/rust-lang/crates.io-index" 4591 + checksum = "d7d8a75eaf6557bb84a65ace8609883db44a29951042ada9b393151532e41fcb" 4592 + dependencies = [ 4593 + "xml-rs", 4594 + ] 4595 + 4596 + [[package]] 4597 + name = "yasna" 4598 + version = "0.5.2" 4599 + source = "registry+https://github.com/rust-lang/crates.io-index" 4600 + checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" 4601 + dependencies = [ 4602 + "time", 4603 + ] 4604 + 4605 + [[package]] 4606 + name = "yoke" 4607 + version = "0.8.0" 4608 + source = "registry+https://github.com/rust-lang/crates.io-index" 4609 + checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" 4610 + dependencies = [ 4611 + "serde", 4612 + "stable_deref_trait", 4613 + "yoke-derive", 4614 + "zerofrom", 4615 + ] 4616 + 4617 + [[package]] 4618 + name = "yoke-derive" 4619 + version = "0.8.0" 4620 + source = "registry+https://github.com/rust-lang/crates.io-index" 4621 + checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" 4622 + dependencies = [ 4623 + "proc-macro2", 4624 + "quote", 4625 + "syn 2.0.105", 4626 + "synstructure", 4627 + ] 4628 + 4629 + [[package]] 4630 + name = "z32" 4631 + version = "1.3.0" 4632 + source = "registry+https://github.com/rust-lang/crates.io-index" 4633 + checksum = "2164e798d9e3d84ee2c91139ace54638059a3b23e361f5c11781c2c6459bde0f" 4634 + 4635 + [[package]] 4636 + name = "zerocopy" 4637 + version = "0.8.26" 4638 + source = "registry+https://github.com/rust-lang/crates.io-index" 4639 + checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" 4640 + dependencies = [ 4641 + "zerocopy-derive", 4642 + ] 4643 + 4644 + [[package]] 4645 + name = "zerocopy-derive" 4646 + version = "0.8.26" 4647 + source = "registry+https://github.com/rust-lang/crates.io-index" 4648 + checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" 4649 + dependencies = [ 4650 + "proc-macro2", 4651 + "quote", 4652 + "syn 2.0.105", 4653 + ] 4654 + 4655 + [[package]] 4656 + name = "zerofrom" 4657 + version = "0.1.6" 4658 + source = "registry+https://github.com/rust-lang/crates.io-index" 4659 + checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" 4660 + dependencies = [ 4661 + "zerofrom-derive", 4662 + ] 4663 + 4664 + [[package]] 4665 + name = "zerofrom-derive" 4666 + version = "0.1.6" 4667 + source = "registry+https://github.com/rust-lang/crates.io-index" 4668 + checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" 4669 + dependencies = [ 4670 + "proc-macro2", 4671 + "quote", 4672 + "syn 2.0.105", 4673 + "synstructure", 4674 + ] 4675 + 4676 + [[package]] 4677 + name = "zeroize" 4678 + version = "1.8.1" 4679 + source = "registry+https://github.com/rust-lang/crates.io-index" 4680 + checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" 4681 + 4682 + [[package]] 4683 + name = "zerotrie" 4684 + version = "0.2.2" 4685 + source = "registry+https://github.com/rust-lang/crates.io-index" 4686 + checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" 4687 + dependencies = [ 4688 + "displaydoc", 4689 + "yoke", 4690 + "zerofrom", 4691 + ] 4692 + 4693 + [[package]] 4694 + name = "zerovec" 4695 + version = "0.11.4" 4696 + source = "registry+https://github.com/rust-lang/crates.io-index" 4697 + checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" 4698 + dependencies = [ 4699 + "yoke", 4700 + "zerofrom", 4701 + "zerovec-derive", 4702 + ] 4703 + 4704 + [[package]] 4705 + name = "zerovec-derive" 4706 + version = "0.11.1" 4707 + source = "registry+https://github.com/rust-lang/crates.io-index" 4708 + checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" 4709 + dependencies = [ 4710 + "proc-macro2", 4711 + "quote", 4712 + "syn 2.0.105", 4713 + ]
+3
Cargo.toml
··· 1 + [workspace] 2 + resolver = "3" 3 + members = ["rust/iroh-streamplace"]
-1
go.mod
··· 306 306 github.com/multiformats/go-multibase v0.2.0 // indirect 307 307 github.com/multiformats/go-varint v0.0.7 // indirect 308 308 github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect 309 - github.com/n0-computer/iroh-streamplace v0.0.0-20250813141041-0b3bbbf8912a // indirect 310 309 github.com/nakabonne/nestif v0.3.1 // indirect 311 310 github.com/nishanths/exhaustive v0.12.0 // indirect 312 311 github.com/nishanths/predeclared v0.2.2 // indirect
-5
meson.build
··· 85 85 if triple != '' 86 86 iroh_streamplace_opts += {'RUST_TRIPLE': triple} 87 87 endif 88 - iroh_streamplace_proj = subproject( 89 - 'iroh_streamplace', 90 - default_options: iroh_streamplace_opts, 91 - ) 92 - iroh_streamplace_dep = iroh_streamplace_proj.get_variable('iroh_streamplace_dep') 93 88 94 89 streamplace_deps = [] 95 90 # if host_machine.system() == 'linux'
+1 -1
pkg/cmd/streamplace.go
··· 40 40 "stream.place/streamplace/pkg/config" 41 41 "stream.place/streamplace/pkg/model" 42 42 43 - irohStreamplace "github.com/n0-computer/iroh-streamplace/pkg/iroh_streamplace/generated/iroh_streamplace" 43 + irohStreamplace "stream.place/streamplace/pkg/iroh/generated/iroh_streamplace" 44 44 ) 45 45 46 46 // Additional jobs that can be injected by platforms
+1985
pkg/iroh/generated/iroh_streamplace/iroh_streamplace.go
··· 1 + package iroh_streamplace 2 + 3 + // #include <iroh_streamplace.h> 4 + import "C" 5 + 6 + import ( 7 + "bytes" 8 + "encoding/binary" 9 + "fmt" 10 + "io" 11 + "math" 12 + "runtime" 13 + "runtime/cgo" 14 + "sync" 15 + "sync/atomic" 16 + "unsafe" 17 + ) 18 + 19 + // This is needed, because as of go 1.24 20 + // type RustBuffer C.RustBuffer cannot have methods, 21 + // RustBuffer is treated as non-local type 22 + type GoRustBuffer struct { 23 + inner C.RustBuffer 24 + } 25 + 26 + type RustBufferI interface { 27 + AsReader() *bytes.Reader 28 + Free() 29 + ToGoBytes() []byte 30 + Data() unsafe.Pointer 31 + Len() uint64 32 + Capacity() uint64 33 + } 34 + 35 + func RustBufferFromExternal(b RustBufferI) GoRustBuffer { 36 + return GoRustBuffer{ 37 + inner: C.RustBuffer{ 38 + capacity: C.uint64_t(b.Capacity()), 39 + len: C.uint64_t(b.Len()), 40 + data: (*C.uchar)(b.Data()), 41 + }, 42 + } 43 + } 44 + 45 + func (cb GoRustBuffer) Capacity() uint64 { 46 + return uint64(cb.inner.capacity) 47 + } 48 + 49 + func (cb GoRustBuffer) Len() uint64 { 50 + return uint64(cb.inner.len) 51 + } 52 + 53 + func (cb GoRustBuffer) Data() unsafe.Pointer { 54 + return unsafe.Pointer(cb.inner.data) 55 + } 56 + 57 + func (cb GoRustBuffer) AsReader() *bytes.Reader { 58 + b := unsafe.Slice((*byte)(cb.inner.data), C.uint64_t(cb.inner.len)) 59 + return bytes.NewReader(b) 60 + } 61 + 62 + func (cb GoRustBuffer) Free() { 63 + rustCall(func(status *C.RustCallStatus) bool { 64 + C.ffi_iroh_streamplace_rustbuffer_free(cb.inner, status) 65 + return false 66 + }) 67 + } 68 + 69 + func (cb GoRustBuffer) ToGoBytes() []byte { 70 + return C.GoBytes(unsafe.Pointer(cb.inner.data), C.int(cb.inner.len)) 71 + } 72 + 73 + func stringToRustBuffer(str string) C.RustBuffer { 74 + return bytesToRustBuffer([]byte(str)) 75 + } 76 + 77 + func bytesToRustBuffer(b []byte) C.RustBuffer { 78 + if len(b) == 0 { 79 + return C.RustBuffer{} 80 + } 81 + // We can pass the pointer along here, as it is pinned 82 + // for the duration of this call 83 + foreign := C.ForeignBytes{ 84 + len: C.int(len(b)), 85 + data: (*C.uchar)(unsafe.Pointer(&b[0])), 86 + } 87 + 88 + return rustCall(func(status *C.RustCallStatus) C.RustBuffer { 89 + return C.ffi_iroh_streamplace_rustbuffer_from_bytes(foreign, status) 90 + }) 91 + } 92 + 93 + type BufLifter[GoType any] interface { 94 + Lift(value RustBufferI) GoType 95 + } 96 + 97 + type BufLowerer[GoType any] interface { 98 + Lower(value GoType) C.RustBuffer 99 + } 100 + 101 + type BufReader[GoType any] interface { 102 + Read(reader io.Reader) GoType 103 + } 104 + 105 + type BufWriter[GoType any] interface { 106 + Write(writer io.Writer, value GoType) 107 + } 108 + 109 + func LowerIntoRustBuffer[GoType any](bufWriter BufWriter[GoType], value GoType) C.RustBuffer { 110 + // This might be not the most efficient way but it does not require knowing allocation size 111 + // beforehand 112 + var buffer bytes.Buffer 113 + bufWriter.Write(&buffer, value) 114 + 115 + bytes, err := io.ReadAll(&buffer) 116 + if err != nil { 117 + panic(fmt.Errorf("reading written data: %w", err)) 118 + } 119 + return bytesToRustBuffer(bytes) 120 + } 121 + 122 + func LiftFromRustBuffer[GoType any](bufReader BufReader[GoType], rbuf RustBufferI) GoType { 123 + defer rbuf.Free() 124 + reader := rbuf.AsReader() 125 + item := bufReader.Read(reader) 126 + if reader.Len() > 0 { 127 + // TODO: Remove this 128 + leftover, _ := io.ReadAll(reader) 129 + panic(fmt.Errorf("Junk remaining in buffer after lifting: %s", string(leftover))) 130 + } 131 + return item 132 + } 133 + 134 + func rustCallWithError[E any, U any](converter BufReader[*E], callback func(*C.RustCallStatus) U) (U, *E) { 135 + var status C.RustCallStatus 136 + returnValue := callback(&status) 137 + err := checkCallStatus(converter, status) 138 + return returnValue, err 139 + } 140 + 141 + func checkCallStatus[E any](converter BufReader[*E], status C.RustCallStatus) *E { 142 + switch status.code { 143 + case 0: 144 + return nil 145 + case 1: 146 + return LiftFromRustBuffer(converter, GoRustBuffer{inner: status.errorBuf}) 147 + case 2: 148 + // when the rust code sees a panic, it tries to construct a rustBuffer 149 + // with the message. but if that code panics, then it just sends back 150 + // an empty buffer. 151 + if status.errorBuf.len > 0 { 152 + panic(fmt.Errorf("%s", FfiConverterStringINSTANCE.Lift(GoRustBuffer{inner: status.errorBuf}))) 153 + } else { 154 + panic(fmt.Errorf("Rust panicked while handling Rust panic")) 155 + } 156 + default: 157 + panic(fmt.Errorf("unknown status code: %d", status.code)) 158 + } 159 + } 160 + 161 + func checkCallStatusUnknown(status C.RustCallStatus) error { 162 + switch status.code { 163 + case 0: 164 + return nil 165 + case 1: 166 + panic(fmt.Errorf("function not returning an error returned an error")) 167 + case 2: 168 + // when the rust code sees a panic, it tries to construct a C.RustBuffer 169 + // with the message. but if that code panics, then it just sends back 170 + // an empty buffer. 171 + if status.errorBuf.len > 0 { 172 + panic(fmt.Errorf("%s", FfiConverterStringINSTANCE.Lift(GoRustBuffer{ 173 + inner: status.errorBuf, 174 + }))) 175 + } else { 176 + panic(fmt.Errorf("Rust panicked while handling Rust panic")) 177 + } 178 + default: 179 + return fmt.Errorf("unknown status code: %d", status.code) 180 + } 181 + } 182 + 183 + func rustCall[U any](callback func(*C.RustCallStatus) U) U { 184 + returnValue, err := rustCallWithError[error](nil, callback) 185 + if err != nil { 186 + panic(err) 187 + } 188 + return returnValue 189 + } 190 + 191 + type NativeError interface { 192 + AsError() error 193 + } 194 + 195 + func writeInt8(writer io.Writer, value int8) { 196 + if err := binary.Write(writer, binary.BigEndian, value); err != nil { 197 + panic(err) 198 + } 199 + } 200 + 201 + func writeUint8(writer io.Writer, value uint8) { 202 + if err := binary.Write(writer, binary.BigEndian, value); err != nil { 203 + panic(err) 204 + } 205 + } 206 + 207 + func writeInt16(writer io.Writer, value int16) { 208 + if err := binary.Write(writer, binary.BigEndian, value); err != nil { 209 + panic(err) 210 + } 211 + } 212 + 213 + func writeUint16(writer io.Writer, value uint16) { 214 + if err := binary.Write(writer, binary.BigEndian, value); err != nil { 215 + panic(err) 216 + } 217 + } 218 + 219 + func writeInt32(writer io.Writer, value int32) { 220 + if err := binary.Write(writer, binary.BigEndian, value); err != nil { 221 + panic(err) 222 + } 223 + } 224 + 225 + func writeUint32(writer io.Writer, value uint32) { 226 + if err := binary.Write(writer, binary.BigEndian, value); err != nil { 227 + panic(err) 228 + } 229 + } 230 + 231 + func writeInt64(writer io.Writer, value int64) { 232 + if err := binary.Write(writer, binary.BigEndian, value); err != nil { 233 + panic(err) 234 + } 235 + } 236 + 237 + func writeUint64(writer io.Writer, value uint64) { 238 + if err := binary.Write(writer, binary.BigEndian, value); err != nil { 239 + panic(err) 240 + } 241 + } 242 + 243 + func writeFloat32(writer io.Writer, value float32) { 244 + if err := binary.Write(writer, binary.BigEndian, value); err != nil { 245 + panic(err) 246 + } 247 + } 248 + 249 + func writeFloat64(writer io.Writer, value float64) { 250 + if err := binary.Write(writer, binary.BigEndian, value); err != nil { 251 + panic(err) 252 + } 253 + } 254 + 255 + func readInt8(reader io.Reader) int8 { 256 + var result int8 257 + if err := binary.Read(reader, binary.BigEndian, &result); err != nil { 258 + panic(err) 259 + } 260 + return result 261 + } 262 + 263 + func readUint8(reader io.Reader) uint8 { 264 + var result uint8 265 + if err := binary.Read(reader, binary.BigEndian, &result); err != nil { 266 + panic(err) 267 + } 268 + return result 269 + } 270 + 271 + func readInt16(reader io.Reader) int16 { 272 + var result int16 273 + if err := binary.Read(reader, binary.BigEndian, &result); err != nil { 274 + panic(err) 275 + } 276 + return result 277 + } 278 + 279 + func readUint16(reader io.Reader) uint16 { 280 + var result uint16 281 + if err := binary.Read(reader, binary.BigEndian, &result); err != nil { 282 + panic(err) 283 + } 284 + return result 285 + } 286 + 287 + func readInt32(reader io.Reader) int32 { 288 + var result int32 289 + if err := binary.Read(reader, binary.BigEndian, &result); err != nil { 290 + panic(err) 291 + } 292 + return result 293 + } 294 + 295 + func readUint32(reader io.Reader) uint32 { 296 + var result uint32 297 + if err := binary.Read(reader, binary.BigEndian, &result); err != nil { 298 + panic(err) 299 + } 300 + return result 301 + } 302 + 303 + func readInt64(reader io.Reader) int64 { 304 + var result int64 305 + if err := binary.Read(reader, binary.BigEndian, &result); err != nil { 306 + panic(err) 307 + } 308 + return result 309 + } 310 + 311 + func readUint64(reader io.Reader) uint64 { 312 + var result uint64 313 + if err := binary.Read(reader, binary.BigEndian, &result); err != nil { 314 + panic(err) 315 + } 316 + return result 317 + } 318 + 319 + func readFloat32(reader io.Reader) float32 { 320 + var result float32 321 + if err := binary.Read(reader, binary.BigEndian, &result); err != nil { 322 + panic(err) 323 + } 324 + return result 325 + } 326 + 327 + func readFloat64(reader io.Reader) float64 { 328 + var result float64 329 + if err := binary.Read(reader, binary.BigEndian, &result); err != nil { 330 + panic(err) 331 + } 332 + return result 333 + } 334 + 335 + func init() { 336 + 337 + FfiConverterDataHandlerINSTANCE.register() 338 + uniffiCheckChecksums() 339 + } 340 + 341 + func uniffiCheckChecksums() { 342 + // Get the bindings contract version from our ComponentInterface 343 + bindingsContractVersion := 26 344 + // Get the scaffolding contract version by calling the into the dylib 345 + scaffoldingContractVersion := rustCall(func(_uniffiStatus *C.RustCallStatus) C.uint32_t { 346 + return C.ffi_iroh_streamplace_uniffi_contract_version() 347 + }) 348 + if bindingsContractVersion != int(scaffoldingContractVersion) { 349 + // If this happens try cleaning and rebuilding your project 350 + panic("iroh_streamplace: UniFFI contract version mismatch") 351 + } 352 + { 353 + checksum := rustCall(func(_uniffiStatus *C.RustCallStatus) C.uint16_t { 354 + return C.uniffi_iroh_streamplace_checksum_method_datahandler_handle_data() 355 + }) 356 + if checksum != 27893 { 357 + // If this happens try cleaning and rebuilding your project 358 + panic("iroh_streamplace: uniffi_iroh_streamplace_checksum_method_datahandler_handle_data: UniFFI API checksum mismatch") 359 + } 360 + } 361 + { 362 + checksum := rustCall(func(_uniffiStatus *C.RustCallStatus) C.uint16_t { 363 + return C.uniffi_iroh_streamplace_checksum_method_endpoint_node_addr() 364 + }) 365 + if checksum != 17254 { 366 + // If this happens try cleaning and rebuilding your project 367 + panic("iroh_streamplace: uniffi_iroh_streamplace_checksum_method_endpoint_node_addr: UniFFI API checksum mismatch") 368 + } 369 + } 370 + { 371 + checksum := rustCall(func(_uniffiStatus *C.RustCallStatus) C.uint16_t { 372 + return C.uniffi_iroh_streamplace_checksum_method_nodeaddr_direct_addresses() 373 + }) 374 + if checksum != 17536 { 375 + // If this happens try cleaning and rebuilding your project 376 + panic("iroh_streamplace: uniffi_iroh_streamplace_checksum_method_nodeaddr_direct_addresses: UniFFI API checksum mismatch") 377 + } 378 + } 379 + { 380 + checksum := rustCall(func(_uniffiStatus *C.RustCallStatus) C.uint16_t { 381 + return C.uniffi_iroh_streamplace_checksum_method_nodeaddr_equal() 382 + }) 383 + if checksum != 15520 { 384 + // If this happens try cleaning and rebuilding your project 385 + panic("iroh_streamplace: uniffi_iroh_streamplace_checksum_method_nodeaddr_equal: UniFFI API checksum mismatch") 386 + } 387 + } 388 + { 389 + checksum := rustCall(func(_uniffiStatus *C.RustCallStatus) C.uint16_t { 390 + return C.uniffi_iroh_streamplace_checksum_method_nodeaddr_node_id() 391 + }) 392 + if checksum != 35476 { 393 + // If this happens try cleaning and rebuilding your project 394 + panic("iroh_streamplace: uniffi_iroh_streamplace_checksum_method_nodeaddr_node_id: UniFFI API checksum mismatch") 395 + } 396 + } 397 + { 398 + checksum := rustCall(func(_uniffiStatus *C.RustCallStatus) C.uint16_t { 399 + return C.uniffi_iroh_streamplace_checksum_method_nodeaddr_relay_url() 400 + }) 401 + if checksum != 18967 { 402 + // If this happens try cleaning and rebuilding your project 403 + panic("iroh_streamplace: uniffi_iroh_streamplace_checksum_method_nodeaddr_relay_url: UniFFI API checksum mismatch") 404 + } 405 + } 406 + { 407 + checksum := rustCall(func(_uniffiStatus *C.RustCallStatus) C.uint16_t { 408 + return C.uniffi_iroh_streamplace_checksum_method_publickey_equal() 409 + }) 410 + if checksum != 25030 { 411 + // If this happens try cleaning and rebuilding your project 412 + panic("iroh_streamplace: uniffi_iroh_streamplace_checksum_method_publickey_equal: UniFFI API checksum mismatch") 413 + } 414 + } 415 + { 416 + checksum := rustCall(func(_uniffiStatus *C.RustCallStatus) C.uint16_t { 417 + return C.uniffi_iroh_streamplace_checksum_method_publickey_fmt_short() 418 + }) 419 + if checksum != 57639 { 420 + // If this happens try cleaning and rebuilding your project 421 + panic("iroh_streamplace: uniffi_iroh_streamplace_checksum_method_publickey_fmt_short: UniFFI API checksum mismatch") 422 + } 423 + } 424 + { 425 + checksum := rustCall(func(_uniffiStatus *C.RustCallStatus) C.uint16_t { 426 + return C.uniffi_iroh_streamplace_checksum_method_publickey_to_bytes() 427 + }) 428 + if checksum != 8223 { 429 + // If this happens try cleaning and rebuilding your project 430 + panic("iroh_streamplace: uniffi_iroh_streamplace_checksum_method_publickey_to_bytes: UniFFI API checksum mismatch") 431 + } 432 + } 433 + { 434 + checksum := rustCall(func(_uniffiStatus *C.RustCallStatus) C.uint16_t { 435 + return C.uniffi_iroh_streamplace_checksum_method_receiver_node_addr() 436 + }) 437 + if checksum != 10730 { 438 + // If this happens try cleaning and rebuilding your project 439 + panic("iroh_streamplace: uniffi_iroh_streamplace_checksum_method_receiver_node_addr: UniFFI API checksum mismatch") 440 + } 441 + } 442 + { 443 + checksum := rustCall(func(_uniffiStatus *C.RustCallStatus) C.uint16_t { 444 + return C.uniffi_iroh_streamplace_checksum_method_receiver_subscribe() 445 + }) 446 + if checksum != 24145 { 447 + // If this happens try cleaning and rebuilding your project 448 + panic("iroh_streamplace: uniffi_iroh_streamplace_checksum_method_receiver_subscribe: UniFFI API checksum mismatch") 449 + } 450 + } 451 + { 452 + checksum := rustCall(func(_uniffiStatus *C.RustCallStatus) C.uint16_t { 453 + return C.uniffi_iroh_streamplace_checksum_method_receiver_unsubscribe() 454 + }) 455 + if checksum != 21760 { 456 + // If this happens try cleaning and rebuilding your project 457 + panic("iroh_streamplace: uniffi_iroh_streamplace_checksum_method_receiver_unsubscribe: UniFFI API checksum mismatch") 458 + } 459 + } 460 + { 461 + checksum := rustCall(func(_uniffiStatus *C.RustCallStatus) C.uint16_t { 462 + return C.uniffi_iroh_streamplace_checksum_method_sender_node_addr() 463 + }) 464 + if checksum != 38541 { 465 + // If this happens try cleaning and rebuilding your project 466 + panic("iroh_streamplace: uniffi_iroh_streamplace_checksum_method_sender_node_addr: UniFFI API checksum mismatch") 467 + } 468 + } 469 + { 470 + checksum := rustCall(func(_uniffiStatus *C.RustCallStatus) C.uint16_t { 471 + return C.uniffi_iroh_streamplace_checksum_method_sender_send() 472 + }) 473 + if checksum != 23930 { 474 + // If this happens try cleaning and rebuilding your project 475 + panic("iroh_streamplace: uniffi_iroh_streamplace_checksum_method_sender_send: UniFFI API checksum mismatch") 476 + } 477 + } 478 + { 479 + checksum := rustCall(func(_uniffiStatus *C.RustCallStatus) C.uint16_t { 480 + return C.uniffi_iroh_streamplace_checksum_constructor_endpoint_new() 481 + }) 482 + if checksum != 60672 { 483 + // If this happens try cleaning and rebuilding your project 484 + panic("iroh_streamplace: uniffi_iroh_streamplace_checksum_constructor_endpoint_new: UniFFI API checksum mismatch") 485 + } 486 + } 487 + { 488 + checksum := rustCall(func(_uniffiStatus *C.RustCallStatus) C.uint16_t { 489 + return C.uniffi_iroh_streamplace_checksum_constructor_nodeaddr_new() 490 + }) 491 + if checksum != 28044 { 492 + // If this happens try cleaning and rebuilding your project 493 + panic("iroh_streamplace: uniffi_iroh_streamplace_checksum_constructor_nodeaddr_new: UniFFI API checksum mismatch") 494 + } 495 + } 496 + { 497 + checksum := rustCall(func(_uniffiStatus *C.RustCallStatus) C.uint16_t { 498 + return C.uniffi_iroh_streamplace_checksum_constructor_publickey_from_bytes() 499 + }) 500 + if checksum != 54187 { 501 + // If this happens try cleaning and rebuilding your project 502 + panic("iroh_streamplace: uniffi_iroh_streamplace_checksum_constructor_publickey_from_bytes: UniFFI API checksum mismatch") 503 + } 504 + } 505 + { 506 + checksum := rustCall(func(_uniffiStatus *C.RustCallStatus) C.uint16_t { 507 + return C.uniffi_iroh_streamplace_checksum_constructor_publickey_from_string() 508 + }) 509 + if checksum != 62773 { 510 + // If this happens try cleaning and rebuilding your project 511 + panic("iroh_streamplace: uniffi_iroh_streamplace_checksum_constructor_publickey_from_string: UniFFI API checksum mismatch") 512 + } 513 + } 514 + { 515 + checksum := rustCall(func(_uniffiStatus *C.RustCallStatus) C.uint16_t { 516 + return C.uniffi_iroh_streamplace_checksum_constructor_receiver_new() 517 + }) 518 + if checksum != 35153 { 519 + // If this happens try cleaning and rebuilding your project 520 + panic("iroh_streamplace: uniffi_iroh_streamplace_checksum_constructor_receiver_new: UniFFI API checksum mismatch") 521 + } 522 + } 523 + { 524 + checksum := rustCall(func(_uniffiStatus *C.RustCallStatus) C.uint16_t { 525 + return C.uniffi_iroh_streamplace_checksum_constructor_sender_new() 526 + }) 527 + if checksum != 27594 { 528 + // If this happens try cleaning and rebuilding your project 529 + panic("iroh_streamplace: uniffi_iroh_streamplace_checksum_constructor_sender_new: UniFFI API checksum mismatch") 530 + } 531 + } 532 + } 533 + 534 + type FfiConverterBool struct{} 535 + 536 + var FfiConverterBoolINSTANCE = FfiConverterBool{} 537 + 538 + func (FfiConverterBool) Lower(value bool) C.int8_t { 539 + if value { 540 + return C.int8_t(1) 541 + } 542 + return C.int8_t(0) 543 + } 544 + 545 + func (FfiConverterBool) Write(writer io.Writer, value bool) { 546 + if value { 547 + writeInt8(writer, 1) 548 + } else { 549 + writeInt8(writer, 0) 550 + } 551 + } 552 + 553 + func (FfiConverterBool) Lift(value C.int8_t) bool { 554 + return value != 0 555 + } 556 + 557 + func (FfiConverterBool) Read(reader io.Reader) bool { 558 + return readInt8(reader) != 0 559 + } 560 + 561 + type FfiDestroyerBool struct{} 562 + 563 + func (FfiDestroyerBool) Destroy(_ bool) {} 564 + 565 + type FfiConverterString struct{} 566 + 567 + var FfiConverterStringINSTANCE = FfiConverterString{} 568 + 569 + func (FfiConverterString) Lift(rb RustBufferI) string { 570 + defer rb.Free() 571 + reader := rb.AsReader() 572 + b, err := io.ReadAll(reader) 573 + if err != nil { 574 + panic(fmt.Errorf("reading reader: %w", err)) 575 + } 576 + return string(b) 577 + } 578 + 579 + func (FfiConverterString) Read(reader io.Reader) string { 580 + length := readInt32(reader) 581 + buffer := make([]byte, length) 582 + read_length, err := reader.Read(buffer) 583 + if err != nil { 584 + panic(err) 585 + } 586 + if read_length != int(length) { 587 + panic(fmt.Errorf("bad read length when reading string, expected %d, read %d", length, read_length)) 588 + } 589 + return string(buffer) 590 + } 591 + 592 + func (FfiConverterString) Lower(value string) C.RustBuffer { 593 + return stringToRustBuffer(value) 594 + } 595 + 596 + func (FfiConverterString) Write(writer io.Writer, value string) { 597 + if len(value) > math.MaxInt32 { 598 + panic("String is too large to fit into Int32") 599 + } 600 + 601 + writeInt32(writer, int32(len(value))) 602 + write_length, err := io.WriteString(writer, value) 603 + if err != nil { 604 + panic(err) 605 + } 606 + if write_length != len(value) { 607 + panic(fmt.Errorf("bad write length when writing string, expected %d, written %d", len(value), write_length)) 608 + } 609 + } 610 + 611 + type FfiDestroyerString struct{} 612 + 613 + func (FfiDestroyerString) Destroy(_ string) {} 614 + 615 + type FfiConverterBytes struct{} 616 + 617 + var FfiConverterBytesINSTANCE = FfiConverterBytes{} 618 + 619 + func (c FfiConverterBytes) Lower(value []byte) C.RustBuffer { 620 + return LowerIntoRustBuffer[[]byte](c, value) 621 + } 622 + 623 + func (c FfiConverterBytes) Write(writer io.Writer, value []byte) { 624 + if len(value) > math.MaxInt32 { 625 + panic("[]byte is too large to fit into Int32") 626 + } 627 + 628 + writeInt32(writer, int32(len(value))) 629 + write_length, err := writer.Write(value) 630 + if err != nil { 631 + panic(err) 632 + } 633 + if write_length != len(value) { 634 + panic(fmt.Errorf("bad write length when writing []byte, expected %d, written %d", len(value), write_length)) 635 + } 636 + } 637 + 638 + func (c FfiConverterBytes) Lift(rb RustBufferI) []byte { 639 + return LiftFromRustBuffer[[]byte](c, rb) 640 + } 641 + 642 + func (c FfiConverterBytes) Read(reader io.Reader) []byte { 643 + length := readInt32(reader) 644 + buffer := make([]byte, length) 645 + read_length, err := reader.Read(buffer) 646 + if err != nil { 647 + panic(err) 648 + } 649 + if read_length != int(length) { 650 + panic(fmt.Errorf("bad read length when reading []byte, expected %d, read %d", length, read_length)) 651 + } 652 + return buffer 653 + } 654 + 655 + type FfiDestroyerBytes struct{} 656 + 657 + func (FfiDestroyerBytes) Destroy(_ []byte) {} 658 + 659 + // Below is an implementation of synchronization requirements outlined in the link. 660 + // https://github.com/mozilla/uniffi-rs/blob/0dc031132d9493ca812c3af6e7dd60ad2ea95bf0/uniffi_bindgen/src/bindings/kotlin/templates/ObjectRuntime.kt#L31 661 + 662 + type FfiObject struct { 663 + pointer unsafe.Pointer 664 + callCounter atomic.Int64 665 + cloneFunction func(unsafe.Pointer, *C.RustCallStatus) unsafe.Pointer 666 + freeFunction func(unsafe.Pointer, *C.RustCallStatus) 667 + destroyed atomic.Bool 668 + } 669 + 670 + func newFfiObject( 671 + pointer unsafe.Pointer, 672 + cloneFunction func(unsafe.Pointer, *C.RustCallStatus) unsafe.Pointer, 673 + freeFunction func(unsafe.Pointer, *C.RustCallStatus), 674 + ) FfiObject { 675 + return FfiObject{ 676 + pointer: pointer, 677 + cloneFunction: cloneFunction, 678 + freeFunction: freeFunction, 679 + } 680 + } 681 + 682 + func (ffiObject *FfiObject) incrementPointer(debugName string) unsafe.Pointer { 683 + for { 684 + counter := ffiObject.callCounter.Load() 685 + if counter <= -1 { 686 + panic(fmt.Errorf("%v object has already been destroyed", debugName)) 687 + } 688 + if counter == math.MaxInt64 { 689 + panic(fmt.Errorf("%v object call counter would overflow", debugName)) 690 + } 691 + if ffiObject.callCounter.CompareAndSwap(counter, counter+1) { 692 + break 693 + } 694 + } 695 + 696 + return rustCall(func(status *C.RustCallStatus) unsafe.Pointer { 697 + return ffiObject.cloneFunction(ffiObject.pointer, status) 698 + }) 699 + } 700 + 701 + func (ffiObject *FfiObject) decrementPointer() { 702 + if ffiObject.callCounter.Add(-1) == -1 { 703 + ffiObject.freeRustArcPtr() 704 + } 705 + } 706 + 707 + func (ffiObject *FfiObject) destroy() { 708 + if ffiObject.destroyed.CompareAndSwap(false, true) { 709 + if ffiObject.callCounter.Add(-1) == -1 { 710 + ffiObject.freeRustArcPtr() 711 + } 712 + } 713 + } 714 + 715 + func (ffiObject *FfiObject) freeRustArcPtr() { 716 + rustCall(func(status *C.RustCallStatus) int32 { 717 + ffiObject.freeFunction(ffiObject.pointer, status) 718 + return 0 719 + }) 720 + } 721 + 722 + type DataHandler interface { 723 + HandleData(topic string, data []byte) 724 + } 725 + type DataHandlerImpl struct { 726 + ffiObject FfiObject 727 + } 728 + 729 + func (_self *DataHandlerImpl) HandleData(topic string, data []byte) { 730 + _pointer := _self.ffiObject.incrementPointer("DataHandler") 731 + defer _self.ffiObject.decrementPointer() 732 + uniffiRustCallAsync[struct{}]( 733 + nil, 734 + // completeFn 735 + func(handle C.uint64_t, status *C.RustCallStatus) struct{} { 736 + C.ffi_iroh_streamplace_rust_future_complete_void(handle, status) 737 + return struct{}{} 738 + }, 739 + // liftFn 740 + func(_ struct{}) struct{} { return struct{}{} }, 741 + C.uniffi_iroh_streamplace_fn_method_datahandler_handle_data( 742 + _pointer, FfiConverterStringINSTANCE.Lower(topic), FfiConverterBytesINSTANCE.Lower(data)), 743 + // pollFn 744 + func(handle C.uint64_t, continuation C.UniffiRustFutureContinuationCallback, data C.uint64_t) { 745 + C.ffi_iroh_streamplace_rust_future_poll_void(handle, continuation, data) 746 + }, 747 + // freeFn 748 + func(handle C.uint64_t) { 749 + C.ffi_iroh_streamplace_rust_future_free_void(handle) 750 + }, 751 + ) 752 + 753 + } 754 + func (object *DataHandlerImpl) Destroy() { 755 + runtime.SetFinalizer(object, nil) 756 + object.ffiObject.destroy() 757 + } 758 + 759 + type FfiConverterDataHandler struct { 760 + handleMap *concurrentHandleMap[DataHandler] 761 + } 762 + 763 + var FfiConverterDataHandlerINSTANCE = FfiConverterDataHandler{ 764 + handleMap: newConcurrentHandleMap[DataHandler](), 765 + } 766 + 767 + func (c FfiConverterDataHandler) Lift(pointer unsafe.Pointer) DataHandler { 768 + result := &DataHandlerImpl{ 769 + newFfiObject( 770 + pointer, 771 + func(pointer unsafe.Pointer, status *C.RustCallStatus) unsafe.Pointer { 772 + return C.uniffi_iroh_streamplace_fn_clone_datahandler(pointer, status) 773 + }, 774 + func(pointer unsafe.Pointer, status *C.RustCallStatus) { 775 + C.uniffi_iroh_streamplace_fn_free_datahandler(pointer, status) 776 + }, 777 + ), 778 + } 779 + runtime.SetFinalizer(result, (*DataHandlerImpl).Destroy) 780 + return result 781 + } 782 + 783 + func (c FfiConverterDataHandler) Read(reader io.Reader) DataHandler { 784 + return c.Lift(unsafe.Pointer(uintptr(readUint64(reader)))) 785 + } 786 + 787 + func (c FfiConverterDataHandler) Lower(value DataHandler) unsafe.Pointer { 788 + // TODO: this is bad - all synchronization from ObjectRuntime.go is discarded here, 789 + // because the pointer will be decremented immediately after this function returns, 790 + // and someone will be left holding onto a non-locked pointer. 791 + pointer := unsafe.Pointer(uintptr(c.handleMap.insert(value))) 792 + return pointer 793 + 794 + } 795 + 796 + func (c FfiConverterDataHandler) Write(writer io.Writer, value DataHandler) { 797 + writeUint64(writer, uint64(uintptr(c.Lower(value)))) 798 + } 799 + 800 + type FfiDestroyerDataHandler struct{} 801 + 802 + func (_ FfiDestroyerDataHandler) Destroy(value DataHandler) { 803 + if val, ok := value.(*DataHandlerImpl); ok { 804 + val.Destroy() 805 + } else { 806 + panic("Expected *DataHandlerImpl") 807 + } 808 + } 809 + 810 + type uniffiCallbackResult C.int8_t 811 + 812 + const ( 813 + uniffiIdxCallbackFree uniffiCallbackResult = 0 814 + uniffiCallbackResultSuccess uniffiCallbackResult = 0 815 + uniffiCallbackResultError uniffiCallbackResult = 1 816 + uniffiCallbackUnexpectedResultError uniffiCallbackResult = 2 817 + uniffiCallbackCancelled uniffiCallbackResult = 3 818 + ) 819 + 820 + type concurrentHandleMap[T any] struct { 821 + handles map[uint64]T 822 + currentHandle uint64 823 + lock sync.RWMutex 824 + } 825 + 826 + func newConcurrentHandleMap[T any]() *concurrentHandleMap[T] { 827 + return &concurrentHandleMap[T]{ 828 + handles: map[uint64]T{}, 829 + } 830 + } 831 + 832 + func (cm *concurrentHandleMap[T]) insert(obj T) uint64 { 833 + cm.lock.Lock() 834 + defer cm.lock.Unlock() 835 + 836 + cm.currentHandle = cm.currentHandle + 1 837 + cm.handles[cm.currentHandle] = obj 838 + return cm.currentHandle 839 + } 840 + 841 + func (cm *concurrentHandleMap[T]) remove(handle uint64) { 842 + cm.lock.Lock() 843 + defer cm.lock.Unlock() 844 + 845 + delete(cm.handles, handle) 846 + } 847 + 848 + func (cm *concurrentHandleMap[T]) tryGet(handle uint64) (T, bool) { 849 + cm.lock.RLock() 850 + defer cm.lock.RUnlock() 851 + 852 + val, ok := cm.handles[handle] 853 + return val, ok 854 + } 855 + 856 + //export iroh_streamplace_cgo_dispatchCallbackInterfaceDataHandlerMethod0 857 + func iroh_streamplace_cgo_dispatchCallbackInterfaceDataHandlerMethod0(uniffiHandle C.uint64_t, topic C.RustBuffer, data C.RustBuffer, uniffiFutureCallback C.UniffiForeignFutureCompleteVoid, uniffiCallbackData C.uint64_t, uniffiOutReturn *C.UniffiForeignFuture) { 858 + handle := uint64(uniffiHandle) 859 + uniffiObj, ok := FfiConverterDataHandlerINSTANCE.handleMap.tryGet(handle) 860 + if !ok { 861 + panic(fmt.Errorf("no callback in handle map: %d", handle)) 862 + } 863 + 864 + result := make(chan C.UniffiForeignFutureStructVoid, 1) 865 + cancel := make(chan struct{}, 1) 866 + guardHandle := cgo.NewHandle(cancel) 867 + *uniffiOutReturn = C.UniffiForeignFuture{ 868 + handle: C.uint64_t(guardHandle), 869 + free: C.UniffiForeignFutureFree(C.iroh_streamplace_uniffiFreeGorutine), 870 + } 871 + 872 + // Wait for compleation or cancel 873 + go func() { 874 + select { 875 + case <-cancel: 876 + case res := <-result: 877 + C.call_UniffiForeignFutureCompleteVoid(uniffiFutureCallback, uniffiCallbackData, res) 878 + } 879 + }() 880 + 881 + // Eval callback asynchroniously 882 + go func() { 883 + asyncResult := &C.UniffiForeignFutureStructVoid{} 884 + defer func() { 885 + result <- *asyncResult 886 + }() 887 + 888 + uniffiObj.HandleData( 889 + FfiConverterStringINSTANCE.Lift(GoRustBuffer{ 890 + inner: topic, 891 + }), 892 + FfiConverterBytesINSTANCE.Lift(GoRustBuffer{ 893 + inner: data, 894 + }), 895 + ) 896 + 897 + }() 898 + } 899 + 900 + var UniffiVTableCallbackInterfaceDataHandlerINSTANCE = C.UniffiVTableCallbackInterfaceDataHandler{ 901 + handleData: (C.UniffiCallbackInterfaceDataHandlerMethod0)(C.iroh_streamplace_cgo_dispatchCallbackInterfaceDataHandlerMethod0), 902 + 903 + uniffiFree: (C.UniffiCallbackInterfaceFree)(C.iroh_streamplace_cgo_dispatchCallbackInterfaceDataHandlerFree), 904 + } 905 + 906 + //export iroh_streamplace_cgo_dispatchCallbackInterfaceDataHandlerFree 907 + func iroh_streamplace_cgo_dispatchCallbackInterfaceDataHandlerFree(handle C.uint64_t) { 908 + FfiConverterDataHandlerINSTANCE.handleMap.remove(uint64(handle)) 909 + } 910 + 911 + func (c FfiConverterDataHandler) register() { 912 + C.uniffi_iroh_streamplace_fn_init_callback_vtable_datahandler(&UniffiVTableCallbackInterfaceDataHandlerINSTANCE) 913 + } 914 + 915 + type EndpointInterface interface { 916 + NodeAddr() *NodeAddr 917 + } 918 + type Endpoint struct { 919 + ffiObject FfiObject 920 + } 921 + 922 + // Create a new endpoint. 923 + func NewEndpoint() (*Endpoint, *Error) { 924 + res, err := uniffiRustCallAsync[Error]( 925 + FfiConverterErrorINSTANCE, 926 + // completeFn 927 + func(handle C.uint64_t, status *C.RustCallStatus) unsafe.Pointer { 928 + res := C.ffi_iroh_streamplace_rust_future_complete_pointer(handle, status) 929 + return res 930 + }, 931 + // liftFn 932 + func(ffi unsafe.Pointer) *Endpoint { 933 + return FfiConverterEndpointINSTANCE.Lift(ffi) 934 + }, 935 + C.uniffi_iroh_streamplace_fn_constructor_endpoint_new(), 936 + // pollFn 937 + func(handle C.uint64_t, continuation C.UniffiRustFutureContinuationCallback, data C.uint64_t) { 938 + C.ffi_iroh_streamplace_rust_future_poll_pointer(handle, continuation, data) 939 + }, 940 + // freeFn 941 + func(handle C.uint64_t) { 942 + C.ffi_iroh_streamplace_rust_future_free_pointer(handle) 943 + }, 944 + ) 945 + 946 + return res, err 947 + } 948 + 949 + func (_self *Endpoint) NodeAddr() *NodeAddr { 950 + _pointer := _self.ffiObject.incrementPointer("*Endpoint") 951 + defer _self.ffiObject.decrementPointer() 952 + res, _ := uniffiRustCallAsync[struct{}]( 953 + nil, 954 + // completeFn 955 + func(handle C.uint64_t, status *C.RustCallStatus) unsafe.Pointer { 956 + res := C.ffi_iroh_streamplace_rust_future_complete_pointer(handle, status) 957 + return res 958 + }, 959 + // liftFn 960 + func(ffi unsafe.Pointer) *NodeAddr { 961 + return FfiConverterNodeAddrINSTANCE.Lift(ffi) 962 + }, 963 + C.uniffi_iroh_streamplace_fn_method_endpoint_node_addr( 964 + _pointer), 965 + // pollFn 966 + func(handle C.uint64_t, continuation C.UniffiRustFutureContinuationCallback, data C.uint64_t) { 967 + C.ffi_iroh_streamplace_rust_future_poll_pointer(handle, continuation, data) 968 + }, 969 + // freeFn 970 + func(handle C.uint64_t) { 971 + C.ffi_iroh_streamplace_rust_future_free_pointer(handle) 972 + }, 973 + ) 974 + 975 + return res 976 + } 977 + func (object *Endpoint) Destroy() { 978 + runtime.SetFinalizer(object, nil) 979 + object.ffiObject.destroy() 980 + } 981 + 982 + type FfiConverterEndpoint struct{} 983 + 984 + var FfiConverterEndpointINSTANCE = FfiConverterEndpoint{} 985 + 986 + func (c FfiConverterEndpoint) Lift(pointer unsafe.Pointer) *Endpoint { 987 + result := &Endpoint{ 988 + newFfiObject( 989 + pointer, 990 + func(pointer unsafe.Pointer, status *C.RustCallStatus) unsafe.Pointer { 991 + return C.uniffi_iroh_streamplace_fn_clone_endpoint(pointer, status) 992 + }, 993 + func(pointer unsafe.Pointer, status *C.RustCallStatus) { 994 + C.uniffi_iroh_streamplace_fn_free_endpoint(pointer, status) 995 + }, 996 + ), 997 + } 998 + runtime.SetFinalizer(result, (*Endpoint).Destroy) 999 + return result 1000 + } 1001 + 1002 + func (c FfiConverterEndpoint) Read(reader io.Reader) *Endpoint { 1003 + return c.Lift(unsafe.Pointer(uintptr(readUint64(reader)))) 1004 + } 1005 + 1006 + func (c FfiConverterEndpoint) Lower(value *Endpoint) unsafe.Pointer { 1007 + // TODO: this is bad - all synchronization from ObjectRuntime.go is discarded here, 1008 + // because the pointer will be decremented immediately after this function returns, 1009 + // and someone will be left holding onto a non-locked pointer. 1010 + pointer := value.ffiObject.incrementPointer("*Endpoint") 1011 + defer value.ffiObject.decrementPointer() 1012 + return pointer 1013 + 1014 + } 1015 + 1016 + func (c FfiConverterEndpoint) Write(writer io.Writer, value *Endpoint) { 1017 + writeUint64(writer, uint64(uintptr(c.Lower(value)))) 1018 + } 1019 + 1020 + type FfiDestroyerEndpoint struct{} 1021 + 1022 + func (_ FfiDestroyerEndpoint) Destroy(value *Endpoint) { 1023 + value.Destroy() 1024 + } 1025 + 1026 + // A peer and it's addressing information. 1027 + type NodeAddrInterface interface { 1028 + // Get the direct addresses of this peer. 1029 + DirectAddresses() []string 1030 + // Returns true if both NodeAddr's have the same values 1031 + Equal(other *NodeAddr) bool 1032 + NodeId() *PublicKey 1033 + // Get the home relay URL for this peer 1034 + RelayUrl() *string 1035 + } 1036 + 1037 + // A peer and it's addressing information. 1038 + type NodeAddr struct { 1039 + ffiObject FfiObject 1040 + } 1041 + 1042 + // Create a new [`NodeAddr`] with empty [`AddrInfo`]. 1043 + func NewNodeAddr(nodeId *PublicKey, derpUrl *string, addresses []string) *NodeAddr { 1044 + return FfiConverterNodeAddrINSTANCE.Lift(rustCall(func(_uniffiStatus *C.RustCallStatus) unsafe.Pointer { 1045 + return C.uniffi_iroh_streamplace_fn_constructor_nodeaddr_new(FfiConverterPublicKeyINSTANCE.Lower(nodeId), FfiConverterOptionalStringINSTANCE.Lower(derpUrl), FfiConverterSequenceStringINSTANCE.Lower(addresses), _uniffiStatus) 1046 + })) 1047 + } 1048 + 1049 + // Get the direct addresses of this peer. 1050 + func (_self *NodeAddr) DirectAddresses() []string { 1051 + _pointer := _self.ffiObject.incrementPointer("*NodeAddr") 1052 + defer _self.ffiObject.decrementPointer() 1053 + return FfiConverterSequenceStringINSTANCE.Lift(rustCall(func(_uniffiStatus *C.RustCallStatus) RustBufferI { 1054 + return GoRustBuffer{ 1055 + inner: C.uniffi_iroh_streamplace_fn_method_nodeaddr_direct_addresses( 1056 + _pointer, _uniffiStatus), 1057 + } 1058 + })) 1059 + } 1060 + 1061 + // Returns true if both NodeAddr's have the same values 1062 + func (_self *NodeAddr) Equal(other *NodeAddr) bool { 1063 + _pointer := _self.ffiObject.incrementPointer("*NodeAddr") 1064 + defer _self.ffiObject.decrementPointer() 1065 + return FfiConverterBoolINSTANCE.Lift(rustCall(func(_uniffiStatus *C.RustCallStatus) C.int8_t { 1066 + return C.uniffi_iroh_streamplace_fn_method_nodeaddr_equal( 1067 + _pointer, FfiConverterNodeAddrINSTANCE.Lower(other), _uniffiStatus) 1068 + })) 1069 + } 1070 + 1071 + func (_self *NodeAddr) NodeId() *PublicKey { 1072 + _pointer := _self.ffiObject.incrementPointer("*NodeAddr") 1073 + defer _self.ffiObject.decrementPointer() 1074 + return FfiConverterPublicKeyINSTANCE.Lift(rustCall(func(_uniffiStatus *C.RustCallStatus) unsafe.Pointer { 1075 + return C.uniffi_iroh_streamplace_fn_method_nodeaddr_node_id( 1076 + _pointer, _uniffiStatus) 1077 + })) 1078 + } 1079 + 1080 + // Get the home relay URL for this peer 1081 + func (_self *NodeAddr) RelayUrl() *string { 1082 + _pointer := _self.ffiObject.incrementPointer("*NodeAddr") 1083 + defer _self.ffiObject.decrementPointer() 1084 + return FfiConverterOptionalStringINSTANCE.Lift(rustCall(func(_uniffiStatus *C.RustCallStatus) RustBufferI { 1085 + return GoRustBuffer{ 1086 + inner: C.uniffi_iroh_streamplace_fn_method_nodeaddr_relay_url( 1087 + _pointer, _uniffiStatus), 1088 + } 1089 + })) 1090 + } 1091 + func (object *NodeAddr) Destroy() { 1092 + runtime.SetFinalizer(object, nil) 1093 + object.ffiObject.destroy() 1094 + } 1095 + 1096 + type FfiConverterNodeAddr struct{} 1097 + 1098 + var FfiConverterNodeAddrINSTANCE = FfiConverterNodeAddr{} 1099 + 1100 + func (c FfiConverterNodeAddr) Lift(pointer unsafe.Pointer) *NodeAddr { 1101 + result := &NodeAddr{ 1102 + newFfiObject( 1103 + pointer, 1104 + func(pointer unsafe.Pointer, status *C.RustCallStatus) unsafe.Pointer { 1105 + return C.uniffi_iroh_streamplace_fn_clone_nodeaddr(pointer, status) 1106 + }, 1107 + func(pointer unsafe.Pointer, status *C.RustCallStatus) { 1108 + C.uniffi_iroh_streamplace_fn_free_nodeaddr(pointer, status) 1109 + }, 1110 + ), 1111 + } 1112 + runtime.SetFinalizer(result, (*NodeAddr).Destroy) 1113 + return result 1114 + } 1115 + 1116 + func (c FfiConverterNodeAddr) Read(reader io.Reader) *NodeAddr { 1117 + return c.Lift(unsafe.Pointer(uintptr(readUint64(reader)))) 1118 + } 1119 + 1120 + func (c FfiConverterNodeAddr) Lower(value *NodeAddr) unsafe.Pointer { 1121 + // TODO: this is bad - all synchronization from ObjectRuntime.go is discarded here, 1122 + // because the pointer will be decremented immediately after this function returns, 1123 + // and someone will be left holding onto a non-locked pointer. 1124 + pointer := value.ffiObject.incrementPointer("*NodeAddr") 1125 + defer value.ffiObject.decrementPointer() 1126 + return pointer 1127 + 1128 + } 1129 + 1130 + func (c FfiConverterNodeAddr) Write(writer io.Writer, value *NodeAddr) { 1131 + writeUint64(writer, uint64(uintptr(c.Lower(value)))) 1132 + } 1133 + 1134 + type FfiDestroyerNodeAddr struct{} 1135 + 1136 + func (_ FfiDestroyerNodeAddr) Destroy(value *NodeAddr) { 1137 + value.Destroy() 1138 + } 1139 + 1140 + // A public key. 1141 + // 1142 + // The key itself is just a 32 byte array, but a key has associated crypto 1143 + // information that is cached for performance reasons. 1144 + type PublicKeyInterface interface { 1145 + // Returns true if the PublicKeys are equal 1146 + Equal(other *PublicKey) bool 1147 + // Convert to a base32 string limited to the first 10 bytes for a friendly string 1148 + // representation of the key. 1149 + FmtShort() string 1150 + // Express the PublicKey as a byte array 1151 + ToBytes() []byte 1152 + } 1153 + 1154 + // A public key. 1155 + // 1156 + // The key itself is just a 32 byte array, but a key has associated crypto 1157 + // information that is cached for performance reasons. 1158 + type PublicKey struct { 1159 + ffiObject FfiObject 1160 + } 1161 + 1162 + // Make a PublicKey from byte array 1163 + func PublicKeyFromBytes(bytes []byte) (*PublicKey, *Error) { 1164 + _uniffiRV, _uniffiErr := rustCallWithError[Error](FfiConverterError{}, func(_uniffiStatus *C.RustCallStatus) unsafe.Pointer { 1165 + return C.uniffi_iroh_streamplace_fn_constructor_publickey_from_bytes(FfiConverterBytesINSTANCE.Lower(bytes), _uniffiStatus) 1166 + }) 1167 + if _uniffiErr != nil { 1168 + var _uniffiDefaultValue *PublicKey 1169 + return _uniffiDefaultValue, _uniffiErr 1170 + } else { 1171 + return FfiConverterPublicKeyINSTANCE.Lift(_uniffiRV), _uniffiErr 1172 + } 1173 + } 1174 + 1175 + // Make a PublicKey from base32 string 1176 + func PublicKeyFromString(s string) (*PublicKey, *Error) { 1177 + _uniffiRV, _uniffiErr := rustCallWithError[Error](FfiConverterError{}, func(_uniffiStatus *C.RustCallStatus) unsafe.Pointer { 1178 + return C.uniffi_iroh_streamplace_fn_constructor_publickey_from_string(FfiConverterStringINSTANCE.Lower(s), _uniffiStatus) 1179 + }) 1180 + if _uniffiErr != nil { 1181 + var _uniffiDefaultValue *PublicKey 1182 + return _uniffiDefaultValue, _uniffiErr 1183 + } else { 1184 + return FfiConverterPublicKeyINSTANCE.Lift(_uniffiRV), _uniffiErr 1185 + } 1186 + } 1187 + 1188 + // Returns true if the PublicKeys are equal 1189 + func (_self *PublicKey) Equal(other *PublicKey) bool { 1190 + _pointer := _self.ffiObject.incrementPointer("*PublicKey") 1191 + defer _self.ffiObject.decrementPointer() 1192 + return FfiConverterBoolINSTANCE.Lift(rustCall(func(_uniffiStatus *C.RustCallStatus) C.int8_t { 1193 + return C.uniffi_iroh_streamplace_fn_method_publickey_equal( 1194 + _pointer, FfiConverterPublicKeyINSTANCE.Lower(other), _uniffiStatus) 1195 + })) 1196 + } 1197 + 1198 + // Convert to a base32 string limited to the first 10 bytes for a friendly string 1199 + // representation of the key. 1200 + func (_self *PublicKey) FmtShort() string { 1201 + _pointer := _self.ffiObject.incrementPointer("*PublicKey") 1202 + defer _self.ffiObject.decrementPointer() 1203 + return FfiConverterStringINSTANCE.Lift(rustCall(func(_uniffiStatus *C.RustCallStatus) RustBufferI { 1204 + return GoRustBuffer{ 1205 + inner: C.uniffi_iroh_streamplace_fn_method_publickey_fmt_short( 1206 + _pointer, _uniffiStatus), 1207 + } 1208 + })) 1209 + } 1210 + 1211 + // Express the PublicKey as a byte array 1212 + func (_self *PublicKey) ToBytes() []byte { 1213 + _pointer := _self.ffiObject.incrementPointer("*PublicKey") 1214 + defer _self.ffiObject.decrementPointer() 1215 + return FfiConverterBytesINSTANCE.Lift(rustCall(func(_uniffiStatus *C.RustCallStatus) RustBufferI { 1216 + return GoRustBuffer{ 1217 + inner: C.uniffi_iroh_streamplace_fn_method_publickey_to_bytes( 1218 + _pointer, _uniffiStatus), 1219 + } 1220 + })) 1221 + } 1222 + 1223 + func (_self *PublicKey) String() string { 1224 + _pointer := _self.ffiObject.incrementPointer("*PublicKey") 1225 + defer _self.ffiObject.decrementPointer() 1226 + return FfiConverterStringINSTANCE.Lift(rustCall(func(_uniffiStatus *C.RustCallStatus) RustBufferI { 1227 + return GoRustBuffer{ 1228 + inner: C.uniffi_iroh_streamplace_fn_method_publickey_uniffi_trait_display( 1229 + _pointer, _uniffiStatus), 1230 + } 1231 + })) 1232 + } 1233 + 1234 + func (object *PublicKey) Destroy() { 1235 + runtime.SetFinalizer(object, nil) 1236 + object.ffiObject.destroy() 1237 + } 1238 + 1239 + type FfiConverterPublicKey struct{} 1240 + 1241 + var FfiConverterPublicKeyINSTANCE = FfiConverterPublicKey{} 1242 + 1243 + func (c FfiConverterPublicKey) Lift(pointer unsafe.Pointer) *PublicKey { 1244 + result := &PublicKey{ 1245 + newFfiObject( 1246 + pointer, 1247 + func(pointer unsafe.Pointer, status *C.RustCallStatus) unsafe.Pointer { 1248 + return C.uniffi_iroh_streamplace_fn_clone_publickey(pointer, status) 1249 + }, 1250 + func(pointer unsafe.Pointer, status *C.RustCallStatus) { 1251 + C.uniffi_iroh_streamplace_fn_free_publickey(pointer, status) 1252 + }, 1253 + ), 1254 + } 1255 + runtime.SetFinalizer(result, (*PublicKey).Destroy) 1256 + return result 1257 + } 1258 + 1259 + func (c FfiConverterPublicKey) Read(reader io.Reader) *PublicKey { 1260 + return c.Lift(unsafe.Pointer(uintptr(readUint64(reader)))) 1261 + } 1262 + 1263 + func (c FfiConverterPublicKey) Lower(value *PublicKey) unsafe.Pointer { 1264 + // TODO: this is bad - all synchronization from ObjectRuntime.go is discarded here, 1265 + // because the pointer will be decremented immediately after this function returns, 1266 + // and someone will be left holding onto a non-locked pointer. 1267 + pointer := value.ffiObject.incrementPointer("*PublicKey") 1268 + defer value.ffiObject.decrementPointer() 1269 + return pointer 1270 + 1271 + } 1272 + 1273 + func (c FfiConverterPublicKey) Write(writer io.Writer, value *PublicKey) { 1274 + writeUint64(writer, uint64(uintptr(c.Lower(value)))) 1275 + } 1276 + 1277 + type FfiDestroyerPublicKey struct{} 1278 + 1279 + func (_ FfiDestroyerPublicKey) Destroy(value *PublicKey) { 1280 + value.Destroy() 1281 + } 1282 + 1283 + type ReceiverInterface interface { 1284 + NodeAddr() *NodeAddr 1285 + // Subscribe to the given topic on the remote. 1286 + Subscribe(remoteId *PublicKey, topic string) *Error 1287 + // Unsubscribe from this topic on the remote. 1288 + Unsubscribe(remoteId *PublicKey, topic string) *Error 1289 + } 1290 + type Receiver struct { 1291 + ffiObject FfiObject 1292 + } 1293 + 1294 + // Create a new receiver. 1295 + func NewReceiver(endpoint *Endpoint, handler DataHandler) (*Receiver, *Error) { 1296 + res, err := uniffiRustCallAsync[Error]( 1297 + FfiConverterErrorINSTANCE, 1298 + // completeFn 1299 + func(handle C.uint64_t, status *C.RustCallStatus) unsafe.Pointer { 1300 + res := C.ffi_iroh_streamplace_rust_future_complete_pointer(handle, status) 1301 + return res 1302 + }, 1303 + // liftFn 1304 + func(ffi unsafe.Pointer) *Receiver { 1305 + return FfiConverterReceiverINSTANCE.Lift(ffi) 1306 + }, 1307 + C.uniffi_iroh_streamplace_fn_constructor_receiver_new(FfiConverterEndpointINSTANCE.Lower(endpoint), FfiConverterDataHandlerINSTANCE.Lower(handler)), 1308 + // pollFn 1309 + func(handle C.uint64_t, continuation C.UniffiRustFutureContinuationCallback, data C.uint64_t) { 1310 + C.ffi_iroh_streamplace_rust_future_poll_pointer(handle, continuation, data) 1311 + }, 1312 + // freeFn 1313 + func(handle C.uint64_t) { 1314 + C.ffi_iroh_streamplace_rust_future_free_pointer(handle) 1315 + }, 1316 + ) 1317 + 1318 + return res, err 1319 + } 1320 + 1321 + func (_self *Receiver) NodeAddr() *NodeAddr { 1322 + _pointer := _self.ffiObject.incrementPointer("*Receiver") 1323 + defer _self.ffiObject.decrementPointer() 1324 + res, _ := uniffiRustCallAsync[struct{}]( 1325 + nil, 1326 + // completeFn 1327 + func(handle C.uint64_t, status *C.RustCallStatus) unsafe.Pointer { 1328 + res := C.ffi_iroh_streamplace_rust_future_complete_pointer(handle, status) 1329 + return res 1330 + }, 1331 + // liftFn 1332 + func(ffi unsafe.Pointer) *NodeAddr { 1333 + return FfiConverterNodeAddrINSTANCE.Lift(ffi) 1334 + }, 1335 + C.uniffi_iroh_streamplace_fn_method_receiver_node_addr( 1336 + _pointer), 1337 + // pollFn 1338 + func(handle C.uint64_t, continuation C.UniffiRustFutureContinuationCallback, data C.uint64_t) { 1339 + C.ffi_iroh_streamplace_rust_future_poll_pointer(handle, continuation, data) 1340 + }, 1341 + // freeFn 1342 + func(handle C.uint64_t) { 1343 + C.ffi_iroh_streamplace_rust_future_free_pointer(handle) 1344 + }, 1345 + ) 1346 + 1347 + return res 1348 + } 1349 + 1350 + // Subscribe to the given topic on the remote. 1351 + func (_self *Receiver) Subscribe(remoteId *PublicKey, topic string) *Error { 1352 + _pointer := _self.ffiObject.incrementPointer("*Receiver") 1353 + defer _self.ffiObject.decrementPointer() 1354 + _, err := uniffiRustCallAsync[Error]( 1355 + FfiConverterErrorINSTANCE, 1356 + // completeFn 1357 + func(handle C.uint64_t, status *C.RustCallStatus) struct{} { 1358 + C.ffi_iroh_streamplace_rust_future_complete_void(handle, status) 1359 + return struct{}{} 1360 + }, 1361 + // liftFn 1362 + func(_ struct{}) struct{} { return struct{}{} }, 1363 + C.uniffi_iroh_streamplace_fn_method_receiver_subscribe( 1364 + _pointer, FfiConverterPublicKeyINSTANCE.Lower(remoteId), FfiConverterStringINSTANCE.Lower(topic)), 1365 + // pollFn 1366 + func(handle C.uint64_t, continuation C.UniffiRustFutureContinuationCallback, data C.uint64_t) { 1367 + C.ffi_iroh_streamplace_rust_future_poll_void(handle, continuation, data) 1368 + }, 1369 + // freeFn 1370 + func(handle C.uint64_t) { 1371 + C.ffi_iroh_streamplace_rust_future_free_void(handle) 1372 + }, 1373 + ) 1374 + 1375 + return err 1376 + } 1377 + 1378 + // Unsubscribe from this topic on the remote. 1379 + func (_self *Receiver) Unsubscribe(remoteId *PublicKey, topic string) *Error { 1380 + _pointer := _self.ffiObject.incrementPointer("*Receiver") 1381 + defer _self.ffiObject.decrementPointer() 1382 + _, err := uniffiRustCallAsync[Error]( 1383 + FfiConverterErrorINSTANCE, 1384 + // completeFn 1385 + func(handle C.uint64_t, status *C.RustCallStatus) struct{} { 1386 + C.ffi_iroh_streamplace_rust_future_complete_void(handle, status) 1387 + return struct{}{} 1388 + }, 1389 + // liftFn 1390 + func(_ struct{}) struct{} { return struct{}{} }, 1391 + C.uniffi_iroh_streamplace_fn_method_receiver_unsubscribe( 1392 + _pointer, FfiConverterPublicKeyINSTANCE.Lower(remoteId), FfiConverterStringINSTANCE.Lower(topic)), 1393 + // pollFn 1394 + func(handle C.uint64_t, continuation C.UniffiRustFutureContinuationCallback, data C.uint64_t) { 1395 + C.ffi_iroh_streamplace_rust_future_poll_void(handle, continuation, data) 1396 + }, 1397 + // freeFn 1398 + func(handle C.uint64_t) { 1399 + C.ffi_iroh_streamplace_rust_future_free_void(handle) 1400 + }, 1401 + ) 1402 + 1403 + return err 1404 + } 1405 + func (object *Receiver) Destroy() { 1406 + runtime.SetFinalizer(object, nil) 1407 + object.ffiObject.destroy() 1408 + } 1409 + 1410 + type FfiConverterReceiver struct{} 1411 + 1412 + var FfiConverterReceiverINSTANCE = FfiConverterReceiver{} 1413 + 1414 + func (c FfiConverterReceiver) Lift(pointer unsafe.Pointer) *Receiver { 1415 + result := &Receiver{ 1416 + newFfiObject( 1417 + pointer, 1418 + func(pointer unsafe.Pointer, status *C.RustCallStatus) unsafe.Pointer { 1419 + return C.uniffi_iroh_streamplace_fn_clone_receiver(pointer, status) 1420 + }, 1421 + func(pointer unsafe.Pointer, status *C.RustCallStatus) { 1422 + C.uniffi_iroh_streamplace_fn_free_receiver(pointer, status) 1423 + }, 1424 + ), 1425 + } 1426 + runtime.SetFinalizer(result, (*Receiver).Destroy) 1427 + return result 1428 + } 1429 + 1430 + func (c FfiConverterReceiver) Read(reader io.Reader) *Receiver { 1431 + return c.Lift(unsafe.Pointer(uintptr(readUint64(reader)))) 1432 + } 1433 + 1434 + func (c FfiConverterReceiver) Lower(value *Receiver) unsafe.Pointer { 1435 + // TODO: this is bad - all synchronization from ObjectRuntime.go is discarded here, 1436 + // because the pointer will be decremented immediately after this function returns, 1437 + // and someone will be left holding onto a non-locked pointer. 1438 + pointer := value.ffiObject.incrementPointer("*Receiver") 1439 + defer value.ffiObject.decrementPointer() 1440 + return pointer 1441 + 1442 + } 1443 + 1444 + func (c FfiConverterReceiver) Write(writer io.Writer, value *Receiver) { 1445 + writeUint64(writer, uint64(uintptr(c.Lower(value)))) 1446 + } 1447 + 1448 + type FfiDestroyerReceiver struct{} 1449 + 1450 + func (_ FfiDestroyerReceiver) Destroy(value *Receiver) { 1451 + value.Destroy() 1452 + } 1453 + 1454 + type SenderInterface interface { 1455 + NodeAddr() *NodeAddr 1456 + // Sends the given data to all subscribers that have subscribed to this `key`. 1457 + Send(key string, data []byte) *Error 1458 + } 1459 + type Sender struct { 1460 + ffiObject FfiObject 1461 + } 1462 + 1463 + // Create a new sender. 1464 + func NewSender(endpoint *Endpoint) (*Sender, *Error) { 1465 + res, err := uniffiRustCallAsync[Error]( 1466 + FfiConverterErrorINSTANCE, 1467 + // completeFn 1468 + func(handle C.uint64_t, status *C.RustCallStatus) unsafe.Pointer { 1469 + res := C.ffi_iroh_streamplace_rust_future_complete_pointer(handle, status) 1470 + return res 1471 + }, 1472 + // liftFn 1473 + func(ffi unsafe.Pointer) *Sender { 1474 + return FfiConverterSenderINSTANCE.Lift(ffi) 1475 + }, 1476 + C.uniffi_iroh_streamplace_fn_constructor_sender_new(FfiConverterEndpointINSTANCE.Lower(endpoint)), 1477 + // pollFn 1478 + func(handle C.uint64_t, continuation C.UniffiRustFutureContinuationCallback, data C.uint64_t) { 1479 + C.ffi_iroh_streamplace_rust_future_poll_pointer(handle, continuation, data) 1480 + }, 1481 + // freeFn 1482 + func(handle C.uint64_t) { 1483 + C.ffi_iroh_streamplace_rust_future_free_pointer(handle) 1484 + }, 1485 + ) 1486 + 1487 + return res, err 1488 + } 1489 + 1490 + func (_self *Sender) NodeAddr() *NodeAddr { 1491 + _pointer := _self.ffiObject.incrementPointer("*Sender") 1492 + defer _self.ffiObject.decrementPointer() 1493 + res, _ := uniffiRustCallAsync[struct{}]( 1494 + nil, 1495 + // completeFn 1496 + func(handle C.uint64_t, status *C.RustCallStatus) unsafe.Pointer { 1497 + res := C.ffi_iroh_streamplace_rust_future_complete_pointer(handle, status) 1498 + return res 1499 + }, 1500 + // liftFn 1501 + func(ffi unsafe.Pointer) *NodeAddr { 1502 + return FfiConverterNodeAddrINSTANCE.Lift(ffi) 1503 + }, 1504 + C.uniffi_iroh_streamplace_fn_method_sender_node_addr( 1505 + _pointer), 1506 + // pollFn 1507 + func(handle C.uint64_t, continuation C.UniffiRustFutureContinuationCallback, data C.uint64_t) { 1508 + C.ffi_iroh_streamplace_rust_future_poll_pointer(handle, continuation, data) 1509 + }, 1510 + // freeFn 1511 + func(handle C.uint64_t) { 1512 + C.ffi_iroh_streamplace_rust_future_free_pointer(handle) 1513 + }, 1514 + ) 1515 + 1516 + return res 1517 + } 1518 + 1519 + // Sends the given data to all subscribers that have subscribed to this `key`. 1520 + func (_self *Sender) Send(key string, data []byte) *Error { 1521 + _pointer := _self.ffiObject.incrementPointer("*Sender") 1522 + defer _self.ffiObject.decrementPointer() 1523 + _, err := uniffiRustCallAsync[Error]( 1524 + FfiConverterErrorINSTANCE, 1525 + // completeFn 1526 + func(handle C.uint64_t, status *C.RustCallStatus) struct{} { 1527 + C.ffi_iroh_streamplace_rust_future_complete_void(handle, status) 1528 + return struct{}{} 1529 + }, 1530 + // liftFn 1531 + func(_ struct{}) struct{} { return struct{}{} }, 1532 + C.uniffi_iroh_streamplace_fn_method_sender_send( 1533 + _pointer, FfiConverterStringINSTANCE.Lower(key), FfiConverterBytesINSTANCE.Lower(data)), 1534 + // pollFn 1535 + func(handle C.uint64_t, continuation C.UniffiRustFutureContinuationCallback, data C.uint64_t) { 1536 + C.ffi_iroh_streamplace_rust_future_poll_void(handle, continuation, data) 1537 + }, 1538 + // freeFn 1539 + func(handle C.uint64_t) { 1540 + C.ffi_iroh_streamplace_rust_future_free_void(handle) 1541 + }, 1542 + ) 1543 + 1544 + return err 1545 + } 1546 + func (object *Sender) Destroy() { 1547 + runtime.SetFinalizer(object, nil) 1548 + object.ffiObject.destroy() 1549 + } 1550 + 1551 + type FfiConverterSender struct{} 1552 + 1553 + var FfiConverterSenderINSTANCE = FfiConverterSender{} 1554 + 1555 + func (c FfiConverterSender) Lift(pointer unsafe.Pointer) *Sender { 1556 + result := &Sender{ 1557 + newFfiObject( 1558 + pointer, 1559 + func(pointer unsafe.Pointer, status *C.RustCallStatus) unsafe.Pointer { 1560 + return C.uniffi_iroh_streamplace_fn_clone_sender(pointer, status) 1561 + }, 1562 + func(pointer unsafe.Pointer, status *C.RustCallStatus) { 1563 + C.uniffi_iroh_streamplace_fn_free_sender(pointer, status) 1564 + }, 1565 + ), 1566 + } 1567 + runtime.SetFinalizer(result, (*Sender).Destroy) 1568 + return result 1569 + } 1570 + 1571 + func (c FfiConverterSender) Read(reader io.Reader) *Sender { 1572 + return c.Lift(unsafe.Pointer(uintptr(readUint64(reader)))) 1573 + } 1574 + 1575 + func (c FfiConverterSender) Lower(value *Sender) unsafe.Pointer { 1576 + // TODO: this is bad - all synchronization from ObjectRuntime.go is discarded here, 1577 + // because the pointer will be decremented immediately after this function returns, 1578 + // and someone will be left holding onto a non-locked pointer. 1579 + pointer := value.ffiObject.incrementPointer("*Sender") 1580 + defer value.ffiObject.decrementPointer() 1581 + return pointer 1582 + 1583 + } 1584 + 1585 + func (c FfiConverterSender) Write(writer io.Writer, value *Sender) { 1586 + writeUint64(writer, uint64(uintptr(c.Lower(value)))) 1587 + } 1588 + 1589 + type FfiDestroyerSender struct{} 1590 + 1591 + func (_ FfiDestroyerSender) Destroy(value *Sender) { 1592 + value.Destroy() 1593 + } 1594 + 1595 + // An Error. 1596 + type Error struct { 1597 + err error 1598 + } 1599 + 1600 + // Convience method to turn *Error into error 1601 + // Avoiding treating nil pointer as non nil error interface 1602 + func (err *Error) AsError() error { 1603 + if err == nil { 1604 + return nil 1605 + } else { 1606 + return err 1607 + } 1608 + } 1609 + 1610 + func (err Error) Error() string { 1611 + return fmt.Sprintf("Error: %s", err.err.Error()) 1612 + } 1613 + 1614 + func (err Error) Unwrap() error { 1615 + return err.err 1616 + } 1617 + 1618 + // Err* are used for checking error type with `errors.Is` 1619 + var ErrErrorIrohBind = fmt.Errorf("ErrorIrohBind") 1620 + var ErrErrorInvalidUrl = fmt.Errorf("ErrorInvalidUrl") 1621 + var ErrErrorIrohConnect = fmt.Errorf("ErrorIrohConnect") 1622 + var ErrErrorInvalidNetworkAddress = fmt.Errorf("ErrorInvalidNetworkAddress") 1623 + var ErrErrorMissingConnection = fmt.Errorf("ErrorMissingConnection") 1624 + var ErrErrorInvalidPublicKey = fmt.Errorf("ErrorInvalidPublicKey") 1625 + var ErrErrorIrpc = fmt.Errorf("ErrorIrpc") 1626 + 1627 + // Variant structs 1628 + type ErrorIrohBind struct { 1629 + message string 1630 + } 1631 + 1632 + func NewErrorIrohBind() *Error { 1633 + return &Error{err: &ErrorIrohBind{}} 1634 + } 1635 + 1636 + func (e ErrorIrohBind) destroy() { 1637 + } 1638 + 1639 + func (err ErrorIrohBind) Error() string { 1640 + return fmt.Sprintf("IrohBind: %s", err.message) 1641 + } 1642 + 1643 + func (self ErrorIrohBind) Is(target error) bool { 1644 + return target == ErrErrorIrohBind 1645 + } 1646 + 1647 + type ErrorInvalidUrl struct { 1648 + message string 1649 + } 1650 + 1651 + func NewErrorInvalidUrl() *Error { 1652 + return &Error{err: &ErrorInvalidUrl{}} 1653 + } 1654 + 1655 + func (e ErrorInvalidUrl) destroy() { 1656 + } 1657 + 1658 + func (err ErrorInvalidUrl) Error() string { 1659 + return fmt.Sprintf("InvalidUrl: %s", err.message) 1660 + } 1661 + 1662 + func (self ErrorInvalidUrl) Is(target error) bool { 1663 + return target == ErrErrorInvalidUrl 1664 + } 1665 + 1666 + type ErrorIrohConnect struct { 1667 + message string 1668 + } 1669 + 1670 + func NewErrorIrohConnect() *Error { 1671 + return &Error{err: &ErrorIrohConnect{}} 1672 + } 1673 + 1674 + func (e ErrorIrohConnect) destroy() { 1675 + } 1676 + 1677 + func (err ErrorIrohConnect) Error() string { 1678 + return fmt.Sprintf("IrohConnect: %s", err.message) 1679 + } 1680 + 1681 + func (self ErrorIrohConnect) Is(target error) bool { 1682 + return target == ErrErrorIrohConnect 1683 + } 1684 + 1685 + type ErrorInvalidNetworkAddress struct { 1686 + message string 1687 + } 1688 + 1689 + func NewErrorInvalidNetworkAddress() *Error { 1690 + return &Error{err: &ErrorInvalidNetworkAddress{}} 1691 + } 1692 + 1693 + func (e ErrorInvalidNetworkAddress) destroy() { 1694 + } 1695 + 1696 + func (err ErrorInvalidNetworkAddress) Error() string { 1697 + return fmt.Sprintf("InvalidNetworkAddress: %s", err.message) 1698 + } 1699 + 1700 + func (self ErrorInvalidNetworkAddress) Is(target error) bool { 1701 + return target == ErrErrorInvalidNetworkAddress 1702 + } 1703 + 1704 + type ErrorMissingConnection struct { 1705 + message string 1706 + } 1707 + 1708 + func NewErrorMissingConnection() *Error { 1709 + return &Error{err: &ErrorMissingConnection{}} 1710 + } 1711 + 1712 + func (e ErrorMissingConnection) destroy() { 1713 + } 1714 + 1715 + func (err ErrorMissingConnection) Error() string { 1716 + return fmt.Sprintf("MissingConnection: %s", err.message) 1717 + } 1718 + 1719 + func (self ErrorMissingConnection) Is(target error) bool { 1720 + return target == ErrErrorMissingConnection 1721 + } 1722 + 1723 + type ErrorInvalidPublicKey struct { 1724 + message string 1725 + } 1726 + 1727 + func NewErrorInvalidPublicKey() *Error { 1728 + return &Error{err: &ErrorInvalidPublicKey{}} 1729 + } 1730 + 1731 + func (e ErrorInvalidPublicKey) destroy() { 1732 + } 1733 + 1734 + func (err ErrorInvalidPublicKey) Error() string { 1735 + return fmt.Sprintf("InvalidPublicKey: %s", err.message) 1736 + } 1737 + 1738 + func (self ErrorInvalidPublicKey) Is(target error) bool { 1739 + return target == ErrErrorInvalidPublicKey 1740 + } 1741 + 1742 + type ErrorIrpc struct { 1743 + message string 1744 + } 1745 + 1746 + func NewErrorIrpc() *Error { 1747 + return &Error{err: &ErrorIrpc{}} 1748 + } 1749 + 1750 + func (e ErrorIrpc) destroy() { 1751 + } 1752 + 1753 + func (err ErrorIrpc) Error() string { 1754 + return fmt.Sprintf("Irpc: %s", err.message) 1755 + } 1756 + 1757 + func (self ErrorIrpc) Is(target error) bool { 1758 + return target == ErrErrorIrpc 1759 + } 1760 + 1761 + type FfiConverterError struct{} 1762 + 1763 + var FfiConverterErrorINSTANCE = FfiConverterError{} 1764 + 1765 + func (c FfiConverterError) Lift(eb RustBufferI) *Error { 1766 + return LiftFromRustBuffer[*Error](c, eb) 1767 + } 1768 + 1769 + func (c FfiConverterError) Lower(value *Error) C.RustBuffer { 1770 + return LowerIntoRustBuffer[*Error](c, value) 1771 + } 1772 + 1773 + func (c FfiConverterError) Read(reader io.Reader) *Error { 1774 + errorID := readUint32(reader) 1775 + 1776 + message := FfiConverterStringINSTANCE.Read(reader) 1777 + switch errorID { 1778 + case 1: 1779 + return &Error{&ErrorIrohBind{message}} 1780 + case 2: 1781 + return &Error{&ErrorInvalidUrl{message}} 1782 + case 3: 1783 + return &Error{&ErrorIrohConnect{message}} 1784 + case 4: 1785 + return &Error{&ErrorInvalidNetworkAddress{message}} 1786 + case 5: 1787 + return &Error{&ErrorMissingConnection{message}} 1788 + case 6: 1789 + return &Error{&ErrorInvalidPublicKey{message}} 1790 + case 7: 1791 + return &Error{&ErrorIrpc{message}} 1792 + default: 1793 + panic(fmt.Sprintf("Unknown error code %d in FfiConverterError.Read()", errorID)) 1794 + } 1795 + 1796 + } 1797 + 1798 + func (c FfiConverterError) Write(writer io.Writer, value *Error) { 1799 + switch variantValue := value.err.(type) { 1800 + case *ErrorIrohBind: 1801 + writeInt32(writer, 1) 1802 + case *ErrorInvalidUrl: 1803 + writeInt32(writer, 2) 1804 + case *ErrorIrohConnect: 1805 + writeInt32(writer, 3) 1806 + case *ErrorInvalidNetworkAddress: 1807 + writeInt32(writer, 4) 1808 + case *ErrorMissingConnection: 1809 + writeInt32(writer, 5) 1810 + case *ErrorInvalidPublicKey: 1811 + writeInt32(writer, 6) 1812 + case *ErrorIrpc: 1813 + writeInt32(writer, 7) 1814 + default: 1815 + _ = variantValue 1816 + panic(fmt.Sprintf("invalid error value `%v` in FfiConverterError.Write", value)) 1817 + } 1818 + } 1819 + 1820 + type FfiDestroyerError struct{} 1821 + 1822 + func (_ FfiDestroyerError) Destroy(value *Error) { 1823 + switch variantValue := value.err.(type) { 1824 + case ErrorIrohBind: 1825 + variantValue.destroy() 1826 + case ErrorInvalidUrl: 1827 + variantValue.destroy() 1828 + case ErrorIrohConnect: 1829 + variantValue.destroy() 1830 + case ErrorInvalidNetworkAddress: 1831 + variantValue.destroy() 1832 + case ErrorMissingConnection: 1833 + variantValue.destroy() 1834 + case ErrorInvalidPublicKey: 1835 + variantValue.destroy() 1836 + case ErrorIrpc: 1837 + variantValue.destroy() 1838 + default: 1839 + _ = variantValue 1840 + panic(fmt.Sprintf("invalid error value `%v` in FfiDestroyerError.Destroy", value)) 1841 + } 1842 + } 1843 + 1844 + type FfiConverterOptionalString struct{} 1845 + 1846 + var FfiConverterOptionalStringINSTANCE = FfiConverterOptionalString{} 1847 + 1848 + func (c FfiConverterOptionalString) Lift(rb RustBufferI) *string { 1849 + return LiftFromRustBuffer[*string](c, rb) 1850 + } 1851 + 1852 + func (_ FfiConverterOptionalString) Read(reader io.Reader) *string { 1853 + if readInt8(reader) == 0 { 1854 + return nil 1855 + } 1856 + temp := FfiConverterStringINSTANCE.Read(reader) 1857 + return &temp 1858 + } 1859 + 1860 + func (c FfiConverterOptionalString) Lower(value *string) C.RustBuffer { 1861 + return LowerIntoRustBuffer[*string](c, value) 1862 + } 1863 + 1864 + func (_ FfiConverterOptionalString) Write(writer io.Writer, value *string) { 1865 + if value == nil { 1866 + writeInt8(writer, 0) 1867 + } else { 1868 + writeInt8(writer, 1) 1869 + FfiConverterStringINSTANCE.Write(writer, *value) 1870 + } 1871 + } 1872 + 1873 + type FfiDestroyerOptionalString struct{} 1874 + 1875 + func (_ FfiDestroyerOptionalString) Destroy(value *string) { 1876 + if value != nil { 1877 + FfiDestroyerString{}.Destroy(*value) 1878 + } 1879 + } 1880 + 1881 + type FfiConverterSequenceString struct{} 1882 + 1883 + var FfiConverterSequenceStringINSTANCE = FfiConverterSequenceString{} 1884 + 1885 + func (c FfiConverterSequenceString) Lift(rb RustBufferI) []string { 1886 + return LiftFromRustBuffer[[]string](c, rb) 1887 + } 1888 + 1889 + func (c FfiConverterSequenceString) Read(reader io.Reader) []string { 1890 + length := readInt32(reader) 1891 + if length == 0 { 1892 + return nil 1893 + } 1894 + result := make([]string, 0, length) 1895 + for i := int32(0); i < length; i++ { 1896 + result = append(result, FfiConverterStringINSTANCE.Read(reader)) 1897 + } 1898 + return result 1899 + } 1900 + 1901 + func (c FfiConverterSequenceString) Lower(value []string) C.RustBuffer { 1902 + return LowerIntoRustBuffer[[]string](c, value) 1903 + } 1904 + 1905 + func (c FfiConverterSequenceString) Write(writer io.Writer, value []string) { 1906 + if len(value) > math.MaxInt32 { 1907 + panic("[]string is too large to fit into Int32") 1908 + } 1909 + 1910 + writeInt32(writer, int32(len(value))) 1911 + for _, item := range value { 1912 + FfiConverterStringINSTANCE.Write(writer, item) 1913 + } 1914 + } 1915 + 1916 + type FfiDestroyerSequenceString struct{} 1917 + 1918 + func (FfiDestroyerSequenceString) Destroy(sequence []string) { 1919 + for _, value := range sequence { 1920 + FfiDestroyerString{}.Destroy(value) 1921 + } 1922 + } 1923 + 1924 + const ( 1925 + uniffiRustFuturePollReady int8 = 0 1926 + uniffiRustFuturePollMaybeReady int8 = 1 1927 + ) 1928 + 1929 + type rustFuturePollFunc func(C.uint64_t, C.UniffiRustFutureContinuationCallback, C.uint64_t) 1930 + type rustFutureCompleteFunc[T any] func(C.uint64_t, *C.RustCallStatus) T 1931 + type rustFutureFreeFunc func(C.uint64_t) 1932 + 1933 + //export iroh_streamplace_uniffiFutureContinuationCallback 1934 + func iroh_streamplace_uniffiFutureContinuationCallback(data C.uint64_t, pollResult C.int8_t) { 1935 + h := cgo.Handle(uintptr(data)) 1936 + waiter := h.Value().(chan int8) 1937 + waiter <- int8(pollResult) 1938 + } 1939 + 1940 + func uniffiRustCallAsync[E any, T any, F any]( 1941 + errConverter BufReader[*E], 1942 + completeFunc rustFutureCompleteFunc[F], 1943 + liftFunc func(F) T, 1944 + rustFuture C.uint64_t, 1945 + pollFunc rustFuturePollFunc, 1946 + freeFunc rustFutureFreeFunc, 1947 + ) (T, *E) { 1948 + defer freeFunc(rustFuture) 1949 + 1950 + pollResult := int8(-1) 1951 + waiter := make(chan int8, 1) 1952 + 1953 + chanHandle := cgo.NewHandle(waiter) 1954 + defer chanHandle.Delete() 1955 + 1956 + for pollResult != uniffiRustFuturePollReady { 1957 + pollFunc( 1958 + rustFuture, 1959 + (C.UniffiRustFutureContinuationCallback)(C.iroh_streamplace_uniffiFutureContinuationCallback), 1960 + C.uint64_t(chanHandle), 1961 + ) 1962 + pollResult = <-waiter 1963 + } 1964 + 1965 + var goValue T 1966 + var ffiValue F 1967 + var err *E 1968 + 1969 + ffiValue, err = rustCallWithError(errConverter, func(status *C.RustCallStatus) F { 1970 + return completeFunc(rustFuture, status) 1971 + }) 1972 + if err != nil { 1973 + return goValue, err 1974 + } 1975 + return liftFunc(ffiValue), nil 1976 + } 1977 + 1978 + //export iroh_streamplace_uniffiFreeGorutine 1979 + func iroh_streamplace_uniffiFreeGorutine(data C.uint64_t) { 1980 + handle := cgo.Handle(uintptr(data)) 1981 + defer handle.Delete() 1982 + 1983 + guard := handle.Value().(chan struct{}) 1984 + guard <- struct{}{} 1985 + }
+985
pkg/iroh/generated/iroh_streamplace/iroh_streamplace.h
··· 1 + 2 + 3 + // This file was autogenerated by some hot garbage in the `uniffi` crate. 4 + // Trust me, you don't want to mess with it! 5 + 6 + 7 + 8 + #include <stdbool.h> 9 + #include <stdint.h> 10 + 11 + // The following structs are used to implement the lowest level 12 + // of the FFI, and thus useful to multiple uniffied crates. 13 + // We ensure they are declared exactly once, with a header guard, UNIFFI_SHARED_H. 14 + #ifdef UNIFFI_SHARED_H 15 + // We also try to prevent mixing versions of shared uniffi header structs. 16 + // If you add anything to the #else block, you must increment the version suffix in UNIFFI_SHARED_HEADER_V6 17 + #ifndef UNIFFI_SHARED_HEADER_V6 18 + #error Combining helper code from multiple versions of uniffi is not supported 19 + #endif // ndef UNIFFI_SHARED_HEADER_V6 20 + #else 21 + #define UNIFFI_SHARED_H 22 + #define UNIFFI_SHARED_HEADER_V6 23 + // ⚠️ Attention: If you change this #else block (ending in `#endif // def UNIFFI_SHARED_H`) you *must* ⚠️ 24 + // ⚠️ increment the version suffix in all instances of UNIFFI_SHARED_HEADER_V6 in this file. ⚠️ 25 + 26 + typedef struct RustBuffer { 27 + uint64_t capacity; 28 + uint64_t len; 29 + uint8_t *data; 30 + } RustBuffer; 31 + 32 + typedef struct ForeignBytes { 33 + int32_t len; 34 + const uint8_t *data; 35 + } ForeignBytes; 36 + 37 + // Error definitions 38 + typedef struct RustCallStatus { 39 + int8_t code; 40 + RustBuffer errorBuf; 41 + } RustCallStatus; 42 + 43 + #endif // UNIFFI_SHARED_H 44 + 45 + 46 + #ifndef UNIFFI_FFIDEF_RUST_FUTURE_CONTINUATION_CALLBACK 47 + #define UNIFFI_FFIDEF_RUST_FUTURE_CONTINUATION_CALLBACK 48 + typedef void (*UniffiRustFutureContinuationCallback)(uint64_t data, int8_t poll_result); 49 + 50 + // Making function static works arround: 51 + // https://github.com/golang/go/issues/11263 52 + static void call_UniffiRustFutureContinuationCallback( 53 + UniffiRustFutureContinuationCallback cb, uint64_t data, int8_t poll_result) 54 + { 55 + return cb(data, poll_result); 56 + } 57 + 58 + 59 + #endif 60 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_FREE 61 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_FREE 62 + typedef void (*UniffiForeignFutureFree)(uint64_t handle); 63 + 64 + // Making function static works arround: 65 + // https://github.com/golang/go/issues/11263 66 + static void call_UniffiForeignFutureFree( 67 + UniffiForeignFutureFree cb, uint64_t handle) 68 + { 69 + return cb(handle); 70 + } 71 + 72 + 73 + #endif 74 + #ifndef UNIFFI_FFIDEF_CALLBACK_INTERFACE_FREE 75 + #define UNIFFI_FFIDEF_CALLBACK_INTERFACE_FREE 76 + typedef void (*UniffiCallbackInterfaceFree)(uint64_t handle); 77 + 78 + // Making function static works arround: 79 + // https://github.com/golang/go/issues/11263 80 + static void call_UniffiCallbackInterfaceFree( 81 + UniffiCallbackInterfaceFree cb, uint64_t handle) 82 + { 83 + return cb(handle); 84 + } 85 + 86 + 87 + #endif 88 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE 89 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE 90 + typedef struct UniffiForeignFuture { 91 + uint64_t handle; 92 + UniffiForeignFutureFree free; 93 + } UniffiForeignFuture; 94 + 95 + #endif 96 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U8 97 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U8 98 + typedef struct UniffiForeignFutureStructU8 { 99 + uint8_t returnValue; 100 + RustCallStatus callStatus; 101 + } UniffiForeignFutureStructU8; 102 + 103 + #endif 104 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U8 105 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U8 106 + typedef void (*UniffiForeignFutureCompleteU8)(uint64_t callback_data, UniffiForeignFutureStructU8 result); 107 + 108 + // Making function static works arround: 109 + // https://github.com/golang/go/issues/11263 110 + static void call_UniffiForeignFutureCompleteU8( 111 + UniffiForeignFutureCompleteU8 cb, uint64_t callback_data, UniffiForeignFutureStructU8 result) 112 + { 113 + return cb(callback_data, result); 114 + } 115 + 116 + 117 + #endif 118 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I8 119 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I8 120 + typedef struct UniffiForeignFutureStructI8 { 121 + int8_t returnValue; 122 + RustCallStatus callStatus; 123 + } UniffiForeignFutureStructI8; 124 + 125 + #endif 126 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I8 127 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I8 128 + typedef void (*UniffiForeignFutureCompleteI8)(uint64_t callback_data, UniffiForeignFutureStructI8 result); 129 + 130 + // Making function static works arround: 131 + // https://github.com/golang/go/issues/11263 132 + static void call_UniffiForeignFutureCompleteI8( 133 + UniffiForeignFutureCompleteI8 cb, uint64_t callback_data, UniffiForeignFutureStructI8 result) 134 + { 135 + return cb(callback_data, result); 136 + } 137 + 138 + 139 + #endif 140 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U16 141 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U16 142 + typedef struct UniffiForeignFutureStructU16 { 143 + uint16_t returnValue; 144 + RustCallStatus callStatus; 145 + } UniffiForeignFutureStructU16; 146 + 147 + #endif 148 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U16 149 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U16 150 + typedef void (*UniffiForeignFutureCompleteU16)(uint64_t callback_data, UniffiForeignFutureStructU16 result); 151 + 152 + // Making function static works arround: 153 + // https://github.com/golang/go/issues/11263 154 + static void call_UniffiForeignFutureCompleteU16( 155 + UniffiForeignFutureCompleteU16 cb, uint64_t callback_data, UniffiForeignFutureStructU16 result) 156 + { 157 + return cb(callback_data, result); 158 + } 159 + 160 + 161 + #endif 162 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I16 163 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I16 164 + typedef struct UniffiForeignFutureStructI16 { 165 + int16_t returnValue; 166 + RustCallStatus callStatus; 167 + } UniffiForeignFutureStructI16; 168 + 169 + #endif 170 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I16 171 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I16 172 + typedef void (*UniffiForeignFutureCompleteI16)(uint64_t callback_data, UniffiForeignFutureStructI16 result); 173 + 174 + // Making function static works arround: 175 + // https://github.com/golang/go/issues/11263 176 + static void call_UniffiForeignFutureCompleteI16( 177 + UniffiForeignFutureCompleteI16 cb, uint64_t callback_data, UniffiForeignFutureStructI16 result) 178 + { 179 + return cb(callback_data, result); 180 + } 181 + 182 + 183 + #endif 184 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U32 185 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U32 186 + typedef struct UniffiForeignFutureStructU32 { 187 + uint32_t returnValue; 188 + RustCallStatus callStatus; 189 + } UniffiForeignFutureStructU32; 190 + 191 + #endif 192 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U32 193 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U32 194 + typedef void (*UniffiForeignFutureCompleteU32)(uint64_t callback_data, UniffiForeignFutureStructU32 result); 195 + 196 + // Making function static works arround: 197 + // https://github.com/golang/go/issues/11263 198 + static void call_UniffiForeignFutureCompleteU32( 199 + UniffiForeignFutureCompleteU32 cb, uint64_t callback_data, UniffiForeignFutureStructU32 result) 200 + { 201 + return cb(callback_data, result); 202 + } 203 + 204 + 205 + #endif 206 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I32 207 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I32 208 + typedef struct UniffiForeignFutureStructI32 { 209 + int32_t returnValue; 210 + RustCallStatus callStatus; 211 + } UniffiForeignFutureStructI32; 212 + 213 + #endif 214 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I32 215 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I32 216 + typedef void (*UniffiForeignFutureCompleteI32)(uint64_t callback_data, UniffiForeignFutureStructI32 result); 217 + 218 + // Making function static works arround: 219 + // https://github.com/golang/go/issues/11263 220 + static void call_UniffiForeignFutureCompleteI32( 221 + UniffiForeignFutureCompleteI32 cb, uint64_t callback_data, UniffiForeignFutureStructI32 result) 222 + { 223 + return cb(callback_data, result); 224 + } 225 + 226 + 227 + #endif 228 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U64 229 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_U64 230 + typedef struct UniffiForeignFutureStructU64 { 231 + uint64_t returnValue; 232 + RustCallStatus callStatus; 233 + } UniffiForeignFutureStructU64; 234 + 235 + #endif 236 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U64 237 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_U64 238 + typedef void (*UniffiForeignFutureCompleteU64)(uint64_t callback_data, UniffiForeignFutureStructU64 result); 239 + 240 + // Making function static works arround: 241 + // https://github.com/golang/go/issues/11263 242 + static void call_UniffiForeignFutureCompleteU64( 243 + UniffiForeignFutureCompleteU64 cb, uint64_t callback_data, UniffiForeignFutureStructU64 result) 244 + { 245 + return cb(callback_data, result); 246 + } 247 + 248 + 249 + #endif 250 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I64 251 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_I64 252 + typedef struct UniffiForeignFutureStructI64 { 253 + int64_t returnValue; 254 + RustCallStatus callStatus; 255 + } UniffiForeignFutureStructI64; 256 + 257 + #endif 258 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I64 259 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_I64 260 + typedef void (*UniffiForeignFutureCompleteI64)(uint64_t callback_data, UniffiForeignFutureStructI64 result); 261 + 262 + // Making function static works arround: 263 + // https://github.com/golang/go/issues/11263 264 + static void call_UniffiForeignFutureCompleteI64( 265 + UniffiForeignFutureCompleteI64 cb, uint64_t callback_data, UniffiForeignFutureStructI64 result) 266 + { 267 + return cb(callback_data, result); 268 + } 269 + 270 + 271 + #endif 272 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_F32 273 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_F32 274 + typedef struct UniffiForeignFutureStructF32 { 275 + float returnValue; 276 + RustCallStatus callStatus; 277 + } UniffiForeignFutureStructF32; 278 + 279 + #endif 280 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_F32 281 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_F32 282 + typedef void (*UniffiForeignFutureCompleteF32)(uint64_t callback_data, UniffiForeignFutureStructF32 result); 283 + 284 + // Making function static works arround: 285 + // https://github.com/golang/go/issues/11263 286 + static void call_UniffiForeignFutureCompleteF32( 287 + UniffiForeignFutureCompleteF32 cb, uint64_t callback_data, UniffiForeignFutureStructF32 result) 288 + { 289 + return cb(callback_data, result); 290 + } 291 + 292 + 293 + #endif 294 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_F64 295 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_F64 296 + typedef struct UniffiForeignFutureStructF64 { 297 + double returnValue; 298 + RustCallStatus callStatus; 299 + } UniffiForeignFutureStructF64; 300 + 301 + #endif 302 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_F64 303 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_F64 304 + typedef void (*UniffiForeignFutureCompleteF64)(uint64_t callback_data, UniffiForeignFutureStructF64 result); 305 + 306 + // Making function static works arround: 307 + // https://github.com/golang/go/issues/11263 308 + static void call_UniffiForeignFutureCompleteF64( 309 + UniffiForeignFutureCompleteF64 cb, uint64_t callback_data, UniffiForeignFutureStructF64 result) 310 + { 311 + return cb(callback_data, result); 312 + } 313 + 314 + 315 + #endif 316 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_POINTER 317 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_POINTER 318 + typedef struct UniffiForeignFutureStructPointer { 319 + void* returnValue; 320 + RustCallStatus callStatus; 321 + } UniffiForeignFutureStructPointer; 322 + 323 + #endif 324 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_POINTER 325 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_POINTER 326 + typedef void (*UniffiForeignFutureCompletePointer)(uint64_t callback_data, UniffiForeignFutureStructPointer result); 327 + 328 + // Making function static works arround: 329 + // https://github.com/golang/go/issues/11263 330 + static void call_UniffiForeignFutureCompletePointer( 331 + UniffiForeignFutureCompletePointer cb, uint64_t callback_data, UniffiForeignFutureStructPointer result) 332 + { 333 + return cb(callback_data, result); 334 + } 335 + 336 + 337 + #endif 338 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_RUST_BUFFER 339 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_RUST_BUFFER 340 + typedef struct UniffiForeignFutureStructRustBuffer { 341 + RustBuffer returnValue; 342 + RustCallStatus callStatus; 343 + } UniffiForeignFutureStructRustBuffer; 344 + 345 + #endif 346 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_RUST_BUFFER 347 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_RUST_BUFFER 348 + typedef void (*UniffiForeignFutureCompleteRustBuffer)(uint64_t callback_data, UniffiForeignFutureStructRustBuffer result); 349 + 350 + // Making function static works arround: 351 + // https://github.com/golang/go/issues/11263 352 + static void call_UniffiForeignFutureCompleteRustBuffer( 353 + UniffiForeignFutureCompleteRustBuffer cb, uint64_t callback_data, UniffiForeignFutureStructRustBuffer result) 354 + { 355 + return cb(callback_data, result); 356 + } 357 + 358 + 359 + #endif 360 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_VOID 361 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_STRUCT_VOID 362 + typedef struct UniffiForeignFutureStructVoid { 363 + RustCallStatus callStatus; 364 + } UniffiForeignFutureStructVoid; 365 + 366 + #endif 367 + #ifndef UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_VOID 368 + #define UNIFFI_FFIDEF_FOREIGN_FUTURE_COMPLETE_VOID 369 + typedef void (*UniffiForeignFutureCompleteVoid)(uint64_t callback_data, UniffiForeignFutureStructVoid result); 370 + 371 + // Making function static works arround: 372 + // https://github.com/golang/go/issues/11263 373 + static void call_UniffiForeignFutureCompleteVoid( 374 + UniffiForeignFutureCompleteVoid cb, uint64_t callback_data, UniffiForeignFutureStructVoid result) 375 + { 376 + return cb(callback_data, result); 377 + } 378 + 379 + 380 + #endif 381 + #ifndef UNIFFI_FFIDEF_CALLBACK_INTERFACE_DATA_HANDLER_METHOD0 382 + #define UNIFFI_FFIDEF_CALLBACK_INTERFACE_DATA_HANDLER_METHOD0 383 + typedef void (*UniffiCallbackInterfaceDataHandlerMethod0)(uint64_t uniffi_handle, RustBuffer topic, RustBuffer data, UniffiForeignFutureCompleteVoid uniffi_future_callback, uint64_t uniffi_callback_data, UniffiForeignFuture* uniffi_out_return); 384 + 385 + // Making function static works arround: 386 + // https://github.com/golang/go/issues/11263 387 + static void call_UniffiCallbackInterfaceDataHandlerMethod0( 388 + UniffiCallbackInterfaceDataHandlerMethod0 cb, uint64_t uniffi_handle, RustBuffer topic, RustBuffer data, UniffiForeignFutureCompleteVoid uniffi_future_callback, uint64_t uniffi_callback_data, UniffiForeignFuture* uniffi_out_return) 389 + { 390 + return cb(uniffi_handle, topic, data, uniffi_future_callback, uniffi_callback_data, uniffi_out_return); 391 + } 392 + 393 + 394 + #endif 395 + #ifndef UNIFFI_FFIDEF_V_TABLE_CALLBACK_INTERFACE_DATA_HANDLER 396 + #define UNIFFI_FFIDEF_V_TABLE_CALLBACK_INTERFACE_DATA_HANDLER 397 + typedef struct UniffiVTableCallbackInterfaceDataHandler { 398 + UniffiCallbackInterfaceDataHandlerMethod0 handleData; 399 + UniffiCallbackInterfaceFree uniffiFree; 400 + } UniffiVTableCallbackInterfaceDataHandler; 401 + 402 + #endif 403 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_CLONE_DATAHANDLER 404 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_CLONE_DATAHANDLER 405 + void* uniffi_iroh_streamplace_fn_clone_datahandler(void* ptr, RustCallStatus *out_status 406 + ); 407 + #endif 408 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_FREE_DATAHANDLER 409 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_FREE_DATAHANDLER 410 + void uniffi_iroh_streamplace_fn_free_datahandler(void* ptr, RustCallStatus *out_status 411 + ); 412 + #endif 413 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_INIT_CALLBACK_VTABLE_DATAHANDLER 414 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_INIT_CALLBACK_VTABLE_DATAHANDLER 415 + void uniffi_iroh_streamplace_fn_init_callback_vtable_datahandler(UniffiVTableCallbackInterfaceDataHandler* vtable 416 + ); 417 + #endif 418 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_METHOD_DATAHANDLER_HANDLE_DATA 419 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_METHOD_DATAHANDLER_HANDLE_DATA 420 + uint64_t uniffi_iroh_streamplace_fn_method_datahandler_handle_data(void* ptr, RustBuffer topic, RustBuffer data 421 + ); 422 + #endif 423 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_CLONE_ENDPOINT 424 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_CLONE_ENDPOINT 425 + void* uniffi_iroh_streamplace_fn_clone_endpoint(void* ptr, RustCallStatus *out_status 426 + ); 427 + #endif 428 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_FREE_ENDPOINT 429 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_FREE_ENDPOINT 430 + void uniffi_iroh_streamplace_fn_free_endpoint(void* ptr, RustCallStatus *out_status 431 + ); 432 + #endif 433 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_CONSTRUCTOR_ENDPOINT_NEW 434 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_CONSTRUCTOR_ENDPOINT_NEW 435 + uint64_t uniffi_iroh_streamplace_fn_constructor_endpoint_new(void 436 + 437 + ); 438 + #endif 439 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_METHOD_ENDPOINT_NODE_ADDR 440 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_METHOD_ENDPOINT_NODE_ADDR 441 + uint64_t uniffi_iroh_streamplace_fn_method_endpoint_node_addr(void* ptr 442 + ); 443 + #endif 444 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_CLONE_NODEADDR 445 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_CLONE_NODEADDR 446 + void* uniffi_iroh_streamplace_fn_clone_nodeaddr(void* ptr, RustCallStatus *out_status 447 + ); 448 + #endif 449 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_FREE_NODEADDR 450 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_FREE_NODEADDR 451 + void uniffi_iroh_streamplace_fn_free_nodeaddr(void* ptr, RustCallStatus *out_status 452 + ); 453 + #endif 454 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_CONSTRUCTOR_NODEADDR_NEW 455 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_CONSTRUCTOR_NODEADDR_NEW 456 + void* uniffi_iroh_streamplace_fn_constructor_nodeaddr_new(void* node_id, RustBuffer derp_url, RustBuffer addresses, RustCallStatus *out_status 457 + ); 458 + #endif 459 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_METHOD_NODEADDR_DIRECT_ADDRESSES 460 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_METHOD_NODEADDR_DIRECT_ADDRESSES 461 + RustBuffer uniffi_iroh_streamplace_fn_method_nodeaddr_direct_addresses(void* ptr, RustCallStatus *out_status 462 + ); 463 + #endif 464 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_METHOD_NODEADDR_EQUAL 465 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_METHOD_NODEADDR_EQUAL 466 + int8_t uniffi_iroh_streamplace_fn_method_nodeaddr_equal(void* ptr, void* other, RustCallStatus *out_status 467 + ); 468 + #endif 469 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_METHOD_NODEADDR_NODE_ID 470 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_METHOD_NODEADDR_NODE_ID 471 + void* uniffi_iroh_streamplace_fn_method_nodeaddr_node_id(void* ptr, RustCallStatus *out_status 472 + ); 473 + #endif 474 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_METHOD_NODEADDR_RELAY_URL 475 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_METHOD_NODEADDR_RELAY_URL 476 + RustBuffer uniffi_iroh_streamplace_fn_method_nodeaddr_relay_url(void* ptr, RustCallStatus *out_status 477 + ); 478 + #endif 479 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_CLONE_PUBLICKEY 480 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_CLONE_PUBLICKEY 481 + void* uniffi_iroh_streamplace_fn_clone_publickey(void* ptr, RustCallStatus *out_status 482 + ); 483 + #endif 484 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_FREE_PUBLICKEY 485 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_FREE_PUBLICKEY 486 + void uniffi_iroh_streamplace_fn_free_publickey(void* ptr, RustCallStatus *out_status 487 + ); 488 + #endif 489 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_CONSTRUCTOR_PUBLICKEY_FROM_BYTES 490 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_CONSTRUCTOR_PUBLICKEY_FROM_BYTES 491 + void* uniffi_iroh_streamplace_fn_constructor_publickey_from_bytes(RustBuffer bytes, RustCallStatus *out_status 492 + ); 493 + #endif 494 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_CONSTRUCTOR_PUBLICKEY_FROM_STRING 495 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_CONSTRUCTOR_PUBLICKEY_FROM_STRING 496 + void* uniffi_iroh_streamplace_fn_constructor_publickey_from_string(RustBuffer s, RustCallStatus *out_status 497 + ); 498 + #endif 499 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_METHOD_PUBLICKEY_EQUAL 500 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_METHOD_PUBLICKEY_EQUAL 501 + int8_t uniffi_iroh_streamplace_fn_method_publickey_equal(void* ptr, void* other, RustCallStatus *out_status 502 + ); 503 + #endif 504 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_METHOD_PUBLICKEY_FMT_SHORT 505 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_METHOD_PUBLICKEY_FMT_SHORT 506 + RustBuffer uniffi_iroh_streamplace_fn_method_publickey_fmt_short(void* ptr, RustCallStatus *out_status 507 + ); 508 + #endif 509 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_METHOD_PUBLICKEY_TO_BYTES 510 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_METHOD_PUBLICKEY_TO_BYTES 511 + RustBuffer uniffi_iroh_streamplace_fn_method_publickey_to_bytes(void* ptr, RustCallStatus *out_status 512 + ); 513 + #endif 514 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_METHOD_PUBLICKEY_UNIFFI_TRAIT_DISPLAY 515 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_METHOD_PUBLICKEY_UNIFFI_TRAIT_DISPLAY 516 + RustBuffer uniffi_iroh_streamplace_fn_method_publickey_uniffi_trait_display(void* ptr, RustCallStatus *out_status 517 + ); 518 + #endif 519 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_CLONE_RECEIVER 520 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_CLONE_RECEIVER 521 + void* uniffi_iroh_streamplace_fn_clone_receiver(void* ptr, RustCallStatus *out_status 522 + ); 523 + #endif 524 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_FREE_RECEIVER 525 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_FREE_RECEIVER 526 + void uniffi_iroh_streamplace_fn_free_receiver(void* ptr, RustCallStatus *out_status 527 + ); 528 + #endif 529 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_CONSTRUCTOR_RECEIVER_NEW 530 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_CONSTRUCTOR_RECEIVER_NEW 531 + uint64_t uniffi_iroh_streamplace_fn_constructor_receiver_new(void* endpoint, void* handler 532 + ); 533 + #endif 534 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_METHOD_RECEIVER_NODE_ADDR 535 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_METHOD_RECEIVER_NODE_ADDR 536 + uint64_t uniffi_iroh_streamplace_fn_method_receiver_node_addr(void* ptr 537 + ); 538 + #endif 539 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_METHOD_RECEIVER_SUBSCRIBE 540 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_METHOD_RECEIVER_SUBSCRIBE 541 + uint64_t uniffi_iroh_streamplace_fn_method_receiver_subscribe(void* ptr, void* remote_id, RustBuffer topic 542 + ); 543 + #endif 544 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_METHOD_RECEIVER_UNSUBSCRIBE 545 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_METHOD_RECEIVER_UNSUBSCRIBE 546 + uint64_t uniffi_iroh_streamplace_fn_method_receiver_unsubscribe(void* ptr, void* remote_id, RustBuffer topic 547 + ); 548 + #endif 549 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_CLONE_SENDER 550 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_CLONE_SENDER 551 + void* uniffi_iroh_streamplace_fn_clone_sender(void* ptr, RustCallStatus *out_status 552 + ); 553 + #endif 554 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_FREE_SENDER 555 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_FREE_SENDER 556 + void uniffi_iroh_streamplace_fn_free_sender(void* ptr, RustCallStatus *out_status 557 + ); 558 + #endif 559 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_CONSTRUCTOR_SENDER_NEW 560 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_CONSTRUCTOR_SENDER_NEW 561 + uint64_t uniffi_iroh_streamplace_fn_constructor_sender_new(void* endpoint 562 + ); 563 + #endif 564 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_METHOD_SENDER_NODE_ADDR 565 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_METHOD_SENDER_NODE_ADDR 566 + uint64_t uniffi_iroh_streamplace_fn_method_sender_node_addr(void* ptr 567 + ); 568 + #endif 569 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_METHOD_SENDER_SEND 570 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_FN_METHOD_SENDER_SEND 571 + uint64_t uniffi_iroh_streamplace_fn_method_sender_send(void* ptr, RustBuffer key, RustBuffer data 572 + ); 573 + #endif 574 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUSTBUFFER_ALLOC 575 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUSTBUFFER_ALLOC 576 + RustBuffer ffi_iroh_streamplace_rustbuffer_alloc(uint64_t size, RustCallStatus *out_status 577 + ); 578 + #endif 579 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUSTBUFFER_FROM_BYTES 580 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUSTBUFFER_FROM_BYTES 581 + RustBuffer ffi_iroh_streamplace_rustbuffer_from_bytes(ForeignBytes bytes, RustCallStatus *out_status 582 + ); 583 + #endif 584 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUSTBUFFER_FREE 585 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUSTBUFFER_FREE 586 + void ffi_iroh_streamplace_rustbuffer_free(RustBuffer buf, RustCallStatus *out_status 587 + ); 588 + #endif 589 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUSTBUFFER_RESERVE 590 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUSTBUFFER_RESERVE 591 + RustBuffer ffi_iroh_streamplace_rustbuffer_reserve(RustBuffer buf, uint64_t additional, RustCallStatus *out_status 592 + ); 593 + #endif 594 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_U8 595 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_U8 596 + void ffi_iroh_streamplace_rust_future_poll_u8(uint64_t handle, UniffiRustFutureContinuationCallback callback, uint64_t callback_data 597 + ); 598 + #endif 599 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_U8 600 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_U8 601 + void ffi_iroh_streamplace_rust_future_cancel_u8(uint64_t handle 602 + ); 603 + #endif 604 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_U8 605 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_U8 606 + void ffi_iroh_streamplace_rust_future_free_u8(uint64_t handle 607 + ); 608 + #endif 609 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_U8 610 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_U8 611 + uint8_t ffi_iroh_streamplace_rust_future_complete_u8(uint64_t handle, RustCallStatus *out_status 612 + ); 613 + #endif 614 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_I8 615 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_I8 616 + void ffi_iroh_streamplace_rust_future_poll_i8(uint64_t handle, UniffiRustFutureContinuationCallback callback, uint64_t callback_data 617 + ); 618 + #endif 619 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_I8 620 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_I8 621 + void ffi_iroh_streamplace_rust_future_cancel_i8(uint64_t handle 622 + ); 623 + #endif 624 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_I8 625 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_I8 626 + void ffi_iroh_streamplace_rust_future_free_i8(uint64_t handle 627 + ); 628 + #endif 629 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_I8 630 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_I8 631 + int8_t ffi_iroh_streamplace_rust_future_complete_i8(uint64_t handle, RustCallStatus *out_status 632 + ); 633 + #endif 634 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_U16 635 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_U16 636 + void ffi_iroh_streamplace_rust_future_poll_u16(uint64_t handle, UniffiRustFutureContinuationCallback callback, uint64_t callback_data 637 + ); 638 + #endif 639 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_U16 640 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_U16 641 + void ffi_iroh_streamplace_rust_future_cancel_u16(uint64_t handle 642 + ); 643 + #endif 644 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_U16 645 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_U16 646 + void ffi_iroh_streamplace_rust_future_free_u16(uint64_t handle 647 + ); 648 + #endif 649 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_U16 650 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_U16 651 + uint16_t ffi_iroh_streamplace_rust_future_complete_u16(uint64_t handle, RustCallStatus *out_status 652 + ); 653 + #endif 654 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_I16 655 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_I16 656 + void ffi_iroh_streamplace_rust_future_poll_i16(uint64_t handle, UniffiRustFutureContinuationCallback callback, uint64_t callback_data 657 + ); 658 + #endif 659 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_I16 660 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_I16 661 + void ffi_iroh_streamplace_rust_future_cancel_i16(uint64_t handle 662 + ); 663 + #endif 664 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_I16 665 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_I16 666 + void ffi_iroh_streamplace_rust_future_free_i16(uint64_t handle 667 + ); 668 + #endif 669 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_I16 670 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_I16 671 + int16_t ffi_iroh_streamplace_rust_future_complete_i16(uint64_t handle, RustCallStatus *out_status 672 + ); 673 + #endif 674 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_U32 675 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_U32 676 + void ffi_iroh_streamplace_rust_future_poll_u32(uint64_t handle, UniffiRustFutureContinuationCallback callback, uint64_t callback_data 677 + ); 678 + #endif 679 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_U32 680 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_U32 681 + void ffi_iroh_streamplace_rust_future_cancel_u32(uint64_t handle 682 + ); 683 + #endif 684 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_U32 685 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_U32 686 + void ffi_iroh_streamplace_rust_future_free_u32(uint64_t handle 687 + ); 688 + #endif 689 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_U32 690 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_U32 691 + uint32_t ffi_iroh_streamplace_rust_future_complete_u32(uint64_t handle, RustCallStatus *out_status 692 + ); 693 + #endif 694 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_I32 695 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_I32 696 + void ffi_iroh_streamplace_rust_future_poll_i32(uint64_t handle, UniffiRustFutureContinuationCallback callback, uint64_t callback_data 697 + ); 698 + #endif 699 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_I32 700 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_I32 701 + void ffi_iroh_streamplace_rust_future_cancel_i32(uint64_t handle 702 + ); 703 + #endif 704 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_I32 705 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_I32 706 + void ffi_iroh_streamplace_rust_future_free_i32(uint64_t handle 707 + ); 708 + #endif 709 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_I32 710 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_I32 711 + int32_t ffi_iroh_streamplace_rust_future_complete_i32(uint64_t handle, RustCallStatus *out_status 712 + ); 713 + #endif 714 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_U64 715 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_U64 716 + void ffi_iroh_streamplace_rust_future_poll_u64(uint64_t handle, UniffiRustFutureContinuationCallback callback, uint64_t callback_data 717 + ); 718 + #endif 719 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_U64 720 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_U64 721 + void ffi_iroh_streamplace_rust_future_cancel_u64(uint64_t handle 722 + ); 723 + #endif 724 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_U64 725 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_U64 726 + void ffi_iroh_streamplace_rust_future_free_u64(uint64_t handle 727 + ); 728 + #endif 729 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_U64 730 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_U64 731 + uint64_t ffi_iroh_streamplace_rust_future_complete_u64(uint64_t handle, RustCallStatus *out_status 732 + ); 733 + #endif 734 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_I64 735 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_I64 736 + void ffi_iroh_streamplace_rust_future_poll_i64(uint64_t handle, UniffiRustFutureContinuationCallback callback, uint64_t callback_data 737 + ); 738 + #endif 739 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_I64 740 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_I64 741 + void ffi_iroh_streamplace_rust_future_cancel_i64(uint64_t handle 742 + ); 743 + #endif 744 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_I64 745 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_I64 746 + void ffi_iroh_streamplace_rust_future_free_i64(uint64_t handle 747 + ); 748 + #endif 749 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_I64 750 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_I64 751 + int64_t ffi_iroh_streamplace_rust_future_complete_i64(uint64_t handle, RustCallStatus *out_status 752 + ); 753 + #endif 754 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_F32 755 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_F32 756 + void ffi_iroh_streamplace_rust_future_poll_f32(uint64_t handle, UniffiRustFutureContinuationCallback callback, uint64_t callback_data 757 + ); 758 + #endif 759 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_F32 760 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_F32 761 + void ffi_iroh_streamplace_rust_future_cancel_f32(uint64_t handle 762 + ); 763 + #endif 764 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_F32 765 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_F32 766 + void ffi_iroh_streamplace_rust_future_free_f32(uint64_t handle 767 + ); 768 + #endif 769 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_F32 770 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_F32 771 + float ffi_iroh_streamplace_rust_future_complete_f32(uint64_t handle, RustCallStatus *out_status 772 + ); 773 + #endif 774 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_F64 775 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_F64 776 + void ffi_iroh_streamplace_rust_future_poll_f64(uint64_t handle, UniffiRustFutureContinuationCallback callback, uint64_t callback_data 777 + ); 778 + #endif 779 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_F64 780 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_F64 781 + void ffi_iroh_streamplace_rust_future_cancel_f64(uint64_t handle 782 + ); 783 + #endif 784 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_F64 785 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_F64 786 + void ffi_iroh_streamplace_rust_future_free_f64(uint64_t handle 787 + ); 788 + #endif 789 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_F64 790 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_F64 791 + double ffi_iroh_streamplace_rust_future_complete_f64(uint64_t handle, RustCallStatus *out_status 792 + ); 793 + #endif 794 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_POINTER 795 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_POINTER 796 + void ffi_iroh_streamplace_rust_future_poll_pointer(uint64_t handle, UniffiRustFutureContinuationCallback callback, uint64_t callback_data 797 + ); 798 + #endif 799 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_POINTER 800 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_POINTER 801 + void ffi_iroh_streamplace_rust_future_cancel_pointer(uint64_t handle 802 + ); 803 + #endif 804 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_POINTER 805 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_POINTER 806 + void ffi_iroh_streamplace_rust_future_free_pointer(uint64_t handle 807 + ); 808 + #endif 809 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_POINTER 810 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_POINTER 811 + void* ffi_iroh_streamplace_rust_future_complete_pointer(uint64_t handle, RustCallStatus *out_status 812 + ); 813 + #endif 814 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_RUST_BUFFER 815 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_RUST_BUFFER 816 + void ffi_iroh_streamplace_rust_future_poll_rust_buffer(uint64_t handle, UniffiRustFutureContinuationCallback callback, uint64_t callback_data 817 + ); 818 + #endif 819 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_RUST_BUFFER 820 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_RUST_BUFFER 821 + void ffi_iroh_streamplace_rust_future_cancel_rust_buffer(uint64_t handle 822 + ); 823 + #endif 824 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_RUST_BUFFER 825 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_RUST_BUFFER 826 + void ffi_iroh_streamplace_rust_future_free_rust_buffer(uint64_t handle 827 + ); 828 + #endif 829 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_RUST_BUFFER 830 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_RUST_BUFFER 831 + RustBuffer ffi_iroh_streamplace_rust_future_complete_rust_buffer(uint64_t handle, RustCallStatus *out_status 832 + ); 833 + #endif 834 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_VOID 835 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_POLL_VOID 836 + void ffi_iroh_streamplace_rust_future_poll_void(uint64_t handle, UniffiRustFutureContinuationCallback callback, uint64_t callback_data 837 + ); 838 + #endif 839 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_VOID 840 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_CANCEL_VOID 841 + void ffi_iroh_streamplace_rust_future_cancel_void(uint64_t handle 842 + ); 843 + #endif 844 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_VOID 845 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_FREE_VOID 846 + void ffi_iroh_streamplace_rust_future_free_void(uint64_t handle 847 + ); 848 + #endif 849 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_VOID 850 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_RUST_FUTURE_COMPLETE_VOID 851 + void ffi_iroh_streamplace_rust_future_complete_void(uint64_t handle, RustCallStatus *out_status 852 + ); 853 + #endif 854 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_METHOD_DATAHANDLER_HANDLE_DATA 855 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_METHOD_DATAHANDLER_HANDLE_DATA 856 + uint16_t uniffi_iroh_streamplace_checksum_method_datahandler_handle_data(void 857 + 858 + ); 859 + #endif 860 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_METHOD_ENDPOINT_NODE_ADDR 861 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_METHOD_ENDPOINT_NODE_ADDR 862 + uint16_t uniffi_iroh_streamplace_checksum_method_endpoint_node_addr(void 863 + 864 + ); 865 + #endif 866 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_METHOD_NODEADDR_DIRECT_ADDRESSES 867 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_METHOD_NODEADDR_DIRECT_ADDRESSES 868 + uint16_t uniffi_iroh_streamplace_checksum_method_nodeaddr_direct_addresses(void 869 + 870 + ); 871 + #endif 872 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_METHOD_NODEADDR_EQUAL 873 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_METHOD_NODEADDR_EQUAL 874 + uint16_t uniffi_iroh_streamplace_checksum_method_nodeaddr_equal(void 875 + 876 + ); 877 + #endif 878 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_METHOD_NODEADDR_NODE_ID 879 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_METHOD_NODEADDR_NODE_ID 880 + uint16_t uniffi_iroh_streamplace_checksum_method_nodeaddr_node_id(void 881 + 882 + ); 883 + #endif 884 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_METHOD_NODEADDR_RELAY_URL 885 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_METHOD_NODEADDR_RELAY_URL 886 + uint16_t uniffi_iroh_streamplace_checksum_method_nodeaddr_relay_url(void 887 + 888 + ); 889 + #endif 890 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_METHOD_PUBLICKEY_EQUAL 891 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_METHOD_PUBLICKEY_EQUAL 892 + uint16_t uniffi_iroh_streamplace_checksum_method_publickey_equal(void 893 + 894 + ); 895 + #endif 896 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_METHOD_PUBLICKEY_FMT_SHORT 897 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_METHOD_PUBLICKEY_FMT_SHORT 898 + uint16_t uniffi_iroh_streamplace_checksum_method_publickey_fmt_short(void 899 + 900 + ); 901 + #endif 902 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_METHOD_PUBLICKEY_TO_BYTES 903 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_METHOD_PUBLICKEY_TO_BYTES 904 + uint16_t uniffi_iroh_streamplace_checksum_method_publickey_to_bytes(void 905 + 906 + ); 907 + #endif 908 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_METHOD_RECEIVER_NODE_ADDR 909 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_METHOD_RECEIVER_NODE_ADDR 910 + uint16_t uniffi_iroh_streamplace_checksum_method_receiver_node_addr(void 911 + 912 + ); 913 + #endif 914 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_METHOD_RECEIVER_SUBSCRIBE 915 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_METHOD_RECEIVER_SUBSCRIBE 916 + uint16_t uniffi_iroh_streamplace_checksum_method_receiver_subscribe(void 917 + 918 + ); 919 + #endif 920 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_METHOD_RECEIVER_UNSUBSCRIBE 921 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_METHOD_RECEIVER_UNSUBSCRIBE 922 + uint16_t uniffi_iroh_streamplace_checksum_method_receiver_unsubscribe(void 923 + 924 + ); 925 + #endif 926 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_METHOD_SENDER_NODE_ADDR 927 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_METHOD_SENDER_NODE_ADDR 928 + uint16_t uniffi_iroh_streamplace_checksum_method_sender_node_addr(void 929 + 930 + ); 931 + #endif 932 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_METHOD_SENDER_SEND 933 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_METHOD_SENDER_SEND 934 + uint16_t uniffi_iroh_streamplace_checksum_method_sender_send(void 935 + 936 + ); 937 + #endif 938 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_CONSTRUCTOR_ENDPOINT_NEW 939 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_CONSTRUCTOR_ENDPOINT_NEW 940 + uint16_t uniffi_iroh_streamplace_checksum_constructor_endpoint_new(void 941 + 942 + ); 943 + #endif 944 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_CONSTRUCTOR_NODEADDR_NEW 945 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_CONSTRUCTOR_NODEADDR_NEW 946 + uint16_t uniffi_iroh_streamplace_checksum_constructor_nodeaddr_new(void 947 + 948 + ); 949 + #endif 950 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_CONSTRUCTOR_PUBLICKEY_FROM_BYTES 951 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_CONSTRUCTOR_PUBLICKEY_FROM_BYTES 952 + uint16_t uniffi_iroh_streamplace_checksum_constructor_publickey_from_bytes(void 953 + 954 + ); 955 + #endif 956 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_CONSTRUCTOR_PUBLICKEY_FROM_STRING 957 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_CONSTRUCTOR_PUBLICKEY_FROM_STRING 958 + uint16_t uniffi_iroh_streamplace_checksum_constructor_publickey_from_string(void 959 + 960 + ); 961 + #endif 962 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_CONSTRUCTOR_RECEIVER_NEW 963 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_CONSTRUCTOR_RECEIVER_NEW 964 + uint16_t uniffi_iroh_streamplace_checksum_constructor_receiver_new(void 965 + 966 + ); 967 + #endif 968 + #ifndef UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_CONSTRUCTOR_SENDER_NEW 969 + #define UNIFFI_FFIDEF_UNIFFI_IROH_STREAMPLACE_CHECKSUM_CONSTRUCTOR_SENDER_NEW 970 + uint16_t uniffi_iroh_streamplace_checksum_constructor_sender_new(void 971 + 972 + ); 973 + #endif 974 + #ifndef UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_UNIFFI_CONTRACT_VERSION 975 + #define UNIFFI_FFIDEF_FFI_IROH_STREAMPLACE_UNIFFI_CONTRACT_VERSION 976 + uint32_t ffi_iroh_streamplace_uniffi_contract_version(void 977 + 978 + ); 979 + #endif 980 + 981 + void iroh_streamplace_cgo_dispatchCallbackInterfaceDataHandlerMethod0(uint64_t uniffi_handle, RustBuffer topic, RustBuffer data, UniffiForeignFutureCompleteVoid uniffi_future_callback, uint64_t uniffi_callback_data, UniffiForeignFuture* uniffi_out_return); 982 + void iroh_streamplace_cgo_dispatchCallbackInterfaceDataHandlerFree(uint64_t handle); 983 + 984 + void iroh_streamplace_uniffiFutureContinuationCallback(uint64_t, int8_t); 985 + void iroh_streamplace_uniffiFreeGorutine(uint64_t);
+1 -1
pkg/media/media.go
··· 28 28 "git.stream.place/streamplace/c2pa-go/pkg/c2pa/generated/manifeststore" 29 29 "github.com/piprate/json-gold/ld" 30 30 31 - irohStreamplace "github.com/n0-computer/iroh-streamplace/pkg/iroh_streamplace/generated/iroh_streamplace" 31 + irohStreamplace "stream.place/streamplace/pkg/iroh/generated/iroh_streamplace" 32 32 ) 33 33 34 34 // #cgo pkg-config: streamplacedeps-uninstalled
+5 -5
pkg/replication/iroh/iroh.go
··· 5 5 6 6 "stream.place/streamplace/pkg/log" 7 7 8 - irohStreamplace "github.com/n0-computer/iroh-streamplace/pkg/iroh_streamplace/generated/iroh_streamplace" 8 + irohStreamplace "stream.place/streamplace/pkg/iroh/generated/iroh_streamplace" 9 9 ) 10 10 11 11 // IrohReplicator implements the replication mechanism using iroh 12 12 type IrohReplicator struct { 13 - peers []*irohStreamplace.PublicKey 13 + peers []*irohStreamplace.PublicKey 14 14 sender *irohStreamplace.Sender 15 15 } 16 16 ··· 21 21 } 22 22 23 23 nodeIds := make([]*irohStreamplace.PublicKey, len(peers)) 24 - for i := range(peers) { 24 + for i := range peers { 25 25 nodeId, err := irohStreamplace.PublicKeyFromString(peers[i]) 26 26 if err.AsError() != nil { 27 27 log.Log(ctx, "invalid Node ID", "warning", err.Error()) ··· 36 36 nodeIds[i] = nodeId 37 37 } 38 38 39 - return &IrohReplicator { 40 - peers: nodeIds, 39 + return &IrohReplicator{ 40 + peers: nodeIds, 41 41 sender: sender, 42 42 }, nil 43 43 }
+1 -1
rust/iroh-streamplace/Makefile
··· 9 9 .PHONY: go 10 10 go: 11 11 mkdir -p dist 12 - uniffi-bindgen-go --out-dir pkg/iroh_streamplace/generated --library ./target/release/libiroh_streamplace.dylib 12 + uniffi-bindgen-go --out-dir ../../pkg/iroh/generated --library ./target/release/libiroh_streamplace.dylib 13 13 14 14 .PHONY: test 15 15 test:
-10
rust/iroh-streamplace/go.mod
··· 1 - module github.com/n0-computer/iroh-streamplace 2 - 3 - go 1.22.2 4 - 5 - require ( 6 - github.com/davecgh/go-spew v1.1.1 // indirect 7 - github.com/pmezard/go-difflib v1.0.0 // indirect 8 - github.com/stretchr/testify v1.10.0 // indirect 9 - gopkg.in/yaml.v3 v3.0.1 // indirect 10 - )
-9
rust/iroh-streamplace/go.sum
··· 1 - github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= 2 - github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 3 - github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= 4 - github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= 5 - github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= 6 - github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= 7 - gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 8 - gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= 9 - gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+1 -1
rust/iroh-streamplace/pkg/iroh_streamplace/iroh_streamplace.go pkg/iroh/iroh_streamplace.go
··· 1 1 package iroh_streamplace 2 2 3 3 import ( 4 - _ "github.com/n0-computer/iroh-streamplace/pkg/iroh_streamplace/generated/iroh_streamplace" 4 + _ "stream.place/streamplace/pkg/iroh/generated/iroh_streamplace" 5 5 ) 6 6 7 7 // #cgo LDFLAGS: -L../../target/release -liroh_streamplace -lm
rust/iroh-streamplace/pkg/iroh_streamplace/iroh_streamplace_test.go pkg/iroh/iroh_streamplace_test.go
-4
subprojects/iroh_streamplace.wrap
··· 1 - [wrap-git] 2 - url = https://github.com/n0-computer/iroh-streamplace.git 3 - revision = 0b3bbbf8912a1d2d6a843a1473fed0d295567f81 4 - depth = 1