├── .cargo └── config.toml ├── .github └── workflows │ └── release.yml ├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── LICENSE.md ├── README.md ├── dev.kdl └── src ├── assets └── multitask_layout.kdl ├── main.rs ├── multitask_file.rs └── parallel_tasks.rs /.cargo/config.toml: -------------------------------------------------------------------------------- 1 | [build] 2 | target = "wasm32-wasip1" 3 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Publish new release 2 | 3 | on: 4 | release: 5 | types: [published] 6 | 7 | workflow_dispatch: 8 | 9 | permissions: 10 | contents: write 11 | 12 | env: 13 | CARGO_TERM_COLOR: always 14 | 15 | jobs: 16 | build: 17 | name: Build distributables 18 | runs-on: ubuntu-latest 19 | steps: 20 | - name: Install wasm32-wasip1 21 | run: rustup target add wasm32-wasip1 22 | - uses: actions/checkout@v3 23 | - name: Build 24 | run: cargo build --release 25 | - name: Release 26 | uses: softprops/action-gh-release@v1 27 | if: startsWith(github.ref, 'refs/tags/') 28 | with: 29 | files: ./target/wasm32-wasip1/release/multitask.wasm 30 | 31 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | .multitask 3 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 4 4 | 5 | [[package]] 6 | name = "addr2line" 7 | version = "0.19.0" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" 10 | dependencies = [ 11 | "gimli", 12 | ] 13 | 14 | [[package]] 15 | name = "adler" 16 | version = "1.0.2" 17 | source = "registry+https://github.com/rust-lang/crates.io-index" 18 | checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" 19 | 20 | [[package]] 21 | name = "ahash" 22 | version = "0.7.6" 23 | source = "registry+https://github.com/rust-lang/crates.io-index" 24 | checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" 25 | dependencies = [ 26 | "getrandom 0.2.10", 27 | "once_cell", 28 | "version_check", 29 | ] 30 | 31 | [[package]] 32 | name = "aho-corasick" 33 | version = "1.0.2" 34 | source = "registry+https://github.com/rust-lang/crates.io-index" 35 | checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41" 36 | dependencies = [ 37 | "memchr", 38 | ] 39 | 40 | [[package]] 41 | name = "anyhow" 42 | version = "1.0.71" 43 | source = "registry+https://github.com/rust-lang/crates.io-index" 44 | checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8" 45 | dependencies = [ 46 | "backtrace", 47 | ] 48 | 49 | [[package]] 50 | name = "arc-swap" 51 | version = "1.6.0" 52 | source = "registry+https://github.com/rust-lang/crates.io-index" 53 | checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" 54 | 55 | [[package]] 56 | name = "arrayvec" 57 | version = "0.5.2" 58 | source = "registry+https://github.com/rust-lang/crates.io-index" 59 | checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" 60 | 61 | [[package]] 62 | name = "async-attributes" 63 | version = "1.1.2" 64 | source = "registry+https://github.com/rust-lang/crates.io-index" 65 | checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5" 66 | dependencies = [ 67 | "quote", 68 | "syn 1.0.109", 69 | ] 70 | 71 | [[package]] 72 | name = "async-channel" 73 | version = "1.8.0" 74 | source = "registry+https://github.com/rust-lang/crates.io-index" 75 | checksum = "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833" 76 | dependencies = [ 77 | "concurrent-queue", 78 | "event-listener", 79 | "futures-core", 80 | ] 81 | 82 | [[package]] 83 | name = "async-executor" 84 | version = "1.5.1" 85 | source = "registry+https://github.com/rust-lang/crates.io-index" 86 | checksum = "6fa3dc5f2a8564f07759c008b9109dc0d39de92a88d5588b8a5036d286383afb" 87 | dependencies = [ 88 | "async-lock", 89 | "async-task", 90 | "concurrent-queue", 91 | "fastrand", 92 | "futures-lite", 93 | "slab", 94 | ] 95 | 96 | [[package]] 97 | name = "async-global-executor" 98 | version = "2.3.1" 99 | source = "registry+https://github.com/rust-lang/crates.io-index" 100 | checksum = "f1b6f5d7df27bd294849f8eec66ecfc63d11814df7a4f5d74168a2394467b776" 101 | dependencies = [ 102 | "async-channel", 103 | "async-executor", 104 | "async-io", 105 | "async-lock", 106 | "blocking", 107 | "futures-lite", 108 | "once_cell", 109 | ] 110 | 111 | [[package]] 112 | name = "async-io" 113 | version = "1.13.0" 114 | source = "registry+https://github.com/rust-lang/crates.io-index" 115 | checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" 116 | dependencies = [ 117 | "async-lock", 118 | "autocfg", 119 | "cfg-if", 120 | "concurrent-queue", 121 | "futures-lite", 122 | "log", 123 | "parking", 124 | "polling", 125 | "rustix", 126 | "slab", 127 | "socket2 0.4.9", 128 | "waker-fn", 129 | ] 130 | 131 | [[package]] 132 | name = "async-lock" 133 | version = "2.7.0" 134 | source = "registry+https://github.com/rust-lang/crates.io-index" 135 | checksum = "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7" 136 | dependencies = [ 137 | "event-listener", 138 | ] 139 | 140 | [[package]] 141 | name = "async-process" 142 | version = "1.7.0" 143 | source = "registry+https://github.com/rust-lang/crates.io-index" 144 | checksum = "7a9d28b1d97e08915212e2e45310d47854eafa69600756fc735fb788f75199c9" 145 | dependencies = [ 146 | "async-io", 147 | "async-lock", 148 | "autocfg", 149 | "blocking", 150 | "cfg-if", 151 | "event-listener", 152 | "futures-lite", 153 | "rustix", 154 | "signal-hook", 155 | "windows-sys 0.48.0", 156 | ] 157 | 158 | [[package]] 159 | name = "async-std" 160 | version = "1.12.0" 161 | source = "registry+https://github.com/rust-lang/crates.io-index" 162 | checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d" 163 | dependencies = [ 164 | "async-attributes", 165 | "async-channel", 166 | "async-global-executor", 167 | "async-io", 168 | "async-lock", 169 | "async-process", 170 | "crossbeam-utils", 171 | "futures-channel", 172 | "futures-core", 173 | "futures-io", 174 | "futures-lite", 175 | "gloo-timers", 176 | "kv-log-macro", 177 | "log", 178 | "memchr", 179 | "once_cell", 180 | "pin-project-lite", 181 | "pin-utils", 182 | "slab", 183 | "wasm-bindgen-futures", 184 | ] 185 | 186 | [[package]] 187 | name = "async-task" 188 | version = "4.4.0" 189 | source = "registry+https://github.com/rust-lang/crates.io-index" 190 | checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae" 191 | 192 | [[package]] 193 | name = "atomic" 194 | version = "0.6.0" 195 | source = "registry+https://github.com/rust-lang/crates.io-index" 196 | checksum = "8d818003e740b63afc82337e3160717f4f63078720a810b7b903e70a5d1d2994" 197 | dependencies = [ 198 | "bytemuck", 199 | ] 200 | 201 | [[package]] 202 | name = "atomic-waker" 203 | version = "1.1.1" 204 | source = "registry+https://github.com/rust-lang/crates.io-index" 205 | checksum = "1181e1e0d1fce796a03db1ae795d67167da795f9cf4a39c37589e85ef57f26d3" 206 | 207 | [[package]] 208 | name = "atty" 209 | version = "0.2.14" 210 | source = "registry+https://github.com/rust-lang/crates.io-index" 211 | checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" 212 | dependencies = [ 213 | "hermit-abi 0.1.19", 214 | "libc", 215 | "winapi", 216 | ] 217 | 218 | [[package]] 219 | name = "autocfg" 220 | version = "1.0.1" 221 | source = "registry+https://github.com/rust-lang/crates.io-index" 222 | checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" 223 | 224 | [[package]] 225 | name = "backtrace" 226 | version = "0.3.67" 227 | source = "registry+https://github.com/rust-lang/crates.io-index" 228 | checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" 229 | dependencies = [ 230 | "addr2line", 231 | "cc", 232 | "cfg-if", 233 | "libc", 234 | "miniz_oxide", 235 | "object", 236 | "rustc-demangle", 237 | ] 238 | 239 | [[package]] 240 | name = "backtrace-ext" 241 | version = "0.2.1" 242 | source = "registry+https://github.com/rust-lang/crates.io-index" 243 | checksum = "537beee3be4a18fb023b570f80e3ae28003db9167a751266b259926e25539d50" 244 | dependencies = [ 245 | "backtrace", 246 | ] 247 | 248 | [[package]] 249 | name = "base64" 250 | version = "0.22.1" 251 | source = "registry+https://github.com/rust-lang/crates.io-index" 252 | checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 253 | 254 | [[package]] 255 | name = "bit-set" 256 | version = "0.5.3" 257 | source = "registry+https://github.com/rust-lang/crates.io-index" 258 | checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" 259 | dependencies = [ 260 | "bit-vec", 261 | ] 262 | 263 | [[package]] 264 | name = "bit-vec" 265 | version = "0.6.3" 266 | source = "registry+https://github.com/rust-lang/crates.io-index" 267 | checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" 268 | 269 | [[package]] 270 | name = "bitflags" 271 | version = "1.3.2" 272 | source = "registry+https://github.com/rust-lang/crates.io-index" 273 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 274 | 275 | [[package]] 276 | name = "bitflags" 277 | version = "2.6.0" 278 | source = "registry+https://github.com/rust-lang/crates.io-index" 279 | checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" 280 | 281 | [[package]] 282 | name = "block-buffer" 283 | version = "0.10.4" 284 | source = "registry+https://github.com/rust-lang/crates.io-index" 285 | checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 286 | dependencies = [ 287 | "generic-array", 288 | ] 289 | 290 | [[package]] 291 | name = "blocking" 292 | version = "1.3.1" 293 | source = "registry+https://github.com/rust-lang/crates.io-index" 294 | checksum = "77231a1c8f801696fc0123ec6150ce92cffb8e164a02afb9c8ddee0e9b65ad65" 295 | dependencies = [ 296 | "async-channel", 297 | "async-lock", 298 | "async-task", 299 | "atomic-waker", 300 | "fastrand", 301 | "futures-lite", 302 | "log", 303 | ] 304 | 305 | [[package]] 306 | name = "bumpalo" 307 | version = "3.13.0" 308 | source = "registry+https://github.com/rust-lang/crates.io-index" 309 | checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" 310 | 311 | [[package]] 312 | name = "bytemuck" 313 | version = "1.22.0" 314 | source = "registry+https://github.com/rust-lang/crates.io-index" 315 | checksum = "b6b1fc10dbac614ebc03540c9dbd60e83887fda27794998c6528f1782047d540" 316 | 317 | [[package]] 318 | name = "byteorder" 319 | version = "1.4.3" 320 | source = "registry+https://github.com/rust-lang/crates.io-index" 321 | checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" 322 | 323 | [[package]] 324 | name = "bytes" 325 | version = "1.5.0" 326 | source = "registry+https://github.com/rust-lang/crates.io-index" 327 | checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" 328 | 329 | [[package]] 330 | name = "castaway" 331 | version = "0.1.2" 332 | source = "registry+https://github.com/rust-lang/crates.io-index" 333 | checksum = "a2698f953def977c68f935bb0dfa959375ad4638570e969e2f1e9f433cbf1af6" 334 | 335 | [[package]] 336 | name = "cc" 337 | version = "1.0.79" 338 | source = "registry+https://github.com/rust-lang/crates.io-index" 339 | checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" 340 | 341 | [[package]] 342 | name = "cfg-if" 343 | version = "1.0.0" 344 | source = "registry+https://github.com/rust-lang/crates.io-index" 345 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 346 | 347 | [[package]] 348 | name = "cfg_aliases" 349 | version = "0.2.1" 350 | source = "registry+https://github.com/rust-lang/crates.io-index" 351 | checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" 352 | 353 | [[package]] 354 | name = "chrono" 355 | version = "0.4.19" 356 | source = "registry+https://github.com/rust-lang/crates.io-index" 357 | checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" 358 | dependencies = [ 359 | "libc", 360 | "num-integer", 361 | "num-traits", 362 | "time", 363 | "winapi", 364 | ] 365 | 366 | [[package]] 367 | name = "clap" 368 | version = "3.2.25" 369 | source = "registry+https://github.com/rust-lang/crates.io-index" 370 | checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" 371 | dependencies = [ 372 | "atty", 373 | "bitflags 1.3.2", 374 | "clap_derive", 375 | "clap_lex", 376 | "indexmap 1.9.3", 377 | "once_cell", 378 | "strsim 0.10.0", 379 | "termcolor", 380 | "textwrap 0.16.0", 381 | ] 382 | 383 | [[package]] 384 | name = "clap_complete" 385 | version = "3.2.5" 386 | source = "registry+https://github.com/rust-lang/crates.io-index" 387 | checksum = "3f7a2e0a962c45ce25afce14220bc24f9dade0a1787f185cecf96bfba7847cd8" 388 | dependencies = [ 389 | "clap", 390 | ] 391 | 392 | [[package]] 393 | name = "clap_derive" 394 | version = "3.2.25" 395 | source = "registry+https://github.com/rust-lang/crates.io-index" 396 | checksum = "ae6371b8bdc8b7d3959e9cf7b22d4435ef3e79e138688421ec654acf8c81b008" 397 | dependencies = [ 398 | "heck 0.4.1", 399 | "proc-macro-error", 400 | "proc-macro2", 401 | "quote", 402 | "syn 1.0.109", 403 | ] 404 | 405 | [[package]] 406 | name = "clap_lex" 407 | version = "0.2.4" 408 | source = "registry+https://github.com/rust-lang/crates.io-index" 409 | checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" 410 | dependencies = [ 411 | "os_str_bytes", 412 | ] 413 | 414 | [[package]] 415 | name = "colored" 416 | version = "2.0.0" 417 | source = "registry+https://github.com/rust-lang/crates.io-index" 418 | checksum = "b3616f750b84d8f0de8a58bda93e08e2a81ad3f523089b05f1dffecab48c6cbd" 419 | dependencies = [ 420 | "atty", 421 | "lazy_static", 422 | "winapi", 423 | ] 424 | 425 | [[package]] 426 | name = "colorsys" 427 | version = "0.6.7" 428 | source = "registry+https://github.com/rust-lang/crates.io-index" 429 | checksum = "54261aba646433cb567ec89844be4c4825ca92a4f8afba52fc4dd88436e31bbd" 430 | 431 | [[package]] 432 | name = "concurrent-queue" 433 | version = "2.2.0" 434 | source = "registry+https://github.com/rust-lang/crates.io-index" 435 | checksum = "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c" 436 | dependencies = [ 437 | "crossbeam-utils", 438 | ] 439 | 440 | [[package]] 441 | name = "cpufeatures" 442 | version = "0.2.7" 443 | source = "registry+https://github.com/rust-lang/crates.io-index" 444 | checksum = "3e4c1eaa2012c47becbbad2ab175484c2a84d1185b566fb2cc5b8707343dfe58" 445 | dependencies = [ 446 | "libc", 447 | ] 448 | 449 | [[package]] 450 | name = "crossbeam" 451 | version = "0.8.2" 452 | source = "registry+https://github.com/rust-lang/crates.io-index" 453 | checksum = "2801af0d36612ae591caa9568261fddce32ce6e08a7275ea334a06a4ad021a2c" 454 | dependencies = [ 455 | "cfg-if", 456 | "crossbeam-channel", 457 | "crossbeam-deque", 458 | "crossbeam-epoch", 459 | "crossbeam-queue", 460 | "crossbeam-utils", 461 | ] 462 | 463 | [[package]] 464 | name = "crossbeam-channel" 465 | version = "0.5.8" 466 | source = "registry+https://github.com/rust-lang/crates.io-index" 467 | checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" 468 | dependencies = [ 469 | "cfg-if", 470 | "crossbeam-utils", 471 | ] 472 | 473 | [[package]] 474 | name = "crossbeam-deque" 475 | version = "0.8.3" 476 | source = "registry+https://github.com/rust-lang/crates.io-index" 477 | checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" 478 | dependencies = [ 479 | "cfg-if", 480 | "crossbeam-epoch", 481 | "crossbeam-utils", 482 | ] 483 | 484 | [[package]] 485 | name = "crossbeam-epoch" 486 | version = "0.9.15" 487 | source = "registry+https://github.com/rust-lang/crates.io-index" 488 | checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" 489 | dependencies = [ 490 | "autocfg", 491 | "cfg-if", 492 | "crossbeam-utils", 493 | "memoffset 0.9.0", 494 | "scopeguard", 495 | ] 496 | 497 | [[package]] 498 | name = "crossbeam-queue" 499 | version = "0.3.8" 500 | source = "registry+https://github.com/rust-lang/crates.io-index" 501 | checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add" 502 | dependencies = [ 503 | "cfg-if", 504 | "crossbeam-utils", 505 | ] 506 | 507 | [[package]] 508 | name = "crossbeam-utils" 509 | version = "0.8.16" 510 | source = "registry+https://github.com/rust-lang/crates.io-index" 511 | checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" 512 | dependencies = [ 513 | "cfg-if", 514 | ] 515 | 516 | [[package]] 517 | name = "crypto-common" 518 | version = "0.1.6" 519 | source = "registry+https://github.com/rust-lang/crates.io-index" 520 | checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 521 | dependencies = [ 522 | "generic-array", 523 | "typenum", 524 | ] 525 | 526 | [[package]] 527 | name = "csscolorparser" 528 | version = "0.6.2" 529 | source = "registry+https://github.com/rust-lang/crates.io-index" 530 | checksum = "eb2a7d3066da2de787b7f032c736763eb7ae5d355f81a68bab2675a96008b0bf" 531 | dependencies = [ 532 | "lab", 533 | "phf", 534 | ] 535 | 536 | [[package]] 537 | name = "curl" 538 | version = "0.4.46" 539 | source = "registry+https://github.com/rust-lang/crates.io-index" 540 | checksum = "1e2161dd6eba090ff1594084e95fd67aeccf04382ffea77999ea94ed42ec67b6" 541 | dependencies = [ 542 | "curl-sys", 543 | "libc", 544 | "openssl-probe", 545 | "openssl-sys", 546 | "schannel", 547 | "socket2 0.5.4", 548 | "windows-sys 0.52.0", 549 | ] 550 | 551 | [[package]] 552 | name = "curl-sys" 553 | version = "0.4.72+curl-8.6.0" 554 | source = "registry+https://github.com/rust-lang/crates.io-index" 555 | checksum = "29cbdc8314c447d11e8fd156dcdd031d9e02a7a976163e396b548c03153bc9ea" 556 | dependencies = [ 557 | "cc", 558 | "libc", 559 | "libnghttp2-sys", 560 | "libz-sys", 561 | "openssl-sys", 562 | "pkg-config", 563 | "vcpkg", 564 | "windows-sys 0.52.0", 565 | ] 566 | 567 | [[package]] 568 | name = "deltae" 569 | version = "0.3.1" 570 | source = "registry+https://github.com/rust-lang/crates.io-index" 571 | checksum = "3ef311e2c0a388b9ba56c839ac68d33b92d18ce7104d0acc4375cb479e2b9a53" 572 | 573 | [[package]] 574 | name = "derivative" 575 | version = "2.2.0" 576 | source = "registry+https://github.com/rust-lang/crates.io-index" 577 | checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" 578 | dependencies = [ 579 | "proc-macro2", 580 | "quote", 581 | "syn 1.0.109", 582 | ] 583 | 584 | [[package]] 585 | name = "destructure_traitobject" 586 | version = "0.2.0" 587 | source = "registry+https://github.com/rust-lang/crates.io-index" 588 | checksum = "3c877555693c14d2f84191cfd3ad8582790fc52b5e2274b40b59cf5f5cea25c7" 589 | 590 | [[package]] 591 | name = "digest" 592 | version = "0.10.7" 593 | source = "registry+https://github.com/rust-lang/crates.io-index" 594 | checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 595 | dependencies = [ 596 | "block-buffer", 597 | "crypto-common", 598 | ] 599 | 600 | [[package]] 601 | name = "directories" 602 | version = "5.0.1" 603 | source = "registry+https://github.com/rust-lang/crates.io-index" 604 | checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35" 605 | dependencies = [ 606 | "dirs-sys", 607 | ] 608 | 609 | [[package]] 610 | name = "dirs" 611 | version = "5.0.1" 612 | source = "registry+https://github.com/rust-lang/crates.io-index" 613 | checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" 614 | dependencies = [ 615 | "dirs-sys", 616 | ] 617 | 618 | [[package]] 619 | name = "dirs-sys" 620 | version = "0.4.1" 621 | source = "registry+https://github.com/rust-lang/crates.io-index" 622 | checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" 623 | dependencies = [ 624 | "libc", 625 | "option-ext", 626 | "redox_users", 627 | "windows-sys 0.48.0", 628 | ] 629 | 630 | [[package]] 631 | name = "either" 632 | version = "1.9.0" 633 | source = "registry+https://github.com/rust-lang/crates.io-index" 634 | checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" 635 | 636 | [[package]] 637 | name = "encoding_rs" 638 | version = "0.8.35" 639 | source = "registry+https://github.com/rust-lang/crates.io-index" 640 | checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" 641 | dependencies = [ 642 | "cfg-if", 643 | ] 644 | 645 | [[package]] 646 | name = "equivalent" 647 | version = "1.0.1" 648 | source = "registry+https://github.com/rust-lang/crates.io-index" 649 | checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" 650 | 651 | [[package]] 652 | name = "errno" 653 | version = "0.3.1" 654 | source = "registry+https://github.com/rust-lang/crates.io-index" 655 | checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" 656 | dependencies = [ 657 | "errno-dragonfly", 658 | "libc", 659 | "windows-sys 0.48.0", 660 | ] 661 | 662 | [[package]] 663 | name = "errno-dragonfly" 664 | version = "0.1.2" 665 | source = "registry+https://github.com/rust-lang/crates.io-index" 666 | checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" 667 | dependencies = [ 668 | "cc", 669 | "libc", 670 | ] 671 | 672 | [[package]] 673 | name = "euclid" 674 | version = "0.22.7" 675 | source = "registry+https://github.com/rust-lang/crates.io-index" 676 | checksum = "b52c2ef4a78da0ba68fbe1fd920627411096d2ac478f7f4c9f3a54ba6705bade" 677 | dependencies = [ 678 | "num-traits", 679 | ] 680 | 681 | [[package]] 682 | name = "event-listener" 683 | version = "2.5.3" 684 | source = "registry+https://github.com/rust-lang/crates.io-index" 685 | checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" 686 | 687 | [[package]] 688 | name = "fancy-regex" 689 | version = "0.11.0" 690 | source = "registry+https://github.com/rust-lang/crates.io-index" 691 | checksum = "b95f7c0680e4142284cf8b22c14a476e87d61b004a3a0861872b32ef7ead40a2" 692 | dependencies = [ 693 | "bit-set", 694 | "regex", 695 | ] 696 | 697 | [[package]] 698 | name = "fastrand" 699 | version = "1.9.0" 700 | source = "registry+https://github.com/rust-lang/crates.io-index" 701 | checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" 702 | dependencies = [ 703 | "instant", 704 | ] 705 | 706 | [[package]] 707 | name = "file-id" 708 | version = "0.1.0" 709 | source = "registry+https://github.com/rust-lang/crates.io-index" 710 | checksum = "e13be71e6ca82e91bc0cb862bebaac0b2d1924a5a1d970c822b2f98b63fda8c3" 711 | dependencies = [ 712 | "winapi-util", 713 | ] 714 | 715 | [[package]] 716 | name = "filedescriptor" 717 | version = "0.8.3" 718 | source = "registry+https://github.com/rust-lang/crates.io-index" 719 | checksum = "e40758ed24c9b2eeb76c35fb0aebc66c626084edd827e07e1552279814c6682d" 720 | dependencies = [ 721 | "libc", 722 | "thiserror 1.0.40", 723 | "winapi", 724 | ] 725 | 726 | [[package]] 727 | name = "filetime" 728 | version = "0.2.21" 729 | source = "registry+https://github.com/rust-lang/crates.io-index" 730 | checksum = "5cbc844cecaee9d4443931972e1289c8ff485cb4cc2767cb03ca139ed6885153" 731 | dependencies = [ 732 | "cfg-if", 733 | "libc", 734 | "redox_syscall 0.2.16", 735 | "windows-sys 0.48.0", 736 | ] 737 | 738 | [[package]] 739 | name = "finl_unicode" 740 | version = "1.2.0" 741 | source = "registry+https://github.com/rust-lang/crates.io-index" 742 | checksum = "8fcfdc7a0362c9f4444381a9e697c79d435fe65b52a37466fc2c1184cee9edc6" 743 | 744 | [[package]] 745 | name = "fixedbitset" 746 | version = "0.4.2" 747 | source = "registry+https://github.com/rust-lang/crates.io-index" 748 | checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" 749 | 750 | [[package]] 751 | name = "fnv" 752 | version = "1.0.7" 753 | source = "registry+https://github.com/rust-lang/crates.io-index" 754 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 755 | 756 | [[package]] 757 | name = "form_urlencoded" 758 | version = "1.2.0" 759 | source = "registry+https://github.com/rust-lang/crates.io-index" 760 | checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" 761 | dependencies = [ 762 | "percent-encoding", 763 | ] 764 | 765 | [[package]] 766 | name = "fsevent-sys" 767 | version = "4.1.0" 768 | source = "registry+https://github.com/rust-lang/crates.io-index" 769 | checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2" 770 | dependencies = [ 771 | "libc", 772 | ] 773 | 774 | [[package]] 775 | name = "futures" 776 | version = "0.3.30" 777 | source = "registry+https://github.com/rust-lang/crates.io-index" 778 | checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" 779 | dependencies = [ 780 | "futures-channel", 781 | "futures-core", 782 | "futures-executor", 783 | "futures-io", 784 | "futures-sink", 785 | "futures-task", 786 | "futures-util", 787 | ] 788 | 789 | [[package]] 790 | name = "futures-channel" 791 | version = "0.3.30" 792 | source = "registry+https://github.com/rust-lang/crates.io-index" 793 | checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" 794 | dependencies = [ 795 | "futures-core", 796 | "futures-sink", 797 | ] 798 | 799 | [[package]] 800 | name = "futures-core" 801 | version = "0.3.30" 802 | source = "registry+https://github.com/rust-lang/crates.io-index" 803 | checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" 804 | 805 | [[package]] 806 | name = "futures-executor" 807 | version = "0.3.30" 808 | source = "registry+https://github.com/rust-lang/crates.io-index" 809 | checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" 810 | dependencies = [ 811 | "futures-core", 812 | "futures-task", 813 | "futures-util", 814 | ] 815 | 816 | [[package]] 817 | name = "futures-io" 818 | version = "0.3.30" 819 | source = "registry+https://github.com/rust-lang/crates.io-index" 820 | checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" 821 | 822 | [[package]] 823 | name = "futures-lite" 824 | version = "1.13.0" 825 | source = "registry+https://github.com/rust-lang/crates.io-index" 826 | checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" 827 | dependencies = [ 828 | "fastrand", 829 | "futures-core", 830 | "futures-io", 831 | "memchr", 832 | "parking", 833 | "pin-project-lite", 834 | "waker-fn", 835 | ] 836 | 837 | [[package]] 838 | name = "futures-macro" 839 | version = "0.3.30" 840 | source = "registry+https://github.com/rust-lang/crates.io-index" 841 | checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" 842 | dependencies = [ 843 | "proc-macro2", 844 | "quote", 845 | "syn 2.0.100", 846 | ] 847 | 848 | [[package]] 849 | name = "futures-sink" 850 | version = "0.3.30" 851 | source = "registry+https://github.com/rust-lang/crates.io-index" 852 | checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" 853 | 854 | [[package]] 855 | name = "futures-task" 856 | version = "0.3.30" 857 | source = "registry+https://github.com/rust-lang/crates.io-index" 858 | checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" 859 | 860 | [[package]] 861 | name = "futures-util" 862 | version = "0.3.30" 863 | source = "registry+https://github.com/rust-lang/crates.io-index" 864 | checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" 865 | dependencies = [ 866 | "futures-channel", 867 | "futures-core", 868 | "futures-io", 869 | "futures-macro", 870 | "futures-sink", 871 | "futures-task", 872 | "memchr", 873 | "pin-project-lite", 874 | "pin-utils", 875 | "slab", 876 | ] 877 | 878 | [[package]] 879 | name = "generic-array" 880 | version = "0.14.7" 881 | source = "registry+https://github.com/rust-lang/crates.io-index" 882 | checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 883 | dependencies = [ 884 | "typenum", 885 | "version_check", 886 | ] 887 | 888 | [[package]] 889 | name = "getrandom" 890 | version = "0.2.10" 891 | source = "registry+https://github.com/rust-lang/crates.io-index" 892 | checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" 893 | dependencies = [ 894 | "cfg-if", 895 | "libc", 896 | "wasi 0.11.0+wasi-snapshot-preview1", 897 | ] 898 | 899 | [[package]] 900 | name = "getrandom" 901 | version = "0.3.2" 902 | source = "registry+https://github.com/rust-lang/crates.io-index" 903 | checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" 904 | dependencies = [ 905 | "cfg-if", 906 | "libc", 907 | "r-efi", 908 | "wasi 0.14.2+wasi-0.2.4", 909 | ] 910 | 911 | [[package]] 912 | name = "gimli" 913 | version = "0.27.2" 914 | source = "registry+https://github.com/rust-lang/crates.io-index" 915 | checksum = "ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4" 916 | 917 | [[package]] 918 | name = "gloo-timers" 919 | version = "0.2.6" 920 | source = "registry+https://github.com/rust-lang/crates.io-index" 921 | checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" 922 | dependencies = [ 923 | "futures-channel", 924 | "futures-core", 925 | "js-sys", 926 | "wasm-bindgen", 927 | ] 928 | 929 | [[package]] 930 | name = "hashbrown" 931 | version = "0.12.3" 932 | source = "registry+https://github.com/rust-lang/crates.io-index" 933 | checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" 934 | dependencies = [ 935 | "ahash", 936 | ] 937 | 938 | [[package]] 939 | name = "hashbrown" 940 | version = "0.14.0" 941 | source = "registry+https://github.com/rust-lang/crates.io-index" 942 | checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" 943 | 944 | [[package]] 945 | name = "heck" 946 | version = "0.3.2" 947 | source = "registry+https://github.com/rust-lang/crates.io-index" 948 | checksum = "87cbf45460356b7deeb5e3415b5563308c0a9b057c85e12b06ad551f98d0a6ac" 949 | dependencies = [ 950 | "unicode-segmentation", 951 | ] 952 | 953 | [[package]] 954 | name = "heck" 955 | version = "0.4.1" 956 | source = "registry+https://github.com/rust-lang/crates.io-index" 957 | checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" 958 | 959 | [[package]] 960 | name = "hermit-abi" 961 | version = "0.1.19" 962 | source = "registry+https://github.com/rust-lang/crates.io-index" 963 | checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" 964 | dependencies = [ 965 | "libc", 966 | ] 967 | 968 | [[package]] 969 | name = "hermit-abi" 970 | version = "0.3.1" 971 | source = "registry+https://github.com/rust-lang/crates.io-index" 972 | checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" 973 | 974 | [[package]] 975 | name = "hex" 976 | version = "0.4.3" 977 | source = "registry+https://github.com/rust-lang/crates.io-index" 978 | checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" 979 | 980 | [[package]] 981 | name = "http" 982 | version = "0.2.12" 983 | source = "registry+https://github.com/rust-lang/crates.io-index" 984 | checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" 985 | dependencies = [ 986 | "bytes", 987 | "fnv", 988 | "itoa 1.0.10", 989 | ] 990 | 991 | [[package]] 992 | name = "humantime" 993 | version = "2.1.0" 994 | source = "registry+https://github.com/rust-lang/crates.io-index" 995 | checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" 996 | 997 | [[package]] 998 | name = "idna" 999 | version = "0.4.0" 1000 | source = "registry+https://github.com/rust-lang/crates.io-index" 1001 | checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" 1002 | dependencies = [ 1003 | "unicode-bidi", 1004 | "unicode-normalization", 1005 | ] 1006 | 1007 | [[package]] 1008 | name = "include_dir" 1009 | version = "0.7.3" 1010 | source = "registry+https://github.com/rust-lang/crates.io-index" 1011 | checksum = "18762faeff7122e89e0857b02f7ce6fcc0d101d5e9ad2ad7846cc01d61b7f19e" 1012 | dependencies = [ 1013 | "include_dir_macros", 1014 | ] 1015 | 1016 | [[package]] 1017 | name = "include_dir_macros" 1018 | version = "0.7.3" 1019 | source = "registry+https://github.com/rust-lang/crates.io-index" 1020 | checksum = "b139284b5cf57ecfa712bcc66950bb635b31aff41c188e8a4cfc758eca374a3f" 1021 | dependencies = [ 1022 | "proc-macro2", 1023 | "quote", 1024 | ] 1025 | 1026 | [[package]] 1027 | name = "indexmap" 1028 | version = "1.9.3" 1029 | source = "registry+https://github.com/rust-lang/crates.io-index" 1030 | checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" 1031 | dependencies = [ 1032 | "autocfg", 1033 | "hashbrown 0.12.3", 1034 | ] 1035 | 1036 | [[package]] 1037 | name = "indexmap" 1038 | version = "2.0.0" 1039 | source = "registry+https://github.com/rust-lang/crates.io-index" 1040 | checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" 1041 | dependencies = [ 1042 | "equivalent", 1043 | "hashbrown 0.14.0", 1044 | ] 1045 | 1046 | [[package]] 1047 | name = "inotify" 1048 | version = "0.9.6" 1049 | source = "registry+https://github.com/rust-lang/crates.io-index" 1050 | checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff" 1051 | dependencies = [ 1052 | "bitflags 1.3.2", 1053 | "inotify-sys", 1054 | "libc", 1055 | ] 1056 | 1057 | [[package]] 1058 | name = "inotify-sys" 1059 | version = "0.1.5" 1060 | source = "registry+https://github.com/rust-lang/crates.io-index" 1061 | checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" 1062 | dependencies = [ 1063 | "libc", 1064 | ] 1065 | 1066 | [[package]] 1067 | name = "instant" 1068 | version = "0.1.12" 1069 | source = "registry+https://github.com/rust-lang/crates.io-index" 1070 | checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" 1071 | dependencies = [ 1072 | "cfg-if", 1073 | ] 1074 | 1075 | [[package]] 1076 | name = "interprocess" 1077 | version = "1.2.1" 1078 | source = "registry+https://github.com/rust-lang/crates.io-index" 1079 | checksum = "81f2533f3be42fffe3b5e63b71aeca416c1c3bc33e4e27be018521e76b1f38fb" 1080 | dependencies = [ 1081 | "blocking", 1082 | "cfg-if", 1083 | "futures-core", 1084 | "futures-io", 1085 | "intmap", 1086 | "libc", 1087 | "once_cell", 1088 | "rustc_version", 1089 | "spinning", 1090 | "thiserror 1.0.40", 1091 | "to_method", 1092 | "winapi", 1093 | ] 1094 | 1095 | [[package]] 1096 | name = "intmap" 1097 | version = "0.7.1" 1098 | source = "registry+https://github.com/rust-lang/crates.io-index" 1099 | checksum = "ae52f28f45ac2bc96edb7714de995cffc174a395fb0abf5bff453587c980d7b9" 1100 | 1101 | [[package]] 1102 | name = "io-lifetimes" 1103 | version = "1.0.11" 1104 | source = "registry+https://github.com/rust-lang/crates.io-index" 1105 | checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" 1106 | dependencies = [ 1107 | "hermit-abi 0.3.1", 1108 | "libc", 1109 | "windows-sys 0.48.0", 1110 | ] 1111 | 1112 | [[package]] 1113 | name = "is-terminal" 1114 | version = "0.4.7" 1115 | source = "registry+https://github.com/rust-lang/crates.io-index" 1116 | checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f" 1117 | dependencies = [ 1118 | "hermit-abi 0.3.1", 1119 | "io-lifetimes", 1120 | "rustix", 1121 | "windows-sys 0.48.0", 1122 | ] 1123 | 1124 | [[package]] 1125 | name = "is_ci" 1126 | version = "1.1.1" 1127 | source = "registry+https://github.com/rust-lang/crates.io-index" 1128 | checksum = "616cde7c720bb2bb5824a224687d8f77bfd38922027f01d825cd7453be5099fb" 1129 | 1130 | [[package]] 1131 | name = "isahc" 1132 | version = "1.7.2" 1133 | source = "registry+https://github.com/rust-lang/crates.io-index" 1134 | checksum = "334e04b4d781f436dc315cb1e7515bd96826426345d498149e4bde36b67f8ee9" 1135 | dependencies = [ 1136 | "async-channel", 1137 | "castaway", 1138 | "crossbeam-utils", 1139 | "curl", 1140 | "curl-sys", 1141 | "encoding_rs", 1142 | "event-listener", 1143 | "futures-lite", 1144 | "http", 1145 | "log", 1146 | "mime", 1147 | "once_cell", 1148 | "polling", 1149 | "slab", 1150 | "sluice", 1151 | "tracing", 1152 | "tracing-futures", 1153 | "url", 1154 | "waker-fn", 1155 | ] 1156 | 1157 | [[package]] 1158 | name = "itertools" 1159 | version = "0.10.5" 1160 | source = "registry+https://github.com/rust-lang/crates.io-index" 1161 | checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" 1162 | dependencies = [ 1163 | "either", 1164 | ] 1165 | 1166 | [[package]] 1167 | name = "itoa" 1168 | version = "0.4.7" 1169 | source = "registry+https://github.com/rust-lang/crates.io-index" 1170 | checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736" 1171 | 1172 | [[package]] 1173 | name = "itoa" 1174 | version = "1.0.10" 1175 | source = "registry+https://github.com/rust-lang/crates.io-index" 1176 | checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" 1177 | 1178 | [[package]] 1179 | name = "js-sys" 1180 | version = "0.3.64" 1181 | source = "registry+https://github.com/rust-lang/crates.io-index" 1182 | checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" 1183 | dependencies = [ 1184 | "wasm-bindgen", 1185 | ] 1186 | 1187 | [[package]] 1188 | name = "kdl" 1189 | version = "4.6.0" 1190 | source = "registry+https://github.com/rust-lang/crates.io-index" 1191 | checksum = "062c875482ccb676fd40c804a40e3824d4464c18c364547456d1c8e8e951ae47" 1192 | dependencies = [ 1193 | "miette", 1194 | "nom", 1195 | "thiserror 1.0.40", 1196 | ] 1197 | 1198 | [[package]] 1199 | name = "kqueue" 1200 | version = "1.0.7" 1201 | source = "registry+https://github.com/rust-lang/crates.io-index" 1202 | checksum = "2c8fc60ba15bf51257aa9807a48a61013db043fcf3a78cb0d916e8e396dcad98" 1203 | dependencies = [ 1204 | "kqueue-sys", 1205 | "libc", 1206 | ] 1207 | 1208 | [[package]] 1209 | name = "kqueue-sys" 1210 | version = "1.0.3" 1211 | source = "registry+https://github.com/rust-lang/crates.io-index" 1212 | checksum = "8367585489f01bc55dd27404dcf56b95e6da061a256a666ab23be9ba96a2e587" 1213 | dependencies = [ 1214 | "bitflags 1.3.2", 1215 | "libc", 1216 | ] 1217 | 1218 | [[package]] 1219 | name = "kv-log-macro" 1220 | version = "1.0.7" 1221 | source = "registry+https://github.com/rust-lang/crates.io-index" 1222 | checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" 1223 | dependencies = [ 1224 | "log", 1225 | ] 1226 | 1227 | [[package]] 1228 | name = "lab" 1229 | version = "0.11.0" 1230 | source = "registry+https://github.com/rust-lang/crates.io-index" 1231 | checksum = "bf36173d4167ed999940f804952e6b08197cae5ad5d572eb4db150ce8ad5d58f" 1232 | 1233 | [[package]] 1234 | name = "lazy_static" 1235 | version = "1.4.0" 1236 | source = "registry+https://github.com/rust-lang/crates.io-index" 1237 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 1238 | 1239 | [[package]] 1240 | name = "libc" 1241 | version = "0.2.164" 1242 | source = "registry+https://github.com/rust-lang/crates.io-index" 1243 | checksum = "433bfe06b8c75da9b2e3fbea6e5329ff87748f0b144ef75306e674c3f6f7c13f" 1244 | 1245 | [[package]] 1246 | name = "libnghttp2-sys" 1247 | version = "0.1.9+1.58.0" 1248 | source = "registry+https://github.com/rust-lang/crates.io-index" 1249 | checksum = "b57e858af2798e167e709b9d969325b6d8e9d50232fcbc494d7d54f976854a64" 1250 | dependencies = [ 1251 | "cc", 1252 | "libc", 1253 | ] 1254 | 1255 | [[package]] 1256 | name = "libz-sys" 1257 | version = "1.1.16" 1258 | source = "registry+https://github.com/rust-lang/crates.io-index" 1259 | checksum = "5e143b5e666b2695d28f6bca6497720813f699c9602dd7f5cac91008b8ada7f9" 1260 | dependencies = [ 1261 | "cc", 1262 | "libc", 1263 | "pkg-config", 1264 | "vcpkg", 1265 | ] 1266 | 1267 | [[package]] 1268 | name = "linked-hash-map" 1269 | version = "0.5.6" 1270 | source = "registry+https://github.com/rust-lang/crates.io-index" 1271 | checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" 1272 | 1273 | [[package]] 1274 | name = "linux-raw-sys" 1275 | version = "0.3.8" 1276 | source = "registry+https://github.com/rust-lang/crates.io-index" 1277 | checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" 1278 | 1279 | [[package]] 1280 | name = "lock_api" 1281 | version = "0.4.6" 1282 | source = "registry+https://github.com/rust-lang/crates.io-index" 1283 | checksum = "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b" 1284 | dependencies = [ 1285 | "scopeguard", 1286 | ] 1287 | 1288 | [[package]] 1289 | name = "log" 1290 | version = "0.4.19" 1291 | source = "registry+https://github.com/rust-lang/crates.io-index" 1292 | checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" 1293 | dependencies = [ 1294 | "serde", 1295 | "value-bag", 1296 | ] 1297 | 1298 | [[package]] 1299 | name = "log-mdc" 1300 | version = "0.1.0" 1301 | source = "registry+https://github.com/rust-lang/crates.io-index" 1302 | checksum = "a94d21414c1f4a51209ad204c1776a3d0765002c76c6abcb602a6f09f1e881c7" 1303 | 1304 | [[package]] 1305 | name = "log4rs" 1306 | version = "1.2.0" 1307 | source = "registry+https://github.com/rust-lang/crates.io-index" 1308 | checksum = "d36ca1786d9e79b8193a68d480a0907b612f109537115c6ff655a3a1967533fd" 1309 | dependencies = [ 1310 | "anyhow", 1311 | "arc-swap", 1312 | "chrono", 1313 | "derivative", 1314 | "fnv", 1315 | "humantime", 1316 | "libc", 1317 | "log", 1318 | "log-mdc", 1319 | "parking_lot", 1320 | "serde", 1321 | "serde-value", 1322 | "serde_json", 1323 | "serde_yaml", 1324 | "thiserror 1.0.40", 1325 | "thread-id", 1326 | "typemap-ors", 1327 | "winapi", 1328 | ] 1329 | 1330 | [[package]] 1331 | name = "mac_address" 1332 | version = "1.1.8" 1333 | source = "registry+https://github.com/rust-lang/crates.io-index" 1334 | checksum = "c0aeb26bf5e836cc1c341c8106051b573f1766dfa05aa87f0b98be5e51b02303" 1335 | dependencies = [ 1336 | "nix 0.29.0", 1337 | "winapi", 1338 | ] 1339 | 1340 | [[package]] 1341 | name = "memchr" 1342 | version = "2.5.0" 1343 | source = "registry+https://github.com/rust-lang/crates.io-index" 1344 | checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" 1345 | 1346 | [[package]] 1347 | name = "memmem" 1348 | version = "0.1.1" 1349 | source = "registry+https://github.com/rust-lang/crates.io-index" 1350 | checksum = "a64a92489e2744ce060c349162be1c5f33c6969234104dbd99ddb5feb08b8c15" 1351 | 1352 | [[package]] 1353 | name = "memoffset" 1354 | version = "0.6.5" 1355 | source = "registry+https://github.com/rust-lang/crates.io-index" 1356 | checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" 1357 | dependencies = [ 1358 | "autocfg", 1359 | ] 1360 | 1361 | [[package]] 1362 | name = "memoffset" 1363 | version = "0.9.0" 1364 | source = "registry+https://github.com/rust-lang/crates.io-index" 1365 | checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" 1366 | dependencies = [ 1367 | "autocfg", 1368 | ] 1369 | 1370 | [[package]] 1371 | name = "miette" 1372 | version = "5.9.0" 1373 | source = "registry+https://github.com/rust-lang/crates.io-index" 1374 | checksum = "a236ff270093b0b67451bc50a509bd1bad302cb1d3c7d37d5efe931238581fa9" 1375 | dependencies = [ 1376 | "backtrace", 1377 | "backtrace-ext", 1378 | "is-terminal", 1379 | "miette-derive", 1380 | "once_cell", 1381 | "owo-colors", 1382 | "supports-color", 1383 | "supports-hyperlinks", 1384 | "supports-unicode", 1385 | "terminal_size", 1386 | "textwrap 0.15.2", 1387 | "thiserror 1.0.40", 1388 | "unicode-width", 1389 | ] 1390 | 1391 | [[package]] 1392 | name = "miette-derive" 1393 | version = "5.9.0" 1394 | source = "registry+https://github.com/rust-lang/crates.io-index" 1395 | checksum = "4901771e1d44ddb37964565c654a3223ba41a594d02b8da471cc4464912b5cfa" 1396 | dependencies = [ 1397 | "proc-macro2", 1398 | "quote", 1399 | "syn 2.0.100", 1400 | ] 1401 | 1402 | [[package]] 1403 | name = "mime" 1404 | version = "0.3.17" 1405 | source = "registry+https://github.com/rust-lang/crates.io-index" 1406 | checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 1407 | 1408 | [[package]] 1409 | name = "minimal-lexical" 1410 | version = "0.2.1" 1411 | source = "registry+https://github.com/rust-lang/crates.io-index" 1412 | checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" 1413 | 1414 | [[package]] 1415 | name = "miniz_oxide" 1416 | version = "0.6.2" 1417 | source = "registry+https://github.com/rust-lang/crates.io-index" 1418 | checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" 1419 | dependencies = [ 1420 | "adler", 1421 | ] 1422 | 1423 | [[package]] 1424 | name = "mio" 1425 | version = "0.8.8" 1426 | source = "registry+https://github.com/rust-lang/crates.io-index" 1427 | checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" 1428 | dependencies = [ 1429 | "libc", 1430 | "log", 1431 | "wasi 0.11.0+wasi-snapshot-preview1", 1432 | "windows-sys 0.48.0", 1433 | ] 1434 | 1435 | [[package]] 1436 | name = "multimap" 1437 | version = "0.8.3" 1438 | source = "registry+https://github.com/rust-lang/crates.io-index" 1439 | checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" 1440 | 1441 | [[package]] 1442 | name = "multitask" 1443 | version = "0.42.1" 1444 | dependencies = [ 1445 | "zellij-tile", 1446 | ] 1447 | 1448 | [[package]] 1449 | name = "nix" 1450 | version = "0.23.2" 1451 | source = "registry+https://github.com/rust-lang/crates.io-index" 1452 | checksum = "8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c" 1453 | dependencies = [ 1454 | "bitflags 1.3.2", 1455 | "cc", 1456 | "cfg-if", 1457 | "libc", 1458 | "memoffset 0.6.5", 1459 | ] 1460 | 1461 | [[package]] 1462 | name = "nix" 1463 | version = "0.29.0" 1464 | source = "registry+https://github.com/rust-lang/crates.io-index" 1465 | checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" 1466 | dependencies = [ 1467 | "bitflags 2.6.0", 1468 | "cfg-if", 1469 | "cfg_aliases", 1470 | "libc", 1471 | "memoffset 0.9.0", 1472 | ] 1473 | 1474 | [[package]] 1475 | name = "nom" 1476 | version = "7.1.3" 1477 | source = "registry+https://github.com/rust-lang/crates.io-index" 1478 | checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" 1479 | dependencies = [ 1480 | "memchr", 1481 | "minimal-lexical", 1482 | ] 1483 | 1484 | [[package]] 1485 | name = "notify" 1486 | version = "6.0.0" 1487 | source = "registry+https://github.com/rust-lang/crates.io-index" 1488 | checksum = "4d9ba6c734de18ca27c8cef5cd7058aa4ac9f63596131e4c7e41e579319032a2" 1489 | dependencies = [ 1490 | "bitflags 1.3.2", 1491 | "crossbeam-channel", 1492 | "filetime", 1493 | "fsevent-sys", 1494 | "inotify", 1495 | "kqueue", 1496 | "libc", 1497 | "mio", 1498 | "walkdir", 1499 | "windows-sys 0.45.0", 1500 | ] 1501 | 1502 | [[package]] 1503 | name = "notify-debouncer-full" 1504 | version = "0.1.0" 1505 | source = "registry+https://github.com/rust-lang/crates.io-index" 1506 | checksum = "f4812c1eb49be776fb8df4961623bdc01ec9dfdc1abe8211ceb09150a2e64219" 1507 | dependencies = [ 1508 | "crossbeam-channel", 1509 | "file-id", 1510 | "notify", 1511 | "parking_lot", 1512 | "walkdir", 1513 | ] 1514 | 1515 | [[package]] 1516 | name = "num-derive" 1517 | version = "0.4.2" 1518 | source = "registry+https://github.com/rust-lang/crates.io-index" 1519 | checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" 1520 | dependencies = [ 1521 | "proc-macro2", 1522 | "quote", 1523 | "syn 2.0.100", 1524 | ] 1525 | 1526 | [[package]] 1527 | name = "num-integer" 1528 | version = "0.1.44" 1529 | source = "registry+https://github.com/rust-lang/crates.io-index" 1530 | checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" 1531 | dependencies = [ 1532 | "autocfg", 1533 | "num-traits", 1534 | ] 1535 | 1536 | [[package]] 1537 | name = "num-traits" 1538 | version = "0.2.14" 1539 | source = "registry+https://github.com/rust-lang/crates.io-index" 1540 | checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" 1541 | dependencies = [ 1542 | "autocfg", 1543 | ] 1544 | 1545 | [[package]] 1546 | name = "object" 1547 | version = "0.30.4" 1548 | source = "registry+https://github.com/rust-lang/crates.io-index" 1549 | checksum = "03b4680b86d9cfafba8fc491dc9b6df26b68cf40e9e6cd73909194759a63c385" 1550 | dependencies = [ 1551 | "memchr", 1552 | ] 1553 | 1554 | [[package]] 1555 | name = "once_cell" 1556 | version = "1.18.0" 1557 | source = "registry+https://github.com/rust-lang/crates.io-index" 1558 | checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" 1559 | 1560 | [[package]] 1561 | name = "openssl-probe" 1562 | version = "0.1.5" 1563 | source = "registry+https://github.com/rust-lang/crates.io-index" 1564 | checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" 1565 | 1566 | [[package]] 1567 | name = "openssl-sys" 1568 | version = "0.9.101" 1569 | source = "registry+https://github.com/rust-lang/crates.io-index" 1570 | checksum = "dda2b0f344e78efc2facf7d195d098df0dd72151b26ab98da807afc26c198dff" 1571 | dependencies = [ 1572 | "cc", 1573 | "libc", 1574 | "pkg-config", 1575 | "vcpkg", 1576 | ] 1577 | 1578 | [[package]] 1579 | name = "option-ext" 1580 | version = "0.2.0" 1581 | source = "registry+https://github.com/rust-lang/crates.io-index" 1582 | checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" 1583 | 1584 | [[package]] 1585 | name = "ordered-float" 1586 | version = "2.10.0" 1587 | source = "registry+https://github.com/rust-lang/crates.io-index" 1588 | checksum = "7940cf2ca942593318d07fcf2596cdca60a85c9e7fab408a5e21a4f9dcd40d87" 1589 | dependencies = [ 1590 | "num-traits", 1591 | ] 1592 | 1593 | [[package]] 1594 | name = "ordered-float" 1595 | version = "4.5.0" 1596 | source = "registry+https://github.com/rust-lang/crates.io-index" 1597 | checksum = "c65ee1f9701bf938026630b455d5315f490640234259037edb259798b3bcf85e" 1598 | dependencies = [ 1599 | "num-traits", 1600 | ] 1601 | 1602 | [[package]] 1603 | name = "os_str_bytes" 1604 | version = "6.5.1" 1605 | source = "registry+https://github.com/rust-lang/crates.io-index" 1606 | checksum = "4d5d9eb14b174ee9aa2ef96dc2b94637a2d4b6e7cb873c7e171f0c20c6cf3eac" 1607 | 1608 | [[package]] 1609 | name = "owo-colors" 1610 | version = "3.5.0" 1611 | source = "registry+https://github.com/rust-lang/crates.io-index" 1612 | checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f" 1613 | 1614 | [[package]] 1615 | name = "parking" 1616 | version = "2.1.0" 1617 | source = "registry+https://github.com/rust-lang/crates.io-index" 1618 | checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e" 1619 | 1620 | [[package]] 1621 | name = "parking_lot" 1622 | version = "0.12.1" 1623 | source = "registry+https://github.com/rust-lang/crates.io-index" 1624 | checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" 1625 | dependencies = [ 1626 | "lock_api", 1627 | "parking_lot_core", 1628 | ] 1629 | 1630 | [[package]] 1631 | name = "parking_lot_core" 1632 | version = "0.9.8" 1633 | source = "registry+https://github.com/rust-lang/crates.io-index" 1634 | checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" 1635 | dependencies = [ 1636 | "cfg-if", 1637 | "libc", 1638 | "redox_syscall 0.3.5", 1639 | "smallvec", 1640 | "windows-targets 0.48.0", 1641 | ] 1642 | 1643 | [[package]] 1644 | name = "paste" 1645 | version = "1.0.12" 1646 | source = "registry+https://github.com/rust-lang/crates.io-index" 1647 | checksum = "9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79" 1648 | 1649 | [[package]] 1650 | name = "percent-encoding" 1651 | version = "2.3.0" 1652 | source = "registry+https://github.com/rust-lang/crates.io-index" 1653 | checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" 1654 | 1655 | [[package]] 1656 | name = "pest" 1657 | version = "2.7.15" 1658 | source = "registry+https://github.com/rust-lang/crates.io-index" 1659 | checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc" 1660 | dependencies = [ 1661 | "memchr", 1662 | "thiserror 2.0.12", 1663 | "ucd-trie", 1664 | ] 1665 | 1666 | [[package]] 1667 | name = "pest_derive" 1668 | version = "2.7.15" 1669 | source = "registry+https://github.com/rust-lang/crates.io-index" 1670 | checksum = "816518421cfc6887a0d62bf441b6ffb4536fcc926395a69e1a85852d4363f57e" 1671 | dependencies = [ 1672 | "pest", 1673 | "pest_generator", 1674 | ] 1675 | 1676 | [[package]] 1677 | name = "pest_generator" 1678 | version = "2.7.15" 1679 | source = "registry+https://github.com/rust-lang/crates.io-index" 1680 | checksum = "7d1396fd3a870fc7838768d171b4616d5c91f6cc25e377b673d714567d99377b" 1681 | dependencies = [ 1682 | "pest", 1683 | "pest_meta", 1684 | "proc-macro2", 1685 | "quote", 1686 | "syn 2.0.100", 1687 | ] 1688 | 1689 | [[package]] 1690 | name = "pest_meta" 1691 | version = "2.7.15" 1692 | source = "registry+https://github.com/rust-lang/crates.io-index" 1693 | checksum = "e1e58089ea25d717bfd31fb534e4f3afcc2cc569c70de3e239778991ea3b7dea" 1694 | dependencies = [ 1695 | "once_cell", 1696 | "pest", 1697 | "sha2", 1698 | ] 1699 | 1700 | [[package]] 1701 | name = "petgraph" 1702 | version = "0.6.4" 1703 | source = "registry+https://github.com/rust-lang/crates.io-index" 1704 | checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" 1705 | dependencies = [ 1706 | "fixedbitset", 1707 | "indexmap 2.0.0", 1708 | ] 1709 | 1710 | [[package]] 1711 | name = "phf" 1712 | version = "0.11.1" 1713 | source = "registry+https://github.com/rust-lang/crates.io-index" 1714 | checksum = "928c6535de93548188ef63bb7c4036bd415cd8f36ad25af44b9789b2ee72a48c" 1715 | dependencies = [ 1716 | "phf_macros", 1717 | "phf_shared", 1718 | ] 1719 | 1720 | [[package]] 1721 | name = "phf_codegen" 1722 | version = "0.11.1" 1723 | source = "registry+https://github.com/rust-lang/crates.io-index" 1724 | checksum = "a56ac890c5e3ca598bbdeaa99964edb5b0258a583a9eb6ef4e89fc85d9224770" 1725 | dependencies = [ 1726 | "phf_generator", 1727 | "phf_shared", 1728 | ] 1729 | 1730 | [[package]] 1731 | name = "phf_generator" 1732 | version = "0.11.1" 1733 | source = "registry+https://github.com/rust-lang/crates.io-index" 1734 | checksum = "b1181c94580fa345f50f19d738aaa39c0ed30a600d95cb2d3e23f94266f14fbf" 1735 | dependencies = [ 1736 | "phf_shared", 1737 | "rand", 1738 | ] 1739 | 1740 | [[package]] 1741 | name = "phf_macros" 1742 | version = "0.11.1" 1743 | source = "registry+https://github.com/rust-lang/crates.io-index" 1744 | checksum = "92aacdc5f16768709a569e913f7451034034178b05bdc8acda226659a3dccc66" 1745 | dependencies = [ 1746 | "phf_generator", 1747 | "phf_shared", 1748 | "proc-macro2", 1749 | "quote", 1750 | "syn 1.0.109", 1751 | ] 1752 | 1753 | [[package]] 1754 | name = "phf_shared" 1755 | version = "0.11.1" 1756 | source = "registry+https://github.com/rust-lang/crates.io-index" 1757 | checksum = "e1fb5f6f826b772a8d4c0394209441e7d37cbbb967ae9c7e0e8134365c9ee676" 1758 | dependencies = [ 1759 | "siphasher 0.3.10", 1760 | ] 1761 | 1762 | [[package]] 1763 | name = "pin-project" 1764 | version = "1.1.5" 1765 | source = "registry+https://github.com/rust-lang/crates.io-index" 1766 | checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" 1767 | dependencies = [ 1768 | "pin-project-internal", 1769 | ] 1770 | 1771 | [[package]] 1772 | name = "pin-project-internal" 1773 | version = "1.1.5" 1774 | source = "registry+https://github.com/rust-lang/crates.io-index" 1775 | checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" 1776 | dependencies = [ 1777 | "proc-macro2", 1778 | "quote", 1779 | "syn 2.0.100", 1780 | ] 1781 | 1782 | [[package]] 1783 | name = "pin-project-lite" 1784 | version = "0.2.9" 1785 | source = "registry+https://github.com/rust-lang/crates.io-index" 1786 | checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" 1787 | 1788 | [[package]] 1789 | name = "pin-utils" 1790 | version = "0.1.0" 1791 | source = "registry+https://github.com/rust-lang/crates.io-index" 1792 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 1793 | 1794 | [[package]] 1795 | name = "pkg-config" 1796 | version = "0.3.30" 1797 | source = "registry+https://github.com/rust-lang/crates.io-index" 1798 | checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" 1799 | 1800 | [[package]] 1801 | name = "polling" 1802 | version = "2.8.0" 1803 | source = "registry+https://github.com/rust-lang/crates.io-index" 1804 | checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" 1805 | dependencies = [ 1806 | "autocfg", 1807 | "bitflags 1.3.2", 1808 | "cfg-if", 1809 | "concurrent-queue", 1810 | "libc", 1811 | "log", 1812 | "pin-project-lite", 1813 | "windows-sys 0.48.0", 1814 | ] 1815 | 1816 | [[package]] 1817 | name = "prettyplease" 1818 | version = "0.1.25" 1819 | source = "registry+https://github.com/rust-lang/crates.io-index" 1820 | checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" 1821 | dependencies = [ 1822 | "proc-macro2", 1823 | "syn 1.0.109", 1824 | ] 1825 | 1826 | [[package]] 1827 | name = "proc-macro-error" 1828 | version = "1.0.4" 1829 | source = "registry+https://github.com/rust-lang/crates.io-index" 1830 | checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" 1831 | dependencies = [ 1832 | "proc-macro-error-attr", 1833 | "proc-macro2", 1834 | "quote", 1835 | "syn 1.0.109", 1836 | "version_check", 1837 | ] 1838 | 1839 | [[package]] 1840 | name = "proc-macro-error-attr" 1841 | version = "1.0.4" 1842 | source = "registry+https://github.com/rust-lang/crates.io-index" 1843 | checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" 1844 | dependencies = [ 1845 | "proc-macro2", 1846 | "quote", 1847 | "version_check", 1848 | ] 1849 | 1850 | [[package]] 1851 | name = "proc-macro2" 1852 | version = "1.0.94" 1853 | source = "registry+https://github.com/rust-lang/crates.io-index" 1854 | checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" 1855 | dependencies = [ 1856 | "unicode-ident", 1857 | ] 1858 | 1859 | [[package]] 1860 | name = "prost" 1861 | version = "0.11.9" 1862 | source = "registry+https://github.com/rust-lang/crates.io-index" 1863 | checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" 1864 | dependencies = [ 1865 | "bytes", 1866 | "prost-derive", 1867 | ] 1868 | 1869 | [[package]] 1870 | name = "prost-build" 1871 | version = "0.11.9" 1872 | source = "registry+https://github.com/rust-lang/crates.io-index" 1873 | checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" 1874 | dependencies = [ 1875 | "bytes", 1876 | "heck 0.4.1", 1877 | "itertools", 1878 | "lazy_static", 1879 | "log", 1880 | "multimap", 1881 | "petgraph", 1882 | "prettyplease", 1883 | "prost", 1884 | "prost-types", 1885 | "regex", 1886 | "syn 1.0.109", 1887 | "tempfile", 1888 | "which", 1889 | ] 1890 | 1891 | [[package]] 1892 | name = "prost-derive" 1893 | version = "0.11.9" 1894 | source = "registry+https://github.com/rust-lang/crates.io-index" 1895 | checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" 1896 | dependencies = [ 1897 | "anyhow", 1898 | "itertools", 1899 | "proc-macro2", 1900 | "quote", 1901 | "syn 1.0.109", 1902 | ] 1903 | 1904 | [[package]] 1905 | name = "prost-types" 1906 | version = "0.11.9" 1907 | source = "registry+https://github.com/rust-lang/crates.io-index" 1908 | checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" 1909 | dependencies = [ 1910 | "prost", 1911 | ] 1912 | 1913 | [[package]] 1914 | name = "quote" 1915 | version = "1.0.40" 1916 | source = "registry+https://github.com/rust-lang/crates.io-index" 1917 | checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" 1918 | dependencies = [ 1919 | "proc-macro2", 1920 | ] 1921 | 1922 | [[package]] 1923 | name = "r-efi" 1924 | version = "5.2.0" 1925 | source = "registry+https://github.com/rust-lang/crates.io-index" 1926 | checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" 1927 | 1928 | [[package]] 1929 | name = "rand" 1930 | version = "0.8.5" 1931 | source = "registry+https://github.com/rust-lang/crates.io-index" 1932 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 1933 | dependencies = [ 1934 | "rand_core", 1935 | ] 1936 | 1937 | [[package]] 1938 | name = "rand_core" 1939 | version = "0.6.4" 1940 | source = "registry+https://github.com/rust-lang/crates.io-index" 1941 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 1942 | 1943 | [[package]] 1944 | name = "redox_syscall" 1945 | version = "0.2.16" 1946 | source = "registry+https://github.com/rust-lang/crates.io-index" 1947 | checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" 1948 | dependencies = [ 1949 | "bitflags 1.3.2", 1950 | ] 1951 | 1952 | [[package]] 1953 | name = "redox_syscall" 1954 | version = "0.3.5" 1955 | source = "registry+https://github.com/rust-lang/crates.io-index" 1956 | checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" 1957 | dependencies = [ 1958 | "bitflags 1.3.2", 1959 | ] 1960 | 1961 | [[package]] 1962 | name = "redox_users" 1963 | version = "0.4.3" 1964 | source = "registry+https://github.com/rust-lang/crates.io-index" 1965 | checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" 1966 | dependencies = [ 1967 | "getrandom 0.2.10", 1968 | "redox_syscall 0.2.16", 1969 | "thiserror 1.0.40", 1970 | ] 1971 | 1972 | [[package]] 1973 | name = "regex" 1974 | version = "1.8.4" 1975 | source = "registry+https://github.com/rust-lang/crates.io-index" 1976 | checksum = "d0ab3ca65655bb1e41f2a8c8cd662eb4fb035e67c3f78da1d61dffe89d07300f" 1977 | dependencies = [ 1978 | "aho-corasick", 1979 | "memchr", 1980 | "regex-syntax", 1981 | ] 1982 | 1983 | [[package]] 1984 | name = "regex-syntax" 1985 | version = "0.7.2" 1986 | source = "registry+https://github.com/rust-lang/crates.io-index" 1987 | checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78" 1988 | 1989 | [[package]] 1990 | name = "rmp" 1991 | version = "0.8.11" 1992 | source = "registry+https://github.com/rust-lang/crates.io-index" 1993 | checksum = "44519172358fd6d58656c86ab8e7fbc9e1490c3e8f14d35ed78ca0dd07403c9f" 1994 | dependencies = [ 1995 | "byteorder", 1996 | "num-traits", 1997 | "paste", 1998 | ] 1999 | 2000 | [[package]] 2001 | name = "rmp-serde" 2002 | version = "1.1.1" 2003 | source = "registry+https://github.com/rust-lang/crates.io-index" 2004 | checksum = "c5b13be192e0220b8afb7222aa5813cb62cc269ebb5cac346ca6487681d2913e" 2005 | dependencies = [ 2006 | "byteorder", 2007 | "rmp", 2008 | "serde", 2009 | ] 2010 | 2011 | [[package]] 2012 | name = "rustc-demangle" 2013 | version = "0.1.23" 2014 | source = "registry+https://github.com/rust-lang/crates.io-index" 2015 | checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" 2016 | 2017 | [[package]] 2018 | name = "rustc_version" 2019 | version = "0.4.0" 2020 | source = "registry+https://github.com/rust-lang/crates.io-index" 2021 | checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" 2022 | dependencies = [ 2023 | "semver", 2024 | ] 2025 | 2026 | [[package]] 2027 | name = "rustix" 2028 | version = "0.37.20" 2029 | source = "registry+https://github.com/rust-lang/crates.io-index" 2030 | checksum = "b96e891d04aa506a6d1f318d2771bcb1c7dfda84e126660ace067c9b474bb2c0" 2031 | dependencies = [ 2032 | "bitflags 1.3.2", 2033 | "errno", 2034 | "io-lifetimes", 2035 | "libc", 2036 | "linux-raw-sys", 2037 | "windows-sys 0.48.0", 2038 | ] 2039 | 2040 | [[package]] 2041 | name = "ryu" 2042 | version = "1.0.5" 2043 | source = "registry+https://github.com/rust-lang/crates.io-index" 2044 | checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" 2045 | 2046 | [[package]] 2047 | name = "same-file" 2048 | version = "1.0.6" 2049 | source = "registry+https://github.com/rust-lang/crates.io-index" 2050 | checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 2051 | dependencies = [ 2052 | "winapi-util", 2053 | ] 2054 | 2055 | [[package]] 2056 | name = "schannel" 2057 | version = "0.1.23" 2058 | source = "registry+https://github.com/rust-lang/crates.io-index" 2059 | checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" 2060 | dependencies = [ 2061 | "windows-sys 0.52.0", 2062 | ] 2063 | 2064 | [[package]] 2065 | name = "scopeguard" 2066 | version = "1.1.0" 2067 | source = "registry+https://github.com/rust-lang/crates.io-index" 2068 | checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" 2069 | 2070 | [[package]] 2071 | name = "semver" 2072 | version = "1.0.17" 2073 | source = "registry+https://github.com/rust-lang/crates.io-index" 2074 | checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" 2075 | 2076 | [[package]] 2077 | name = "serde" 2078 | version = "1.0.164" 2079 | source = "registry+https://github.com/rust-lang/crates.io-index" 2080 | checksum = "9e8c8cf938e98f769bc164923b06dce91cea1751522f46f8466461af04c9027d" 2081 | dependencies = [ 2082 | "serde_derive", 2083 | ] 2084 | 2085 | [[package]] 2086 | name = "serde-value" 2087 | version = "0.7.0" 2088 | source = "registry+https://github.com/rust-lang/crates.io-index" 2089 | checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" 2090 | dependencies = [ 2091 | "ordered-float 2.10.0", 2092 | "serde", 2093 | ] 2094 | 2095 | [[package]] 2096 | name = "serde_derive" 2097 | version = "1.0.164" 2098 | source = "registry+https://github.com/rust-lang/crates.io-index" 2099 | checksum = "d9735b638ccc51c28bf6914d90a2e9725b377144fc612c49a611fddd1b631d68" 2100 | dependencies = [ 2101 | "proc-macro2", 2102 | "quote", 2103 | "syn 2.0.100", 2104 | ] 2105 | 2106 | [[package]] 2107 | name = "serde_json" 2108 | version = "1.0.64" 2109 | source = "registry+https://github.com/rust-lang/crates.io-index" 2110 | checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79" 2111 | dependencies = [ 2112 | "itoa 0.4.7", 2113 | "ryu", 2114 | "serde", 2115 | ] 2116 | 2117 | [[package]] 2118 | name = "serde_yaml" 2119 | version = "0.8.26" 2120 | source = "registry+https://github.com/rust-lang/crates.io-index" 2121 | checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" 2122 | dependencies = [ 2123 | "indexmap 1.9.3", 2124 | "ryu", 2125 | "serde", 2126 | "yaml-rust", 2127 | ] 2128 | 2129 | [[package]] 2130 | name = "sha2" 2131 | version = "0.10.6" 2132 | source = "registry+https://github.com/rust-lang/crates.io-index" 2133 | checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" 2134 | dependencies = [ 2135 | "cfg-if", 2136 | "cpufeatures", 2137 | "digest", 2138 | ] 2139 | 2140 | [[package]] 2141 | name = "shellexpand" 2142 | version = "3.1.0" 2143 | source = "registry+https://github.com/rust-lang/crates.io-index" 2144 | checksum = "da03fa3b94cc19e3ebfc88c4229c49d8f08cdbd1228870a45f0ffdf84988e14b" 2145 | dependencies = [ 2146 | "dirs", 2147 | ] 2148 | 2149 | [[package]] 2150 | name = "signal-hook" 2151 | version = "0.3.15" 2152 | source = "registry+https://github.com/rust-lang/crates.io-index" 2153 | checksum = "732768f1176d21d09e076c23a93123d40bba92d50c4058da34d45c8de8e682b9" 2154 | dependencies = [ 2155 | "libc", 2156 | "signal-hook-registry", 2157 | ] 2158 | 2159 | [[package]] 2160 | name = "signal-hook-registry" 2161 | version = "1.4.1" 2162 | source = "registry+https://github.com/rust-lang/crates.io-index" 2163 | checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" 2164 | dependencies = [ 2165 | "libc", 2166 | ] 2167 | 2168 | [[package]] 2169 | name = "siphasher" 2170 | version = "0.3.10" 2171 | source = "registry+https://github.com/rust-lang/crates.io-index" 2172 | checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" 2173 | 2174 | [[package]] 2175 | name = "siphasher" 2176 | version = "1.0.1" 2177 | source = "registry+https://github.com/rust-lang/crates.io-index" 2178 | checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" 2179 | 2180 | [[package]] 2181 | name = "slab" 2182 | version = "0.4.8" 2183 | source = "registry+https://github.com/rust-lang/crates.io-index" 2184 | checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" 2185 | dependencies = [ 2186 | "autocfg", 2187 | ] 2188 | 2189 | [[package]] 2190 | name = "sluice" 2191 | version = "0.5.5" 2192 | source = "registry+https://github.com/rust-lang/crates.io-index" 2193 | checksum = "6d7400c0eff44aa2fcb5e31a5f24ba9716ed90138769e4977a2ba6014ae63eb5" 2194 | dependencies = [ 2195 | "async-channel", 2196 | "futures-core", 2197 | "futures-io", 2198 | ] 2199 | 2200 | [[package]] 2201 | name = "smallvec" 2202 | version = "1.10.0" 2203 | source = "registry+https://github.com/rust-lang/crates.io-index" 2204 | checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" 2205 | 2206 | [[package]] 2207 | name = "smawk" 2208 | version = "0.3.1" 2209 | source = "registry+https://github.com/rust-lang/crates.io-index" 2210 | checksum = "f67ad224767faa3c7d8b6d91985b78e70a1324408abcb1cfcc2be4c06bc06043" 2211 | 2212 | [[package]] 2213 | name = "socket2" 2214 | version = "0.4.9" 2215 | source = "registry+https://github.com/rust-lang/crates.io-index" 2216 | checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" 2217 | dependencies = [ 2218 | "libc", 2219 | "winapi", 2220 | ] 2221 | 2222 | [[package]] 2223 | name = "socket2" 2224 | version = "0.5.4" 2225 | source = "registry+https://github.com/rust-lang/crates.io-index" 2226 | checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e" 2227 | dependencies = [ 2228 | "libc", 2229 | "windows-sys 0.48.0", 2230 | ] 2231 | 2232 | [[package]] 2233 | name = "spinning" 2234 | version = "0.1.0" 2235 | source = "registry+https://github.com/rust-lang/crates.io-index" 2236 | checksum = "2d4f0e86297cad2658d92a707320d87bf4e6ae1050287f51d19b67ef3f153a7b" 2237 | dependencies = [ 2238 | "lock_api", 2239 | ] 2240 | 2241 | [[package]] 2242 | name = "strip-ansi-escapes" 2243 | version = "0.1.1" 2244 | source = "registry+https://github.com/rust-lang/crates.io-index" 2245 | checksum = "011cbb39cf7c1f62871aea3cc46e5817b0937b49e9447370c93cacbe93a766d8" 2246 | dependencies = [ 2247 | "vte 0.10.1", 2248 | ] 2249 | 2250 | [[package]] 2251 | name = "strsim" 2252 | version = "0.10.0" 2253 | source = "registry+https://github.com/rust-lang/crates.io-index" 2254 | checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" 2255 | 2256 | [[package]] 2257 | name = "strsim" 2258 | version = "0.11.1" 2259 | source = "registry+https://github.com/rust-lang/crates.io-index" 2260 | checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" 2261 | 2262 | [[package]] 2263 | name = "strum" 2264 | version = "0.20.0" 2265 | source = "registry+https://github.com/rust-lang/crates.io-index" 2266 | checksum = "7318c509b5ba57f18533982607f24070a55d353e90d4cae30c467cdb2ad5ac5c" 2267 | 2268 | [[package]] 2269 | name = "strum_macros" 2270 | version = "0.20.1" 2271 | source = "registry+https://github.com/rust-lang/crates.io-index" 2272 | checksum = "ee8bc6b87a5112aeeab1f4a9f7ab634fe6cbefc4850006df31267f4cfb9e3149" 2273 | dependencies = [ 2274 | "heck 0.3.2", 2275 | "proc-macro2", 2276 | "quote", 2277 | "syn 1.0.109", 2278 | ] 2279 | 2280 | [[package]] 2281 | name = "supports-color" 2282 | version = "2.0.0" 2283 | source = "registry+https://github.com/rust-lang/crates.io-index" 2284 | checksum = "4950e7174bffabe99455511c39707310e7e9b440364a2fcb1cc21521be57b354" 2285 | dependencies = [ 2286 | "is-terminal", 2287 | "is_ci", 2288 | ] 2289 | 2290 | [[package]] 2291 | name = "supports-hyperlinks" 2292 | version = "2.1.0" 2293 | source = "registry+https://github.com/rust-lang/crates.io-index" 2294 | checksum = "f84231692eb0d4d41e4cdd0cabfdd2e6cd9e255e65f80c9aa7c98dd502b4233d" 2295 | dependencies = [ 2296 | "is-terminal", 2297 | ] 2298 | 2299 | [[package]] 2300 | name = "supports-unicode" 2301 | version = "2.0.0" 2302 | source = "registry+https://github.com/rust-lang/crates.io-index" 2303 | checksum = "4b6c2cb240ab5dd21ed4906895ee23fe5a48acdbd15a3ce388e7b62a9b66baf7" 2304 | dependencies = [ 2305 | "is-terminal", 2306 | ] 2307 | 2308 | [[package]] 2309 | name = "syn" 2310 | version = "1.0.109" 2311 | source = "registry+https://github.com/rust-lang/crates.io-index" 2312 | checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 2313 | dependencies = [ 2314 | "proc-macro2", 2315 | "quote", 2316 | "unicode-ident", 2317 | ] 2318 | 2319 | [[package]] 2320 | name = "syn" 2321 | version = "2.0.100" 2322 | source = "registry+https://github.com/rust-lang/crates.io-index" 2323 | checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" 2324 | dependencies = [ 2325 | "proc-macro2", 2326 | "quote", 2327 | "unicode-ident", 2328 | ] 2329 | 2330 | [[package]] 2331 | name = "tempfile" 2332 | version = "3.6.0" 2333 | source = "registry+https://github.com/rust-lang/crates.io-index" 2334 | checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6" 2335 | dependencies = [ 2336 | "autocfg", 2337 | "cfg-if", 2338 | "fastrand", 2339 | "redox_syscall 0.3.5", 2340 | "rustix", 2341 | "windows-sys 0.48.0", 2342 | ] 2343 | 2344 | [[package]] 2345 | name = "termcolor" 2346 | version = "1.2.0" 2347 | source = "registry+https://github.com/rust-lang/crates.io-index" 2348 | checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" 2349 | dependencies = [ 2350 | "winapi-util", 2351 | ] 2352 | 2353 | [[package]] 2354 | name = "terminal_size" 2355 | version = "0.1.17" 2356 | source = "registry+https://github.com/rust-lang/crates.io-index" 2357 | checksum = "633c1a546cee861a1a6d0dc69ebeca693bf4296661ba7852b9d21d159e0506df" 2358 | dependencies = [ 2359 | "libc", 2360 | "winapi", 2361 | ] 2362 | 2363 | [[package]] 2364 | name = "terminfo" 2365 | version = "0.9.0" 2366 | source = "registry+https://github.com/rust-lang/crates.io-index" 2367 | checksum = "d4ea810f0692f9f51b382fff5893887bb4580f5fa246fde546e0b13e7fcee662" 2368 | dependencies = [ 2369 | "fnv", 2370 | "nom", 2371 | "phf", 2372 | "phf_codegen", 2373 | ] 2374 | 2375 | [[package]] 2376 | name = "termios" 2377 | version = "0.3.3" 2378 | source = "registry+https://github.com/rust-lang/crates.io-index" 2379 | checksum = "411c5bf740737c7918b8b1fe232dca4dc9f8e754b8ad5e20966814001ed0ac6b" 2380 | dependencies = [ 2381 | "libc", 2382 | ] 2383 | 2384 | [[package]] 2385 | name = "termwiz" 2386 | version = "0.23.3" 2387 | source = "registry+https://github.com/rust-lang/crates.io-index" 2388 | checksum = "4676b37242ccbd1aabf56edb093a4827dc49086c0ffd764a5705899e0f35f8f7" 2389 | dependencies = [ 2390 | "anyhow", 2391 | "base64", 2392 | "bitflags 2.6.0", 2393 | "fancy-regex", 2394 | "filedescriptor", 2395 | "finl_unicode", 2396 | "fixedbitset", 2397 | "hex", 2398 | "lazy_static", 2399 | "libc", 2400 | "log", 2401 | "memmem", 2402 | "nix 0.29.0", 2403 | "num-derive", 2404 | "num-traits", 2405 | "ordered-float 4.5.0", 2406 | "pest", 2407 | "pest_derive", 2408 | "phf", 2409 | "sha2", 2410 | "signal-hook", 2411 | "siphasher 1.0.1", 2412 | "terminfo", 2413 | "termios", 2414 | "thiserror 1.0.40", 2415 | "ucd-trie", 2416 | "unicode-segmentation", 2417 | "vtparse", 2418 | "wezterm-bidi", 2419 | "wezterm-blob-leases", 2420 | "wezterm-color-types", 2421 | "wezterm-dynamic", 2422 | "wezterm-input-types", 2423 | "winapi", 2424 | ] 2425 | 2426 | [[package]] 2427 | name = "textwrap" 2428 | version = "0.15.2" 2429 | source = "registry+https://github.com/rust-lang/crates.io-index" 2430 | checksum = "b7b3e525a49ec206798b40326a44121291b530c963cfb01018f63e135bac543d" 2431 | dependencies = [ 2432 | "smawk", 2433 | "unicode-linebreak", 2434 | "unicode-width", 2435 | ] 2436 | 2437 | [[package]] 2438 | name = "textwrap" 2439 | version = "0.16.0" 2440 | source = "registry+https://github.com/rust-lang/crates.io-index" 2441 | checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" 2442 | 2443 | [[package]] 2444 | name = "thiserror" 2445 | version = "1.0.40" 2446 | source = "registry+https://github.com/rust-lang/crates.io-index" 2447 | checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" 2448 | dependencies = [ 2449 | "thiserror-impl 1.0.40", 2450 | ] 2451 | 2452 | [[package]] 2453 | name = "thiserror" 2454 | version = "2.0.12" 2455 | source = "registry+https://github.com/rust-lang/crates.io-index" 2456 | checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" 2457 | dependencies = [ 2458 | "thiserror-impl 2.0.12", 2459 | ] 2460 | 2461 | [[package]] 2462 | name = "thiserror-impl" 2463 | version = "1.0.40" 2464 | source = "registry+https://github.com/rust-lang/crates.io-index" 2465 | checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" 2466 | dependencies = [ 2467 | "proc-macro2", 2468 | "quote", 2469 | "syn 2.0.100", 2470 | ] 2471 | 2472 | [[package]] 2473 | name = "thiserror-impl" 2474 | version = "2.0.12" 2475 | source = "registry+https://github.com/rust-lang/crates.io-index" 2476 | checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" 2477 | dependencies = [ 2478 | "proc-macro2", 2479 | "quote", 2480 | "syn 2.0.100", 2481 | ] 2482 | 2483 | [[package]] 2484 | name = "thread-id" 2485 | version = "4.1.0" 2486 | source = "registry+https://github.com/rust-lang/crates.io-index" 2487 | checksum = "3ee93aa2b8331c0fec9091548843f2c90019571814057da3b783f9de09349d73" 2488 | dependencies = [ 2489 | "libc", 2490 | "redox_syscall 0.2.16", 2491 | "winapi", 2492 | ] 2493 | 2494 | [[package]] 2495 | name = "time" 2496 | version = "0.1.44" 2497 | source = "registry+https://github.com/rust-lang/crates.io-index" 2498 | checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" 2499 | dependencies = [ 2500 | "libc", 2501 | "wasi 0.10.0+wasi-snapshot-preview1", 2502 | "winapi", 2503 | ] 2504 | 2505 | [[package]] 2506 | name = "tinyvec" 2507 | version = "1.6.0" 2508 | source = "registry+https://github.com/rust-lang/crates.io-index" 2509 | checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" 2510 | dependencies = [ 2511 | "tinyvec_macros", 2512 | ] 2513 | 2514 | [[package]] 2515 | name = "tinyvec_macros" 2516 | version = "0.1.1" 2517 | source = "registry+https://github.com/rust-lang/crates.io-index" 2518 | checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 2519 | 2520 | [[package]] 2521 | name = "to_method" 2522 | version = "1.1.0" 2523 | source = "registry+https://github.com/rust-lang/crates.io-index" 2524 | checksum = "c7c4ceeeca15c8384bbc3e011dbd8fccb7f068a440b752b7d9b32ceb0ca0e2e8" 2525 | 2526 | [[package]] 2527 | name = "tracing" 2528 | version = "0.1.40" 2529 | source = "registry+https://github.com/rust-lang/crates.io-index" 2530 | checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" 2531 | dependencies = [ 2532 | "log", 2533 | "pin-project-lite", 2534 | "tracing-attributes", 2535 | "tracing-core", 2536 | ] 2537 | 2538 | [[package]] 2539 | name = "tracing-attributes" 2540 | version = "0.1.27" 2541 | source = "registry+https://github.com/rust-lang/crates.io-index" 2542 | checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" 2543 | dependencies = [ 2544 | "proc-macro2", 2545 | "quote", 2546 | "syn 2.0.100", 2547 | ] 2548 | 2549 | [[package]] 2550 | name = "tracing-core" 2551 | version = "0.1.32" 2552 | source = "registry+https://github.com/rust-lang/crates.io-index" 2553 | checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" 2554 | dependencies = [ 2555 | "once_cell", 2556 | ] 2557 | 2558 | [[package]] 2559 | name = "tracing-futures" 2560 | version = "0.2.5" 2561 | source = "registry+https://github.com/rust-lang/crates.io-index" 2562 | checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" 2563 | dependencies = [ 2564 | "pin-project", 2565 | "tracing", 2566 | ] 2567 | 2568 | [[package]] 2569 | name = "typemap-ors" 2570 | version = "1.0.0" 2571 | source = "registry+https://github.com/rust-lang/crates.io-index" 2572 | checksum = "a68c24b707f02dd18f1e4ccceb9d49f2058c2fb86384ef9972592904d7a28867" 2573 | dependencies = [ 2574 | "unsafe-any-ors", 2575 | ] 2576 | 2577 | [[package]] 2578 | name = "typenum" 2579 | version = "1.16.0" 2580 | source = "registry+https://github.com/rust-lang/crates.io-index" 2581 | checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" 2582 | 2583 | [[package]] 2584 | name = "ucd-trie" 2585 | version = "0.1.5" 2586 | source = "registry+https://github.com/rust-lang/crates.io-index" 2587 | checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" 2588 | 2589 | [[package]] 2590 | name = "unicode-bidi" 2591 | version = "0.3.13" 2592 | source = "registry+https://github.com/rust-lang/crates.io-index" 2593 | checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" 2594 | 2595 | [[package]] 2596 | name = "unicode-ident" 2597 | version = "1.0.9" 2598 | source = "registry+https://github.com/rust-lang/crates.io-index" 2599 | checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0" 2600 | 2601 | [[package]] 2602 | name = "unicode-linebreak" 2603 | version = "0.1.4" 2604 | source = "registry+https://github.com/rust-lang/crates.io-index" 2605 | checksum = "c5faade31a542b8b35855fff6e8def199853b2da8da256da52f52f1316ee3137" 2606 | dependencies = [ 2607 | "hashbrown 0.12.3", 2608 | "regex", 2609 | ] 2610 | 2611 | [[package]] 2612 | name = "unicode-normalization" 2613 | version = "0.1.22" 2614 | source = "registry+https://github.com/rust-lang/crates.io-index" 2615 | checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" 2616 | dependencies = [ 2617 | "tinyvec", 2618 | ] 2619 | 2620 | [[package]] 2621 | name = "unicode-segmentation" 2622 | version = "1.12.0" 2623 | source = "registry+https://github.com/rust-lang/crates.io-index" 2624 | checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" 2625 | 2626 | [[package]] 2627 | name = "unicode-width" 2628 | version = "0.1.10" 2629 | source = "registry+https://github.com/rust-lang/crates.io-index" 2630 | checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" 2631 | 2632 | [[package]] 2633 | name = "unsafe-any-ors" 2634 | version = "1.0.0" 2635 | source = "registry+https://github.com/rust-lang/crates.io-index" 2636 | checksum = "e0a303d30665362d9680d7d91d78b23f5f899504d4f08b3c4cf08d055d87c0ad" 2637 | dependencies = [ 2638 | "destructure_traitobject", 2639 | ] 2640 | 2641 | [[package]] 2642 | name = "url" 2643 | version = "2.4.0" 2644 | source = "registry+https://github.com/rust-lang/crates.io-index" 2645 | checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb" 2646 | dependencies = [ 2647 | "form_urlencoded", 2648 | "idna", 2649 | "percent-encoding", 2650 | "serde", 2651 | ] 2652 | 2653 | [[package]] 2654 | name = "utf8parse" 2655 | version = "0.2.1" 2656 | source = "registry+https://github.com/rust-lang/crates.io-index" 2657 | checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" 2658 | 2659 | [[package]] 2660 | name = "uuid" 2661 | version = "1.16.0" 2662 | source = "registry+https://github.com/rust-lang/crates.io-index" 2663 | checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" 2664 | dependencies = [ 2665 | "atomic", 2666 | "getrandom 0.3.2", 2667 | "serde", 2668 | ] 2669 | 2670 | [[package]] 2671 | name = "value-bag" 2672 | version = "1.4.0" 2673 | source = "registry+https://github.com/rust-lang/crates.io-index" 2674 | checksum = "a4d330786735ea358f3bc09eea4caa098569c1c93f342d9aca0514915022fe7e" 2675 | 2676 | [[package]] 2677 | name = "vcpkg" 2678 | version = "0.2.15" 2679 | source = "registry+https://github.com/rust-lang/crates.io-index" 2680 | checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" 2681 | 2682 | [[package]] 2683 | name = "version_check" 2684 | version = "0.9.4" 2685 | source = "registry+https://github.com/rust-lang/crates.io-index" 2686 | checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 2687 | 2688 | [[package]] 2689 | name = "vte" 2690 | version = "0.10.1" 2691 | source = "registry+https://github.com/rust-lang/crates.io-index" 2692 | checksum = "6cbce692ab4ca2f1f3047fcf732430249c0e971bfdd2b234cf2c47ad93af5983" 2693 | dependencies = [ 2694 | "arrayvec", 2695 | "utf8parse", 2696 | "vte_generate_state_changes", 2697 | ] 2698 | 2699 | [[package]] 2700 | name = "vte" 2701 | version = "0.11.1" 2702 | source = "registry+https://github.com/rust-lang/crates.io-index" 2703 | checksum = "f5022b5fbf9407086c180e9557be968742d839e68346af7792b8592489732197" 2704 | dependencies = [ 2705 | "utf8parse", 2706 | "vte_generate_state_changes", 2707 | ] 2708 | 2709 | [[package]] 2710 | name = "vte_generate_state_changes" 2711 | version = "0.1.1" 2712 | source = "registry+https://github.com/rust-lang/crates.io-index" 2713 | checksum = "d257817081c7dffcdbab24b9e62d2def62e2ff7d00b1c20062551e6cccc145ff" 2714 | dependencies = [ 2715 | "proc-macro2", 2716 | "quote", 2717 | ] 2718 | 2719 | [[package]] 2720 | name = "vtparse" 2721 | version = "0.6.2" 2722 | source = "registry+https://github.com/rust-lang/crates.io-index" 2723 | checksum = "6d9b2acfb050df409c972a37d3b8e08cdea3bddb0c09db9d53137e504cfabed0" 2724 | dependencies = [ 2725 | "utf8parse", 2726 | ] 2727 | 2728 | [[package]] 2729 | name = "waker-fn" 2730 | version = "1.1.0" 2731 | source = "registry+https://github.com/rust-lang/crates.io-index" 2732 | checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" 2733 | 2734 | [[package]] 2735 | name = "walkdir" 2736 | version = "2.3.3" 2737 | source = "registry+https://github.com/rust-lang/crates.io-index" 2738 | checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" 2739 | dependencies = [ 2740 | "same-file", 2741 | "winapi-util", 2742 | ] 2743 | 2744 | [[package]] 2745 | name = "wasi" 2746 | version = "0.10.0+wasi-snapshot-preview1" 2747 | source = "registry+https://github.com/rust-lang/crates.io-index" 2748 | checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" 2749 | 2750 | [[package]] 2751 | name = "wasi" 2752 | version = "0.11.0+wasi-snapshot-preview1" 2753 | source = "registry+https://github.com/rust-lang/crates.io-index" 2754 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 2755 | 2756 | [[package]] 2757 | name = "wasi" 2758 | version = "0.14.2+wasi-0.2.4" 2759 | source = "registry+https://github.com/rust-lang/crates.io-index" 2760 | checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" 2761 | dependencies = [ 2762 | "wit-bindgen-rt", 2763 | ] 2764 | 2765 | [[package]] 2766 | name = "wasm-bindgen" 2767 | version = "0.2.87" 2768 | source = "registry+https://github.com/rust-lang/crates.io-index" 2769 | checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" 2770 | dependencies = [ 2771 | "cfg-if", 2772 | "wasm-bindgen-macro", 2773 | ] 2774 | 2775 | [[package]] 2776 | name = "wasm-bindgen-backend" 2777 | version = "0.2.87" 2778 | source = "registry+https://github.com/rust-lang/crates.io-index" 2779 | checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" 2780 | dependencies = [ 2781 | "bumpalo", 2782 | "log", 2783 | "once_cell", 2784 | "proc-macro2", 2785 | "quote", 2786 | "syn 2.0.100", 2787 | "wasm-bindgen-shared", 2788 | ] 2789 | 2790 | [[package]] 2791 | name = "wasm-bindgen-futures" 2792 | version = "0.4.37" 2793 | source = "registry+https://github.com/rust-lang/crates.io-index" 2794 | checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" 2795 | dependencies = [ 2796 | "cfg-if", 2797 | "js-sys", 2798 | "wasm-bindgen", 2799 | "web-sys", 2800 | ] 2801 | 2802 | [[package]] 2803 | name = "wasm-bindgen-macro" 2804 | version = "0.2.87" 2805 | source = "registry+https://github.com/rust-lang/crates.io-index" 2806 | checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" 2807 | dependencies = [ 2808 | "quote", 2809 | "wasm-bindgen-macro-support", 2810 | ] 2811 | 2812 | [[package]] 2813 | name = "wasm-bindgen-macro-support" 2814 | version = "0.2.87" 2815 | source = "registry+https://github.com/rust-lang/crates.io-index" 2816 | checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" 2817 | dependencies = [ 2818 | "proc-macro2", 2819 | "quote", 2820 | "syn 2.0.100", 2821 | "wasm-bindgen-backend", 2822 | "wasm-bindgen-shared", 2823 | ] 2824 | 2825 | [[package]] 2826 | name = "wasm-bindgen-shared" 2827 | version = "0.2.87" 2828 | source = "registry+https://github.com/rust-lang/crates.io-index" 2829 | checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" 2830 | 2831 | [[package]] 2832 | name = "web-sys" 2833 | version = "0.3.64" 2834 | source = "registry+https://github.com/rust-lang/crates.io-index" 2835 | checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" 2836 | dependencies = [ 2837 | "js-sys", 2838 | "wasm-bindgen", 2839 | ] 2840 | 2841 | [[package]] 2842 | name = "wezterm-bidi" 2843 | version = "0.2.3" 2844 | source = "registry+https://github.com/rust-lang/crates.io-index" 2845 | checksum = "0c0a6e355560527dd2d1cf7890652f4f09bb3433b6aadade4c9b5ed76de5f3ec" 2846 | dependencies = [ 2847 | "log", 2848 | "wezterm-dynamic", 2849 | ] 2850 | 2851 | [[package]] 2852 | name = "wezterm-blob-leases" 2853 | version = "0.1.1" 2854 | source = "registry+https://github.com/rust-lang/crates.io-index" 2855 | checksum = "692daff6d93d94e29e4114544ef6d5c942a7ed998b37abdc19b17136ea428eb7" 2856 | dependencies = [ 2857 | "getrandom 0.3.2", 2858 | "mac_address", 2859 | "sha2", 2860 | "thiserror 1.0.40", 2861 | "uuid", 2862 | ] 2863 | 2864 | [[package]] 2865 | name = "wezterm-color-types" 2866 | version = "0.3.0" 2867 | source = "registry+https://github.com/rust-lang/crates.io-index" 2868 | checksum = "7de81ef35c9010270d63772bebef2f2d6d1f2d20a983d27505ac850b8c4b4296" 2869 | dependencies = [ 2870 | "csscolorparser", 2871 | "deltae", 2872 | "lazy_static", 2873 | "wezterm-dynamic", 2874 | ] 2875 | 2876 | [[package]] 2877 | name = "wezterm-dynamic" 2878 | version = "0.2.1" 2879 | source = "registry+https://github.com/rust-lang/crates.io-index" 2880 | checksum = "5f2ab60e120fd6eaa68d9567f3226e876684639d22a4219b313ff69ec0ccd5ac" 2881 | dependencies = [ 2882 | "log", 2883 | "ordered-float 4.5.0", 2884 | "strsim 0.11.1", 2885 | "thiserror 1.0.40", 2886 | "wezterm-dynamic-derive", 2887 | ] 2888 | 2889 | [[package]] 2890 | name = "wezterm-dynamic-derive" 2891 | version = "0.1.1" 2892 | source = "registry+https://github.com/rust-lang/crates.io-index" 2893 | checksum = "46c0cf2d539c645b448eaffec9ec494b8b19bd5077d9e58cb1ae7efece8d575b" 2894 | dependencies = [ 2895 | "proc-macro2", 2896 | "quote", 2897 | "syn 1.0.109", 2898 | ] 2899 | 2900 | [[package]] 2901 | name = "wezterm-input-types" 2902 | version = "0.1.0" 2903 | source = "registry+https://github.com/rust-lang/crates.io-index" 2904 | checksum = "7012add459f951456ec9d6c7e6fc340b1ce15d6fc9629f8c42853412c029e57e" 2905 | dependencies = [ 2906 | "bitflags 1.3.2", 2907 | "euclid", 2908 | "lazy_static", 2909 | "serde", 2910 | "wezterm-dynamic", 2911 | ] 2912 | 2913 | [[package]] 2914 | name = "which" 2915 | version = "4.4.0" 2916 | source = "registry+https://github.com/rust-lang/crates.io-index" 2917 | checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" 2918 | dependencies = [ 2919 | "either", 2920 | "libc", 2921 | "once_cell", 2922 | ] 2923 | 2924 | [[package]] 2925 | name = "winapi" 2926 | version = "0.3.9" 2927 | source = "registry+https://github.com/rust-lang/crates.io-index" 2928 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 2929 | dependencies = [ 2930 | "winapi-i686-pc-windows-gnu", 2931 | "winapi-x86_64-pc-windows-gnu", 2932 | ] 2933 | 2934 | [[package]] 2935 | name = "winapi-i686-pc-windows-gnu" 2936 | version = "0.4.0" 2937 | source = "registry+https://github.com/rust-lang/crates.io-index" 2938 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 2939 | 2940 | [[package]] 2941 | name = "winapi-util" 2942 | version = "0.1.5" 2943 | source = "registry+https://github.com/rust-lang/crates.io-index" 2944 | checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" 2945 | dependencies = [ 2946 | "winapi", 2947 | ] 2948 | 2949 | [[package]] 2950 | name = "winapi-x86_64-pc-windows-gnu" 2951 | version = "0.4.0" 2952 | source = "registry+https://github.com/rust-lang/crates.io-index" 2953 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 2954 | 2955 | [[package]] 2956 | name = "windows-sys" 2957 | version = "0.45.0" 2958 | source = "registry+https://github.com/rust-lang/crates.io-index" 2959 | checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" 2960 | dependencies = [ 2961 | "windows-targets 0.42.2", 2962 | ] 2963 | 2964 | [[package]] 2965 | name = "windows-sys" 2966 | version = "0.48.0" 2967 | source = "registry+https://github.com/rust-lang/crates.io-index" 2968 | checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 2969 | dependencies = [ 2970 | "windows-targets 0.48.0", 2971 | ] 2972 | 2973 | [[package]] 2974 | name = "windows-sys" 2975 | version = "0.52.0" 2976 | source = "registry+https://github.com/rust-lang/crates.io-index" 2977 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 2978 | dependencies = [ 2979 | "windows-targets 0.52.4", 2980 | ] 2981 | 2982 | [[package]] 2983 | name = "windows-targets" 2984 | version = "0.42.2" 2985 | source = "registry+https://github.com/rust-lang/crates.io-index" 2986 | checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" 2987 | dependencies = [ 2988 | "windows_aarch64_gnullvm 0.42.2", 2989 | "windows_aarch64_msvc 0.42.2", 2990 | "windows_i686_gnu 0.42.2", 2991 | "windows_i686_msvc 0.42.2", 2992 | "windows_x86_64_gnu 0.42.2", 2993 | "windows_x86_64_gnullvm 0.42.2", 2994 | "windows_x86_64_msvc 0.42.2", 2995 | ] 2996 | 2997 | [[package]] 2998 | name = "windows-targets" 2999 | version = "0.48.0" 3000 | source = "registry+https://github.com/rust-lang/crates.io-index" 3001 | checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" 3002 | dependencies = [ 3003 | "windows_aarch64_gnullvm 0.48.0", 3004 | "windows_aarch64_msvc 0.48.0", 3005 | "windows_i686_gnu 0.48.0", 3006 | "windows_i686_msvc 0.48.0", 3007 | "windows_x86_64_gnu 0.48.0", 3008 | "windows_x86_64_gnullvm 0.48.0", 3009 | "windows_x86_64_msvc 0.48.0", 3010 | ] 3011 | 3012 | [[package]] 3013 | name = "windows-targets" 3014 | version = "0.52.4" 3015 | source = "registry+https://github.com/rust-lang/crates.io-index" 3016 | checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" 3017 | dependencies = [ 3018 | "windows_aarch64_gnullvm 0.52.4", 3019 | "windows_aarch64_msvc 0.52.4", 3020 | "windows_i686_gnu 0.52.4", 3021 | "windows_i686_msvc 0.52.4", 3022 | "windows_x86_64_gnu 0.52.4", 3023 | "windows_x86_64_gnullvm 0.52.4", 3024 | "windows_x86_64_msvc 0.52.4", 3025 | ] 3026 | 3027 | [[package]] 3028 | name = "windows_aarch64_gnullvm" 3029 | version = "0.42.2" 3030 | source = "registry+https://github.com/rust-lang/crates.io-index" 3031 | checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" 3032 | 3033 | [[package]] 3034 | name = "windows_aarch64_gnullvm" 3035 | version = "0.48.0" 3036 | source = "registry+https://github.com/rust-lang/crates.io-index" 3037 | checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" 3038 | 3039 | [[package]] 3040 | name = "windows_aarch64_gnullvm" 3041 | version = "0.52.4" 3042 | source = "registry+https://github.com/rust-lang/crates.io-index" 3043 | checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" 3044 | 3045 | [[package]] 3046 | name = "windows_aarch64_msvc" 3047 | version = "0.42.2" 3048 | source = "registry+https://github.com/rust-lang/crates.io-index" 3049 | checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" 3050 | 3051 | [[package]] 3052 | name = "windows_aarch64_msvc" 3053 | version = "0.48.0" 3054 | source = "registry+https://github.com/rust-lang/crates.io-index" 3055 | checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" 3056 | 3057 | [[package]] 3058 | name = "windows_aarch64_msvc" 3059 | version = "0.52.4" 3060 | source = "registry+https://github.com/rust-lang/crates.io-index" 3061 | checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" 3062 | 3063 | [[package]] 3064 | name = "windows_i686_gnu" 3065 | version = "0.42.2" 3066 | source = "registry+https://github.com/rust-lang/crates.io-index" 3067 | checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" 3068 | 3069 | [[package]] 3070 | name = "windows_i686_gnu" 3071 | version = "0.48.0" 3072 | source = "registry+https://github.com/rust-lang/crates.io-index" 3073 | checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" 3074 | 3075 | [[package]] 3076 | name = "windows_i686_gnu" 3077 | version = "0.52.4" 3078 | source = "registry+https://github.com/rust-lang/crates.io-index" 3079 | checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" 3080 | 3081 | [[package]] 3082 | name = "windows_i686_msvc" 3083 | version = "0.42.2" 3084 | source = "registry+https://github.com/rust-lang/crates.io-index" 3085 | checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" 3086 | 3087 | [[package]] 3088 | name = "windows_i686_msvc" 3089 | version = "0.48.0" 3090 | source = "registry+https://github.com/rust-lang/crates.io-index" 3091 | checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" 3092 | 3093 | [[package]] 3094 | name = "windows_i686_msvc" 3095 | version = "0.52.4" 3096 | source = "registry+https://github.com/rust-lang/crates.io-index" 3097 | checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" 3098 | 3099 | [[package]] 3100 | name = "windows_x86_64_gnu" 3101 | version = "0.42.2" 3102 | source = "registry+https://github.com/rust-lang/crates.io-index" 3103 | checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" 3104 | 3105 | [[package]] 3106 | name = "windows_x86_64_gnu" 3107 | version = "0.48.0" 3108 | source = "registry+https://github.com/rust-lang/crates.io-index" 3109 | checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" 3110 | 3111 | [[package]] 3112 | name = "windows_x86_64_gnu" 3113 | version = "0.52.4" 3114 | source = "registry+https://github.com/rust-lang/crates.io-index" 3115 | checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" 3116 | 3117 | [[package]] 3118 | name = "windows_x86_64_gnullvm" 3119 | version = "0.42.2" 3120 | source = "registry+https://github.com/rust-lang/crates.io-index" 3121 | checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" 3122 | 3123 | [[package]] 3124 | name = "windows_x86_64_gnullvm" 3125 | version = "0.48.0" 3126 | source = "registry+https://github.com/rust-lang/crates.io-index" 3127 | checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" 3128 | 3129 | [[package]] 3130 | name = "windows_x86_64_gnullvm" 3131 | version = "0.52.4" 3132 | source = "registry+https://github.com/rust-lang/crates.io-index" 3133 | checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" 3134 | 3135 | [[package]] 3136 | name = "windows_x86_64_msvc" 3137 | version = "0.42.2" 3138 | source = "registry+https://github.com/rust-lang/crates.io-index" 3139 | checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" 3140 | 3141 | [[package]] 3142 | name = "windows_x86_64_msvc" 3143 | version = "0.48.0" 3144 | source = "registry+https://github.com/rust-lang/crates.io-index" 3145 | checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" 3146 | 3147 | [[package]] 3148 | name = "windows_x86_64_msvc" 3149 | version = "0.52.4" 3150 | source = "registry+https://github.com/rust-lang/crates.io-index" 3151 | checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" 3152 | 3153 | [[package]] 3154 | name = "wit-bindgen-rt" 3155 | version = "0.39.0" 3156 | source = "registry+https://github.com/rust-lang/crates.io-index" 3157 | checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" 3158 | dependencies = [ 3159 | "bitflags 2.6.0", 3160 | ] 3161 | 3162 | [[package]] 3163 | name = "yaml-rust" 3164 | version = "0.4.5" 3165 | source = "registry+https://github.com/rust-lang/crates.io-index" 3166 | checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" 3167 | dependencies = [ 3168 | "linked-hash-map", 3169 | ] 3170 | 3171 | [[package]] 3172 | name = "zellij-tile" 3173 | version = "0.42.1" 3174 | source = "registry+https://github.com/rust-lang/crates.io-index" 3175 | checksum = "f5fde955f8b4478481ae21e6a8efc34a10001873480c52973a2620b50e203285" 3176 | dependencies = [ 3177 | "clap", 3178 | "serde", 3179 | "serde_json", 3180 | "strum", 3181 | "strum_macros", 3182 | "zellij-utils", 3183 | ] 3184 | 3185 | [[package]] 3186 | name = "zellij-utils" 3187 | version = "0.42.1" 3188 | source = "registry+https://github.com/rust-lang/crates.io-index" 3189 | checksum = "c9bf04fa7fb48354bc11ab6e05713bc78ba3c54681b7386429923fd4ee3336b0" 3190 | dependencies = [ 3191 | "anyhow", 3192 | "async-channel", 3193 | "async-std", 3194 | "backtrace", 3195 | "bitflags 2.6.0", 3196 | "clap", 3197 | "clap_complete", 3198 | "colored", 3199 | "colorsys", 3200 | "crossbeam", 3201 | "directories", 3202 | "futures", 3203 | "humantime", 3204 | "include_dir", 3205 | "interprocess", 3206 | "isahc", 3207 | "kdl", 3208 | "lazy_static", 3209 | "libc", 3210 | "log", 3211 | "log4rs", 3212 | "miette", 3213 | "nix 0.23.2", 3214 | "notify-debouncer-full", 3215 | "once_cell", 3216 | "percent-encoding", 3217 | "prost", 3218 | "prost-build", 3219 | "regex", 3220 | "rmp-serde", 3221 | "serde", 3222 | "serde_json", 3223 | "shellexpand", 3224 | "signal-hook", 3225 | "strip-ansi-escapes", 3226 | "strum", 3227 | "strum_macros", 3228 | "tempfile", 3229 | "termwiz", 3230 | "thiserror 1.0.40", 3231 | "unicode-width", 3232 | "url", 3233 | "uuid", 3234 | "vte 0.11.1", 3235 | ] 3236 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "multitask" 3 | version = "0.42.2" 4 | authors = ["Aram Drevekenin ", "Carl Leake /tmp/zellij-1000/zellij-log/zellij.log && tail -f /tmp/zellij-1000/zellij-log/zellij.log" 10 | } 11 | pane stacked=true { 12 | pane size="10%" command="bash" name="COMPILE AND RELOAD PLUGIN" { 13 | args "-c" "cargo build && zellij action start-or-reload-plugin file:target/wasm32-wasi1p/debug/multitask.wasm --configuration \"shell=$SHELL\"" 14 | 15 | // To run with a persistent file, use multitask_file_name like below 16 | // args "-c" "cargo build && zellij action start-or-reload-plugin file:target/wasm32-wasi1p/debug/multitask.wasm --configuration \"shell=$SHELL,multitask_file_name=.multitask\"" 17 | // if you have "watchexec" installed, you can comment the above line and uncomment the below one to build + reload the plugin on fs changes 18 | // args "-c" "watchexec 'cargo build && zellij action start-or-reload-plugin file:target/wasm32-wasi1p/debug/multitask.wasm'" 19 | } 20 | } 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/assets/multitask_layout.kdl: -------------------------------------------------------------------------------- 1 | layout { 2 | pane size=1 borderless=true { 3 | plugin location="tab-bar" 4 | } 5 | pane stacked=true { 6 | pane edit=".multitask" 7 | } 8 | pane size=1 borderless=true { 9 | plugin location="status-bar" 10 | } 11 | swap_floating_layout { 12 | floating_panes exact_panes=1 { 13 | pane { x "5%"; y 1; width "90%"; height "90%"; } 14 | } 15 | floating_panes exact_panes=2 { 16 | pane { x "1%"; y "25%"; width "45%"; } 17 | pane { x "50%"; y "25%"; width "45%"; } 18 | } 19 | floating_panes exact_panes=3 { 20 | pane { y "55%"; width "45%"; height "45%"; } 21 | pane { x "1%"; y "1%"; width "45%"; } 22 | pane { x "50%"; y "1%"; width "45%"; } 23 | } 24 | floating_panes { 25 | pane { x "1%"; y "55%"; width "45%"; height "45%"; } 26 | pane { x "50%"; y "55%"; width "45%"; height "45%"; } 27 | pane { x "1%"; y "1%"; width "45%"; height "45%"; } 28 | pane { x "50%"; y "1%"; width "45%"; height "45%"; } 29 | } 30 | } 31 | } 32 | // Not working as of zellij 0.42.1, will have users put keybind in main config. 33 | // keybinds { 34 | // normal { 35 | // bind "Alt 2" { 36 | // MessagePlugin { 37 | // payload "multitask_run" 38 | // } 39 | // } 40 | // } 41 | // } 42 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | mod parallel_tasks; 2 | mod multitask_file; 3 | use zellij_tile::prelude::*; 4 | 5 | use std::collections::{VecDeque, BTreeMap}; 6 | 7 | use std::path::PathBuf; 8 | use std::time::Instant; 9 | 10 | use parallel_tasks::ParallelTasks; 11 | use multitask_file::{parse_multitask_file, create_file_with_text}; 12 | 13 | #[derive(Default)] 14 | struct State { 15 | tasks: VecDeque, 16 | running_tasks: Option, 17 | multitask_file: PathBuf, 18 | multitask_file_name: String, 19 | completed_task_ids: Vec, 20 | edit_pane_id: Option, 21 | last_run: Option, 22 | is_hidden: bool, 23 | plugin_id: Option, 24 | shell: String, 25 | ccwd: Option, 26 | layout: String, 27 | } 28 | 29 | impl ZellijPlugin for State { 30 | fn load(&mut self, config: BTreeMap) { 31 | request_permission(&[PermissionType::ReadApplicationState, PermissionType::ChangeApplicationState, PermissionType::RunCommands, PermissionType::OpenFiles]); 32 | subscribe(&[EventType::PaneUpdate]); 33 | self.plugin_id = Some(get_plugin_ids().plugin_id); 34 | 35 | self.multitask_file_name = match config.get("multitask_file_name") { 36 | Some(s) => format!("{}", s), 37 | _ => format!(".multitask{}",get_plugin_ids().plugin_id.to_string()), 38 | }; 39 | 40 | self.shell = match config.get("shell") { 41 | Some(s) => String::from(s), 42 | _ => String::from("bash") 43 | }; 44 | 45 | self.ccwd = match config.get("ccwd") { 46 | Some(s) => Some(PathBuf::from(s)), 47 | _ => None 48 | }; 49 | 50 | // Get the user's layout for multitask. If not defined, then fallback to the 51 | // assets/multitask_layout.kdl 52 | self.layout = match config.get("layout") { 53 | Some(s) => { 54 | s.to_string() 55 | }, 56 | _ => String::from(include_str!("assets/multitask_layout.kdl")) 57 | }; 58 | self.layout = self.layout.replace(".multitask",self.multitask_file_name.as_str()); 59 | 60 | self.multitask_file = PathBuf::from("/host").join(self.multitask_file_name.clone()); 61 | 62 | show_self(true); 63 | } 64 | 65 | fn pipe(&mut self, pipe_message: PipeMessage) -> bool { 66 | match pipe_message.payload { 67 | Some(msg) => { 68 | if msg == "multitask_run" { 69 | self.stop_run_and_reparse_file(); 70 | } 71 | } 72 | _ => () 73 | } 74 | return false; 75 | } 76 | 77 | fn update(&mut self, event: Event) -> bool { 78 | match event { 79 | Event::PaneUpdate(pane_manifest) => { 80 | if self.gained_focus(&pane_manifest) { 81 | // whenever the plugin gains focus, eg. with the `LaunchOrFocusPlugin` keybind 82 | // we clean up our state and start over, allowing the plugin to be triggered by 83 | // a keybinding 84 | hide_self(); 85 | self.start_multitask_env(); 86 | } else if let Some(running_tasks) = &mut self.running_tasks { 87 | running_tasks.update_task_status(&pane_manifest); 88 | if running_tasks.all_tasks_completed_successfully() { 89 | self.progress_running_tasks(); 90 | } 91 | } 92 | } 93 | _ => (), 94 | }; 95 | return false; // this plugin never renders 96 | } 97 | fn render(&mut self, _rows: usize, _cols: usize) {} // no ui, no problems! 98 | } 99 | 100 | impl State { 101 | pub fn start_current_tasks(&mut self) { 102 | if let Some(running_tasks) = &self.running_tasks { 103 | for task in &running_tasks.run_tasks { 104 | let cmd = CommandToRun { 105 | path: (&task.command).into(), 106 | args: task.args.clone(), 107 | cwd: self.ccwd.clone() 108 | }; 109 | open_command_pane_floating(cmd, None, BTreeMap::::new()); 110 | } 111 | } 112 | } 113 | pub fn progress_running_tasks(&mut self) { 114 | if let Some(running_tasks) = self.running_tasks.as_ref() { 115 | for task in &running_tasks.run_tasks { 116 | if let Some(terminal_pane_id) = task.terminal_pane_id { 117 | focus_terminal_pane(terminal_pane_id as u32, true); 118 | toggle_pane_embed_or_eject(); 119 | self.completed_task_ids.push(terminal_pane_id); 120 | } 121 | } 122 | if let Some(edit_pane_id) = self.edit_pane_id { 123 | focus_terminal_pane(edit_pane_id as u32, false); 124 | } 125 | } 126 | self.running_tasks = None; 127 | if let Some(tasks) = self.tasks.remove(0) { 128 | self.running_tasks = Some(tasks); 129 | self.start_current_tasks(); 130 | } 131 | } 132 | pub fn stop_run(&mut self) { 133 | let mut all_tasks = vec![]; 134 | if let Some(running_tasks) = self.running_tasks.as_mut() { 135 | all_tasks.append(&mut running_tasks.pane_ids()); 136 | } 137 | all_tasks.append(&mut self.completed_task_ids.drain(..).collect()); 138 | for pane_id in all_tasks { 139 | close_terminal_pane(pane_id as u32); 140 | } 141 | self.running_tasks = None; 142 | self.completed_task_ids = vec![]; 143 | } 144 | pub fn parse_file(&mut self) -> bool { 145 | match parse_multitask_file(self.multitask_file.clone(), self.shell.as_str()) { 146 | Ok(new_tasks) => { 147 | self.tasks = new_tasks.into(); 148 | return true; 149 | }, 150 | Err(e) => { 151 | eprintln!("Failed to parse multitask file: {}", e); 152 | return false; 153 | } 154 | }; 155 | } 156 | pub fn stop_run_and_reparse_file(&mut self) { 157 | self.stop_run(); 158 | let file_changed = self.parse_file(); 159 | if file_changed { 160 | self.last_run = Some(Instant::now()); 161 | self.progress_running_tasks(); 162 | } 163 | } 164 | pub fn start_multitask_env(&mut self) { 165 | self.stop_run(); 166 | create_file_with_text( 167 | &self.multitask_file, 168 | &format!("{}{}\n#\n{}\n{}\n{}\n{}\n", 169 | "#!", self.shell, 170 | "# Hi there! Anything below these lines will be executed on save.", 171 | "# One command per line.", 172 | "# Place empty lines between steps that should run in parallel.", 173 | "# Enjoy!" 174 | ) 175 | ); 176 | new_tabs_with_layout(&self.layout); 177 | } 178 | pub fn gained_focus(&mut self, pane_manifest: &PaneManifest) -> bool { 179 | if let Some(own_plugin_id) = self.plugin_id { 180 | for (_tab_id, panes) in &pane_manifest.panes { 181 | for pane in panes { 182 | let is_own_plugin_pane = pane.is_plugin && own_plugin_id == pane.id; 183 | if is_own_plugin_pane && pane.is_focused && !self.is_hidden { 184 | self.is_hidden = true; 185 | return true; 186 | } 187 | } 188 | } 189 | } 190 | return false; 191 | } 192 | } 193 | 194 | register_plugin!(State); 195 | -------------------------------------------------------------------------------- /src/multitask_file.rs: -------------------------------------------------------------------------------- 1 | use zellij_tile::prelude::*; 2 | 3 | use std::path::{PathBuf, Path}; 4 | use std::io::prelude::*; 5 | 6 | use crate::parallel_tasks::{ParallelTasks, RunTask}; 7 | 8 | pub fn create_file_with_text(path: &Path, text: &str) { 9 | if !path.exists() { 10 | // Only create the file if it does not already exists. Otherwise, use the file that is 11 | // already there. 12 | if let Err(e) = std::fs::File::create(PathBuf::from("/host").join(path)).and_then(|mut f| { 13 | f.write_all(text.as_bytes()) 14 | }) { 15 | eprintln!("Failed to create file with error: {}", e); 16 | }; 17 | } 18 | } 19 | 20 | pub fn parse_multitask_file(filename: PathBuf, shell: &str) -> Result, std::io::Error> { 21 | let stringified_file = std::fs::read_to_string(filename)?; 22 | let mut parallel_tasks = vec![]; 23 | let mut current_tasks = vec![]; 24 | let mut current_step = 1; 25 | for line in stringified_file.lines() { 26 | let line = line.to_string(); 27 | let line_is_empty = line.trim().is_empty(); 28 | if !line.starts_with("#") && !line_is_empty { 29 | let task = RunTask::from_file_line(shell, &line, current_step); 30 | current_tasks.push(task); 31 | } else if line_is_empty && !current_tasks.is_empty() { 32 | parallel_tasks.push(ParallelTasks::new(current_tasks.drain(..).collect())); 33 | current_step += 1; 34 | } 35 | } 36 | if !current_tasks.is_empty() { 37 | parallel_tasks.push(ParallelTasks::new(current_tasks.drain(..).collect())); 38 | } 39 | Ok(parallel_tasks) 40 | } 41 | -------------------------------------------------------------------------------- /src/parallel_tasks.rs: -------------------------------------------------------------------------------- 1 | use zellij_tile::prelude::{PaneManifest, rename_terminal_pane}; 2 | 3 | use std::fmt; 4 | 5 | #[derive(Default, Debug)] 6 | pub struct ParallelTasks { 7 | pub run_tasks: Vec 8 | } 9 | 10 | #[derive(Default, Debug)] 11 | pub struct RunTask { 12 | pub command: String, 13 | pub args: Vec, 14 | pub terminal_pane_id: Option, 15 | pub is_complete: bool, 16 | pub succeeded: bool, 17 | pub title: Option, 18 | } 19 | 20 | impl ParallelTasks { 21 | pub fn new(run_tasks: Vec) -> Self { 22 | ParallelTasks { 23 | run_tasks, 24 | } 25 | } 26 | pub fn all_tasks_completed_successfully(&self) -> bool { 27 | self.run_tasks.iter().all(|t| t.succeeded()) 28 | } 29 | pub fn pane_ids(&self) -> Vec { 30 | let mut pane_ids = vec![]; 31 | for task in &self.run_tasks { 32 | if let Some(terminal_pane_id) = task.terminal_pane_id { 33 | pane_ids.push(terminal_pane_id); 34 | } 35 | } 36 | pane_ids 37 | } 38 | pub fn update_task_status(&mut self, pane_manifest: &PaneManifest) { 39 | for (_tab_id, panes) in &pane_manifest.panes { 40 | for pane in panes { 41 | for task in &mut self.run_tasks { 42 | let stringified_task = task.to_string(); 43 | if Some(stringified_task) == pane.terminal_command { 44 | if task.terminal_pane_id.is_none() { 45 | task.mark_pane_id(pane.id); 46 | if let Some(title) = &task.title { 47 | rename_terminal_pane(pane.id as u32, title); 48 | } 49 | } 50 | if !task.is_complete() && pane.exited { 51 | task.mark_complete(pane.exit_status); 52 | break; 53 | } 54 | } 55 | } 56 | } 57 | } 58 | } 59 | } 60 | 61 | impl fmt::Display for RunTask { 62 | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 63 | if self.args.is_empty() { 64 | write!(f, "{}", self.command) 65 | } else { 66 | write!(f, "{} {}", self.command, self.args.join(" ")) 67 | } 68 | } 69 | } 70 | 71 | impl RunTask { 72 | pub fn new>(mut command_and_args: Vec) -> Self { 73 | RunTask { 74 | command: command_and_args.remove(0).as_ref().to_owned(), 75 | args: command_and_args.iter().map(|c| c.as_ref().to_owned()).collect(), 76 | ..Default::default() 77 | } 78 | } 79 | pub fn from_file_line(shell: &str, file_line: &str, step_number: usize) -> Self { 80 | Self::new(vec![shell, "-c", file_line]) 81 | .pane_title(format!("STEP {} - {}", step_number, file_line)) 82 | } 83 | pub fn pane_title(mut self, title: String) -> Self { 84 | self.title = Some(title); 85 | self 86 | } 87 | pub fn is_complete(&self) -> bool { 88 | self.is_complete 89 | } 90 | pub fn succeeded(&self) -> bool { 91 | self.is_complete && self.succeeded 92 | } 93 | pub fn mark_pane_id(&mut self, pane_id: u32) { 94 | self.terminal_pane_id = Some(pane_id); 95 | } 96 | pub fn mark_complete(&mut self, exit_status: Option) { 97 | self.is_complete = true; 98 | match exit_status { 99 | Some(exit_status) => { 100 | self.succeeded = exit_status == 0; 101 | }, 102 | None => { 103 | self.succeeded = true; 104 | } 105 | } 106 | } 107 | } 108 | 109 | --------------------------------------------------------------------------------