├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── README.md ├── rustfmt.toml └── src └── main.rs /.gitignore: -------------------------------------------------------------------------------- 1 | # By Default, Ignore any .*, except .gitignore 2 | .* 3 | !.gitignore 4 | 5 | # By default 6 | _* 7 | 8 | # --- Rust 9 | target/ 10 | # '_' in src dir, ok. 11 | !src/**/_* 12 | 13 | # --- Safety net 14 | dist/ 15 | __pycache__/ 16 | *.parquet 17 | *.map 18 | *.zip 19 | *.gz 20 | *.tar 21 | *.tgz 22 | 23 | # videos 24 | *.mov 25 | *.mp4 26 | 27 | # images 28 | *.icns 29 | *.ico 30 | *.jpeg 31 | *.jpg 32 | *.png -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "addr" 7 | version = "0.15.6" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "a93b8a41dbe230ad5087cc721f8d41611de654542180586b315d9f4cf6b72bef" 10 | dependencies = [ 11 | "psl-types", 12 | ] 13 | 14 | [[package]] 15 | name = "aho-corasick" 16 | version = "0.7.20" 17 | source = "registry+https://github.com/rust-lang/crates.io-index" 18 | checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" 19 | dependencies = [ 20 | "memchr", 21 | ] 22 | 23 | [[package]] 24 | name = "android_system_properties" 25 | version = "0.1.5" 26 | source = "registry+https://github.com/rust-lang/crates.io-index" 27 | checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 28 | dependencies = [ 29 | "libc", 30 | ] 31 | 32 | [[package]] 33 | name = "any_ascii" 34 | version = "0.3.2" 35 | source = "registry+https://github.com/rust-lang/crates.io-index" 36 | checksum = "ea50b14b7a4b9343f8c627a7a53c52076482bd4bdad0a24fd3ec533ed616cc2c" 37 | 38 | [[package]] 39 | name = "anyhow" 40 | version = "1.0.70" 41 | source = "registry+https://github.com/rust-lang/crates.io-index" 42 | checksum = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4" 43 | 44 | [[package]] 45 | name = "approx" 46 | version = "0.5.1" 47 | source = "registry+https://github.com/rust-lang/crates.io-index" 48 | checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" 49 | dependencies = [ 50 | "num-traits", 51 | ] 52 | 53 | [[package]] 54 | name = "arc-swap" 55 | version = "1.6.0" 56 | source = "registry+https://github.com/rust-lang/crates.io-index" 57 | checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" 58 | 59 | [[package]] 60 | name = "argon2" 61 | version = "0.5.0" 62 | source = "registry+https://github.com/rust-lang/crates.io-index" 63 | checksum = "95c2fcf79ad1932ac6269a738109997a83c227c09b75842ae564dc8ede6a861c" 64 | dependencies = [ 65 | "base64ct", 66 | "blake2", 67 | "password-hash", 68 | ] 69 | 70 | [[package]] 71 | name = "async-channel" 72 | version = "1.8.0" 73 | source = "registry+https://github.com/rust-lang/crates.io-index" 74 | checksum = "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833" 75 | dependencies = [ 76 | "concurrent-queue", 77 | "event-listener", 78 | "futures-core", 79 | ] 80 | 81 | [[package]] 82 | name = "async-executor" 83 | version = "1.5.0" 84 | source = "registry+https://github.com/rust-lang/crates.io-index" 85 | checksum = "17adb73da160dfb475c183343c8cccd80721ea5a605d3eb57125f0a7b7a92d0b" 86 | dependencies = [ 87 | "async-lock", 88 | "async-task", 89 | "concurrent-queue", 90 | "fastrand", 91 | "futures-lite", 92 | "slab", 93 | ] 94 | 95 | [[package]] 96 | name = "async-lock" 97 | version = "2.7.0" 98 | source = "registry+https://github.com/rust-lang/crates.io-index" 99 | checksum = "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7" 100 | dependencies = [ 101 | "event-listener", 102 | ] 103 | 104 | [[package]] 105 | name = "async-recursion" 106 | version = "1.0.4" 107 | source = "registry+https://github.com/rust-lang/crates.io-index" 108 | checksum = "0e97ce7de6cf12de5d7226c73f5ba9811622f4db3a5b91b55c53e987e5f91cba" 109 | dependencies = [ 110 | "proc-macro2", 111 | "quote", 112 | "syn 2.0.13", 113 | ] 114 | 115 | [[package]] 116 | name = "async-task" 117 | version = "4.4.0" 118 | source = "registry+https://github.com/rust-lang/crates.io-index" 119 | checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae" 120 | 121 | [[package]] 122 | name = "async_io_stream" 123 | version = "0.3.3" 124 | source = "registry+https://github.com/rust-lang/crates.io-index" 125 | checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" 126 | dependencies = [ 127 | "futures", 128 | "pharos", 129 | "rustc_version", 130 | ] 131 | 132 | [[package]] 133 | name = "atomic" 134 | version = "0.5.1" 135 | source = "registry+https://github.com/rust-lang/crates.io-index" 136 | checksum = "b88d82667eca772c4aa12f0f1348b3ae643424c8876448f3f7bd5787032e234c" 137 | dependencies = [ 138 | "autocfg", 139 | ] 140 | 141 | [[package]] 142 | name = "atomic-polyfill" 143 | version = "0.1.11" 144 | source = "registry+https://github.com/rust-lang/crates.io-index" 145 | checksum = "e3ff7eb3f316534d83a8a2c3d1674ace8a5a71198eba31e2e2b597833f699b28" 146 | dependencies = [ 147 | "critical-section", 148 | ] 149 | 150 | [[package]] 151 | name = "autocfg" 152 | version = "1.1.0" 153 | source = "registry+https://github.com/rust-lang/crates.io-index" 154 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 155 | 156 | [[package]] 157 | name = "base64" 158 | version = "0.13.1" 159 | source = "registry+https://github.com/rust-lang/crates.io-index" 160 | checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" 161 | 162 | [[package]] 163 | name = "base64" 164 | version = "0.21.0" 165 | source = "registry+https://github.com/rust-lang/crates.io-index" 166 | checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" 167 | 168 | [[package]] 169 | name = "base64ct" 170 | version = "1.6.0" 171 | source = "registry+https://github.com/rust-lang/crates.io-index" 172 | checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" 173 | 174 | [[package]] 175 | name = "bcrypt" 176 | version = "0.14.0" 177 | source = "registry+https://github.com/rust-lang/crates.io-index" 178 | checksum = "9df288bec72232f78c1ec5fe4e8f1d108aa0265476e93097593c803c8c02062a" 179 | dependencies = [ 180 | "base64 0.21.0", 181 | "blowfish", 182 | "getrandom", 183 | "subtle", 184 | "zeroize", 185 | ] 186 | 187 | [[package]] 188 | name = "bigdecimal" 189 | version = "0.3.0" 190 | source = "registry+https://github.com/rust-lang/crates.io-index" 191 | checksum = "6aaf33151a6429fe9211d1b276eafdf70cdff28b071e76c0b0e1503221ea3744" 192 | dependencies = [ 193 | "num-bigint", 194 | "num-integer", 195 | "num-traits", 196 | "serde", 197 | ] 198 | 199 | [[package]] 200 | name = "bitflags" 201 | version = "1.3.2" 202 | source = "registry+https://github.com/rust-lang/crates.io-index" 203 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 204 | 205 | [[package]] 206 | name = "bitmaps" 207 | version = "3.2.0" 208 | source = "registry+https://github.com/rust-lang/crates.io-index" 209 | checksum = "703642b98a00b3b90513279a8ede3fcfa479c126c5fb46e78f3051522f021403" 210 | 211 | [[package]] 212 | name = "bitvec" 213 | version = "1.0.1" 214 | source = "registry+https://github.com/rust-lang/crates.io-index" 215 | checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" 216 | dependencies = [ 217 | "funty", 218 | "radium", 219 | "tap", 220 | "wyz", 221 | ] 222 | 223 | [[package]] 224 | name = "blake2" 225 | version = "0.10.6" 226 | source = "registry+https://github.com/rust-lang/crates.io-index" 227 | checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" 228 | dependencies = [ 229 | "digest", 230 | ] 231 | 232 | [[package]] 233 | name = "block-buffer" 234 | version = "0.10.4" 235 | source = "registry+https://github.com/rust-lang/crates.io-index" 236 | checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 237 | dependencies = [ 238 | "generic-array", 239 | ] 240 | 241 | [[package]] 242 | name = "blowfish" 243 | version = "0.9.1" 244 | source = "registry+https://github.com/rust-lang/crates.io-index" 245 | checksum = "e412e2cd0f2b2d93e02543ceae7917b3c70331573df19ee046bcbc35e45e87d7" 246 | dependencies = [ 247 | "byteorder", 248 | "cipher", 249 | ] 250 | 251 | [[package]] 252 | name = "bumpalo" 253 | version = "3.12.0" 254 | source = "registry+https://github.com/rust-lang/crates.io-index" 255 | checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" 256 | 257 | [[package]] 258 | name = "bung" 259 | version = "0.1.0" 260 | source = "registry+https://github.com/rust-lang/crates.io-index" 261 | checksum = "da8bcf29331f126c3b4f20a6698909d58004290723aac75e3eafab41ae3c2953" 262 | dependencies = [ 263 | "byteorder", 264 | "rmp", 265 | "serde", 266 | ] 267 | 268 | [[package]] 269 | name = "byteorder" 270 | version = "1.4.3" 271 | source = "registry+https://github.com/rust-lang/crates.io-index" 272 | checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" 273 | 274 | [[package]] 275 | name = "bytes" 276 | version = "1.4.0" 277 | source = "registry+https://github.com/rust-lang/crates.io-index" 278 | checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" 279 | 280 | [[package]] 281 | name = "cc" 282 | version = "1.0.79" 283 | source = "registry+https://github.com/rust-lang/crates.io-index" 284 | checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" 285 | 286 | [[package]] 287 | name = "cfg-if" 288 | version = "1.0.0" 289 | source = "registry+https://github.com/rust-lang/crates.io-index" 290 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 291 | 292 | [[package]] 293 | name = "chrono" 294 | version = "0.4.24" 295 | source = "registry+https://github.com/rust-lang/crates.io-index" 296 | checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b" 297 | dependencies = [ 298 | "iana-time-zone", 299 | "js-sys", 300 | "num-integer", 301 | "num-traits", 302 | "serde", 303 | "time", 304 | "wasm-bindgen", 305 | "winapi", 306 | ] 307 | 308 | [[package]] 309 | name = "cipher" 310 | version = "0.4.4" 311 | source = "registry+https://github.com/rust-lang/crates.io-index" 312 | checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" 313 | dependencies = [ 314 | "crypto-common", 315 | "inout", 316 | ] 317 | 318 | [[package]] 319 | name = "codespan-reporting" 320 | version = "0.11.1" 321 | source = "registry+https://github.com/rust-lang/crates.io-index" 322 | checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" 323 | dependencies = [ 324 | "termcolor", 325 | "unicode-width", 326 | ] 327 | 328 | [[package]] 329 | name = "concurrent-queue" 330 | version = "2.1.0" 331 | source = "registry+https://github.com/rust-lang/crates.io-index" 332 | checksum = "c278839b831783b70278b14df4d45e1beb1aad306c07bb796637de9a0e323e8e" 333 | dependencies = [ 334 | "crossbeam-utils", 335 | ] 336 | 337 | [[package]] 338 | name = "core-foundation-sys" 339 | version = "0.8.4" 340 | source = "registry+https://github.com/rust-lang/crates.io-index" 341 | checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" 342 | 343 | [[package]] 344 | name = "cpufeatures" 345 | version = "0.2.6" 346 | source = "registry+https://github.com/rust-lang/crates.io-index" 347 | checksum = "280a9f2d8b3a38871a3c8a46fb80db65e5e5ed97da80c4d08bf27fb63e35e181" 348 | dependencies = [ 349 | "libc", 350 | ] 351 | 352 | [[package]] 353 | name = "critical-section" 354 | version = "1.1.1" 355 | source = "registry+https://github.com/rust-lang/crates.io-index" 356 | checksum = "6548a0ad5d2549e111e1f6a11a6c2e2d00ce6a3dafe22948d67c2b443f775e52" 357 | 358 | [[package]] 359 | name = "crossbeam-utils" 360 | version = "0.8.15" 361 | source = "registry+https://github.com/rust-lang/crates.io-index" 362 | checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" 363 | dependencies = [ 364 | "cfg-if", 365 | ] 366 | 367 | [[package]] 368 | name = "crypto-common" 369 | version = "0.1.6" 370 | source = "registry+https://github.com/rust-lang/crates.io-index" 371 | checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 372 | dependencies = [ 373 | "generic-array", 374 | "typenum", 375 | ] 376 | 377 | [[package]] 378 | name = "cxx" 379 | version = "1.0.94" 380 | source = "registry+https://github.com/rust-lang/crates.io-index" 381 | checksum = "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93" 382 | dependencies = [ 383 | "cc", 384 | "cxxbridge-flags", 385 | "cxxbridge-macro", 386 | "link-cplusplus", 387 | ] 388 | 389 | [[package]] 390 | name = "cxx-build" 391 | version = "1.0.94" 392 | source = "registry+https://github.com/rust-lang/crates.io-index" 393 | checksum = "12cee708e8962df2aeb38f594aae5d827c022b6460ac71a7a3e2c3c2aae5a07b" 394 | dependencies = [ 395 | "cc", 396 | "codespan-reporting", 397 | "once_cell", 398 | "proc-macro2", 399 | "quote", 400 | "scratch", 401 | "syn 2.0.13", 402 | ] 403 | 404 | [[package]] 405 | name = "cxxbridge-flags" 406 | version = "1.0.94" 407 | source = "registry+https://github.com/rust-lang/crates.io-index" 408 | checksum = "7944172ae7e4068c533afbb984114a56c46e9ccddda550499caa222902c7f7bb" 409 | 410 | [[package]] 411 | name = "cxxbridge-macro" 412 | version = "1.0.94" 413 | source = "registry+https://github.com/rust-lang/crates.io-index" 414 | checksum = "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5" 415 | dependencies = [ 416 | "proc-macro2", 417 | "quote", 418 | "syn 2.0.13", 419 | ] 420 | 421 | [[package]] 422 | name = "digest" 423 | version = "0.10.6" 424 | source = "registry+https://github.com/rust-lang/crates.io-index" 425 | checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" 426 | dependencies = [ 427 | "block-buffer", 428 | "crypto-common", 429 | "subtle", 430 | ] 431 | 432 | [[package]] 433 | name = "dmp" 434 | version = "0.1.3" 435 | source = "registry+https://github.com/rust-lang/crates.io-index" 436 | checksum = "1796e147190351ab441586c68b74494b18a70b0e39fb9bf8e84e38635bf4c92a" 437 | dependencies = [ 438 | "regex", 439 | "urlencoding", 440 | ] 441 | 442 | [[package]] 443 | name = "echodb" 444 | version = "0.4.0" 445 | source = "registry+https://github.com/rust-lang/crates.io-index" 446 | checksum = "312221c0bb46e82cd250c818404ef9dce769a4d5a62915c0249b577762eec34a" 447 | dependencies = [ 448 | "arc-swap", 449 | "imbl", 450 | "thiserror", 451 | "tokio", 452 | ] 453 | 454 | [[package]] 455 | name = "encoding_rs" 456 | version = "0.8.32" 457 | source = "registry+https://github.com/rust-lang/crates.io-index" 458 | checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" 459 | dependencies = [ 460 | "cfg-if", 461 | ] 462 | 463 | [[package]] 464 | name = "event-listener" 465 | version = "2.5.3" 466 | source = "registry+https://github.com/rust-lang/crates.io-index" 467 | checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" 468 | 469 | [[package]] 470 | name = "fastrand" 471 | version = "1.9.0" 472 | source = "registry+https://github.com/rust-lang/crates.io-index" 473 | checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" 474 | dependencies = [ 475 | "instant", 476 | ] 477 | 478 | [[package]] 479 | name = "float_next_after" 480 | version = "1.0.0" 481 | source = "registry+https://github.com/rust-lang/crates.io-index" 482 | checksum = "8bf7cc16383c4b8d58b9905a8509f02926ce3058053c056376248d958c9df1e8" 483 | 484 | [[package]] 485 | name = "flume" 486 | version = "0.10.14" 487 | source = "registry+https://github.com/rust-lang/crates.io-index" 488 | checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577" 489 | dependencies = [ 490 | "futures-core", 491 | "futures-sink", 492 | "nanorand", 493 | "pin-project", 494 | "spin 0.9.7", 495 | ] 496 | 497 | [[package]] 498 | name = "fnv" 499 | version = "1.0.7" 500 | source = "registry+https://github.com/rust-lang/crates.io-index" 501 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 502 | 503 | [[package]] 504 | name = "form_urlencoded" 505 | version = "1.1.0" 506 | source = "registry+https://github.com/rust-lang/crates.io-index" 507 | checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" 508 | dependencies = [ 509 | "percent-encoding", 510 | ] 511 | 512 | [[package]] 513 | name = "funty" 514 | version = "2.0.0" 515 | source = "registry+https://github.com/rust-lang/crates.io-index" 516 | checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" 517 | 518 | [[package]] 519 | name = "futures" 520 | version = "0.3.28" 521 | source = "registry+https://github.com/rust-lang/crates.io-index" 522 | checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" 523 | dependencies = [ 524 | "futures-channel", 525 | "futures-core", 526 | "futures-executor", 527 | "futures-io", 528 | "futures-sink", 529 | "futures-task", 530 | "futures-util", 531 | ] 532 | 533 | [[package]] 534 | name = "futures-channel" 535 | version = "0.3.28" 536 | source = "registry+https://github.com/rust-lang/crates.io-index" 537 | checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" 538 | dependencies = [ 539 | "futures-core", 540 | "futures-sink", 541 | ] 542 | 543 | [[package]] 544 | name = "futures-concurrency" 545 | version = "7.1.0" 546 | source = "registry+https://github.com/rust-lang/crates.io-index" 547 | checksum = "e06f199437c8a435c12ad153c5a1f4e131871cf6f6025585bb15e8cbb414f0dc" 548 | dependencies = [ 549 | "bitvec", 550 | "futures-core", 551 | "pin-project", 552 | ] 553 | 554 | [[package]] 555 | name = "futures-core" 556 | version = "0.3.28" 557 | source = "registry+https://github.com/rust-lang/crates.io-index" 558 | checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" 559 | 560 | [[package]] 561 | name = "futures-executor" 562 | version = "0.3.28" 563 | source = "registry+https://github.com/rust-lang/crates.io-index" 564 | checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" 565 | dependencies = [ 566 | "futures-core", 567 | "futures-task", 568 | "futures-util", 569 | ] 570 | 571 | [[package]] 572 | name = "futures-io" 573 | version = "0.3.28" 574 | source = "registry+https://github.com/rust-lang/crates.io-index" 575 | checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" 576 | 577 | [[package]] 578 | name = "futures-lite" 579 | version = "1.12.0" 580 | source = "registry+https://github.com/rust-lang/crates.io-index" 581 | checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48" 582 | dependencies = [ 583 | "fastrand", 584 | "futures-core", 585 | "futures-io", 586 | "memchr", 587 | "parking", 588 | "pin-project-lite", 589 | "waker-fn", 590 | ] 591 | 592 | [[package]] 593 | name = "futures-macro" 594 | version = "0.3.28" 595 | source = "registry+https://github.com/rust-lang/crates.io-index" 596 | checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" 597 | dependencies = [ 598 | "proc-macro2", 599 | "quote", 600 | "syn 2.0.13", 601 | ] 602 | 603 | [[package]] 604 | name = "futures-sink" 605 | version = "0.3.28" 606 | source = "registry+https://github.com/rust-lang/crates.io-index" 607 | checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" 608 | 609 | [[package]] 610 | name = "futures-task" 611 | version = "0.3.28" 612 | source = "registry+https://github.com/rust-lang/crates.io-index" 613 | checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" 614 | 615 | [[package]] 616 | name = "futures-util" 617 | version = "0.3.28" 618 | source = "registry+https://github.com/rust-lang/crates.io-index" 619 | checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" 620 | dependencies = [ 621 | "futures-channel", 622 | "futures-core", 623 | "futures-io", 624 | "futures-macro", 625 | "futures-sink", 626 | "futures-task", 627 | "memchr", 628 | "pin-project-lite", 629 | "pin-utils", 630 | "slab", 631 | ] 632 | 633 | [[package]] 634 | name = "fuzzy-matcher" 635 | version = "0.3.7" 636 | source = "registry+https://github.com/rust-lang/crates.io-index" 637 | checksum = "54614a3312934d066701a80f20f15fa3b56d67ac7722b39eea5b4c9dd1d66c94" 638 | dependencies = [ 639 | "thread_local", 640 | ] 641 | 642 | [[package]] 643 | name = "generic-array" 644 | version = "0.14.7" 645 | source = "registry+https://github.com/rust-lang/crates.io-index" 646 | checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 647 | dependencies = [ 648 | "typenum", 649 | "version_check", 650 | ] 651 | 652 | [[package]] 653 | name = "geo" 654 | version = "0.24.1" 655 | source = "registry+https://github.com/rust-lang/crates.io-index" 656 | checksum = "c7d640a4dd1d1c98b45f4653c841a8ec15f461a71b86bc30533ae64c6f20f268" 657 | dependencies = [ 658 | "float_next_after", 659 | "geo-types", 660 | "geographiclib-rs", 661 | "log", 662 | "num-traits", 663 | "robust", 664 | "rstar", 665 | "serde", 666 | ] 667 | 668 | [[package]] 669 | name = "geo-types" 670 | version = "0.7.9" 671 | source = "registry+https://github.com/rust-lang/crates.io-index" 672 | checksum = "a5f0b3068e1537a4b861ec3734f4aa9c317d537cf0845bf6fb6221973499d26c" 673 | dependencies = [ 674 | "approx", 675 | "num-traits", 676 | "rstar", 677 | "serde", 678 | ] 679 | 680 | [[package]] 681 | name = "geographiclib-rs" 682 | version = "0.2.3" 683 | source = "registry+https://github.com/rust-lang/crates.io-index" 684 | checksum = "8ea804e7bd3c6a4ca6a01edfa35231557a8a81d4d3f3e1e2b650d028c42592be" 685 | dependencies = [ 686 | "lazy_static", 687 | ] 688 | 689 | [[package]] 690 | name = "getrandom" 691 | version = "0.2.8" 692 | source = "registry+https://github.com/rust-lang/crates.io-index" 693 | checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" 694 | dependencies = [ 695 | "cfg-if", 696 | "js-sys", 697 | "libc", 698 | "wasi 0.11.0+wasi-snapshot-preview1", 699 | "wasm-bindgen", 700 | ] 701 | 702 | [[package]] 703 | name = "h2" 704 | version = "0.3.16" 705 | source = "registry+https://github.com/rust-lang/crates.io-index" 706 | checksum = "5be7b54589b581f624f566bf5d8eb2bab1db736c51528720b6bd36b96b55924d" 707 | dependencies = [ 708 | "bytes", 709 | "fnv", 710 | "futures-core", 711 | "futures-sink", 712 | "futures-util", 713 | "http", 714 | "indexmap", 715 | "slab", 716 | "tokio", 717 | "tokio-util", 718 | "tracing", 719 | ] 720 | 721 | [[package]] 722 | name = "hash32" 723 | version = "0.2.1" 724 | source = "registry+https://github.com/rust-lang/crates.io-index" 725 | checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" 726 | dependencies = [ 727 | "byteorder", 728 | ] 729 | 730 | [[package]] 731 | name = "hashbrown" 732 | version = "0.12.3" 733 | source = "registry+https://github.com/rust-lang/crates.io-index" 734 | checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" 735 | 736 | [[package]] 737 | name = "heapless" 738 | version = "0.7.16" 739 | source = "registry+https://github.com/rust-lang/crates.io-index" 740 | checksum = "db04bc24a18b9ea980628ecf00e6c0264f3c1426dac36c00cb49b6fbad8b0743" 741 | dependencies = [ 742 | "atomic-polyfill", 743 | "hash32", 744 | "rustc_version", 745 | "spin 0.9.7", 746 | "stable_deref_trait", 747 | ] 748 | 749 | [[package]] 750 | name = "hermit-abi" 751 | version = "0.2.6" 752 | source = "registry+https://github.com/rust-lang/crates.io-index" 753 | checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" 754 | dependencies = [ 755 | "libc", 756 | ] 757 | 758 | [[package]] 759 | name = "hmac" 760 | version = "0.12.1" 761 | source = "registry+https://github.com/rust-lang/crates.io-index" 762 | checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" 763 | dependencies = [ 764 | "digest", 765 | ] 766 | 767 | [[package]] 768 | name = "http" 769 | version = "0.2.9" 770 | source = "registry+https://github.com/rust-lang/crates.io-index" 771 | checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" 772 | dependencies = [ 773 | "bytes", 774 | "fnv", 775 | "itoa", 776 | ] 777 | 778 | [[package]] 779 | name = "http-body" 780 | version = "0.4.5" 781 | source = "registry+https://github.com/rust-lang/crates.io-index" 782 | checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" 783 | dependencies = [ 784 | "bytes", 785 | "http", 786 | "pin-project-lite", 787 | ] 788 | 789 | [[package]] 790 | name = "httparse" 791 | version = "1.8.0" 792 | source = "registry+https://github.com/rust-lang/crates.io-index" 793 | checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" 794 | 795 | [[package]] 796 | name = "httpdate" 797 | version = "1.0.2" 798 | source = "registry+https://github.com/rust-lang/crates.io-index" 799 | checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" 800 | 801 | [[package]] 802 | name = "hyper" 803 | version = "0.14.25" 804 | source = "registry+https://github.com/rust-lang/crates.io-index" 805 | checksum = "cc5e554ff619822309ffd57d8734d77cd5ce6238bc956f037ea06c58238c9899" 806 | dependencies = [ 807 | "bytes", 808 | "futures-channel", 809 | "futures-core", 810 | "futures-util", 811 | "h2", 812 | "http", 813 | "http-body", 814 | "httparse", 815 | "httpdate", 816 | "itoa", 817 | "pin-project-lite", 818 | "socket2", 819 | "tokio", 820 | "tower-service", 821 | "tracing", 822 | "want", 823 | ] 824 | 825 | [[package]] 826 | name = "hyper-rustls" 827 | version = "0.23.2" 828 | source = "registry+https://github.com/rust-lang/crates.io-index" 829 | checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" 830 | dependencies = [ 831 | "http", 832 | "hyper", 833 | "rustls", 834 | "tokio", 835 | "tokio-rustls", 836 | ] 837 | 838 | [[package]] 839 | name = "iana-time-zone" 840 | version = "0.1.54" 841 | source = "registry+https://github.com/rust-lang/crates.io-index" 842 | checksum = "0c17cc76786e99f8d2f055c11159e7f0091c42474dcc3189fbab96072e873e6d" 843 | dependencies = [ 844 | "android_system_properties", 845 | "core-foundation-sys", 846 | "iana-time-zone-haiku", 847 | "js-sys", 848 | "wasm-bindgen", 849 | "windows", 850 | ] 851 | 852 | [[package]] 853 | name = "iana-time-zone-haiku" 854 | version = "0.1.1" 855 | source = "registry+https://github.com/rust-lang/crates.io-index" 856 | checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" 857 | dependencies = [ 858 | "cxx", 859 | "cxx-build", 860 | ] 861 | 862 | [[package]] 863 | name = "idna" 864 | version = "0.3.0" 865 | source = "registry+https://github.com/rust-lang/crates.io-index" 866 | checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" 867 | dependencies = [ 868 | "unicode-bidi", 869 | "unicode-normalization", 870 | ] 871 | 872 | [[package]] 873 | name = "imbl" 874 | version = "2.0.0" 875 | source = "registry+https://github.com/rust-lang/crates.io-index" 876 | checksum = "c2806b69cd9f4664844027b64465eacb444c67c1db9c778e341adff0c25cdb0d" 877 | dependencies = [ 878 | "bitmaps", 879 | "imbl-sized-chunks", 880 | "rand_core", 881 | "rand_xoshiro", 882 | "version_check", 883 | ] 884 | 885 | [[package]] 886 | name = "imbl-sized-chunks" 887 | version = "0.1.1" 888 | source = "registry+https://github.com/rust-lang/crates.io-index" 889 | checksum = "e6957ea0b2541c5ca561d3ef4538044af79f8a05a1eb3a3b148936aaceaa1076" 890 | dependencies = [ 891 | "bitmaps", 892 | ] 893 | 894 | [[package]] 895 | name = "indexmap" 896 | version = "1.9.3" 897 | source = "registry+https://github.com/rust-lang/crates.io-index" 898 | checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" 899 | dependencies = [ 900 | "autocfg", 901 | "hashbrown", 902 | "serde", 903 | ] 904 | 905 | [[package]] 906 | name = "inout" 907 | version = "0.1.3" 908 | source = "registry+https://github.com/rust-lang/crates.io-index" 909 | checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" 910 | dependencies = [ 911 | "generic-array", 912 | ] 913 | 914 | [[package]] 915 | name = "instant" 916 | version = "0.1.12" 917 | source = "registry+https://github.com/rust-lang/crates.io-index" 918 | checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" 919 | dependencies = [ 920 | "cfg-if", 921 | ] 922 | 923 | [[package]] 924 | name = "ipnet" 925 | version = "2.7.2" 926 | source = "registry+https://github.com/rust-lang/crates.io-index" 927 | checksum = "12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f" 928 | 929 | [[package]] 930 | name = "itoa" 931 | version = "1.0.6" 932 | source = "registry+https://github.com/rust-lang/crates.io-index" 933 | checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" 934 | 935 | [[package]] 936 | name = "js-sys" 937 | version = "0.3.61" 938 | source = "registry+https://github.com/rust-lang/crates.io-index" 939 | checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" 940 | dependencies = [ 941 | "wasm-bindgen", 942 | ] 943 | 944 | [[package]] 945 | name = "lazy_static" 946 | version = "1.4.0" 947 | source = "registry+https://github.com/rust-lang/crates.io-index" 948 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 949 | 950 | [[package]] 951 | name = "lexicmp" 952 | version = "0.1.0" 953 | source = "registry+https://github.com/rust-lang/crates.io-index" 954 | checksum = "7378d131ddf24063b32cbd7e91668d183140c4b3906270635a4d633d1068ea5d" 955 | dependencies = [ 956 | "any_ascii", 957 | ] 958 | 959 | [[package]] 960 | name = "libc" 961 | version = "0.2.140" 962 | source = "registry+https://github.com/rust-lang/crates.io-index" 963 | checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c" 964 | 965 | [[package]] 966 | name = "libm" 967 | version = "0.2.6" 968 | source = "registry+https://github.com/rust-lang/crates.io-index" 969 | checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb" 970 | 971 | [[package]] 972 | name = "link-cplusplus" 973 | version = "1.0.8" 974 | source = "registry+https://github.com/rust-lang/crates.io-index" 975 | checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5" 976 | dependencies = [ 977 | "cc", 978 | ] 979 | 980 | [[package]] 981 | name = "lock_api" 982 | version = "0.4.9" 983 | source = "registry+https://github.com/rust-lang/crates.io-index" 984 | checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" 985 | dependencies = [ 986 | "autocfg", 987 | "scopeguard", 988 | ] 989 | 990 | [[package]] 991 | name = "log" 992 | version = "0.4.17" 993 | source = "registry+https://github.com/rust-lang/crates.io-index" 994 | checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" 995 | dependencies = [ 996 | "cfg-if", 997 | ] 998 | 999 | [[package]] 1000 | name = "md-5" 1001 | version = "0.10.5" 1002 | source = "registry+https://github.com/rust-lang/crates.io-index" 1003 | checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca" 1004 | dependencies = [ 1005 | "digest", 1006 | ] 1007 | 1008 | [[package]] 1009 | name = "memchr" 1010 | version = "2.5.0" 1011 | source = "registry+https://github.com/rust-lang/crates.io-index" 1012 | checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" 1013 | 1014 | [[package]] 1015 | name = "mime" 1016 | version = "0.3.17" 1017 | source = "registry+https://github.com/rust-lang/crates.io-index" 1018 | checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 1019 | 1020 | [[package]] 1021 | name = "minimal-lexical" 1022 | version = "0.2.1" 1023 | source = "registry+https://github.com/rust-lang/crates.io-index" 1024 | checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" 1025 | 1026 | [[package]] 1027 | name = "mio" 1028 | version = "0.8.6" 1029 | source = "registry+https://github.com/rust-lang/crates.io-index" 1030 | checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9" 1031 | dependencies = [ 1032 | "libc", 1033 | "log", 1034 | "wasi 0.11.0+wasi-snapshot-preview1", 1035 | "windows-sys", 1036 | ] 1037 | 1038 | [[package]] 1039 | name = "nanoid" 1040 | version = "0.4.0" 1041 | source = "registry+https://github.com/rust-lang/crates.io-index" 1042 | checksum = "3ffa00dec017b5b1a8b7cf5e2c008bfda1aa7e0697ac1508b491fdf2622fb4d8" 1043 | dependencies = [ 1044 | "rand", 1045 | ] 1046 | 1047 | [[package]] 1048 | name = "nanorand" 1049 | version = "0.7.0" 1050 | source = "registry+https://github.com/rust-lang/crates.io-index" 1051 | checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" 1052 | dependencies = [ 1053 | "getrandom", 1054 | ] 1055 | 1056 | [[package]] 1057 | name = "nom" 1058 | version = "7.1.3" 1059 | source = "registry+https://github.com/rust-lang/crates.io-index" 1060 | checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" 1061 | dependencies = [ 1062 | "memchr", 1063 | "minimal-lexical", 1064 | ] 1065 | 1066 | [[package]] 1067 | name = "num-bigint" 1068 | version = "0.4.3" 1069 | source = "registry+https://github.com/rust-lang/crates.io-index" 1070 | checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" 1071 | dependencies = [ 1072 | "autocfg", 1073 | "num-integer", 1074 | "num-traits", 1075 | ] 1076 | 1077 | [[package]] 1078 | name = "num-integer" 1079 | version = "0.1.45" 1080 | source = "registry+https://github.com/rust-lang/crates.io-index" 1081 | checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" 1082 | dependencies = [ 1083 | "autocfg", 1084 | "num-traits", 1085 | ] 1086 | 1087 | [[package]] 1088 | name = "num-traits" 1089 | version = "0.2.15" 1090 | source = "registry+https://github.com/rust-lang/crates.io-index" 1091 | checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" 1092 | dependencies = [ 1093 | "autocfg", 1094 | "libm", 1095 | ] 1096 | 1097 | [[package]] 1098 | name = "num_cpus" 1099 | version = "1.15.0" 1100 | source = "registry+https://github.com/rust-lang/crates.io-index" 1101 | checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" 1102 | dependencies = [ 1103 | "hermit-abi", 1104 | "libc", 1105 | ] 1106 | 1107 | [[package]] 1108 | name = "once_cell" 1109 | version = "1.17.1" 1110 | source = "registry+https://github.com/rust-lang/crates.io-index" 1111 | checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" 1112 | 1113 | [[package]] 1114 | name = "parking" 1115 | version = "2.0.0" 1116 | source = "registry+https://github.com/rust-lang/crates.io-index" 1117 | checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" 1118 | 1119 | [[package]] 1120 | name = "parking_lot" 1121 | version = "0.12.1" 1122 | source = "registry+https://github.com/rust-lang/crates.io-index" 1123 | checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" 1124 | dependencies = [ 1125 | "lock_api", 1126 | "parking_lot_core", 1127 | ] 1128 | 1129 | [[package]] 1130 | name = "parking_lot_core" 1131 | version = "0.9.7" 1132 | source = "registry+https://github.com/rust-lang/crates.io-index" 1133 | checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" 1134 | dependencies = [ 1135 | "cfg-if", 1136 | "libc", 1137 | "redox_syscall", 1138 | "smallvec", 1139 | "windows-sys", 1140 | ] 1141 | 1142 | [[package]] 1143 | name = "password-hash" 1144 | version = "0.5.0" 1145 | source = "registry+https://github.com/rust-lang/crates.io-index" 1146 | checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166" 1147 | dependencies = [ 1148 | "base64ct", 1149 | "rand_core", 1150 | "subtle", 1151 | ] 1152 | 1153 | [[package]] 1154 | name = "paste" 1155 | version = "1.0.12" 1156 | source = "registry+https://github.com/rust-lang/crates.io-index" 1157 | checksum = "9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79" 1158 | 1159 | [[package]] 1160 | name = "pbkdf2" 1161 | version = "0.12.1" 1162 | source = "registry+https://github.com/rust-lang/crates.io-index" 1163 | checksum = "f0ca0b5a68607598bf3bad68f32227a8164f6254833f84eafaac409cd6746c31" 1164 | dependencies = [ 1165 | "digest", 1166 | "hmac", 1167 | "password-hash", 1168 | "sha2", 1169 | ] 1170 | 1171 | [[package]] 1172 | name = "percent-encoding" 1173 | version = "2.2.0" 1174 | source = "registry+https://github.com/rust-lang/crates.io-index" 1175 | checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" 1176 | 1177 | [[package]] 1178 | name = "pharos" 1179 | version = "0.5.3" 1180 | source = "registry+https://github.com/rust-lang/crates.io-index" 1181 | checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" 1182 | dependencies = [ 1183 | "futures", 1184 | "rustc_version", 1185 | ] 1186 | 1187 | [[package]] 1188 | name = "pin-project" 1189 | version = "1.0.12" 1190 | source = "registry+https://github.com/rust-lang/crates.io-index" 1191 | checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" 1192 | dependencies = [ 1193 | "pin-project-internal", 1194 | ] 1195 | 1196 | [[package]] 1197 | name = "pin-project-internal" 1198 | version = "1.0.12" 1199 | source = "registry+https://github.com/rust-lang/crates.io-index" 1200 | checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" 1201 | dependencies = [ 1202 | "proc-macro2", 1203 | "quote", 1204 | "syn 1.0.109", 1205 | ] 1206 | 1207 | [[package]] 1208 | name = "pin-project-lite" 1209 | version = "0.2.9" 1210 | source = "registry+https://github.com/rust-lang/crates.io-index" 1211 | checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" 1212 | 1213 | [[package]] 1214 | name = "pin-utils" 1215 | version = "0.1.0" 1216 | source = "registry+https://github.com/rust-lang/crates.io-index" 1217 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 1218 | 1219 | [[package]] 1220 | name = "ppv-lite86" 1221 | version = "0.2.17" 1222 | source = "registry+https://github.com/rust-lang/crates.io-index" 1223 | checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" 1224 | 1225 | [[package]] 1226 | name = "proc-macro2" 1227 | version = "1.0.55" 1228 | source = "registry+https://github.com/rust-lang/crates.io-index" 1229 | checksum = "1d0dd4be24fcdcfeaa12a432d588dc59bbad6cad3510c67e74a2b6b2fc950564" 1230 | dependencies = [ 1231 | "unicode-ident", 1232 | ] 1233 | 1234 | [[package]] 1235 | name = "psl-types" 1236 | version = "2.0.11" 1237 | source = "registry+https://github.com/rust-lang/crates.io-index" 1238 | checksum = "33cb294fe86a74cbcf50d4445b37da762029549ebeea341421c7c70370f86cac" 1239 | 1240 | [[package]] 1241 | name = "quote" 1242 | version = "1.0.26" 1243 | source = "registry+https://github.com/rust-lang/crates.io-index" 1244 | checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" 1245 | dependencies = [ 1246 | "proc-macro2", 1247 | ] 1248 | 1249 | [[package]] 1250 | name = "radium" 1251 | version = "0.7.0" 1252 | source = "registry+https://github.com/rust-lang/crates.io-index" 1253 | checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" 1254 | 1255 | [[package]] 1256 | name = "rand" 1257 | version = "0.8.5" 1258 | source = "registry+https://github.com/rust-lang/crates.io-index" 1259 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 1260 | dependencies = [ 1261 | "libc", 1262 | "rand_chacha", 1263 | "rand_core", 1264 | ] 1265 | 1266 | [[package]] 1267 | name = "rand_chacha" 1268 | version = "0.3.1" 1269 | source = "registry+https://github.com/rust-lang/crates.io-index" 1270 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 1271 | dependencies = [ 1272 | "ppv-lite86", 1273 | "rand_core", 1274 | ] 1275 | 1276 | [[package]] 1277 | name = "rand_core" 1278 | version = "0.6.4" 1279 | source = "registry+https://github.com/rust-lang/crates.io-index" 1280 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 1281 | dependencies = [ 1282 | "getrandom", 1283 | ] 1284 | 1285 | [[package]] 1286 | name = "rand_xoshiro" 1287 | version = "0.6.0" 1288 | source = "registry+https://github.com/rust-lang/crates.io-index" 1289 | checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" 1290 | dependencies = [ 1291 | "rand_core", 1292 | ] 1293 | 1294 | [[package]] 1295 | name = "redox_syscall" 1296 | version = "0.2.16" 1297 | source = "registry+https://github.com/rust-lang/crates.io-index" 1298 | checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" 1299 | dependencies = [ 1300 | "bitflags", 1301 | ] 1302 | 1303 | [[package]] 1304 | name = "regex" 1305 | version = "1.7.3" 1306 | source = "registry+https://github.com/rust-lang/crates.io-index" 1307 | checksum = "8b1f693b24f6ac912f4893ef08244d70b6067480d2f1a46e950c9691e6749d1d" 1308 | dependencies = [ 1309 | "aho-corasick", 1310 | "memchr", 1311 | "regex-syntax", 1312 | ] 1313 | 1314 | [[package]] 1315 | name = "regex-syntax" 1316 | version = "0.6.29" 1317 | source = "registry+https://github.com/rust-lang/crates.io-index" 1318 | checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" 1319 | 1320 | [[package]] 1321 | name = "reqwest" 1322 | version = "0.11.16" 1323 | source = "registry+https://github.com/rust-lang/crates.io-index" 1324 | checksum = "27b71749df584b7f4cac2c426c127a7c785a5106cc98f7a8feb044115f0fa254" 1325 | dependencies = [ 1326 | "base64 0.21.0", 1327 | "bytes", 1328 | "encoding_rs", 1329 | "futures-core", 1330 | "futures-util", 1331 | "h2", 1332 | "http", 1333 | "http-body", 1334 | "hyper", 1335 | "hyper-rustls", 1336 | "ipnet", 1337 | "js-sys", 1338 | "log", 1339 | "mime", 1340 | "once_cell", 1341 | "percent-encoding", 1342 | "pin-project-lite", 1343 | "rustls", 1344 | "rustls-pemfile", 1345 | "serde", 1346 | "serde_json", 1347 | "serde_urlencoded", 1348 | "tokio", 1349 | "tokio-rustls", 1350 | "tokio-util", 1351 | "tower-service", 1352 | "url", 1353 | "wasm-bindgen", 1354 | "wasm-bindgen-futures", 1355 | "wasm-streams", 1356 | "web-sys", 1357 | "webpki-roots", 1358 | "winreg", 1359 | ] 1360 | 1361 | [[package]] 1362 | name = "ring" 1363 | version = "0.16.20" 1364 | source = "registry+https://github.com/rust-lang/crates.io-index" 1365 | checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" 1366 | dependencies = [ 1367 | "cc", 1368 | "libc", 1369 | "once_cell", 1370 | "spin 0.5.2", 1371 | "untrusted", 1372 | "web-sys", 1373 | "winapi", 1374 | ] 1375 | 1376 | [[package]] 1377 | name = "rmp" 1378 | version = "0.8.11" 1379 | source = "registry+https://github.com/rust-lang/crates.io-index" 1380 | checksum = "44519172358fd6d58656c86ab8e7fbc9e1490c3e8f14d35ed78ca0dd07403c9f" 1381 | dependencies = [ 1382 | "byteorder", 1383 | "num-traits", 1384 | "paste", 1385 | ] 1386 | 1387 | [[package]] 1388 | name = "robust" 1389 | version = "0.2.3" 1390 | source = "registry+https://github.com/rust-lang/crates.io-index" 1391 | checksum = "e5864e7ef1a6b7bcf1d6ca3f655e65e724ed3b52546a0d0a663c991522f552ea" 1392 | 1393 | [[package]] 1394 | name = "rstar" 1395 | version = "0.10.0" 1396 | source = "registry+https://github.com/rust-lang/crates.io-index" 1397 | checksum = "1f39465655a1e3d8ae79c6d9e007f4953bfc5d55297602df9dc38f9ae9f1359a" 1398 | dependencies = [ 1399 | "heapless", 1400 | "num-traits", 1401 | "smallvec", 1402 | ] 1403 | 1404 | [[package]] 1405 | name = "rust-surrealdb" 1406 | version = "0.1.0" 1407 | dependencies = [ 1408 | "anyhow", 1409 | "surrealdb", 1410 | "tokio", 1411 | ] 1412 | 1413 | [[package]] 1414 | name = "rustc_version" 1415 | version = "0.4.0" 1416 | source = "registry+https://github.com/rust-lang/crates.io-index" 1417 | checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" 1418 | dependencies = [ 1419 | "semver", 1420 | ] 1421 | 1422 | [[package]] 1423 | name = "rustls" 1424 | version = "0.20.8" 1425 | source = "registry+https://github.com/rust-lang/crates.io-index" 1426 | checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" 1427 | dependencies = [ 1428 | "log", 1429 | "ring", 1430 | "sct", 1431 | "webpki", 1432 | ] 1433 | 1434 | [[package]] 1435 | name = "rustls-pemfile" 1436 | version = "1.0.2" 1437 | source = "registry+https://github.com/rust-lang/crates.io-index" 1438 | checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b" 1439 | dependencies = [ 1440 | "base64 0.21.0", 1441 | ] 1442 | 1443 | [[package]] 1444 | name = "ryu" 1445 | version = "1.0.13" 1446 | source = "registry+https://github.com/rust-lang/crates.io-index" 1447 | checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" 1448 | 1449 | [[package]] 1450 | name = "salsa20" 1451 | version = "0.10.2" 1452 | source = "registry+https://github.com/rust-lang/crates.io-index" 1453 | checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" 1454 | dependencies = [ 1455 | "cipher", 1456 | ] 1457 | 1458 | [[package]] 1459 | name = "scopeguard" 1460 | version = "1.1.0" 1461 | source = "registry+https://github.com/rust-lang/crates.io-index" 1462 | checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" 1463 | 1464 | [[package]] 1465 | name = "scratch" 1466 | version = "1.0.5" 1467 | source = "registry+https://github.com/rust-lang/crates.io-index" 1468 | checksum = "1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1" 1469 | 1470 | [[package]] 1471 | name = "scrypt" 1472 | version = "0.11.0" 1473 | source = "registry+https://github.com/rust-lang/crates.io-index" 1474 | checksum = "0516a385866c09368f0b5bcd1caff3366aace790fcd46e2bb032697bb172fd1f" 1475 | dependencies = [ 1476 | "password-hash", 1477 | "pbkdf2", 1478 | "salsa20", 1479 | "sha2", 1480 | ] 1481 | 1482 | [[package]] 1483 | name = "sct" 1484 | version = "0.7.0" 1485 | source = "registry+https://github.com/rust-lang/crates.io-index" 1486 | checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" 1487 | dependencies = [ 1488 | "ring", 1489 | "untrusted", 1490 | ] 1491 | 1492 | [[package]] 1493 | name = "semver" 1494 | version = "1.0.17" 1495 | source = "registry+https://github.com/rust-lang/crates.io-index" 1496 | checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" 1497 | dependencies = [ 1498 | "serde", 1499 | ] 1500 | 1501 | [[package]] 1502 | name = "send_wrapper" 1503 | version = "0.6.0" 1504 | source = "registry+https://github.com/rust-lang/crates.io-index" 1505 | checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" 1506 | 1507 | [[package]] 1508 | name = "serde" 1509 | version = "1.0.159" 1510 | source = "registry+https://github.com/rust-lang/crates.io-index" 1511 | checksum = "3c04e8343c3daeec41f58990b9d77068df31209f2af111e059e9fe9646693065" 1512 | dependencies = [ 1513 | "serde_derive", 1514 | ] 1515 | 1516 | [[package]] 1517 | name = "serde_derive" 1518 | version = "1.0.159" 1519 | source = "registry+https://github.com/rust-lang/crates.io-index" 1520 | checksum = "4c614d17805b093df4b147b51339e7e44bf05ef59fba1e45d83500bcfb4d8585" 1521 | dependencies = [ 1522 | "proc-macro2", 1523 | "quote", 1524 | "syn 2.0.13", 1525 | ] 1526 | 1527 | [[package]] 1528 | name = "serde_json" 1529 | version = "1.0.95" 1530 | source = "registry+https://github.com/rust-lang/crates.io-index" 1531 | checksum = "d721eca97ac802aa7777b701877c8004d950fc142651367300d21c1cc0194744" 1532 | dependencies = [ 1533 | "itoa", 1534 | "ryu", 1535 | "serde", 1536 | ] 1537 | 1538 | [[package]] 1539 | name = "serde_urlencoded" 1540 | version = "0.7.1" 1541 | source = "registry+https://github.com/rust-lang/crates.io-index" 1542 | checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 1543 | dependencies = [ 1544 | "form_urlencoded", 1545 | "itoa", 1546 | "ryu", 1547 | "serde", 1548 | ] 1549 | 1550 | [[package]] 1551 | name = "sha-1" 1552 | version = "0.10.1" 1553 | source = "registry+https://github.com/rust-lang/crates.io-index" 1554 | checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" 1555 | dependencies = [ 1556 | "cfg-if", 1557 | "cpufeatures", 1558 | "digest", 1559 | ] 1560 | 1561 | [[package]] 1562 | name = "sha1" 1563 | version = "0.10.5" 1564 | source = "registry+https://github.com/rust-lang/crates.io-index" 1565 | checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" 1566 | dependencies = [ 1567 | "cfg-if", 1568 | "cpufeatures", 1569 | "digest", 1570 | ] 1571 | 1572 | [[package]] 1573 | name = "sha2" 1574 | version = "0.10.6" 1575 | source = "registry+https://github.com/rust-lang/crates.io-index" 1576 | checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" 1577 | dependencies = [ 1578 | "cfg-if", 1579 | "cpufeatures", 1580 | "digest", 1581 | ] 1582 | 1583 | [[package]] 1584 | name = "signal-hook-registry" 1585 | version = "1.4.1" 1586 | source = "registry+https://github.com/rust-lang/crates.io-index" 1587 | checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" 1588 | dependencies = [ 1589 | "libc", 1590 | ] 1591 | 1592 | [[package]] 1593 | name = "slab" 1594 | version = "0.4.8" 1595 | source = "registry+https://github.com/rust-lang/crates.io-index" 1596 | checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" 1597 | dependencies = [ 1598 | "autocfg", 1599 | ] 1600 | 1601 | [[package]] 1602 | name = "smallvec" 1603 | version = "1.10.0" 1604 | source = "registry+https://github.com/rust-lang/crates.io-index" 1605 | checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" 1606 | 1607 | [[package]] 1608 | name = "socket2" 1609 | version = "0.4.9" 1610 | source = "registry+https://github.com/rust-lang/crates.io-index" 1611 | checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" 1612 | dependencies = [ 1613 | "libc", 1614 | "winapi", 1615 | ] 1616 | 1617 | [[package]] 1618 | name = "spin" 1619 | version = "0.5.2" 1620 | source = "registry+https://github.com/rust-lang/crates.io-index" 1621 | checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" 1622 | 1623 | [[package]] 1624 | name = "spin" 1625 | version = "0.9.7" 1626 | source = "registry+https://github.com/rust-lang/crates.io-index" 1627 | checksum = "c0959fd6f767df20b231736396e4f602171e00d95205676286e79d4a4eb67bef" 1628 | dependencies = [ 1629 | "lock_api", 1630 | ] 1631 | 1632 | [[package]] 1633 | name = "stable_deref_trait" 1634 | version = "1.2.0" 1635 | source = "registry+https://github.com/rust-lang/crates.io-index" 1636 | checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" 1637 | 1638 | [[package]] 1639 | name = "storekey" 1640 | version = "0.4.1" 1641 | source = "registry+https://github.com/rust-lang/crates.io-index" 1642 | checksum = "475592c1aa8849fa7874777c9df46aa93ffc47851c7c60bee88b1745a1adb893" 1643 | dependencies = [ 1644 | "byteorder", 1645 | "serde", 1646 | "thiserror", 1647 | ] 1648 | 1649 | [[package]] 1650 | name = "subtle" 1651 | version = "2.4.1" 1652 | source = "registry+https://github.com/rust-lang/crates.io-index" 1653 | checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" 1654 | 1655 | [[package]] 1656 | name = "surrealdb" 1657 | version = "1.0.0-beta.9+20230402" 1658 | source = "registry+https://github.com/rust-lang/crates.io-index" 1659 | checksum = "f02e7f6cba9dcb779fe13984a064b7f68e398425355430dcf7184fc4abfc0f97" 1660 | dependencies = [ 1661 | "addr", 1662 | "any_ascii", 1663 | "argon2", 1664 | "async-channel", 1665 | "async-executor", 1666 | "async-recursion", 1667 | "bcrypt", 1668 | "bigdecimal", 1669 | "bung", 1670 | "chrono", 1671 | "dmp", 1672 | "echodb", 1673 | "flume", 1674 | "futures", 1675 | "futures-concurrency", 1676 | "fuzzy-matcher", 1677 | "geo", 1678 | "indexmap", 1679 | "lexicmp", 1680 | "log", 1681 | "md-5", 1682 | "nanoid", 1683 | "nom", 1684 | "once_cell", 1685 | "pbkdf2", 1686 | "pharos", 1687 | "rand", 1688 | "regex", 1689 | "reqwest", 1690 | "rustls", 1691 | "scrypt", 1692 | "semver", 1693 | "serde", 1694 | "serde_json", 1695 | "sha-1", 1696 | "sha2", 1697 | "storekey", 1698 | "surrealdb-derive", 1699 | "thiserror", 1700 | "tokio", 1701 | "tokio-stream", 1702 | "tokio-tungstenite", 1703 | "tracing", 1704 | "trice", 1705 | "ulid", 1706 | "url", 1707 | "uuid", 1708 | "wasm-bindgen-futures", 1709 | "ws_stream_wasm", 1710 | ] 1711 | 1712 | [[package]] 1713 | name = "surrealdb-derive" 1714 | version = "0.7.0" 1715 | source = "registry+https://github.com/rust-lang/crates.io-index" 1716 | checksum = "0e0f2a75e22417f587cf23a5efa9f680f4002b8655b8481a01ee5e787f15d82b" 1717 | dependencies = [ 1718 | "quote", 1719 | "syn 1.0.109", 1720 | ] 1721 | 1722 | [[package]] 1723 | name = "syn" 1724 | version = "1.0.109" 1725 | source = "registry+https://github.com/rust-lang/crates.io-index" 1726 | checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 1727 | dependencies = [ 1728 | "proc-macro2", 1729 | "quote", 1730 | "unicode-ident", 1731 | ] 1732 | 1733 | [[package]] 1734 | name = "syn" 1735 | version = "2.0.13" 1736 | source = "registry+https://github.com/rust-lang/crates.io-index" 1737 | checksum = "4c9da457c5285ac1f936ebd076af6dac17a61cfe7826f2076b4d015cf47bc8ec" 1738 | dependencies = [ 1739 | "proc-macro2", 1740 | "quote", 1741 | "unicode-ident", 1742 | ] 1743 | 1744 | [[package]] 1745 | name = "tap" 1746 | version = "1.0.1" 1747 | source = "registry+https://github.com/rust-lang/crates.io-index" 1748 | checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" 1749 | 1750 | [[package]] 1751 | name = "termcolor" 1752 | version = "1.2.0" 1753 | source = "registry+https://github.com/rust-lang/crates.io-index" 1754 | checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" 1755 | dependencies = [ 1756 | "winapi-util", 1757 | ] 1758 | 1759 | [[package]] 1760 | name = "thiserror" 1761 | version = "1.0.40" 1762 | source = "registry+https://github.com/rust-lang/crates.io-index" 1763 | checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" 1764 | dependencies = [ 1765 | "thiserror-impl", 1766 | ] 1767 | 1768 | [[package]] 1769 | name = "thiserror-impl" 1770 | version = "1.0.40" 1771 | source = "registry+https://github.com/rust-lang/crates.io-index" 1772 | checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" 1773 | dependencies = [ 1774 | "proc-macro2", 1775 | "quote", 1776 | "syn 2.0.13", 1777 | ] 1778 | 1779 | [[package]] 1780 | name = "thread_local" 1781 | version = "1.1.7" 1782 | source = "registry+https://github.com/rust-lang/crates.io-index" 1783 | checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" 1784 | dependencies = [ 1785 | "cfg-if", 1786 | "once_cell", 1787 | ] 1788 | 1789 | [[package]] 1790 | name = "time" 1791 | version = "0.1.45" 1792 | source = "registry+https://github.com/rust-lang/crates.io-index" 1793 | checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" 1794 | dependencies = [ 1795 | "libc", 1796 | "wasi 0.10.0+wasi-snapshot-preview1", 1797 | "winapi", 1798 | ] 1799 | 1800 | [[package]] 1801 | name = "tinyvec" 1802 | version = "1.6.0" 1803 | source = "registry+https://github.com/rust-lang/crates.io-index" 1804 | checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" 1805 | dependencies = [ 1806 | "tinyvec_macros", 1807 | ] 1808 | 1809 | [[package]] 1810 | name = "tinyvec_macros" 1811 | version = "0.1.1" 1812 | source = "registry+https://github.com/rust-lang/crates.io-index" 1813 | checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 1814 | 1815 | [[package]] 1816 | name = "tokio" 1817 | version = "1.27.0" 1818 | source = "registry+https://github.com/rust-lang/crates.io-index" 1819 | checksum = "d0de47a4eecbe11f498978a9b29d792f0d2692d1dd003650c24c76510e3bc001" 1820 | dependencies = [ 1821 | "autocfg", 1822 | "bytes", 1823 | "libc", 1824 | "mio", 1825 | "num_cpus", 1826 | "parking_lot", 1827 | "pin-project-lite", 1828 | "signal-hook-registry", 1829 | "socket2", 1830 | "tokio-macros", 1831 | "windows-sys", 1832 | ] 1833 | 1834 | [[package]] 1835 | name = "tokio-macros" 1836 | version = "2.0.0" 1837 | source = "registry+https://github.com/rust-lang/crates.io-index" 1838 | checksum = "61a573bdc87985e9d6ddeed1b3d864e8a302c847e40d647746df2f1de209d1ce" 1839 | dependencies = [ 1840 | "proc-macro2", 1841 | "quote", 1842 | "syn 2.0.13", 1843 | ] 1844 | 1845 | [[package]] 1846 | name = "tokio-rustls" 1847 | version = "0.23.4" 1848 | source = "registry+https://github.com/rust-lang/crates.io-index" 1849 | checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" 1850 | dependencies = [ 1851 | "rustls", 1852 | "tokio", 1853 | "webpki", 1854 | ] 1855 | 1856 | [[package]] 1857 | name = "tokio-stream" 1858 | version = "0.1.12" 1859 | source = "registry+https://github.com/rust-lang/crates.io-index" 1860 | checksum = "8fb52b74f05dbf495a8fba459fdc331812b96aa086d9eb78101fa0d4569c3313" 1861 | dependencies = [ 1862 | "futures-core", 1863 | "pin-project-lite", 1864 | "tokio", 1865 | ] 1866 | 1867 | [[package]] 1868 | name = "tokio-tungstenite" 1869 | version = "0.18.0" 1870 | source = "registry+https://github.com/rust-lang/crates.io-index" 1871 | checksum = "54319c93411147bced34cb5609a80e0a8e44c5999c93903a81cd866630ec0bfd" 1872 | dependencies = [ 1873 | "futures-util", 1874 | "log", 1875 | "rustls", 1876 | "tokio", 1877 | "tokio-rustls", 1878 | "tungstenite", 1879 | "webpki", 1880 | ] 1881 | 1882 | [[package]] 1883 | name = "tokio-util" 1884 | version = "0.7.7" 1885 | source = "registry+https://github.com/rust-lang/crates.io-index" 1886 | checksum = "5427d89453009325de0d8f342c9490009f76e999cb7672d77e46267448f7e6b2" 1887 | dependencies = [ 1888 | "bytes", 1889 | "futures-core", 1890 | "futures-sink", 1891 | "pin-project-lite", 1892 | "tokio", 1893 | "tracing", 1894 | ] 1895 | 1896 | [[package]] 1897 | name = "tower-service" 1898 | version = "0.3.2" 1899 | source = "registry+https://github.com/rust-lang/crates.io-index" 1900 | checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" 1901 | 1902 | [[package]] 1903 | name = "tracing" 1904 | version = "0.1.37" 1905 | source = "registry+https://github.com/rust-lang/crates.io-index" 1906 | checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" 1907 | dependencies = [ 1908 | "cfg-if", 1909 | "pin-project-lite", 1910 | "tracing-attributes", 1911 | "tracing-core", 1912 | ] 1913 | 1914 | [[package]] 1915 | name = "tracing-attributes" 1916 | version = "0.1.23" 1917 | source = "registry+https://github.com/rust-lang/crates.io-index" 1918 | checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" 1919 | dependencies = [ 1920 | "proc-macro2", 1921 | "quote", 1922 | "syn 1.0.109", 1923 | ] 1924 | 1925 | [[package]] 1926 | name = "tracing-core" 1927 | version = "0.1.30" 1928 | source = "registry+https://github.com/rust-lang/crates.io-index" 1929 | checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" 1930 | dependencies = [ 1931 | "once_cell", 1932 | ] 1933 | 1934 | [[package]] 1935 | name = "trice" 1936 | version = "0.3.1" 1937 | source = "registry+https://github.com/rust-lang/crates.io-index" 1938 | checksum = "61aa4cd1c1dca57255b92cb9e53d5b3ac5a22da6d8a63045337eb3da1a065d43" 1939 | dependencies = [ 1940 | "js-sys", 1941 | "wasm-bindgen", 1942 | "web-sys", 1943 | ] 1944 | 1945 | [[package]] 1946 | name = "try-lock" 1947 | version = "0.2.4" 1948 | source = "registry+https://github.com/rust-lang/crates.io-index" 1949 | checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" 1950 | 1951 | [[package]] 1952 | name = "tungstenite" 1953 | version = "0.18.0" 1954 | source = "registry+https://github.com/rust-lang/crates.io-index" 1955 | checksum = "30ee6ab729cd4cf0fd55218530c4522ed30b7b6081752839b68fcec8d0960788" 1956 | dependencies = [ 1957 | "base64 0.13.1", 1958 | "byteorder", 1959 | "bytes", 1960 | "http", 1961 | "httparse", 1962 | "log", 1963 | "rand", 1964 | "rustls", 1965 | "sha1", 1966 | "thiserror", 1967 | "url", 1968 | "utf-8", 1969 | "webpki", 1970 | ] 1971 | 1972 | [[package]] 1973 | name = "typenum" 1974 | version = "1.16.0" 1975 | source = "registry+https://github.com/rust-lang/crates.io-index" 1976 | checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" 1977 | 1978 | [[package]] 1979 | name = "ulid" 1980 | version = "1.0.0" 1981 | source = "registry+https://github.com/rust-lang/crates.io-index" 1982 | checksum = "13a3aaa69b04e5b66cc27309710a569ea23593612387d67daaf102e73aa974fd" 1983 | dependencies = [ 1984 | "rand", 1985 | "serde", 1986 | ] 1987 | 1988 | [[package]] 1989 | name = "unicode-bidi" 1990 | version = "0.3.13" 1991 | source = "registry+https://github.com/rust-lang/crates.io-index" 1992 | checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" 1993 | 1994 | [[package]] 1995 | name = "unicode-ident" 1996 | version = "1.0.8" 1997 | source = "registry+https://github.com/rust-lang/crates.io-index" 1998 | checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" 1999 | 2000 | [[package]] 2001 | name = "unicode-normalization" 2002 | version = "0.1.22" 2003 | source = "registry+https://github.com/rust-lang/crates.io-index" 2004 | checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" 2005 | dependencies = [ 2006 | "tinyvec", 2007 | ] 2008 | 2009 | [[package]] 2010 | name = "unicode-width" 2011 | version = "0.1.10" 2012 | source = "registry+https://github.com/rust-lang/crates.io-index" 2013 | checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" 2014 | 2015 | [[package]] 2016 | name = "untrusted" 2017 | version = "0.7.1" 2018 | source = "registry+https://github.com/rust-lang/crates.io-index" 2019 | checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" 2020 | 2021 | [[package]] 2022 | name = "url" 2023 | version = "2.3.1" 2024 | source = "registry+https://github.com/rust-lang/crates.io-index" 2025 | checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" 2026 | dependencies = [ 2027 | "form_urlencoded", 2028 | "idna", 2029 | "percent-encoding", 2030 | ] 2031 | 2032 | [[package]] 2033 | name = "urlencoding" 2034 | version = "2.1.2" 2035 | source = "registry+https://github.com/rust-lang/crates.io-index" 2036 | checksum = "e8db7427f936968176eaa7cdf81b7f98b980b18495ec28f1b5791ac3bfe3eea9" 2037 | 2038 | [[package]] 2039 | name = "utf-8" 2040 | version = "0.7.6" 2041 | source = "registry+https://github.com/rust-lang/crates.io-index" 2042 | checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" 2043 | 2044 | [[package]] 2045 | name = "uuid" 2046 | version = "1.3.0" 2047 | source = "registry+https://github.com/rust-lang/crates.io-index" 2048 | checksum = "1674845326ee10d37ca60470760d4288a6f80f304007d92e5c53bab78c9cfd79" 2049 | dependencies = [ 2050 | "atomic", 2051 | "getrandom", 2052 | "serde", 2053 | "wasm-bindgen", 2054 | ] 2055 | 2056 | [[package]] 2057 | name = "version_check" 2058 | version = "0.9.4" 2059 | source = "registry+https://github.com/rust-lang/crates.io-index" 2060 | checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 2061 | 2062 | [[package]] 2063 | name = "waker-fn" 2064 | version = "1.1.0" 2065 | source = "registry+https://github.com/rust-lang/crates.io-index" 2066 | checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" 2067 | 2068 | [[package]] 2069 | name = "want" 2070 | version = "0.3.0" 2071 | source = "registry+https://github.com/rust-lang/crates.io-index" 2072 | checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" 2073 | dependencies = [ 2074 | "log", 2075 | "try-lock", 2076 | ] 2077 | 2078 | [[package]] 2079 | name = "wasi" 2080 | version = "0.10.0+wasi-snapshot-preview1" 2081 | source = "registry+https://github.com/rust-lang/crates.io-index" 2082 | checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" 2083 | 2084 | [[package]] 2085 | name = "wasi" 2086 | version = "0.11.0+wasi-snapshot-preview1" 2087 | source = "registry+https://github.com/rust-lang/crates.io-index" 2088 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 2089 | 2090 | [[package]] 2091 | name = "wasm-bindgen" 2092 | version = "0.2.84" 2093 | source = "registry+https://github.com/rust-lang/crates.io-index" 2094 | checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" 2095 | dependencies = [ 2096 | "cfg-if", 2097 | "wasm-bindgen-macro", 2098 | ] 2099 | 2100 | [[package]] 2101 | name = "wasm-bindgen-backend" 2102 | version = "0.2.84" 2103 | source = "registry+https://github.com/rust-lang/crates.io-index" 2104 | checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" 2105 | dependencies = [ 2106 | "bumpalo", 2107 | "log", 2108 | "once_cell", 2109 | "proc-macro2", 2110 | "quote", 2111 | "syn 1.0.109", 2112 | "wasm-bindgen-shared", 2113 | ] 2114 | 2115 | [[package]] 2116 | name = "wasm-bindgen-futures" 2117 | version = "0.4.34" 2118 | source = "registry+https://github.com/rust-lang/crates.io-index" 2119 | checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454" 2120 | dependencies = [ 2121 | "cfg-if", 2122 | "js-sys", 2123 | "wasm-bindgen", 2124 | "web-sys", 2125 | ] 2126 | 2127 | [[package]] 2128 | name = "wasm-bindgen-macro" 2129 | version = "0.2.84" 2130 | source = "registry+https://github.com/rust-lang/crates.io-index" 2131 | checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" 2132 | dependencies = [ 2133 | "quote", 2134 | "wasm-bindgen-macro-support", 2135 | ] 2136 | 2137 | [[package]] 2138 | name = "wasm-bindgen-macro-support" 2139 | version = "0.2.84" 2140 | source = "registry+https://github.com/rust-lang/crates.io-index" 2141 | checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" 2142 | dependencies = [ 2143 | "proc-macro2", 2144 | "quote", 2145 | "syn 1.0.109", 2146 | "wasm-bindgen-backend", 2147 | "wasm-bindgen-shared", 2148 | ] 2149 | 2150 | [[package]] 2151 | name = "wasm-bindgen-shared" 2152 | version = "0.2.84" 2153 | source = "registry+https://github.com/rust-lang/crates.io-index" 2154 | checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" 2155 | 2156 | [[package]] 2157 | name = "wasm-streams" 2158 | version = "0.2.3" 2159 | source = "registry+https://github.com/rust-lang/crates.io-index" 2160 | checksum = "6bbae3363c08332cadccd13b67db371814cd214c2524020932f0804b8cf7c078" 2161 | dependencies = [ 2162 | "futures-util", 2163 | "js-sys", 2164 | "wasm-bindgen", 2165 | "wasm-bindgen-futures", 2166 | "web-sys", 2167 | ] 2168 | 2169 | [[package]] 2170 | name = "web-sys" 2171 | version = "0.3.61" 2172 | source = "registry+https://github.com/rust-lang/crates.io-index" 2173 | checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97" 2174 | dependencies = [ 2175 | "js-sys", 2176 | "wasm-bindgen", 2177 | ] 2178 | 2179 | [[package]] 2180 | name = "webpki" 2181 | version = "0.22.0" 2182 | source = "registry+https://github.com/rust-lang/crates.io-index" 2183 | checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" 2184 | dependencies = [ 2185 | "ring", 2186 | "untrusted", 2187 | ] 2188 | 2189 | [[package]] 2190 | name = "webpki-roots" 2191 | version = "0.22.6" 2192 | source = "registry+https://github.com/rust-lang/crates.io-index" 2193 | checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" 2194 | dependencies = [ 2195 | "webpki", 2196 | ] 2197 | 2198 | [[package]] 2199 | name = "winapi" 2200 | version = "0.3.9" 2201 | source = "registry+https://github.com/rust-lang/crates.io-index" 2202 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 2203 | dependencies = [ 2204 | "winapi-i686-pc-windows-gnu", 2205 | "winapi-x86_64-pc-windows-gnu", 2206 | ] 2207 | 2208 | [[package]] 2209 | name = "winapi-i686-pc-windows-gnu" 2210 | version = "0.4.0" 2211 | source = "registry+https://github.com/rust-lang/crates.io-index" 2212 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 2213 | 2214 | [[package]] 2215 | name = "winapi-util" 2216 | version = "0.1.5" 2217 | source = "registry+https://github.com/rust-lang/crates.io-index" 2218 | checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" 2219 | dependencies = [ 2220 | "winapi", 2221 | ] 2222 | 2223 | [[package]] 2224 | name = "winapi-x86_64-pc-windows-gnu" 2225 | version = "0.4.0" 2226 | source = "registry+https://github.com/rust-lang/crates.io-index" 2227 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 2228 | 2229 | [[package]] 2230 | name = "windows" 2231 | version = "0.46.0" 2232 | source = "registry+https://github.com/rust-lang/crates.io-index" 2233 | checksum = "cdacb41e6a96a052c6cb63a144f24900236121c6f63f4f8219fef5977ecb0c25" 2234 | dependencies = [ 2235 | "windows-targets", 2236 | ] 2237 | 2238 | [[package]] 2239 | name = "windows-sys" 2240 | version = "0.45.0" 2241 | source = "registry+https://github.com/rust-lang/crates.io-index" 2242 | checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" 2243 | dependencies = [ 2244 | "windows-targets", 2245 | ] 2246 | 2247 | [[package]] 2248 | name = "windows-targets" 2249 | version = "0.42.2" 2250 | source = "registry+https://github.com/rust-lang/crates.io-index" 2251 | checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" 2252 | dependencies = [ 2253 | "windows_aarch64_gnullvm", 2254 | "windows_aarch64_msvc", 2255 | "windows_i686_gnu", 2256 | "windows_i686_msvc", 2257 | "windows_x86_64_gnu", 2258 | "windows_x86_64_gnullvm", 2259 | "windows_x86_64_msvc", 2260 | ] 2261 | 2262 | [[package]] 2263 | name = "windows_aarch64_gnullvm" 2264 | version = "0.42.2" 2265 | source = "registry+https://github.com/rust-lang/crates.io-index" 2266 | checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" 2267 | 2268 | [[package]] 2269 | name = "windows_aarch64_msvc" 2270 | version = "0.42.2" 2271 | source = "registry+https://github.com/rust-lang/crates.io-index" 2272 | checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" 2273 | 2274 | [[package]] 2275 | name = "windows_i686_gnu" 2276 | version = "0.42.2" 2277 | source = "registry+https://github.com/rust-lang/crates.io-index" 2278 | checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" 2279 | 2280 | [[package]] 2281 | name = "windows_i686_msvc" 2282 | version = "0.42.2" 2283 | source = "registry+https://github.com/rust-lang/crates.io-index" 2284 | checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" 2285 | 2286 | [[package]] 2287 | name = "windows_x86_64_gnu" 2288 | version = "0.42.2" 2289 | source = "registry+https://github.com/rust-lang/crates.io-index" 2290 | checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" 2291 | 2292 | [[package]] 2293 | name = "windows_x86_64_gnullvm" 2294 | version = "0.42.2" 2295 | source = "registry+https://github.com/rust-lang/crates.io-index" 2296 | checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" 2297 | 2298 | [[package]] 2299 | name = "windows_x86_64_msvc" 2300 | version = "0.42.2" 2301 | source = "registry+https://github.com/rust-lang/crates.io-index" 2302 | checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" 2303 | 2304 | [[package]] 2305 | name = "winreg" 2306 | version = "0.10.1" 2307 | source = "registry+https://github.com/rust-lang/crates.io-index" 2308 | checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" 2309 | dependencies = [ 2310 | "winapi", 2311 | ] 2312 | 2313 | [[package]] 2314 | name = "ws_stream_wasm" 2315 | version = "0.7.4" 2316 | source = "registry+https://github.com/rust-lang/crates.io-index" 2317 | checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" 2318 | dependencies = [ 2319 | "async_io_stream", 2320 | "futures", 2321 | "js-sys", 2322 | "log", 2323 | "pharos", 2324 | "rustc_version", 2325 | "send_wrapper", 2326 | "thiserror", 2327 | "wasm-bindgen", 2328 | "wasm-bindgen-futures", 2329 | "web-sys", 2330 | ] 2331 | 2332 | [[package]] 2333 | name = "wyz" 2334 | version = "0.5.1" 2335 | source = "registry+https://github.com/rust-lang/crates.io-index" 2336 | checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" 2337 | dependencies = [ 2338 | "tap", 2339 | ] 2340 | 2341 | [[package]] 2342 | name = "zeroize" 2343 | version = "1.6.0" 2344 | source = "registry+https://github.com/rust-lang/crates.io-index" 2345 | checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" 2346 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "rust-surrealdb" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 | 8 | [dependencies] 9 | surrealdb = {version = "1.0.0-beta.9", features = ["kv-mem"]} 10 | # For smaller dependencies 11 | 12 | tokio = { version = "1", features = ["full"] } 13 | anyhow = "1" 14 | 15 | 16 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | ## SurrealDB Rust API Tutorial 3 | 4 | YouTube Video: [SurrealDB - Rust Embedded Database - Quick Tutorial](https://www.youtube.com/watch?v=iOyvum0D3LM&list=PL7r-PXl6ZPcCIOFaL7nVHXZvBmHNhrh_Q) -------------------------------------------------------------------------------- /rustfmt.toml: -------------------------------------------------------------------------------- 1 | # rustfmt doc - https://rust-lang.github.io/rustfmt/ 2 | 3 | hard_tabs = true 4 | edition = "2021" 5 | max_width = 110 6 | chain_width = 60 7 | array_width = 60 -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | #![allow(unused)] // While exploring, remove for prod. 2 | 3 | use anyhow::{anyhow, Result}; 4 | use std::collections::BTreeMap; 5 | use surrealdb::dbs::{Response, Session}; 6 | use surrealdb::kvs::Datastore; 7 | use surrealdb::sql::{thing, Datetime, Object, Thing, Value}; 8 | 9 | type DB = (Datastore, Session); 10 | 11 | #[tokio::main] 12 | async fn main() -> Result<()> { 13 | let db: &DB = &(Datastore::new("memory").await?, Session::for_db("my_ns", "my_db")); 14 | let (ds, ses) = db; 15 | 16 | // --- Create 17 | let t1 = create_task(db, "Task 01", 10).await?; 18 | let t2 = create_task(db, "Task 02", 7).await?; 19 | 20 | // --- Merge 21 | let sql = "UPDATE $th MERGE $data RETURN id"; 22 | let data: BTreeMap = [ 23 | ("title".into(), "Task 02 UPDATED".into()), 24 | ("done".into(), true.into()), 25 | ] 26 | .into(); 27 | let vars: BTreeMap = [ 28 | ("th".into(), thing(&t2)?.into()), 29 | ("data".into(), data.into()), 30 | ] 31 | .into(); 32 | ds.execute(sql, ses, Some(vars), true).await?; 33 | 34 | // --- Delete 35 | let sql = "DELETE $th"; 36 | let vars: BTreeMap = [("th".into(), thing(&t1)?.into())].into(); 37 | ds.execute(sql, ses, Some(vars), true).await?; 38 | 39 | // --- Select 40 | let sql = "SELECT * from task"; 41 | let ress = ds.execute(sql, ses, None, false).await?; 42 | for object in into_iter_objects(ress)? { 43 | println!("record {}", object?); 44 | } 45 | 46 | Ok(()) 47 | } 48 | 49 | async fn create_task((ds, ses): &DB, title: &str, priority: i32) -> Result { 50 | let sql = "CREATE task CONTENT $data"; 51 | 52 | let data: BTreeMap = [ 53 | ("title".into(), title.into()), 54 | ("priority".into(), priority.into()), 55 | ] 56 | .into(); 57 | let vars: BTreeMap = [("data".into(), data.into())].into(); 58 | 59 | let ress = ds.execute(sql, ses, Some(vars), false).await?; 60 | 61 | into_iter_objects(ress)? 62 | .next() 63 | .transpose()? 64 | .and_then(|obj| obj.get("id").map(|id| id.to_string())) 65 | .ok_or_else(|| anyhow!("No id returned.")) 66 | } 67 | 68 | /// Returns Result>> 69 | fn into_iter_objects(ress: Vec) -> Result>> { 70 | let res = ress.into_iter().next().map(|rp| rp.result).transpose()?; 71 | 72 | match res { 73 | Some(Value::Array(arr)) => { 74 | let it = arr.into_iter().map(|v| match v { 75 | Value::Object(object) => Ok(object), 76 | _ => Err(anyhow!("A record was not an Object")), 77 | }); 78 | Ok(it) 79 | } 80 | _ => Err(anyhow!("No records found.")), 81 | } 82 | } 83 | --------------------------------------------------------------------------------