[wip] jj client for mega-merge workflow
1
fork

Configure Feed

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

initial commit

Signed-off-by: Seongmin Lee <git@boltless.me>

boltless.me 2e07ee27

+5490
+1
.gitignore
··· 1 + /target
+4382
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 = "ahash" 7 + version = "0.8.12" 8 + source = "registry+https://github.com/rust-lang/crates.io-index" 9 + checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" 10 + dependencies = [ 11 + "cfg-if", 12 + "once_cell", 13 + "version_check", 14 + "zerocopy", 15 + ] 16 + 17 + [[package]] 18 + name = "aho-corasick" 19 + version = "1.1.4" 20 + source = "registry+https://github.com/rust-lang/crates.io-index" 21 + checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" 22 + dependencies = [ 23 + "memchr", 24 + ] 25 + 26 + [[package]] 27 + name = "allocator-api2" 28 + version = "0.2.21" 29 + source = "registry+https://github.com/rust-lang/crates.io-index" 30 + checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" 31 + 32 + [[package]] 33 + name = "android_system_properties" 34 + version = "0.1.5" 35 + source = "registry+https://github.com/rust-lang/crates.io-index" 36 + checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 37 + dependencies = [ 38 + "libc", 39 + ] 40 + 41 + [[package]] 42 + name = "anstream" 43 + version = "0.6.21" 44 + source = "registry+https://github.com/rust-lang/crates.io-index" 45 + checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" 46 + dependencies = [ 47 + "anstyle", 48 + "anstyle-parse", 49 + "anstyle-query", 50 + "anstyle-wincon", 51 + "colorchoice", 52 + "is_terminal_polyfill", 53 + "utf8parse", 54 + ] 55 + 56 + [[package]] 57 + name = "anstyle" 58 + version = "1.0.13" 59 + source = "registry+https://github.com/rust-lang/crates.io-index" 60 + checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" 61 + 62 + [[package]] 63 + name = "anstyle-parse" 64 + version = "0.2.7" 65 + source = "registry+https://github.com/rust-lang/crates.io-index" 66 + checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" 67 + dependencies = [ 68 + "utf8parse", 69 + ] 70 + 71 + [[package]] 72 + name = "anstyle-query" 73 + version = "1.1.5" 74 + source = "registry+https://github.com/rust-lang/crates.io-index" 75 + checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" 76 + dependencies = [ 77 + "windows-sys 0.61.2", 78 + ] 79 + 80 + [[package]] 81 + name = "anstyle-wincon" 82 + version = "3.0.11" 83 + source = "registry+https://github.com/rust-lang/crates.io-index" 84 + checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" 85 + dependencies = [ 86 + "anstyle", 87 + "once_cell_polyfill", 88 + "windows-sys 0.61.2", 89 + ] 90 + 91 + [[package]] 92 + name = "anyhow" 93 + version = "1.0.100" 94 + source = "registry+https://github.com/rust-lang/crates.io-index" 95 + checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" 96 + 97 + [[package]] 98 + name = "arc-swap" 99 + version = "1.7.1" 100 + source = "registry+https://github.com/rust-lang/crates.io-index" 101 + checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" 102 + 103 + [[package]] 104 + name = "arrayvec" 105 + version = "0.7.6" 106 + source = "registry+https://github.com/rust-lang/crates.io-index" 107 + checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" 108 + 109 + [[package]] 110 + name = "async-trait" 111 + version = "0.1.89" 112 + source = "registry+https://github.com/rust-lang/crates.io-index" 113 + checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" 114 + dependencies = [ 115 + "proc-macro2", 116 + "quote", 117 + "syn 2.0.108", 118 + ] 119 + 120 + [[package]] 121 + name = "atomic" 122 + version = "0.6.1" 123 + source = "registry+https://github.com/rust-lang/crates.io-index" 124 + checksum = "a89cbf775b137e9b968e67227ef7f775587cde3fd31b0d8599dbd0f598a48340" 125 + dependencies = [ 126 + "bytemuck", 127 + ] 128 + 129 + [[package]] 130 + name = "autocfg" 131 + version = "1.5.0" 132 + source = "registry+https://github.com/rust-lang/crates.io-index" 133 + checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" 134 + 135 + [[package]] 136 + name = "base64" 137 + version = "0.22.1" 138 + source = "registry+https://github.com/rust-lang/crates.io-index" 139 + checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 140 + 141 + [[package]] 142 + name = "beef" 143 + version = "0.5.2" 144 + source = "registry+https://github.com/rust-lang/crates.io-index" 145 + checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1" 146 + 147 + [[package]] 148 + name = "bit-set" 149 + version = "0.5.3" 150 + source = "registry+https://github.com/rust-lang/crates.io-index" 151 + checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" 152 + dependencies = [ 153 + "bit-vec", 154 + ] 155 + 156 + [[package]] 157 + name = "bit-vec" 158 + version = "0.6.3" 159 + source = "registry+https://github.com/rust-lang/crates.io-index" 160 + checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" 161 + 162 + [[package]] 163 + name = "bitflags" 164 + version = "1.3.2" 165 + source = "registry+https://github.com/rust-lang/crates.io-index" 166 + checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 167 + 168 + [[package]] 169 + name = "bitflags" 170 + version = "2.10.0" 171 + source = "registry+https://github.com/rust-lang/crates.io-index" 172 + checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" 173 + dependencies = [ 174 + "serde_core", 175 + ] 176 + 177 + [[package]] 178 + name = "blake2" 179 + version = "0.10.6" 180 + source = "registry+https://github.com/rust-lang/crates.io-index" 181 + checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" 182 + dependencies = [ 183 + "digest", 184 + ] 185 + 186 + [[package]] 187 + name = "block-buffer" 188 + version = "0.10.4" 189 + source = "registry+https://github.com/rust-lang/crates.io-index" 190 + checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 191 + dependencies = [ 192 + "generic-array", 193 + ] 194 + 195 + [[package]] 196 + name = "bstr" 197 + version = "1.12.1" 198 + source = "registry+https://github.com/rust-lang/crates.io-index" 199 + checksum = "63044e1ae8e69f3b5a92c736ca6269b8d12fa7efe39bf34ddb06d102cf0e2cab" 200 + dependencies = [ 201 + "memchr", 202 + "regex-automata", 203 + "serde", 204 + ] 205 + 206 + [[package]] 207 + name = "bumpalo" 208 + version = "3.19.0" 209 + source = "registry+https://github.com/rust-lang/crates.io-index" 210 + checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" 211 + 212 + [[package]] 213 + name = "bytemuck" 214 + version = "1.24.0" 215 + source = "registry+https://github.com/rust-lang/crates.io-index" 216 + checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" 217 + 218 + [[package]] 219 + name = "byteorder" 220 + version = "1.5.0" 221 + source = "registry+https://github.com/rust-lang/crates.io-index" 222 + checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 223 + 224 + [[package]] 225 + name = "bytes" 226 + version = "1.11.0" 227 + source = "registry+https://github.com/rust-lang/crates.io-index" 228 + checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" 229 + dependencies = [ 230 + "serde", 231 + ] 232 + 233 + [[package]] 234 + name = "cassowary" 235 + version = "0.3.0" 236 + source = "registry+https://github.com/rust-lang/crates.io-index" 237 + checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" 238 + 239 + [[package]] 240 + name = "castaway" 241 + version = "0.2.4" 242 + source = "registry+https://github.com/rust-lang/crates.io-index" 243 + checksum = "dec551ab6e7578819132c713a93c022a05d60159dc86e7a7050223577484c55a" 244 + dependencies = [ 245 + "rustversion", 246 + ] 247 + 248 + [[package]] 249 + name = "cc" 250 + version = "1.2.46" 251 + source = "registry+https://github.com/rust-lang/crates.io-index" 252 + checksum = "b97463e1064cb1b1c1384ad0a0b9c8abd0988e2a91f52606c80ef14aadb63e36" 253 + dependencies = [ 254 + "find-msvc-tools", 255 + "shlex", 256 + ] 257 + 258 + [[package]] 259 + name = "cfg-if" 260 + version = "1.0.4" 261 + source = "registry+https://github.com/rust-lang/crates.io-index" 262 + checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" 263 + 264 + [[package]] 265 + name = "cfg_aliases" 266 + version = "0.2.1" 267 + source = "registry+https://github.com/rust-lang/crates.io-index" 268 + checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" 269 + 270 + [[package]] 271 + name = "chrono" 272 + version = "0.4.42" 273 + source = "registry+https://github.com/rust-lang/crates.io-index" 274 + checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" 275 + dependencies = [ 276 + "iana-time-zone", 277 + "num-traits", 278 + "serde", 279 + "windows-link", 280 + ] 281 + 282 + [[package]] 283 + name = "clap" 284 + version = "4.5.51" 285 + source = "registry+https://github.com/rust-lang/crates.io-index" 286 + checksum = "4c26d721170e0295f191a69bd9a1f93efcdb0aff38684b61ab5750468972e5f5" 287 + dependencies = [ 288 + "clap_builder", 289 + "clap_derive", 290 + ] 291 + 292 + [[package]] 293 + name = "clap-markdown" 294 + version = "0.1.5" 295 + source = "registry+https://github.com/rust-lang/crates.io-index" 296 + checksum = "d2a2617956a06d4885b490697b5307ebb09fec10b088afc18c81762d848c2339" 297 + dependencies = [ 298 + "clap", 299 + ] 300 + 301 + [[package]] 302 + name = "clap_builder" 303 + version = "4.5.51" 304 + source = "registry+https://github.com/rust-lang/crates.io-index" 305 + checksum = "75835f0c7bf681bfd05abe44e965760fea999a5286c6eb2d59883634fd02011a" 306 + dependencies = [ 307 + "anstream", 308 + "anstyle", 309 + "clap_lex", 310 + "strsim", 311 + "terminal_size", 312 + ] 313 + 314 + [[package]] 315 + name = "clap_complete" 316 + version = "4.5.60" 317 + source = "registry+https://github.com/rust-lang/crates.io-index" 318 + checksum = "8e602857739c5a4291dfa33b5a298aeac9006185229a700e5810a3ef7272d971" 319 + dependencies = [ 320 + "clap", 321 + "clap_lex", 322 + "is_executable", 323 + "shlex", 324 + ] 325 + 326 + [[package]] 327 + name = "clap_complete_nushell" 328 + version = "4.5.10" 329 + source = "registry+https://github.com/rust-lang/crates.io-index" 330 + checksum = "685bc86fd34b7467e0532a4f8435ab107960d69a243785ef0275e571b35b641a" 331 + dependencies = [ 332 + "clap", 333 + "clap_complete", 334 + ] 335 + 336 + [[package]] 337 + name = "clap_derive" 338 + version = "4.5.49" 339 + source = "registry+https://github.com/rust-lang/crates.io-index" 340 + checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671" 341 + dependencies = [ 342 + "heck", 343 + "proc-macro2", 344 + "quote", 345 + "syn 2.0.108", 346 + ] 347 + 348 + [[package]] 349 + name = "clap_lex" 350 + version = "0.7.6" 351 + source = "registry+https://github.com/rust-lang/crates.io-index" 352 + checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" 353 + 354 + [[package]] 355 + name = "clap_mangen" 356 + version = "0.2.31" 357 + source = "registry+https://github.com/rust-lang/crates.io-index" 358 + checksum = "439ea63a92086df93893164221ad4f24142086d535b3a0957b9b9bea2dc86301" 359 + dependencies = [ 360 + "clap", 361 + "roff", 362 + ] 363 + 364 + [[package]] 365 + name = "clru" 366 + version = "0.6.2" 367 + source = "registry+https://github.com/rust-lang/crates.io-index" 368 + checksum = "cbd0f76e066e64fdc5631e3bb46381254deab9ef1158292f27c8c57e3bf3fe59" 369 + 370 + [[package]] 371 + name = "colorchoice" 372 + version = "1.0.4" 373 + source = "registry+https://github.com/rust-lang/crates.io-index" 374 + checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" 375 + 376 + [[package]] 377 + name = "compact_str" 378 + version = "0.8.1" 379 + source = "registry+https://github.com/rust-lang/crates.io-index" 380 + checksum = "3b79c4069c6cad78e2e0cdfcbd26275770669fb39fd308a752dc110e83b9af32" 381 + dependencies = [ 382 + "castaway", 383 + "cfg-if", 384 + "itoa", 385 + "rustversion", 386 + "ryu", 387 + "static_assertions", 388 + ] 389 + 390 + [[package]] 391 + name = "convert_case" 392 + version = "0.7.1" 393 + source = "registry+https://github.com/rust-lang/crates.io-index" 394 + checksum = "bb402b8d4c85569410425650ce3eddc7d698ed96d39a73f941b08fb63082f1e7" 395 + dependencies = [ 396 + "unicode-segmentation", 397 + ] 398 + 399 + [[package]] 400 + name = "core-foundation-sys" 401 + version = "0.8.7" 402 + source = "registry+https://github.com/rust-lang/crates.io-index" 403 + checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 404 + 405 + [[package]] 406 + name = "cpufeatures" 407 + version = "0.2.17" 408 + source = "registry+https://github.com/rust-lang/crates.io-index" 409 + checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" 410 + dependencies = [ 411 + "libc", 412 + ] 413 + 414 + [[package]] 415 + name = "crc32fast" 416 + version = "1.5.0" 417 + source = "registry+https://github.com/rust-lang/crates.io-index" 418 + checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" 419 + dependencies = [ 420 + "cfg-if", 421 + ] 422 + 423 + [[package]] 424 + name = "crossbeam-channel" 425 + version = "0.5.15" 426 + source = "registry+https://github.com/rust-lang/crates.io-index" 427 + checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" 428 + dependencies = [ 429 + "crossbeam-utils", 430 + ] 431 + 432 + [[package]] 433 + name = "crossbeam-deque" 434 + version = "0.8.6" 435 + source = "registry+https://github.com/rust-lang/crates.io-index" 436 + checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" 437 + dependencies = [ 438 + "crossbeam-epoch", 439 + "crossbeam-utils", 440 + ] 441 + 442 + [[package]] 443 + name = "crossbeam-epoch" 444 + version = "0.9.18" 445 + source = "registry+https://github.com/rust-lang/crates.io-index" 446 + checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" 447 + dependencies = [ 448 + "crossbeam-utils", 449 + ] 450 + 451 + [[package]] 452 + name = "crossbeam-utils" 453 + version = "0.8.21" 454 + source = "registry+https://github.com/rust-lang/crates.io-index" 455 + checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" 456 + 457 + [[package]] 458 + name = "crossterm" 459 + version = "0.28.1" 460 + source = "registry+https://github.com/rust-lang/crates.io-index" 461 + checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6" 462 + dependencies = [ 463 + "bitflags 2.10.0", 464 + "crossterm_winapi", 465 + "mio", 466 + "parking_lot", 467 + "rustix 0.38.44", 468 + "signal-hook", 469 + "signal-hook-mio", 470 + "winapi", 471 + ] 472 + 473 + [[package]] 474 + name = "crossterm" 475 + version = "0.29.0" 476 + source = "registry+https://github.com/rust-lang/crates.io-index" 477 + checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" 478 + dependencies = [ 479 + "bitflags 2.10.0", 480 + "crossterm_winapi", 481 + "derive_more", 482 + "document-features", 483 + "mio", 484 + "parking_lot", 485 + "rustix 1.1.2", 486 + "signal-hook", 487 + "signal-hook-mio", 488 + "winapi", 489 + ] 490 + 491 + [[package]] 492 + name = "crossterm_winapi" 493 + version = "0.9.1" 494 + source = "registry+https://github.com/rust-lang/crates.io-index" 495 + checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" 496 + dependencies = [ 497 + "winapi", 498 + ] 499 + 500 + [[package]] 501 + name = "crypto-common" 502 + version = "0.1.7" 503 + source = "registry+https://github.com/rust-lang/crates.io-index" 504 + checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" 505 + dependencies = [ 506 + "generic-array", 507 + "typenum", 508 + ] 509 + 510 + [[package]] 511 + name = "csscolorparser" 512 + version = "0.6.2" 513 + source = "registry+https://github.com/rust-lang/crates.io-index" 514 + checksum = "eb2a7d3066da2de787b7f032c736763eb7ae5d355f81a68bab2675a96008b0bf" 515 + dependencies = [ 516 + "lab", 517 + "phf", 518 + ] 519 + 520 + [[package]] 521 + name = "darling" 522 + version = "0.20.11" 523 + source = "registry+https://github.com/rust-lang/crates.io-index" 524 + checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" 525 + dependencies = [ 526 + "darling_core", 527 + "darling_macro", 528 + ] 529 + 530 + [[package]] 531 + name = "darling_core" 532 + version = "0.20.11" 533 + source = "registry+https://github.com/rust-lang/crates.io-index" 534 + checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" 535 + dependencies = [ 536 + "fnv", 537 + "ident_case", 538 + "proc-macro2", 539 + "quote", 540 + "strsim", 541 + "syn 2.0.108", 542 + ] 543 + 544 + [[package]] 545 + name = "darling_macro" 546 + version = "0.20.11" 547 + source = "registry+https://github.com/rust-lang/crates.io-index" 548 + checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" 549 + dependencies = [ 550 + "darling_core", 551 + "quote", 552 + "syn 2.0.108", 553 + ] 554 + 555 + [[package]] 556 + name = "dashmap" 557 + version = "6.1.0" 558 + source = "registry+https://github.com/rust-lang/crates.io-index" 559 + checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" 560 + dependencies = [ 561 + "cfg-if", 562 + "crossbeam-utils", 563 + "hashbrown 0.14.5", 564 + "lock_api", 565 + "once_cell", 566 + "parking_lot_core", 567 + ] 568 + 569 + [[package]] 570 + name = "deltae" 571 + version = "0.3.2" 572 + source = "registry+https://github.com/rust-lang/crates.io-index" 573 + checksum = "5729f5117e208430e437df2f4843f5e5952997175992d1414f94c57d61e270b4" 574 + 575 + [[package]] 576 + name = "derive_more" 577 + version = "2.0.1" 578 + source = "registry+https://github.com/rust-lang/crates.io-index" 579 + checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" 580 + dependencies = [ 581 + "derive_more-impl", 582 + ] 583 + 584 + [[package]] 585 + name = "derive_more-impl" 586 + version = "2.0.1" 587 + source = "registry+https://github.com/rust-lang/crates.io-index" 588 + checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" 589 + dependencies = [ 590 + "convert_case", 591 + "proc-macro2", 592 + "quote", 593 + "syn 2.0.108", 594 + ] 595 + 596 + [[package]] 597 + name = "digest" 598 + version = "0.10.7" 599 + source = "registry+https://github.com/rust-lang/crates.io-index" 600 + checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 601 + dependencies = [ 602 + "block-buffer", 603 + "crypto-common", 604 + "subtle", 605 + ] 606 + 607 + [[package]] 608 + name = "dirs" 609 + version = "6.0.0" 610 + source = "registry+https://github.com/rust-lang/crates.io-index" 611 + checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" 612 + dependencies = [ 613 + "dirs-sys", 614 + ] 615 + 616 + [[package]] 617 + name = "dirs-sys" 618 + version = "0.5.0" 619 + source = "registry+https://github.com/rust-lang/crates.io-index" 620 + checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" 621 + dependencies = [ 622 + "libc", 623 + "option-ext", 624 + "redox_users", 625 + "windows-sys 0.61.2", 626 + ] 627 + 628 + [[package]] 629 + name = "displaydoc" 630 + version = "0.2.5" 631 + source = "registry+https://github.com/rust-lang/crates.io-index" 632 + checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" 633 + dependencies = [ 634 + "proc-macro2", 635 + "quote", 636 + "syn 2.0.108", 637 + ] 638 + 639 + [[package]] 640 + name = "document-features" 641 + version = "0.2.12" 642 + source = "registry+https://github.com/rust-lang/crates.io-index" 643 + checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61" 644 + dependencies = [ 645 + "litrs", 646 + ] 647 + 648 + [[package]] 649 + name = "dunce" 650 + version = "1.0.5" 651 + source = "registry+https://github.com/rust-lang/crates.io-index" 652 + checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" 653 + 654 + [[package]] 655 + name = "either" 656 + version = "1.15.0" 657 + source = "registry+https://github.com/rust-lang/crates.io-index" 658 + checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" 659 + 660 + [[package]] 661 + name = "encoding_rs" 662 + version = "0.8.35" 663 + source = "registry+https://github.com/rust-lang/crates.io-index" 664 + checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" 665 + dependencies = [ 666 + "cfg-if", 667 + ] 668 + 669 + [[package]] 670 + name = "enum_dispatch" 671 + version = "0.3.13" 672 + source = "registry+https://github.com/rust-lang/crates.io-index" 673 + checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd" 674 + dependencies = [ 675 + "once_cell", 676 + "proc-macro2", 677 + "quote", 678 + "syn 2.0.108", 679 + ] 680 + 681 + [[package]] 682 + name = "equivalent" 683 + version = "1.0.2" 684 + source = "registry+https://github.com/rust-lang/crates.io-index" 685 + checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" 686 + 687 + [[package]] 688 + name = "erased-serde" 689 + version = "0.4.9" 690 + source = "registry+https://github.com/rust-lang/crates.io-index" 691 + checksum = "89e8918065695684b2b0702da20382d5ae6065cf3327bc2d6436bd49a71ce9f3" 692 + dependencies = [ 693 + "serde", 694 + "serde_core", 695 + "typeid", 696 + ] 697 + 698 + [[package]] 699 + name = "errno" 700 + version = "0.3.14" 701 + source = "registry+https://github.com/rust-lang/crates.io-index" 702 + checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" 703 + dependencies = [ 704 + "libc", 705 + "windows-sys 0.61.2", 706 + ] 707 + 708 + [[package]] 709 + name = "etcetera" 710 + version = "0.11.0" 711 + source = "registry+https://github.com/rust-lang/crates.io-index" 712 + checksum = "de48cc4d1c1d97a20fd819def54b890cadde72ed3ad0c614822a0a433361be96" 713 + dependencies = [ 714 + "cfg-if", 715 + "windows-sys 0.61.2", 716 + ] 717 + 718 + [[package]] 719 + name = "euclid" 720 + version = "0.22.11" 721 + source = "registry+https://github.com/rust-lang/crates.io-index" 722 + checksum = "ad9cdb4b747e485a12abb0e6566612956c7a1bafa3bdb8d682c5b6d403589e48" 723 + dependencies = [ 724 + "num-traits", 725 + ] 726 + 727 + [[package]] 728 + name = "fancy-regex" 729 + version = "0.11.0" 730 + source = "registry+https://github.com/rust-lang/crates.io-index" 731 + checksum = "b95f7c0680e4142284cf8b22c14a476e87d61b004a3a0861872b32ef7ead40a2" 732 + dependencies = [ 733 + "bit-set", 734 + "regex", 735 + ] 736 + 737 + [[package]] 738 + name = "faster-hex" 739 + version = "0.10.0" 740 + source = "registry+https://github.com/rust-lang/crates.io-index" 741 + checksum = "7223ae2d2f179b803433d9c830478527e92b8117eab39460edae7f1614d9fb73" 742 + dependencies = [ 743 + "heapless", 744 + "serde", 745 + ] 746 + 747 + [[package]] 748 + name = "fastrand" 749 + version = "2.3.0" 750 + source = "registry+https://github.com/rust-lang/crates.io-index" 751 + checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" 752 + 753 + [[package]] 754 + name = "filedescriptor" 755 + version = "0.8.3" 756 + source = "registry+https://github.com/rust-lang/crates.io-index" 757 + checksum = "e40758ed24c9b2eeb76c35fb0aebc66c626084edd827e07e1552279814c6682d" 758 + dependencies = [ 759 + "libc", 760 + "thiserror 1.0.69", 761 + "winapi", 762 + ] 763 + 764 + [[package]] 765 + name = "filetime" 766 + version = "0.2.26" 767 + source = "registry+https://github.com/rust-lang/crates.io-index" 768 + checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" 769 + dependencies = [ 770 + "cfg-if", 771 + "libc", 772 + "libredox", 773 + "windows-sys 0.60.2", 774 + ] 775 + 776 + [[package]] 777 + name = "find-msvc-tools" 778 + version = "0.1.5" 779 + source = "registry+https://github.com/rust-lang/crates.io-index" 780 + checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844" 781 + 782 + [[package]] 783 + name = "finl_unicode" 784 + version = "1.4.0" 785 + source = "registry+https://github.com/rust-lang/crates.io-index" 786 + checksum = "9844ddc3a6e533d62bba727eb6c28b5d360921d5175e9ff0f1e621a5c590a4d5" 787 + 788 + [[package]] 789 + name = "fixedbitset" 790 + version = "0.4.2" 791 + source = "registry+https://github.com/rust-lang/crates.io-index" 792 + checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" 793 + 794 + [[package]] 795 + name = "fnv" 796 + version = "1.0.7" 797 + source = "registry+https://github.com/rust-lang/crates.io-index" 798 + checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 799 + 800 + [[package]] 801 + name = "foldhash" 802 + version = "0.1.5" 803 + source = "registry+https://github.com/rust-lang/crates.io-index" 804 + checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" 805 + 806 + [[package]] 807 + name = "foldhash" 808 + version = "0.2.0" 809 + source = "registry+https://github.com/rust-lang/crates.io-index" 810 + checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" 811 + 812 + [[package]] 813 + name = "form_urlencoded" 814 + version = "1.2.2" 815 + source = "registry+https://github.com/rust-lang/crates.io-index" 816 + checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" 817 + dependencies = [ 818 + "percent-encoding", 819 + ] 820 + 821 + [[package]] 822 + name = "futures" 823 + version = "0.1.31" 824 + source = "registry+https://github.com/rust-lang/crates.io-index" 825 + checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" 826 + 827 + [[package]] 828 + name = "futures" 829 + version = "0.3.31" 830 + source = "registry+https://github.com/rust-lang/crates.io-index" 831 + checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" 832 + dependencies = [ 833 + "futures-channel", 834 + "futures-core", 835 + "futures-executor", 836 + "futures-io", 837 + "futures-sink", 838 + "futures-task", 839 + "futures-util", 840 + ] 841 + 842 + [[package]] 843 + name = "futures-channel" 844 + version = "0.3.31" 845 + source = "registry+https://github.com/rust-lang/crates.io-index" 846 + checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" 847 + dependencies = [ 848 + "futures-core", 849 + "futures-sink", 850 + ] 851 + 852 + [[package]] 853 + name = "futures-core" 854 + version = "0.3.31" 855 + source = "registry+https://github.com/rust-lang/crates.io-index" 856 + checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" 857 + 858 + [[package]] 859 + name = "futures-executor" 860 + version = "0.3.31" 861 + source = "registry+https://github.com/rust-lang/crates.io-index" 862 + checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" 863 + dependencies = [ 864 + "futures-core", 865 + "futures-task", 866 + "futures-util", 867 + ] 868 + 869 + [[package]] 870 + name = "futures-io" 871 + version = "0.3.31" 872 + source = "registry+https://github.com/rust-lang/crates.io-index" 873 + checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" 874 + 875 + [[package]] 876 + name = "futures-macro" 877 + version = "0.3.31" 878 + source = "registry+https://github.com/rust-lang/crates.io-index" 879 + checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" 880 + dependencies = [ 881 + "proc-macro2", 882 + "quote", 883 + "syn 2.0.108", 884 + ] 885 + 886 + [[package]] 887 + name = "futures-sink" 888 + version = "0.3.31" 889 + source = "registry+https://github.com/rust-lang/crates.io-index" 890 + checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" 891 + 892 + [[package]] 893 + name = "futures-task" 894 + version = "0.3.31" 895 + source = "registry+https://github.com/rust-lang/crates.io-index" 896 + checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" 897 + 898 + [[package]] 899 + name = "futures-util" 900 + version = "0.3.31" 901 + source = "registry+https://github.com/rust-lang/crates.io-index" 902 + checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" 903 + dependencies = [ 904 + "futures 0.1.31", 905 + "futures-channel", 906 + "futures-core", 907 + "futures-io", 908 + "futures-macro", 909 + "futures-sink", 910 + "futures-task", 911 + "memchr", 912 + "pin-project-lite", 913 + "pin-utils", 914 + "slab", 915 + ] 916 + 917 + [[package]] 918 + name = "generic-array" 919 + version = "0.14.7" 920 + source = "registry+https://github.com/rust-lang/crates.io-index" 921 + checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 922 + dependencies = [ 923 + "typenum", 924 + "version_check", 925 + ] 926 + 927 + [[package]] 928 + name = "getrandom" 929 + version = "0.2.16" 930 + source = "registry+https://github.com/rust-lang/crates.io-index" 931 + checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" 932 + dependencies = [ 933 + "cfg-if", 934 + "libc", 935 + "wasi", 936 + ] 937 + 938 + [[package]] 939 + name = "getrandom" 940 + version = "0.3.4" 941 + source = "registry+https://github.com/rust-lang/crates.io-index" 942 + checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" 943 + dependencies = [ 944 + "cfg-if", 945 + "libc", 946 + "r-efi", 947 + "wasip2", 948 + ] 949 + 950 + [[package]] 951 + name = "gix" 952 + version = "0.74.1" 953 + source = "registry+https://github.com/rust-lang/crates.io-index" 954 + checksum = "5fd3a6fea165debe0e80648495f894aa2371a771e3ceb7a7dcc304f1c4344c43" 955 + dependencies = [ 956 + "gix-actor", 957 + "gix-attributes", 958 + "gix-command", 959 + "gix-commitgraph", 960 + "gix-config", 961 + "gix-date", 962 + "gix-diff", 963 + "gix-discover", 964 + "gix-features", 965 + "gix-filter", 966 + "gix-fs", 967 + "gix-glob", 968 + "gix-hash", 969 + "gix-hashtable", 970 + "gix-ignore", 971 + "gix-index", 972 + "gix-lock", 973 + "gix-object", 974 + "gix-odb", 975 + "gix-pack", 976 + "gix-path", 977 + "gix-pathspec", 978 + "gix-protocol", 979 + "gix-ref", 980 + "gix-refspec", 981 + "gix-revision", 982 + "gix-revwalk", 983 + "gix-sec", 984 + "gix-shallow", 985 + "gix-submodule", 986 + "gix-tempfile", 987 + "gix-trace", 988 + "gix-traverse", 989 + "gix-url", 990 + "gix-utils", 991 + "gix-validate", 992 + "gix-worktree", 993 + "smallvec", 994 + "thiserror 2.0.17", 995 + ] 996 + 997 + [[package]] 998 + name = "gix-actor" 999 + version = "0.35.6" 1000 + source = "registry+https://github.com/rust-lang/crates.io-index" 1001 + checksum = "987a51a7e66db6ef4dc030418eb2a42af6b913a79edd8670766122d8af3ba59e" 1002 + dependencies = [ 1003 + "bstr", 1004 + "gix-date", 1005 + "gix-utils", 1006 + "itoa", 1007 + "thiserror 2.0.17", 1008 + "winnow", 1009 + ] 1010 + 1011 + [[package]] 1012 + name = "gix-attributes" 1013 + version = "0.28.1" 1014 + source = "registry+https://github.com/rust-lang/crates.io-index" 1015 + checksum = "cc6591add69314fc43db078076a8da6f07957c65abb0b21c3e1b6a3cf50aa18d" 1016 + dependencies = [ 1017 + "bstr", 1018 + "gix-glob", 1019 + "gix-path", 1020 + "gix-quote", 1021 + "gix-trace", 1022 + "kstring", 1023 + "smallvec", 1024 + "thiserror 2.0.17", 1025 + "unicode-bom", 1026 + ] 1027 + 1028 + [[package]] 1029 + name = "gix-bitmap" 1030 + version = "0.2.15" 1031 + source = "registry+https://github.com/rust-lang/crates.io-index" 1032 + checksum = "5e150161b8a75b5860521cb876b506879a3376d3adc857ec7a9d35e7c6a5e531" 1033 + dependencies = [ 1034 + "thiserror 2.0.17", 1035 + ] 1036 + 1037 + [[package]] 1038 + name = "gix-chunk" 1039 + version = "0.4.12" 1040 + source = "registry+https://github.com/rust-lang/crates.io-index" 1041 + checksum = "5c356b3825677cb6ff579551bb8311a81821e184453cbd105e2fc5311b288eeb" 1042 + dependencies = [ 1043 + "thiserror 2.0.17", 1044 + ] 1045 + 1046 + [[package]] 1047 + name = "gix-command" 1048 + version = "0.6.3" 1049 + source = "registry+https://github.com/rust-lang/crates.io-index" 1050 + checksum = "095c8367c9dc4872a7706fbc39c7f34271b88b541120a4365ff0e36366f66e62" 1051 + dependencies = [ 1052 + "bstr", 1053 + "gix-path", 1054 + "gix-quote", 1055 + "gix-trace", 1056 + "shell-words", 1057 + ] 1058 + 1059 + [[package]] 1060 + name = "gix-commitgraph" 1061 + version = "0.30.1" 1062 + source = "registry+https://github.com/rust-lang/crates.io-index" 1063 + checksum = "826994ff6c01f1ff00d6a1844d7506717810a91ffed143da71e3bf39369751ef" 1064 + dependencies = [ 1065 + "bstr", 1066 + "gix-chunk", 1067 + "gix-hash", 1068 + "memmap2 0.9.9", 1069 + "thiserror 2.0.17", 1070 + ] 1071 + 1072 + [[package]] 1073 + name = "gix-config" 1074 + version = "0.47.1" 1075 + source = "registry+https://github.com/rust-lang/crates.io-index" 1076 + checksum = "1e74f57ea99025de9207db53488be4d59cf2000f617964c1b550880524fefbc3" 1077 + dependencies = [ 1078 + "bstr", 1079 + "gix-config-value", 1080 + "gix-features", 1081 + "gix-glob", 1082 + "gix-path", 1083 + "gix-ref", 1084 + "gix-sec", 1085 + "memchr", 1086 + "smallvec", 1087 + "thiserror 2.0.17", 1088 + "unicode-bom", 1089 + "winnow", 1090 + ] 1091 + 1092 + [[package]] 1093 + name = "gix-config-value" 1094 + version = "0.15.3" 1095 + source = "registry+https://github.com/rust-lang/crates.io-index" 1096 + checksum = "2c489abb061c74b0c3ad790e24a606ef968cebab48ec673d6a891ece7d5aef64" 1097 + dependencies = [ 1098 + "bitflags 2.10.0", 1099 + "bstr", 1100 + "gix-path", 1101 + "libc", 1102 + "thiserror 2.0.17", 1103 + ] 1104 + 1105 + [[package]] 1106 + name = "gix-date" 1107 + version = "0.10.7" 1108 + source = "registry+https://github.com/rust-lang/crates.io-index" 1109 + checksum = "661245d045aa7c16ba4244daaabd823c562c3e45f1f25b816be2c57ee09f2171" 1110 + dependencies = [ 1111 + "bstr", 1112 + "itoa", 1113 + "jiff", 1114 + "smallvec", 1115 + "thiserror 2.0.17", 1116 + ] 1117 + 1118 + [[package]] 1119 + name = "gix-diff" 1120 + version = "0.54.1" 1121 + source = "registry+https://github.com/rust-lang/crates.io-index" 1122 + checksum = "cd78d9da421baca219a650d71c797706117095635d7963f21bb6fdf2410abe04" 1123 + dependencies = [ 1124 + "bstr", 1125 + "gix-command", 1126 + "gix-filter", 1127 + "gix-fs", 1128 + "gix-hash", 1129 + "gix-object", 1130 + "gix-path", 1131 + "gix-tempfile", 1132 + "gix-trace", 1133 + "gix-traverse", 1134 + "gix-worktree", 1135 + "imara-diff", 1136 + "thiserror 2.0.17", 1137 + ] 1138 + 1139 + [[package]] 1140 + name = "gix-discover" 1141 + version = "0.42.0" 1142 + source = "registry+https://github.com/rust-lang/crates.io-index" 1143 + checksum = "9d24547153810634636471af88338240e6ab0831308cd41eb6ebfffea77811c6" 1144 + dependencies = [ 1145 + "bstr", 1146 + "dunce", 1147 + "gix-fs", 1148 + "gix-hash", 1149 + "gix-path", 1150 + "gix-ref", 1151 + "gix-sec", 1152 + "thiserror 2.0.17", 1153 + ] 1154 + 1155 + [[package]] 1156 + name = "gix-features" 1157 + version = "0.44.1" 1158 + source = "registry+https://github.com/rust-lang/crates.io-index" 1159 + checksum = "dfa64593d1586135102307fb57fb3a9d3868b6b1f45a4da1352cce5070f8916a" 1160 + dependencies = [ 1161 + "crc32fast", 1162 + "crossbeam-channel", 1163 + "gix-path", 1164 + "gix-trace", 1165 + "gix-utils", 1166 + "libc", 1167 + "libz-rs-sys", 1168 + "once_cell", 1169 + "parking_lot", 1170 + "prodash", 1171 + "thiserror 2.0.17", 1172 + "walkdir", 1173 + ] 1174 + 1175 + [[package]] 1176 + name = "gix-filter" 1177 + version = "0.21.0" 1178 + source = "registry+https://github.com/rust-lang/crates.io-index" 1179 + checksum = "1d1253452c9808da01eaaf9b1c4929b9982efec29ef0a668b3326b8046d9b8fb" 1180 + dependencies = [ 1181 + "bstr", 1182 + "encoding_rs", 1183 + "gix-attributes", 1184 + "gix-command", 1185 + "gix-hash", 1186 + "gix-object", 1187 + "gix-packetline-blocking", 1188 + "gix-path", 1189 + "gix-quote", 1190 + "gix-trace", 1191 + "gix-utils", 1192 + "smallvec", 1193 + "thiserror 2.0.17", 1194 + ] 1195 + 1196 + [[package]] 1197 + name = "gix-fs" 1198 + version = "0.17.0" 1199 + source = "registry+https://github.com/rust-lang/crates.io-index" 1200 + checksum = "3f1ecd896258cdc5ccd94d18386d17906b8de265ad2ecf68e3bea6b007f6a28f" 1201 + dependencies = [ 1202 + "bstr", 1203 + "fastrand", 1204 + "gix-features", 1205 + "gix-path", 1206 + "gix-utils", 1207 + "thiserror 2.0.17", 1208 + ] 1209 + 1210 + [[package]] 1211 + name = "gix-glob" 1212 + version = "0.22.1" 1213 + source = "registry+https://github.com/rust-lang/crates.io-index" 1214 + checksum = "74254992150b0a88fdb3ad47635ab649512dff2cbbefca7916bb459894fc9d56" 1215 + dependencies = [ 1216 + "bitflags 2.10.0", 1217 + "bstr", 1218 + "gix-features", 1219 + "gix-path", 1220 + ] 1221 + 1222 + [[package]] 1223 + name = "gix-hash" 1224 + version = "0.20.1" 1225 + source = "registry+https://github.com/rust-lang/crates.io-index" 1226 + checksum = "826036a9bee95945b0be1e2394c64cd4289916c34a639818f8fd5153906985c1" 1227 + dependencies = [ 1228 + "faster-hex", 1229 + "gix-features", 1230 + "sha1-checked", 1231 + "thiserror 2.0.17", 1232 + ] 1233 + 1234 + [[package]] 1235 + name = "gix-hashtable" 1236 + version = "0.10.0" 1237 + source = "registry+https://github.com/rust-lang/crates.io-index" 1238 + checksum = "a27d4a3ea9640da504a2657fef3419c517fd71f1767ad8935298bcc805edd195" 1239 + dependencies = [ 1240 + "gix-hash", 1241 + "hashbrown 0.16.0", 1242 + "parking_lot", 1243 + ] 1244 + 1245 + [[package]] 1246 + name = "gix-ignore" 1247 + version = "0.17.1" 1248 + source = "registry+https://github.com/rust-lang/crates.io-index" 1249 + checksum = "93b6a9679a1488123b7f2929684bacfd9cd2a24f286b52203b8752cbb8d7fc49" 1250 + dependencies = [ 1251 + "bstr", 1252 + "gix-glob", 1253 + "gix-path", 1254 + "gix-trace", 1255 + "unicode-bom", 1256 + ] 1257 + 1258 + [[package]] 1259 + name = "gix-index" 1260 + version = "0.42.1" 1261 + source = "registry+https://github.com/rust-lang/crates.io-index" 1262 + checksum = "31244542fb98ea4f3e964a4f8deafc2f4c77ad42bed58a1e8424bca1965fae99" 1263 + dependencies = [ 1264 + "bitflags 2.10.0", 1265 + "bstr", 1266 + "filetime", 1267 + "fnv", 1268 + "gix-bitmap", 1269 + "gix-features", 1270 + "gix-fs", 1271 + "gix-hash", 1272 + "gix-lock", 1273 + "gix-object", 1274 + "gix-traverse", 1275 + "gix-utils", 1276 + "gix-validate", 1277 + "hashbrown 0.16.0", 1278 + "itoa", 1279 + "libc", 1280 + "memmap2 0.9.9", 1281 + "rustix 1.1.2", 1282 + "smallvec", 1283 + "thiserror 2.0.17", 1284 + ] 1285 + 1286 + [[package]] 1287 + name = "gix-lock" 1288 + version = "19.0.0" 1289 + source = "registry+https://github.com/rust-lang/crates.io-index" 1290 + checksum = "729d7857429a66023bc0c29d60fa21d0d6ae8862f33c1937ba89e0f74dd5c67f" 1291 + dependencies = [ 1292 + "gix-tempfile", 1293 + "gix-utils", 1294 + "thiserror 2.0.17", 1295 + ] 1296 + 1297 + [[package]] 1298 + name = "gix-object" 1299 + version = "0.51.1" 1300 + source = "registry+https://github.com/rust-lang/crates.io-index" 1301 + checksum = "87ba1815638759c80d2318c8e98296fb396f577c2e588a3d9c13f9a5d5184051" 1302 + dependencies = [ 1303 + "bstr", 1304 + "gix-actor", 1305 + "gix-date", 1306 + "gix-features", 1307 + "gix-hash", 1308 + "gix-hashtable", 1309 + "gix-path", 1310 + "gix-utils", 1311 + "gix-validate", 1312 + "itoa", 1313 + "smallvec", 1314 + "thiserror 2.0.17", 1315 + "winnow", 1316 + ] 1317 + 1318 + [[package]] 1319 + name = "gix-odb" 1320 + version = "0.71.1" 1321 + source = "registry+https://github.com/rust-lang/crates.io-index" 1322 + checksum = "6efc6736d3ea62640efe8c1be695fb0760af63614a7356d2091208a841f1a634" 1323 + dependencies = [ 1324 + "arc-swap", 1325 + "gix-date", 1326 + "gix-features", 1327 + "gix-fs", 1328 + "gix-hash", 1329 + "gix-hashtable", 1330 + "gix-object", 1331 + "gix-pack", 1332 + "gix-path", 1333 + "gix-quote", 1334 + "parking_lot", 1335 + "tempfile", 1336 + "thiserror 2.0.17", 1337 + ] 1338 + 1339 + [[package]] 1340 + name = "gix-pack" 1341 + version = "0.61.1" 1342 + source = "registry+https://github.com/rust-lang/crates.io-index" 1343 + checksum = "719c60524be76874f4769da20d525ad2c00a0e7059943cc4f31fcb65cfb6b260" 1344 + dependencies = [ 1345 + "clru", 1346 + "gix-chunk", 1347 + "gix-features", 1348 + "gix-hash", 1349 + "gix-hashtable", 1350 + "gix-object", 1351 + "gix-path", 1352 + "memmap2 0.9.9", 1353 + "smallvec", 1354 + "thiserror 2.0.17", 1355 + "uluru", 1356 + ] 1357 + 1358 + [[package]] 1359 + name = "gix-packetline" 1360 + version = "0.19.3" 1361 + source = "registry+https://github.com/rust-lang/crates.io-index" 1362 + checksum = "64286a8b5148e76ab80932e72762dd27ccf6169dd7a134b027c8a262a8262fcf" 1363 + dependencies = [ 1364 + "bstr", 1365 + "faster-hex", 1366 + "gix-trace", 1367 + "thiserror 2.0.17", 1368 + ] 1369 + 1370 + [[package]] 1371 + name = "gix-packetline-blocking" 1372 + version = "0.19.3" 1373 + source = "registry+https://github.com/rust-lang/crates.io-index" 1374 + checksum = "89c59c3ad41e68cb38547d849e9ef5ccfc0d00f282244ba1441ae856be54d001" 1375 + dependencies = [ 1376 + "bstr", 1377 + "faster-hex", 1378 + "gix-trace", 1379 + "thiserror 2.0.17", 1380 + ] 1381 + 1382 + [[package]] 1383 + name = "gix-path" 1384 + version = "0.10.21" 1385 + source = "registry+https://github.com/rust-lang/crates.io-index" 1386 + checksum = "0416b41cd00ff292af9b94b0660880c44bd2ed66828ddca9a2b333535cbb71b8" 1387 + dependencies = [ 1388 + "bstr", 1389 + "gix-trace", 1390 + "gix-validate", 1391 + "home", 1392 + "thiserror 2.0.17", 1393 + ] 1394 + 1395 + [[package]] 1396 + name = "gix-pathspec" 1397 + version = "0.13.0" 1398 + source = "registry+https://github.com/rust-lang/crates.io-index" 1399 + checksum = "d05e28457dca7c65a2dbe118869aab922a5bd382b7bb10cff5354f366845c128" 1400 + dependencies = [ 1401 + "bitflags 2.10.0", 1402 + "bstr", 1403 + "gix-attributes", 1404 + "gix-config-value", 1405 + "gix-glob", 1406 + "gix-path", 1407 + "thiserror 2.0.17", 1408 + ] 1409 + 1410 + [[package]] 1411 + name = "gix-protocol" 1412 + version = "0.52.1" 1413 + source = "registry+https://github.com/rust-lang/crates.io-index" 1414 + checksum = "64f19873bbf924fd077580d4ccaaaeddb67c3b3c09a8ffb61e6b4cb67e3c9302" 1415 + dependencies = [ 1416 + "bstr", 1417 + "gix-date", 1418 + "gix-features", 1419 + "gix-hash", 1420 + "gix-ref", 1421 + "gix-shallow", 1422 + "gix-transport", 1423 + "gix-utils", 1424 + "maybe-async", 1425 + "thiserror 2.0.17", 1426 + "winnow", 1427 + ] 1428 + 1429 + [[package]] 1430 + name = "gix-quote" 1431 + version = "0.6.1" 1432 + source = "registry+https://github.com/rust-lang/crates.io-index" 1433 + checksum = "e912ec04b7b1566a85ad486db0cab6b9955e3e32bcd3c3a734542ab3af084c5b" 1434 + dependencies = [ 1435 + "bstr", 1436 + "gix-utils", 1437 + "thiserror 2.0.17", 1438 + ] 1439 + 1440 + [[package]] 1441 + name = "gix-ref" 1442 + version = "0.54.1" 1443 + source = "registry+https://github.com/rust-lang/crates.io-index" 1444 + checksum = "8881d262f28eda39c244e60ae968f4f6e56c747f65addd6f4100b25f75ed8b88" 1445 + dependencies = [ 1446 + "gix-actor", 1447 + "gix-features", 1448 + "gix-fs", 1449 + "gix-hash", 1450 + "gix-lock", 1451 + "gix-object", 1452 + "gix-path", 1453 + "gix-tempfile", 1454 + "gix-utils", 1455 + "gix-validate", 1456 + "memmap2 0.9.9", 1457 + "thiserror 2.0.17", 1458 + "winnow", 1459 + ] 1460 + 1461 + [[package]] 1462 + name = "gix-refspec" 1463 + version = "0.32.0" 1464 + source = "registry+https://github.com/rust-lang/crates.io-index" 1465 + checksum = "93147960f77695ba89b72019b789679278dd4dad6a0f9a4a5bf2fd07aba56912" 1466 + dependencies = [ 1467 + "bstr", 1468 + "gix-hash", 1469 + "gix-revision", 1470 + "gix-validate", 1471 + "smallvec", 1472 + "thiserror 2.0.17", 1473 + ] 1474 + 1475 + [[package]] 1476 + name = "gix-revision" 1477 + version = "0.36.1" 1478 + source = "registry+https://github.com/rust-lang/crates.io-index" 1479 + checksum = "13c5267e530d8762842be7d51b48d2b134c9dec5b650ca607f735a56a4b12413" 1480 + dependencies = [ 1481 + "bstr", 1482 + "gix-commitgraph", 1483 + "gix-date", 1484 + "gix-hash", 1485 + "gix-object", 1486 + "gix-revwalk", 1487 + "thiserror 2.0.17", 1488 + ] 1489 + 1490 + [[package]] 1491 + name = "gix-revwalk" 1492 + version = "0.22.0" 1493 + source = "registry+https://github.com/rust-lang/crates.io-index" 1494 + checksum = "02e2de4f91d712b1f6873477f769225fe430ffce2af8c7c85721c3ff955783b3" 1495 + dependencies = [ 1496 + "gix-commitgraph", 1497 + "gix-date", 1498 + "gix-hash", 1499 + "gix-hashtable", 1500 + "gix-object", 1501 + "smallvec", 1502 + "thiserror 2.0.17", 1503 + ] 1504 + 1505 + [[package]] 1506 + name = "gix-sec" 1507 + version = "0.12.2" 1508 + source = "registry+https://github.com/rust-lang/crates.io-index" 1509 + checksum = "ea9962ed6d9114f7f100efe038752f41283c225bb507a2888903ac593dffa6be" 1510 + dependencies = [ 1511 + "bitflags 2.10.0", 1512 + "gix-path", 1513 + "libc", 1514 + "windows-sys 0.61.2", 1515 + ] 1516 + 1517 + [[package]] 1518 + name = "gix-shallow" 1519 + version = "0.6.0" 1520 + source = "registry+https://github.com/rust-lang/crates.io-index" 1521 + checksum = "e2374692db1ee1ffa0eddcb9e86ec218f7c4cdceda800ebc5a9fdf73a8c08223" 1522 + dependencies = [ 1523 + "bstr", 1524 + "gix-hash", 1525 + "gix-lock", 1526 + "thiserror 2.0.17", 1527 + ] 1528 + 1529 + [[package]] 1530 + name = "gix-submodule" 1531 + version = "0.21.0" 1532 + source = "registry+https://github.com/rust-lang/crates.io-index" 1533 + checksum = "9bacc06333b50abc4fc06204622c2dd92850de2066bb5d421ac776d2bef7ae55" 1534 + dependencies = [ 1535 + "bstr", 1536 + "gix-config", 1537 + "gix-path", 1538 + "gix-pathspec", 1539 + "gix-refspec", 1540 + "gix-url", 1541 + "thiserror 2.0.17", 1542 + ] 1543 + 1544 + [[package]] 1545 + name = "gix-tempfile" 1546 + version = "19.0.1" 1547 + source = "registry+https://github.com/rust-lang/crates.io-index" 1548 + checksum = "e265fc6b54e57693232a79d84038381ebfda7b1a3b1b8a9320d4d5fe6e820086" 1549 + dependencies = [ 1550 + "dashmap", 1551 + "gix-fs", 1552 + "libc", 1553 + "parking_lot", 1554 + "tempfile", 1555 + ] 1556 + 1557 + [[package]] 1558 + name = "gix-trace" 1559 + version = "0.1.15" 1560 + source = "registry+https://github.com/rust-lang/crates.io-index" 1561 + checksum = "1d3f59a8de2934f6391b6b3a1a7654eae18961fcb9f9c843533fed34ad0f3457" 1562 + 1563 + [[package]] 1564 + name = "gix-transport" 1565 + version = "0.49.1" 1566 + source = "registry+https://github.com/rust-lang/crates.io-index" 1567 + checksum = "c8da4a77922accb1e26e610c7a84ef7e6b34fd07112e6a84afd68d7f3e795957" 1568 + dependencies = [ 1569 + "bstr", 1570 + "gix-command", 1571 + "gix-features", 1572 + "gix-packetline", 1573 + "gix-quote", 1574 + "gix-sec", 1575 + "gix-url", 1576 + "thiserror 2.0.17", 1577 + ] 1578 + 1579 + [[package]] 1580 + name = "gix-traverse" 1581 + version = "0.48.0" 1582 + source = "registry+https://github.com/rust-lang/crates.io-index" 1583 + checksum = "412126bade03a34f5d4125fd64878852718575b3b360eaae3b29970cb555e2a2" 1584 + dependencies = [ 1585 + "bitflags 2.10.0", 1586 + "gix-commitgraph", 1587 + "gix-date", 1588 + "gix-hash", 1589 + "gix-hashtable", 1590 + "gix-object", 1591 + "gix-revwalk", 1592 + "smallvec", 1593 + "thiserror 2.0.17", 1594 + ] 1595 + 1596 + [[package]] 1597 + name = "gix-url" 1598 + version = "0.33.1" 1599 + source = "registry+https://github.com/rust-lang/crates.io-index" 1600 + checksum = "c79b07b48dd9285485eb10429696ddcd1bfe6fb942ec0e5efb401ae7e40238e5" 1601 + dependencies = [ 1602 + "bstr", 1603 + "gix-features", 1604 + "gix-path", 1605 + "percent-encoding", 1606 + "thiserror 2.0.17", 1607 + "url", 1608 + ] 1609 + 1610 + [[package]] 1611 + name = "gix-utils" 1612 + version = "0.3.1" 1613 + source = "registry+https://github.com/rust-lang/crates.io-index" 1614 + checksum = "befcdbdfb1238d2854591f760a48711bed85e72d80a10e8f2f93f656746ef7c5" 1615 + dependencies = [ 1616 + "fastrand", 1617 + "unicode-normalization", 1618 + ] 1619 + 1620 + [[package]] 1621 + name = "gix-validate" 1622 + version = "0.10.1" 1623 + source = "registry+https://github.com/rust-lang/crates.io-index" 1624 + checksum = "5b1e63a5b516e970a594f870ed4571a8fdcb8a344e7bd407a20db8bd61dbfde4" 1625 + dependencies = [ 1626 + "bstr", 1627 + "thiserror 2.0.17", 1628 + ] 1629 + 1630 + [[package]] 1631 + name = "gix-worktree" 1632 + version = "0.43.1" 1633 + source = "registry+https://github.com/rust-lang/crates.io-index" 1634 + checksum = "8df3dfc8b62b0eccc923c757b40f488abc357c85c03d798622edfc3eb5137e04" 1635 + dependencies = [ 1636 + "bstr", 1637 + "gix-attributes", 1638 + "gix-features", 1639 + "gix-fs", 1640 + "gix-glob", 1641 + "gix-hash", 1642 + "gix-ignore", 1643 + "gix-index", 1644 + "gix-object", 1645 + "gix-path", 1646 + "gix-validate", 1647 + ] 1648 + 1649 + [[package]] 1650 + name = "globset" 1651 + version = "0.4.18" 1652 + source = "registry+https://github.com/rust-lang/crates.io-index" 1653 + checksum = "52dfc19153a48bde0cbd630453615c8151bce3a5adfac7a0aebfbf0a1e1f57e3" 1654 + dependencies = [ 1655 + "aho-corasick", 1656 + "bstr", 1657 + "log", 1658 + "regex-automata", 1659 + "regex-syntax", 1660 + ] 1661 + 1662 + [[package]] 1663 + name = "hash32" 1664 + version = "0.3.1" 1665 + source = "registry+https://github.com/rust-lang/crates.io-index" 1666 + checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" 1667 + dependencies = [ 1668 + "byteorder", 1669 + ] 1670 + 1671 + [[package]] 1672 + name = "hashbrown" 1673 + version = "0.14.5" 1674 + source = "registry+https://github.com/rust-lang/crates.io-index" 1675 + checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" 1676 + dependencies = [ 1677 + "ahash", 1678 + "allocator-api2", 1679 + ] 1680 + 1681 + [[package]] 1682 + name = "hashbrown" 1683 + version = "0.15.5" 1684 + source = "registry+https://github.com/rust-lang/crates.io-index" 1685 + checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" 1686 + dependencies = [ 1687 + "foldhash 0.1.5", 1688 + ] 1689 + 1690 + [[package]] 1691 + name = "hashbrown" 1692 + version = "0.16.0" 1693 + source = "registry+https://github.com/rust-lang/crates.io-index" 1694 + checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" 1695 + dependencies = [ 1696 + "allocator-api2", 1697 + "equivalent", 1698 + "foldhash 0.2.0", 1699 + ] 1700 + 1701 + [[package]] 1702 + name = "heapless" 1703 + version = "0.8.0" 1704 + source = "registry+https://github.com/rust-lang/crates.io-index" 1705 + checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad" 1706 + dependencies = [ 1707 + "hash32", 1708 + "stable_deref_trait", 1709 + ] 1710 + 1711 + [[package]] 1712 + name = "heck" 1713 + version = "0.5.0" 1714 + source = "registry+https://github.com/rust-lang/crates.io-index" 1715 + checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" 1716 + 1717 + [[package]] 1718 + name = "hex" 1719 + version = "0.4.3" 1720 + source = "registry+https://github.com/rust-lang/crates.io-index" 1721 + checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" 1722 + 1723 + [[package]] 1724 + name = "home" 1725 + version = "0.5.12" 1726 + source = "registry+https://github.com/rust-lang/crates.io-index" 1727 + checksum = "cc627f471c528ff0c4a49e1d5e60450c8f6461dd6d10ba9dcd3a61d3dff7728d" 1728 + dependencies = [ 1729 + "windows-sys 0.61.2", 1730 + ] 1731 + 1732 + [[package]] 1733 + name = "iana-time-zone" 1734 + version = "0.1.64" 1735 + source = "registry+https://github.com/rust-lang/crates.io-index" 1736 + checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" 1737 + dependencies = [ 1738 + "android_system_properties", 1739 + "core-foundation-sys", 1740 + "iana-time-zone-haiku", 1741 + "js-sys", 1742 + "log", 1743 + "wasm-bindgen", 1744 + "windows-core", 1745 + ] 1746 + 1747 + [[package]] 1748 + name = "iana-time-zone-haiku" 1749 + version = "0.1.2" 1750 + source = "registry+https://github.com/rust-lang/crates.io-index" 1751 + checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" 1752 + dependencies = [ 1753 + "cc", 1754 + ] 1755 + 1756 + [[package]] 1757 + name = "icu_collections" 1758 + version = "2.1.1" 1759 + source = "registry+https://github.com/rust-lang/crates.io-index" 1760 + checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" 1761 + dependencies = [ 1762 + "displaydoc", 1763 + "potential_utf", 1764 + "yoke", 1765 + "zerofrom", 1766 + "zerovec", 1767 + ] 1768 + 1769 + [[package]] 1770 + name = "icu_locale_core" 1771 + version = "2.1.1" 1772 + source = "registry+https://github.com/rust-lang/crates.io-index" 1773 + checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" 1774 + dependencies = [ 1775 + "displaydoc", 1776 + "litemap", 1777 + "tinystr", 1778 + "writeable", 1779 + "zerovec", 1780 + ] 1781 + 1782 + [[package]] 1783 + name = "icu_normalizer" 1784 + version = "2.1.1" 1785 + source = "registry+https://github.com/rust-lang/crates.io-index" 1786 + checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" 1787 + dependencies = [ 1788 + "icu_collections", 1789 + "icu_normalizer_data", 1790 + "icu_properties", 1791 + "icu_provider", 1792 + "smallvec", 1793 + "zerovec", 1794 + ] 1795 + 1796 + [[package]] 1797 + name = "icu_normalizer_data" 1798 + version = "2.1.1" 1799 + source = "registry+https://github.com/rust-lang/crates.io-index" 1800 + checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" 1801 + 1802 + [[package]] 1803 + name = "icu_properties" 1804 + version = "2.1.1" 1805 + source = "registry+https://github.com/rust-lang/crates.io-index" 1806 + checksum = "e93fcd3157766c0c8da2f8cff6ce651a31f0810eaa1c51ec363ef790bbb5fb99" 1807 + dependencies = [ 1808 + "icu_collections", 1809 + "icu_locale_core", 1810 + "icu_properties_data", 1811 + "icu_provider", 1812 + "zerotrie", 1813 + "zerovec", 1814 + ] 1815 + 1816 + [[package]] 1817 + name = "icu_properties_data" 1818 + version = "2.1.1" 1819 + source = "registry+https://github.com/rust-lang/crates.io-index" 1820 + checksum = "02845b3647bb045f1100ecd6480ff52f34c35f82d9880e029d329c21d1054899" 1821 + 1822 + [[package]] 1823 + name = "icu_provider" 1824 + version = "2.1.1" 1825 + source = "registry+https://github.com/rust-lang/crates.io-index" 1826 + checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" 1827 + dependencies = [ 1828 + "displaydoc", 1829 + "icu_locale_core", 1830 + "writeable", 1831 + "yoke", 1832 + "zerofrom", 1833 + "zerotrie", 1834 + "zerovec", 1835 + ] 1836 + 1837 + [[package]] 1838 + name = "ident_case" 1839 + version = "1.0.1" 1840 + source = "registry+https://github.com/rust-lang/crates.io-index" 1841 + checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" 1842 + 1843 + [[package]] 1844 + name = "idna" 1845 + version = "1.1.0" 1846 + source = "registry+https://github.com/rust-lang/crates.io-index" 1847 + checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" 1848 + dependencies = [ 1849 + "idna_adapter", 1850 + "smallvec", 1851 + "utf8_iter", 1852 + ] 1853 + 1854 + [[package]] 1855 + name = "idna_adapter" 1856 + version = "1.2.1" 1857 + source = "registry+https://github.com/rust-lang/crates.io-index" 1858 + checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" 1859 + dependencies = [ 1860 + "icu_normalizer", 1861 + "icu_properties", 1862 + ] 1863 + 1864 + [[package]] 1865 + name = "ignore" 1866 + version = "0.4.25" 1867 + source = "registry+https://github.com/rust-lang/crates.io-index" 1868 + checksum = "d3d782a365a015e0f5c04902246139249abf769125006fbe7649e2ee88169b4a" 1869 + dependencies = [ 1870 + "crossbeam-deque", 1871 + "globset", 1872 + "log", 1873 + "memchr", 1874 + "regex-automata", 1875 + "same-file", 1876 + "walkdir", 1877 + "winapi-util", 1878 + ] 1879 + 1880 + [[package]] 1881 + name = "imara-diff" 1882 + version = "0.1.8" 1883 + source = "registry+https://github.com/rust-lang/crates.io-index" 1884 + checksum = "17d34b7d42178945f775e84bc4c36dde7c1c6cdfea656d3354d009056f2bb3d2" 1885 + dependencies = [ 1886 + "hashbrown 0.15.5", 1887 + ] 1888 + 1889 + [[package]] 1890 + name = "indexmap" 1891 + version = "2.12.0" 1892 + source = "registry+https://github.com/rust-lang/crates.io-index" 1893 + checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" 1894 + dependencies = [ 1895 + "equivalent", 1896 + "hashbrown 0.16.0", 1897 + "serde", 1898 + "serde_core", 1899 + ] 1900 + 1901 + [[package]] 1902 + name = "indoc" 1903 + version = "2.0.7" 1904 + source = "registry+https://github.com/rust-lang/crates.io-index" 1905 + checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706" 1906 + dependencies = [ 1907 + "rustversion", 1908 + ] 1909 + 1910 + [[package]] 1911 + name = "instability" 1912 + version = "0.3.9" 1913 + source = "registry+https://github.com/rust-lang/crates.io-index" 1914 + checksum = "435d80800b936787d62688c927b6490e887c7ef5ff9ce922c6c6050fca75eb9a" 1915 + dependencies = [ 1916 + "darling", 1917 + "indoc", 1918 + "proc-macro2", 1919 + "quote", 1920 + "syn 2.0.108", 1921 + ] 1922 + 1923 + [[package]] 1924 + name = "interim" 1925 + version = "0.2.1" 1926 + source = "registry+https://github.com/rust-lang/crates.io-index" 1927 + checksum = "a9ce9099a85f468663d3225bf87e85d0548968441e1db12248b996b24f0f5b5a" 1928 + dependencies = [ 1929 + "chrono", 1930 + "logos", 1931 + ] 1932 + 1933 + [[package]] 1934 + name = "is_executable" 1935 + version = "1.0.5" 1936 + source = "registry+https://github.com/rust-lang/crates.io-index" 1937 + checksum = "baabb8b4867b26294d818bf3f651a454b6901431711abb96e296245888d6e8c4" 1938 + dependencies = [ 1939 + "windows-sys 0.60.2", 1940 + ] 1941 + 1942 + [[package]] 1943 + name = "is_terminal_polyfill" 1944 + version = "1.70.2" 1945 + source = "registry+https://github.com/rust-lang/crates.io-index" 1946 + checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" 1947 + 1948 + [[package]] 1949 + name = "itertools" 1950 + version = "0.13.0" 1951 + source = "registry+https://github.com/rust-lang/crates.io-index" 1952 + checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" 1953 + dependencies = [ 1954 + "either", 1955 + ] 1956 + 1957 + [[package]] 1958 + name = "itertools" 1959 + version = "0.14.0" 1960 + source = "registry+https://github.com/rust-lang/crates.io-index" 1961 + checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" 1962 + dependencies = [ 1963 + "either", 1964 + ] 1965 + 1966 + [[package]] 1967 + name = "itoa" 1968 + version = "1.0.15" 1969 + source = "registry+https://github.com/rust-lang/crates.io-index" 1970 + checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" 1971 + 1972 + [[package]] 1973 + name = "jiff" 1974 + version = "0.2.16" 1975 + source = "registry+https://github.com/rust-lang/crates.io-index" 1976 + checksum = "49cce2b81f2098e7e3efc35bc2e0a6b7abec9d34128283d7a26fa8f32a6dbb35" 1977 + dependencies = [ 1978 + "jiff-static", 1979 + "jiff-tzdb-platform", 1980 + "log", 1981 + "portable-atomic", 1982 + "portable-atomic-util", 1983 + "serde_core", 1984 + "windows-sys 0.61.2", 1985 + ] 1986 + 1987 + [[package]] 1988 + name = "jiff-static" 1989 + version = "0.2.16" 1990 + source = "registry+https://github.com/rust-lang/crates.io-index" 1991 + checksum = "980af8b43c3ad5d8d349ace167ec8170839f753a42d233ba19e08afe1850fa69" 1992 + dependencies = [ 1993 + "proc-macro2", 1994 + "quote", 1995 + "syn 2.0.108", 1996 + ] 1997 + 1998 + [[package]] 1999 + name = "jiff-tzdb" 2000 + version = "0.1.4" 2001 + source = "registry+https://github.com/rust-lang/crates.io-index" 2002 + checksum = "c1283705eb0a21404d2bfd6eef2a7593d240bc42a0bdb39db0ad6fa2ec026524" 2003 + 2004 + [[package]] 2005 + name = "jiff-tzdb-platform" 2006 + version = "0.1.3" 2007 + source = "registry+https://github.com/rust-lang/crates.io-index" 2008 + checksum = "875a5a69ac2bab1a891711cf5eccbec1ce0341ea805560dcd90b7a2e925132e8" 2009 + dependencies = [ 2010 + "jiff-tzdb", 2011 + ] 2012 + 2013 + [[package]] 2014 + name = "jj-cli" 2015 + version = "0.35.0" 2016 + source = "registry+https://github.com/rust-lang/crates.io-index" 2017 + checksum = "c6c94a9ea6307d2ac04ba352e09b350aa7bd76f14e962b07ff479a4d0669989a" 2018 + dependencies = [ 2019 + "bstr", 2020 + "chrono", 2021 + "clap", 2022 + "clap-markdown", 2023 + "clap_complete", 2024 + "clap_complete_nushell", 2025 + "clap_mangen", 2026 + "crossterm 0.29.0", 2027 + "dunce", 2028 + "erased-serde", 2029 + "etcetera", 2030 + "futures 0.3.31", 2031 + "gix", 2032 + "globset", 2033 + "indexmap", 2034 + "indoc", 2035 + "itertools 0.14.0", 2036 + "jj-lib", 2037 + "libc", 2038 + "maplit", 2039 + "once_cell", 2040 + "pest", 2041 + "pest_derive", 2042 + "pollster", 2043 + "rayon", 2044 + "regex", 2045 + "rpassword", 2046 + "sapling-renderdag", 2047 + "sapling-streampager", 2048 + "scm-record", 2049 + "serde", 2050 + "serde_json", 2051 + "slab", 2052 + "strsim", 2053 + "tempfile", 2054 + "textwrap", 2055 + "thiserror 2.0.17", 2056 + "timeago", 2057 + "tokio", 2058 + "toml 0.9.8", 2059 + "toml_edit 0.23.7", 2060 + "tracing", 2061 + "tracing-chrome", 2062 + "tracing-subscriber", 2063 + "unicode-width 0.2.0", 2064 + "whoami", 2065 + ] 2066 + 2067 + [[package]] 2068 + name = "jj-lib" 2069 + version = "0.35.0" 2070 + source = "registry+https://github.com/rust-lang/crates.io-index" 2071 + checksum = "7359906e1e4fbc7316590a31760da95719a11b2f32ce3a76b8c6e8de1ccd93d7" 2072 + dependencies = [ 2073 + "async-trait", 2074 + "blake2", 2075 + "bstr", 2076 + "chrono", 2077 + "clru", 2078 + "digest", 2079 + "dunce", 2080 + "either", 2081 + "futures 0.3.31", 2082 + "gix", 2083 + "globset", 2084 + "hashbrown 0.16.0", 2085 + "ignore", 2086 + "indexmap", 2087 + "interim", 2088 + "itertools 0.14.0", 2089 + "jj-lib-proc-macros", 2090 + "maplit", 2091 + "once_cell", 2092 + "pest", 2093 + "pest_derive", 2094 + "pollster", 2095 + "prost", 2096 + "rand 0.9.2", 2097 + "rand_chacha", 2098 + "rayon", 2099 + "ref-cast", 2100 + "regex", 2101 + "rustix 1.1.2", 2102 + "same-file", 2103 + "serde", 2104 + "smallvec", 2105 + "strsim", 2106 + "tempfile", 2107 + "thiserror 2.0.17", 2108 + "tokio", 2109 + "toml_edit 0.23.7", 2110 + "tracing", 2111 + "version_check", 2112 + "watchman_client", 2113 + "winreg", 2114 + ] 2115 + 2116 + [[package]] 2117 + name = "jj-lib-proc-macros" 2118 + version = "0.35.0" 2119 + source = "registry+https://github.com/rust-lang/crates.io-index" 2120 + checksum = "326132a09bea618b2035a13c17fe9d5542ca260c0895dacca8ad95f0d6d4011c" 2121 + dependencies = [ 2122 + "proc-macro2", 2123 + "quote", 2124 + "syn 2.0.108", 2125 + ] 2126 + 2127 + [[package]] 2128 + name = "jj-mm" 2129 + version = "0.1.0" 2130 + dependencies = [ 2131 + "anyhow", 2132 + "clap", 2133 + "crossterm 0.29.0", 2134 + "jj-cli", 2135 + "jj-lib", 2136 + "ratatui", 2137 + "sapling-renderdag", 2138 + ] 2139 + 2140 + [[package]] 2141 + name = "js-sys" 2142 + version = "0.3.82" 2143 + source = "registry+https://github.com/rust-lang/crates.io-index" 2144 + checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65" 2145 + dependencies = [ 2146 + "once_cell", 2147 + "wasm-bindgen", 2148 + ] 2149 + 2150 + [[package]] 2151 + name = "kstring" 2152 + version = "2.0.2" 2153 + source = "registry+https://github.com/rust-lang/crates.io-index" 2154 + checksum = "558bf9508a558512042d3095138b1f7b8fe90c5467d94f9f1da28b3731c5dbd1" 2155 + dependencies = [ 2156 + "static_assertions", 2157 + ] 2158 + 2159 + [[package]] 2160 + name = "lab" 2161 + version = "0.11.0" 2162 + source = "registry+https://github.com/rust-lang/crates.io-index" 2163 + checksum = "bf36173d4167ed999940f804952e6b08197cae5ad5d572eb4db150ce8ad5d58f" 2164 + 2165 + [[package]] 2166 + name = "lazy_static" 2167 + version = "1.5.0" 2168 + source = "registry+https://github.com/rust-lang/crates.io-index" 2169 + checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 2170 + 2171 + [[package]] 2172 + name = "libc" 2173 + version = "0.2.177" 2174 + source = "registry+https://github.com/rust-lang/crates.io-index" 2175 + checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" 2176 + 2177 + [[package]] 2178 + name = "libredox" 2179 + version = "0.1.10" 2180 + source = "registry+https://github.com/rust-lang/crates.io-index" 2181 + checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" 2182 + dependencies = [ 2183 + "bitflags 2.10.0", 2184 + "libc", 2185 + "redox_syscall", 2186 + ] 2187 + 2188 + [[package]] 2189 + name = "libz-rs-sys" 2190 + version = "0.5.2" 2191 + source = "registry+https://github.com/rust-lang/crates.io-index" 2192 + checksum = "840db8cf39d9ec4dd794376f38acc40d0fc65eec2a8f484f7fd375b84602becd" 2193 + dependencies = [ 2194 + "zlib-rs", 2195 + ] 2196 + 2197 + [[package]] 2198 + name = "linux-raw-sys" 2199 + version = "0.4.15" 2200 + source = "registry+https://github.com/rust-lang/crates.io-index" 2201 + checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" 2202 + 2203 + [[package]] 2204 + name = "linux-raw-sys" 2205 + version = "0.11.0" 2206 + source = "registry+https://github.com/rust-lang/crates.io-index" 2207 + checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" 2208 + 2209 + [[package]] 2210 + name = "litemap" 2211 + version = "0.8.1" 2212 + source = "registry+https://github.com/rust-lang/crates.io-index" 2213 + checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" 2214 + 2215 + [[package]] 2216 + name = "litrs" 2217 + version = "1.0.0" 2218 + source = "registry+https://github.com/rust-lang/crates.io-index" 2219 + checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092" 2220 + 2221 + [[package]] 2222 + name = "lock_api" 2223 + version = "0.4.14" 2224 + source = "registry+https://github.com/rust-lang/crates.io-index" 2225 + checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" 2226 + dependencies = [ 2227 + "scopeguard", 2228 + ] 2229 + 2230 + [[package]] 2231 + name = "log" 2232 + version = "0.4.28" 2233 + source = "registry+https://github.com/rust-lang/crates.io-index" 2234 + checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" 2235 + 2236 + [[package]] 2237 + name = "logos" 2238 + version = "0.15.1" 2239 + source = "registry+https://github.com/rust-lang/crates.io-index" 2240 + checksum = "ff472f899b4ec2d99161c51f60ff7075eeb3097069a36050d8037a6325eb8154" 2241 + dependencies = [ 2242 + "logos-derive", 2243 + ] 2244 + 2245 + [[package]] 2246 + name = "logos-codegen" 2247 + version = "0.15.1" 2248 + source = "registry+https://github.com/rust-lang/crates.io-index" 2249 + checksum = "192a3a2b90b0c05b27a0b2c43eecdb7c415e29243acc3f89cc8247a5b693045c" 2250 + dependencies = [ 2251 + "beef", 2252 + "fnv", 2253 + "lazy_static", 2254 + "proc-macro2", 2255 + "quote", 2256 + "regex-syntax", 2257 + "rustc_version", 2258 + "syn 2.0.108", 2259 + ] 2260 + 2261 + [[package]] 2262 + name = "logos-derive" 2263 + version = "0.15.1" 2264 + source = "registry+https://github.com/rust-lang/crates.io-index" 2265 + checksum = "605d9697bcd5ef3a42d38efc51541aa3d6a4a25f7ab6d1ed0da5ac632a26b470" 2266 + dependencies = [ 2267 + "logos-codegen", 2268 + ] 2269 + 2270 + [[package]] 2271 + name = "lru" 2272 + version = "0.12.4" 2273 + source = "registry+https://github.com/rust-lang/crates.io-index" 2274 + checksum = "37ee39891760e7d94734f6f63fedc29a2e4a152f836120753a72503f09fcf904" 2275 + dependencies = [ 2276 + "hashbrown 0.14.5", 2277 + ] 2278 + 2279 + [[package]] 2280 + name = "mac_address" 2281 + version = "1.1.8" 2282 + source = "registry+https://github.com/rust-lang/crates.io-index" 2283 + checksum = "c0aeb26bf5e836cc1c341c8106051b573f1766dfa05aa87f0b98be5e51b02303" 2284 + dependencies = [ 2285 + "nix", 2286 + "winapi", 2287 + ] 2288 + 2289 + [[package]] 2290 + name = "maplit" 2291 + version = "1.0.2" 2292 + source = "registry+https://github.com/rust-lang/crates.io-index" 2293 + checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" 2294 + 2295 + [[package]] 2296 + name = "matchers" 2297 + version = "0.2.0" 2298 + source = "registry+https://github.com/rust-lang/crates.io-index" 2299 + checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" 2300 + dependencies = [ 2301 + "regex-automata", 2302 + ] 2303 + 2304 + [[package]] 2305 + name = "maybe-async" 2306 + version = "0.2.10" 2307 + source = "registry+https://github.com/rust-lang/crates.io-index" 2308 + checksum = "5cf92c10c7e361d6b99666ec1c6f9805b0bea2c3bd8c78dc6fe98ac5bd78db11" 2309 + dependencies = [ 2310 + "proc-macro2", 2311 + "quote", 2312 + "syn 2.0.108", 2313 + ] 2314 + 2315 + [[package]] 2316 + name = "memchr" 2317 + version = "2.7.6" 2318 + source = "registry+https://github.com/rust-lang/crates.io-index" 2319 + checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" 2320 + 2321 + [[package]] 2322 + name = "memmap2" 2323 + version = "0.5.10" 2324 + source = "registry+https://github.com/rust-lang/crates.io-index" 2325 + checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" 2326 + dependencies = [ 2327 + "libc", 2328 + ] 2329 + 2330 + [[package]] 2331 + name = "memmap2" 2332 + version = "0.9.9" 2333 + source = "registry+https://github.com/rust-lang/crates.io-index" 2334 + checksum = "744133e4a0e0a658e1374cf3bf8e415c4052a15a111acd372764c55b4177d490" 2335 + dependencies = [ 2336 + "libc", 2337 + ] 2338 + 2339 + [[package]] 2340 + name = "memmem" 2341 + version = "0.1.1" 2342 + source = "registry+https://github.com/rust-lang/crates.io-index" 2343 + checksum = "a64a92489e2744ce060c349162be1c5f33c6969234104dbd99ddb5feb08b8c15" 2344 + 2345 + [[package]] 2346 + name = "memoffset" 2347 + version = "0.9.1" 2348 + source = "registry+https://github.com/rust-lang/crates.io-index" 2349 + checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" 2350 + dependencies = [ 2351 + "autocfg", 2352 + ] 2353 + 2354 + [[package]] 2355 + name = "minimal-lexical" 2356 + version = "0.2.1" 2357 + source = "registry+https://github.com/rust-lang/crates.io-index" 2358 + checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" 2359 + 2360 + [[package]] 2361 + name = "mio" 2362 + version = "1.1.0" 2363 + source = "registry+https://github.com/rust-lang/crates.io-index" 2364 + checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873" 2365 + dependencies = [ 2366 + "libc", 2367 + "log", 2368 + "wasi", 2369 + "windows-sys 0.61.2", 2370 + ] 2371 + 2372 + [[package]] 2373 + name = "nix" 2374 + version = "0.29.0" 2375 + source = "registry+https://github.com/rust-lang/crates.io-index" 2376 + checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" 2377 + dependencies = [ 2378 + "bitflags 2.10.0", 2379 + "cfg-if", 2380 + "cfg_aliases", 2381 + "libc", 2382 + "memoffset", 2383 + ] 2384 + 2385 + [[package]] 2386 + name = "nom" 2387 + version = "7.1.3" 2388 + source = "registry+https://github.com/rust-lang/crates.io-index" 2389 + checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" 2390 + dependencies = [ 2391 + "memchr", 2392 + "minimal-lexical", 2393 + ] 2394 + 2395 + [[package]] 2396 + name = "nu-ansi-term" 2397 + version = "0.50.3" 2398 + source = "registry+https://github.com/rust-lang/crates.io-index" 2399 + checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" 2400 + dependencies = [ 2401 + "windows-sys 0.61.2", 2402 + ] 2403 + 2404 + [[package]] 2405 + name = "num-derive" 2406 + version = "0.4.2" 2407 + source = "registry+https://github.com/rust-lang/crates.io-index" 2408 + checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" 2409 + dependencies = [ 2410 + "proc-macro2", 2411 + "quote", 2412 + "syn 2.0.108", 2413 + ] 2414 + 2415 + [[package]] 2416 + name = "num-traits" 2417 + version = "0.2.19" 2418 + source = "registry+https://github.com/rust-lang/crates.io-index" 2419 + checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 2420 + dependencies = [ 2421 + "autocfg", 2422 + ] 2423 + 2424 + [[package]] 2425 + name = "once_cell" 2426 + version = "1.21.3" 2427 + source = "registry+https://github.com/rust-lang/crates.io-index" 2428 + checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" 2429 + 2430 + [[package]] 2431 + name = "once_cell_polyfill" 2432 + version = "1.70.2" 2433 + source = "registry+https://github.com/rust-lang/crates.io-index" 2434 + checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" 2435 + 2436 + [[package]] 2437 + name = "option-ext" 2438 + version = "0.2.0" 2439 + source = "registry+https://github.com/rust-lang/crates.io-index" 2440 + checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" 2441 + 2442 + [[package]] 2443 + name = "ordered-float" 2444 + version = "4.6.0" 2445 + source = "registry+https://github.com/rust-lang/crates.io-index" 2446 + checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951" 2447 + dependencies = [ 2448 + "num-traits", 2449 + ] 2450 + 2451 + [[package]] 2452 + name = "parking_lot" 2453 + version = "0.12.5" 2454 + source = "registry+https://github.com/rust-lang/crates.io-index" 2455 + checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" 2456 + dependencies = [ 2457 + "lock_api", 2458 + "parking_lot_core", 2459 + ] 2460 + 2461 + [[package]] 2462 + name = "parking_lot_core" 2463 + version = "0.9.12" 2464 + source = "registry+https://github.com/rust-lang/crates.io-index" 2465 + checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" 2466 + dependencies = [ 2467 + "cfg-if", 2468 + "libc", 2469 + "redox_syscall", 2470 + "smallvec", 2471 + "windows-link", 2472 + ] 2473 + 2474 + [[package]] 2475 + name = "paste" 2476 + version = "1.0.15" 2477 + source = "registry+https://github.com/rust-lang/crates.io-index" 2478 + checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" 2479 + 2480 + [[package]] 2481 + name = "percent-encoding" 2482 + version = "2.3.2" 2483 + source = "registry+https://github.com/rust-lang/crates.io-index" 2484 + checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" 2485 + 2486 + [[package]] 2487 + name = "pest" 2488 + version = "2.8.3" 2489 + source = "registry+https://github.com/rust-lang/crates.io-index" 2490 + checksum = "989e7521a040efde50c3ab6bbadafbe15ab6dc042686926be59ac35d74607df4" 2491 + dependencies = [ 2492 + "memchr", 2493 + "ucd-trie", 2494 + ] 2495 + 2496 + [[package]] 2497 + name = "pest_derive" 2498 + version = "2.8.3" 2499 + source = "registry+https://github.com/rust-lang/crates.io-index" 2500 + checksum = "187da9a3030dbafabbbfb20cb323b976dc7b7ce91fcd84f2f74d6e31d378e2de" 2501 + dependencies = [ 2502 + "pest", 2503 + "pest_generator", 2504 + ] 2505 + 2506 + [[package]] 2507 + name = "pest_generator" 2508 + version = "2.8.3" 2509 + source = "registry+https://github.com/rust-lang/crates.io-index" 2510 + checksum = "49b401d98f5757ebe97a26085998d6c0eecec4995cad6ab7fc30ffdf4b052843" 2511 + dependencies = [ 2512 + "pest", 2513 + "pest_meta", 2514 + "proc-macro2", 2515 + "quote", 2516 + "syn 2.0.108", 2517 + ] 2518 + 2519 + [[package]] 2520 + name = "pest_meta" 2521 + version = "2.8.3" 2522 + source = "registry+https://github.com/rust-lang/crates.io-index" 2523 + checksum = "72f27a2cfee9f9039c4d86faa5af122a0ac3851441a34865b8a043b46be0065a" 2524 + dependencies = [ 2525 + "pest", 2526 + "sha2", 2527 + ] 2528 + 2529 + [[package]] 2530 + name = "phf" 2531 + version = "0.11.3" 2532 + source = "registry+https://github.com/rust-lang/crates.io-index" 2533 + checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" 2534 + dependencies = [ 2535 + "phf_macros", 2536 + "phf_shared", 2537 + ] 2538 + 2539 + [[package]] 2540 + name = "phf_codegen" 2541 + version = "0.11.3" 2542 + source = "registry+https://github.com/rust-lang/crates.io-index" 2543 + checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" 2544 + dependencies = [ 2545 + "phf_generator", 2546 + "phf_shared", 2547 + ] 2548 + 2549 + [[package]] 2550 + name = "phf_generator" 2551 + version = "0.11.3" 2552 + source = "registry+https://github.com/rust-lang/crates.io-index" 2553 + checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" 2554 + dependencies = [ 2555 + "phf_shared", 2556 + "rand 0.8.5", 2557 + ] 2558 + 2559 + [[package]] 2560 + name = "phf_macros" 2561 + version = "0.11.3" 2562 + source = "registry+https://github.com/rust-lang/crates.io-index" 2563 + checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" 2564 + dependencies = [ 2565 + "phf_generator", 2566 + "phf_shared", 2567 + "proc-macro2", 2568 + "quote", 2569 + "syn 2.0.108", 2570 + ] 2571 + 2572 + [[package]] 2573 + name = "phf_shared" 2574 + version = "0.11.3" 2575 + source = "registry+https://github.com/rust-lang/crates.io-index" 2576 + checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" 2577 + dependencies = [ 2578 + "siphasher", 2579 + ] 2580 + 2581 + [[package]] 2582 + name = "pin-project-lite" 2583 + version = "0.2.16" 2584 + source = "registry+https://github.com/rust-lang/crates.io-index" 2585 + checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" 2586 + 2587 + [[package]] 2588 + name = "pin-utils" 2589 + version = "0.1.0" 2590 + source = "registry+https://github.com/rust-lang/crates.io-index" 2591 + checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 2592 + 2593 + [[package]] 2594 + name = "pollster" 2595 + version = "0.4.0" 2596 + source = "registry+https://github.com/rust-lang/crates.io-index" 2597 + checksum = "2f3a9f18d041e6d0e102a0a46750538147e5e8992d3b4873aaafee2520b00ce3" 2598 + 2599 + [[package]] 2600 + name = "portable-atomic" 2601 + version = "1.11.1" 2602 + source = "registry+https://github.com/rust-lang/crates.io-index" 2603 + checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" 2604 + 2605 + [[package]] 2606 + name = "portable-atomic-util" 2607 + version = "0.2.4" 2608 + source = "registry+https://github.com/rust-lang/crates.io-index" 2609 + checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" 2610 + dependencies = [ 2611 + "portable-atomic", 2612 + ] 2613 + 2614 + [[package]] 2615 + name = "potential_utf" 2616 + version = "0.1.4" 2617 + source = "registry+https://github.com/rust-lang/crates.io-index" 2618 + checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" 2619 + dependencies = [ 2620 + "zerovec", 2621 + ] 2622 + 2623 + [[package]] 2624 + name = "ppv-lite86" 2625 + version = "0.2.21" 2626 + source = "registry+https://github.com/rust-lang/crates.io-index" 2627 + checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" 2628 + dependencies = [ 2629 + "zerocopy", 2630 + ] 2631 + 2632 + [[package]] 2633 + name = "proc-macro2" 2634 + version = "1.0.103" 2635 + source = "registry+https://github.com/rust-lang/crates.io-index" 2636 + checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" 2637 + dependencies = [ 2638 + "unicode-ident", 2639 + ] 2640 + 2641 + [[package]] 2642 + name = "prodash" 2643 + version = "30.0.1" 2644 + source = "registry+https://github.com/rust-lang/crates.io-index" 2645 + checksum = "5a6efc566849d3d9d737c5cb06cc50e48950ebe3d3f9d70631490fff3a07b139" 2646 + dependencies = [ 2647 + "parking_lot", 2648 + ] 2649 + 2650 + [[package]] 2651 + name = "prost" 2652 + version = "0.14.1" 2653 + source = "registry+https://github.com/rust-lang/crates.io-index" 2654 + checksum = "7231bd9b3d3d33c86b58adbac74b5ec0ad9f496b19d22801d773636feaa95f3d" 2655 + dependencies = [ 2656 + "bytes", 2657 + "prost-derive", 2658 + ] 2659 + 2660 + [[package]] 2661 + name = "prost-derive" 2662 + version = "0.14.1" 2663 + source = "registry+https://github.com/rust-lang/crates.io-index" 2664 + checksum = "9120690fafc389a67ba3803df527d0ec9cbbc9cc45e4cc20b332996dfb672425" 2665 + dependencies = [ 2666 + "anyhow", 2667 + "itertools 0.14.0", 2668 + "proc-macro2", 2669 + "quote", 2670 + "syn 2.0.108", 2671 + ] 2672 + 2673 + [[package]] 2674 + name = "quote" 2675 + version = "1.0.41" 2676 + source = "registry+https://github.com/rust-lang/crates.io-index" 2677 + checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" 2678 + dependencies = [ 2679 + "proc-macro2", 2680 + ] 2681 + 2682 + [[package]] 2683 + name = "r-efi" 2684 + version = "5.3.0" 2685 + source = "registry+https://github.com/rust-lang/crates.io-index" 2686 + checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" 2687 + 2688 + [[package]] 2689 + name = "rand" 2690 + version = "0.8.5" 2691 + source = "registry+https://github.com/rust-lang/crates.io-index" 2692 + checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 2693 + dependencies = [ 2694 + "rand_core 0.6.4", 2695 + ] 2696 + 2697 + [[package]] 2698 + name = "rand" 2699 + version = "0.9.2" 2700 + source = "registry+https://github.com/rust-lang/crates.io-index" 2701 + checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" 2702 + dependencies = [ 2703 + "rand_chacha", 2704 + "rand_core 0.9.3", 2705 + ] 2706 + 2707 + [[package]] 2708 + name = "rand_chacha" 2709 + version = "0.9.0" 2710 + source = "registry+https://github.com/rust-lang/crates.io-index" 2711 + checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" 2712 + dependencies = [ 2713 + "ppv-lite86", 2714 + "rand_core 0.9.3", 2715 + ] 2716 + 2717 + [[package]] 2718 + name = "rand_core" 2719 + version = "0.6.4" 2720 + source = "registry+https://github.com/rust-lang/crates.io-index" 2721 + checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 2722 + 2723 + [[package]] 2724 + name = "rand_core" 2725 + version = "0.9.3" 2726 + source = "registry+https://github.com/rust-lang/crates.io-index" 2727 + checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" 2728 + dependencies = [ 2729 + "getrandom 0.3.4", 2730 + ] 2731 + 2732 + [[package]] 2733 + name = "ratatui" 2734 + version = "0.29.0" 2735 + source = "registry+https://github.com/rust-lang/crates.io-index" 2736 + checksum = "eabd94c2f37801c20583fc49dd5cd6b0ba68c716787c2dd6ed18571e1e63117b" 2737 + dependencies = [ 2738 + "bitflags 2.10.0", 2739 + "cassowary", 2740 + "compact_str", 2741 + "crossterm 0.28.1", 2742 + "indoc", 2743 + "instability", 2744 + "itertools 0.13.0", 2745 + "lru", 2746 + "paste", 2747 + "strum", 2748 + "unicode-segmentation", 2749 + "unicode-truncate", 2750 + "unicode-width 0.2.0", 2751 + ] 2752 + 2753 + [[package]] 2754 + name = "rayon" 2755 + version = "1.11.0" 2756 + source = "registry+https://github.com/rust-lang/crates.io-index" 2757 + checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" 2758 + dependencies = [ 2759 + "either", 2760 + "rayon-core", 2761 + ] 2762 + 2763 + [[package]] 2764 + name = "rayon-core" 2765 + version = "1.13.0" 2766 + source = "registry+https://github.com/rust-lang/crates.io-index" 2767 + checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" 2768 + dependencies = [ 2769 + "crossbeam-deque", 2770 + "crossbeam-utils", 2771 + ] 2772 + 2773 + [[package]] 2774 + name = "redox_syscall" 2775 + version = "0.5.18" 2776 + source = "registry+https://github.com/rust-lang/crates.io-index" 2777 + checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" 2778 + dependencies = [ 2779 + "bitflags 2.10.0", 2780 + ] 2781 + 2782 + [[package]] 2783 + name = "redox_users" 2784 + version = "0.5.2" 2785 + source = "registry+https://github.com/rust-lang/crates.io-index" 2786 + checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" 2787 + dependencies = [ 2788 + "getrandom 0.2.16", 2789 + "libredox", 2790 + "thiserror 2.0.17", 2791 + ] 2792 + 2793 + [[package]] 2794 + name = "ref-cast" 2795 + version = "1.0.25" 2796 + source = "registry+https://github.com/rust-lang/crates.io-index" 2797 + checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" 2798 + dependencies = [ 2799 + "ref-cast-impl", 2800 + ] 2801 + 2802 + [[package]] 2803 + name = "ref-cast-impl" 2804 + version = "1.0.25" 2805 + source = "registry+https://github.com/rust-lang/crates.io-index" 2806 + checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" 2807 + dependencies = [ 2808 + "proc-macro2", 2809 + "quote", 2810 + "syn 2.0.108", 2811 + ] 2812 + 2813 + [[package]] 2814 + name = "regex" 2815 + version = "1.12.2" 2816 + source = "registry+https://github.com/rust-lang/crates.io-index" 2817 + checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" 2818 + dependencies = [ 2819 + "aho-corasick", 2820 + "memchr", 2821 + "regex-automata", 2822 + "regex-syntax", 2823 + ] 2824 + 2825 + [[package]] 2826 + name = "regex-automata" 2827 + version = "0.4.13" 2828 + source = "registry+https://github.com/rust-lang/crates.io-index" 2829 + checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" 2830 + dependencies = [ 2831 + "aho-corasick", 2832 + "memchr", 2833 + "regex-syntax", 2834 + ] 2835 + 2836 + [[package]] 2837 + name = "regex-syntax" 2838 + version = "0.8.8" 2839 + source = "registry+https://github.com/rust-lang/crates.io-index" 2840 + checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" 2841 + 2842 + [[package]] 2843 + name = "roff" 2844 + version = "0.2.2" 2845 + source = "registry+https://github.com/rust-lang/crates.io-index" 2846 + checksum = "88f8660c1ff60292143c98d08fc6e2f654d722db50410e3f3797d40baaf9d8f3" 2847 + 2848 + [[package]] 2849 + name = "rpassword" 2850 + version = "7.4.0" 2851 + source = "registry+https://github.com/rust-lang/crates.io-index" 2852 + checksum = "66d4c8b64f049c6721ec8ccec37ddfc3d641c4a7fca57e8f2a89de509c73df39" 2853 + dependencies = [ 2854 + "libc", 2855 + "rtoolbox", 2856 + "windows-sys 0.59.0", 2857 + ] 2858 + 2859 + [[package]] 2860 + name = "rtoolbox" 2861 + version = "0.0.3" 2862 + source = "registry+https://github.com/rust-lang/crates.io-index" 2863 + checksum = "a7cc970b249fbe527d6e02e0a227762c9108b2f49d81094fe357ffc6d14d7f6f" 2864 + dependencies = [ 2865 + "libc", 2866 + "windows-sys 0.52.0", 2867 + ] 2868 + 2869 + [[package]] 2870 + name = "rustc_version" 2871 + version = "0.4.1" 2872 + source = "registry+https://github.com/rust-lang/crates.io-index" 2873 + checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" 2874 + dependencies = [ 2875 + "semver", 2876 + ] 2877 + 2878 + [[package]] 2879 + name = "rustix" 2880 + version = "0.38.44" 2881 + source = "registry+https://github.com/rust-lang/crates.io-index" 2882 + checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" 2883 + dependencies = [ 2884 + "bitflags 2.10.0", 2885 + "errno", 2886 + "libc", 2887 + "linux-raw-sys 0.4.15", 2888 + "windows-sys 0.59.0", 2889 + ] 2890 + 2891 + [[package]] 2892 + name = "rustix" 2893 + version = "1.1.2" 2894 + source = "registry+https://github.com/rust-lang/crates.io-index" 2895 + checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" 2896 + dependencies = [ 2897 + "bitflags 2.10.0", 2898 + "errno", 2899 + "libc", 2900 + "linux-raw-sys 0.11.0", 2901 + "windows-sys 0.61.2", 2902 + ] 2903 + 2904 + [[package]] 2905 + name = "rustversion" 2906 + version = "1.0.22" 2907 + source = "registry+https://github.com/rust-lang/crates.io-index" 2908 + checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" 2909 + 2910 + [[package]] 2911 + name = "ryu" 2912 + version = "1.0.20" 2913 + source = "registry+https://github.com/rust-lang/crates.io-index" 2914 + checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" 2915 + 2916 + [[package]] 2917 + name = "same-file" 2918 + version = "1.0.6" 2919 + source = "registry+https://github.com/rust-lang/crates.io-index" 2920 + checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 2921 + dependencies = [ 2922 + "winapi-util", 2923 + ] 2924 + 2925 + [[package]] 2926 + name = "sapling-renderdag" 2927 + version = "0.1.0" 2928 + source = "registry+https://github.com/rust-lang/crates.io-index" 2929 + checksum = "edffb89cab87bd0901c5749d576f5d37a1f34e05160e936f463f4e94cc447b61" 2930 + dependencies = [ 2931 + "bitflags 2.10.0", 2932 + ] 2933 + 2934 + [[package]] 2935 + name = "sapling-streampager" 2936 + version = "0.11.0" 2937 + source = "registry+https://github.com/rust-lang/crates.io-index" 2938 + checksum = "67225ae0841f3e2d4082eff3f5dd4dca2777a46b7b6876e7b076eb4a913ada92" 2939 + dependencies = [ 2940 + "bit-set", 2941 + "dirs", 2942 + "enum_dispatch", 2943 + "indexmap", 2944 + "lazy_static", 2945 + "lru", 2946 + "memmap2 0.5.10", 2947 + "regex", 2948 + "scopeguard", 2949 + "serde", 2950 + "smallvec", 2951 + "tempfile", 2952 + "terminfo", 2953 + "termwiz", 2954 + "thiserror 2.0.17", 2955 + "toml 0.8.23", 2956 + "unicode-segmentation", 2957 + "unicode-width 0.1.12", 2958 + "vec_map", 2959 + ] 2960 + 2961 + [[package]] 2962 + name = "scm-record" 2963 + version = "0.8.0" 2964 + source = "registry+https://github.com/rust-lang/crates.io-index" 2965 + checksum = "3262a6cee1ea1663753e7178459c37bd2c5af37ad3371dbefd44607470c6d297" 2966 + dependencies = [ 2967 + "cassowary", 2968 + "crossterm 0.28.1", 2969 + "num-traits", 2970 + "ratatui", 2971 + "serde", 2972 + "serde_json", 2973 + "thiserror 2.0.17", 2974 + "tracing", 2975 + "unicode-width 0.2.0", 2976 + ] 2977 + 2978 + [[package]] 2979 + name = "scopeguard" 2980 + version = "1.2.0" 2981 + source = "registry+https://github.com/rust-lang/crates.io-index" 2982 + checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 2983 + 2984 + [[package]] 2985 + name = "semver" 2986 + version = "1.0.27" 2987 + source = "registry+https://github.com/rust-lang/crates.io-index" 2988 + checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" 2989 + 2990 + [[package]] 2991 + name = "serde" 2992 + version = "1.0.228" 2993 + source = "registry+https://github.com/rust-lang/crates.io-index" 2994 + checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" 2995 + dependencies = [ 2996 + "serde_core", 2997 + "serde_derive", 2998 + ] 2999 + 3000 + [[package]] 3001 + name = "serde_bser" 3002 + version = "0.4.0" 3003 + source = "registry+https://github.com/rust-lang/crates.io-index" 3004 + checksum = "a56b4bcc15e42e5b5ae16c6f75582bef80d36c6ffe2c03b1b5317754b38f8717" 3005 + dependencies = [ 3006 + "anyhow", 3007 + "byteorder", 3008 + "bytes", 3009 + "serde", 3010 + "serde_bytes", 3011 + "thiserror 1.0.69", 3012 + ] 3013 + 3014 + [[package]] 3015 + name = "serde_bytes" 3016 + version = "0.11.19" 3017 + source = "registry+https://github.com/rust-lang/crates.io-index" 3018 + checksum = "a5d440709e79d88e51ac01c4b72fc6cb7314017bb7da9eeff678aa94c10e3ea8" 3019 + dependencies = [ 3020 + "serde", 3021 + "serde_core", 3022 + ] 3023 + 3024 + [[package]] 3025 + name = "serde_core" 3026 + version = "1.0.228" 3027 + source = "registry+https://github.com/rust-lang/crates.io-index" 3028 + checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" 3029 + dependencies = [ 3030 + "serde_derive", 3031 + ] 3032 + 3033 + [[package]] 3034 + name = "serde_derive" 3035 + version = "1.0.228" 3036 + source = "registry+https://github.com/rust-lang/crates.io-index" 3037 + checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" 3038 + dependencies = [ 3039 + "proc-macro2", 3040 + "quote", 3041 + "syn 2.0.108", 3042 + ] 3043 + 3044 + [[package]] 3045 + name = "serde_json" 3046 + version = "1.0.145" 3047 + source = "registry+https://github.com/rust-lang/crates.io-index" 3048 + checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" 3049 + dependencies = [ 3050 + "itoa", 3051 + "memchr", 3052 + "ryu", 3053 + "serde", 3054 + "serde_core", 3055 + ] 3056 + 3057 + [[package]] 3058 + name = "serde_spanned" 3059 + version = "0.6.9" 3060 + source = "registry+https://github.com/rust-lang/crates.io-index" 3061 + checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" 3062 + dependencies = [ 3063 + "serde", 3064 + ] 3065 + 3066 + [[package]] 3067 + name = "serde_spanned" 3068 + version = "1.0.3" 3069 + source = "registry+https://github.com/rust-lang/crates.io-index" 3070 + checksum = "e24345aa0fe688594e73770a5f6d1b216508b4f93484c0026d521acd30134392" 3071 + dependencies = [ 3072 + "serde_core", 3073 + ] 3074 + 3075 + [[package]] 3076 + name = "sha1" 3077 + version = "0.10.6" 3078 + source = "registry+https://github.com/rust-lang/crates.io-index" 3079 + checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" 3080 + dependencies = [ 3081 + "cfg-if", 3082 + "cpufeatures", 3083 + "digest", 3084 + ] 3085 + 3086 + [[package]] 3087 + name = "sha1-checked" 3088 + version = "0.10.0" 3089 + source = "registry+https://github.com/rust-lang/crates.io-index" 3090 + checksum = "89f599ac0c323ebb1c6082821a54962b839832b03984598375bff3975b804423" 3091 + dependencies = [ 3092 + "digest", 3093 + "sha1", 3094 + ] 3095 + 3096 + [[package]] 3097 + name = "sha2" 3098 + version = "0.10.9" 3099 + source = "registry+https://github.com/rust-lang/crates.io-index" 3100 + checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" 3101 + dependencies = [ 3102 + "cfg-if", 3103 + "cpufeatures", 3104 + "digest", 3105 + ] 3106 + 3107 + [[package]] 3108 + name = "sharded-slab" 3109 + version = "0.1.7" 3110 + source = "registry+https://github.com/rust-lang/crates.io-index" 3111 + checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" 3112 + dependencies = [ 3113 + "lazy_static", 3114 + ] 3115 + 3116 + [[package]] 3117 + name = "shell-words" 3118 + version = "1.1.0" 3119 + source = "registry+https://github.com/rust-lang/crates.io-index" 3120 + checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" 3121 + 3122 + [[package]] 3123 + name = "shlex" 3124 + version = "1.3.0" 3125 + source = "registry+https://github.com/rust-lang/crates.io-index" 3126 + checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 3127 + 3128 + [[package]] 3129 + name = "signal-hook" 3130 + version = "0.3.18" 3131 + source = "registry+https://github.com/rust-lang/crates.io-index" 3132 + checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2" 3133 + dependencies = [ 3134 + "libc", 3135 + "signal-hook-registry", 3136 + ] 3137 + 3138 + [[package]] 3139 + name = "signal-hook-mio" 3140 + version = "0.2.5" 3141 + source = "registry+https://github.com/rust-lang/crates.io-index" 3142 + checksum = "b75a19a7a740b25bc7944bdee6172368f988763b744e3d4dfe753f6b4ece40cc" 3143 + dependencies = [ 3144 + "libc", 3145 + "mio", 3146 + "signal-hook", 3147 + ] 3148 + 3149 + [[package]] 3150 + name = "signal-hook-registry" 3151 + version = "1.4.6" 3152 + source = "registry+https://github.com/rust-lang/crates.io-index" 3153 + checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" 3154 + dependencies = [ 3155 + "libc", 3156 + ] 3157 + 3158 + [[package]] 3159 + name = "siphasher" 3160 + version = "1.0.1" 3161 + source = "registry+https://github.com/rust-lang/crates.io-index" 3162 + checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" 3163 + 3164 + [[package]] 3165 + name = "slab" 3166 + version = "0.4.11" 3167 + source = "registry+https://github.com/rust-lang/crates.io-index" 3168 + checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" 3169 + 3170 + [[package]] 3171 + name = "smallvec" 3172 + version = "1.15.1" 3173 + source = "registry+https://github.com/rust-lang/crates.io-index" 3174 + checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" 3175 + dependencies = [ 3176 + "serde", 3177 + ] 3178 + 3179 + [[package]] 3180 + name = "smawk" 3181 + version = "0.3.2" 3182 + source = "registry+https://github.com/rust-lang/crates.io-index" 3183 + checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" 3184 + 3185 + [[package]] 3186 + name = "socket2" 3187 + version = "0.6.1" 3188 + source = "registry+https://github.com/rust-lang/crates.io-index" 3189 + checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" 3190 + dependencies = [ 3191 + "libc", 3192 + "windows-sys 0.60.2", 3193 + ] 3194 + 3195 + [[package]] 3196 + name = "stable_deref_trait" 3197 + version = "1.2.1" 3198 + source = "registry+https://github.com/rust-lang/crates.io-index" 3199 + checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" 3200 + 3201 + [[package]] 3202 + name = "static_assertions" 3203 + version = "1.1.0" 3204 + source = "registry+https://github.com/rust-lang/crates.io-index" 3205 + checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 3206 + 3207 + [[package]] 3208 + name = "strsim" 3209 + version = "0.11.1" 3210 + source = "registry+https://github.com/rust-lang/crates.io-index" 3211 + checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" 3212 + 3213 + [[package]] 3214 + name = "strum" 3215 + version = "0.26.3" 3216 + source = "registry+https://github.com/rust-lang/crates.io-index" 3217 + checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" 3218 + dependencies = [ 3219 + "strum_macros", 3220 + ] 3221 + 3222 + [[package]] 3223 + name = "strum_macros" 3224 + version = "0.26.4" 3225 + source = "registry+https://github.com/rust-lang/crates.io-index" 3226 + checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" 3227 + dependencies = [ 3228 + "heck", 3229 + "proc-macro2", 3230 + "quote", 3231 + "rustversion", 3232 + "syn 2.0.108", 3233 + ] 3234 + 3235 + [[package]] 3236 + name = "subtle" 3237 + version = "2.6.1" 3238 + source = "registry+https://github.com/rust-lang/crates.io-index" 3239 + checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" 3240 + 3241 + [[package]] 3242 + name = "syn" 3243 + version = "1.0.109" 3244 + source = "registry+https://github.com/rust-lang/crates.io-index" 3245 + checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 3246 + dependencies = [ 3247 + "proc-macro2", 3248 + "quote", 3249 + "unicode-ident", 3250 + ] 3251 + 3252 + [[package]] 3253 + name = "syn" 3254 + version = "2.0.108" 3255 + source = "registry+https://github.com/rust-lang/crates.io-index" 3256 + checksum = "da58917d35242480a05c2897064da0a80589a2a0476c9a3f2fdc83b53502e917" 3257 + dependencies = [ 3258 + "proc-macro2", 3259 + "quote", 3260 + "unicode-ident", 3261 + ] 3262 + 3263 + [[package]] 3264 + name = "synstructure" 3265 + version = "0.13.2" 3266 + source = "registry+https://github.com/rust-lang/crates.io-index" 3267 + checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" 3268 + dependencies = [ 3269 + "proc-macro2", 3270 + "quote", 3271 + "syn 2.0.108", 3272 + ] 3273 + 3274 + [[package]] 3275 + name = "tempfile" 3276 + version = "3.23.0" 3277 + source = "registry+https://github.com/rust-lang/crates.io-index" 3278 + checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" 3279 + dependencies = [ 3280 + "fastrand", 3281 + "getrandom 0.3.4", 3282 + "once_cell", 3283 + "rustix 1.1.2", 3284 + "windows-sys 0.61.2", 3285 + ] 3286 + 3287 + [[package]] 3288 + name = "terminal_size" 3289 + version = "0.4.3" 3290 + source = "registry+https://github.com/rust-lang/crates.io-index" 3291 + checksum = "60b8cb979cb11c32ce1603f8137b22262a9d131aaa5c37b5678025f22b8becd0" 3292 + dependencies = [ 3293 + "rustix 1.1.2", 3294 + "windows-sys 0.60.2", 3295 + ] 3296 + 3297 + [[package]] 3298 + name = "terminfo" 3299 + version = "0.9.0" 3300 + source = "registry+https://github.com/rust-lang/crates.io-index" 3301 + checksum = "d4ea810f0692f9f51b382fff5893887bb4580f5fa246fde546e0b13e7fcee662" 3302 + dependencies = [ 3303 + "fnv", 3304 + "nom", 3305 + "phf", 3306 + "phf_codegen", 3307 + ] 3308 + 3309 + [[package]] 3310 + name = "termios" 3311 + version = "0.3.3" 3312 + source = "registry+https://github.com/rust-lang/crates.io-index" 3313 + checksum = "411c5bf740737c7918b8b1fe232dca4dc9f8e754b8ad5e20966814001ed0ac6b" 3314 + dependencies = [ 3315 + "libc", 3316 + ] 3317 + 3318 + [[package]] 3319 + name = "termwiz" 3320 + version = "0.23.3" 3321 + source = "registry+https://github.com/rust-lang/crates.io-index" 3322 + checksum = "4676b37242ccbd1aabf56edb093a4827dc49086c0ffd764a5705899e0f35f8f7" 3323 + dependencies = [ 3324 + "anyhow", 3325 + "base64", 3326 + "bitflags 2.10.0", 3327 + "fancy-regex", 3328 + "filedescriptor", 3329 + "finl_unicode", 3330 + "fixedbitset", 3331 + "hex", 3332 + "lazy_static", 3333 + "libc", 3334 + "log", 3335 + "memmem", 3336 + "nix", 3337 + "num-derive", 3338 + "num-traits", 3339 + "ordered-float", 3340 + "pest", 3341 + "pest_derive", 3342 + "phf", 3343 + "sha2", 3344 + "signal-hook", 3345 + "siphasher", 3346 + "terminfo", 3347 + "termios", 3348 + "thiserror 1.0.69", 3349 + "ucd-trie", 3350 + "unicode-segmentation", 3351 + "vtparse", 3352 + "wezterm-bidi", 3353 + "wezterm-blob-leases", 3354 + "wezterm-color-types", 3355 + "wezterm-dynamic", 3356 + "wezterm-input-types", 3357 + "winapi", 3358 + ] 3359 + 3360 + [[package]] 3361 + name = "textwrap" 3362 + version = "0.16.2" 3363 + source = "registry+https://github.com/rust-lang/crates.io-index" 3364 + checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057" 3365 + dependencies = [ 3366 + "smawk", 3367 + "unicode-linebreak", 3368 + "unicode-width 0.2.0", 3369 + ] 3370 + 3371 + [[package]] 3372 + name = "thiserror" 3373 + version = "1.0.69" 3374 + source = "registry+https://github.com/rust-lang/crates.io-index" 3375 + checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" 3376 + dependencies = [ 3377 + "thiserror-impl 1.0.69", 3378 + ] 3379 + 3380 + [[package]] 3381 + name = "thiserror" 3382 + version = "2.0.17" 3383 + source = "registry+https://github.com/rust-lang/crates.io-index" 3384 + checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" 3385 + dependencies = [ 3386 + "thiserror-impl 2.0.17", 3387 + ] 3388 + 3389 + [[package]] 3390 + name = "thiserror-impl" 3391 + version = "1.0.69" 3392 + source = "registry+https://github.com/rust-lang/crates.io-index" 3393 + checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" 3394 + dependencies = [ 3395 + "proc-macro2", 3396 + "quote", 3397 + "syn 2.0.108", 3398 + ] 3399 + 3400 + [[package]] 3401 + name = "thiserror-impl" 3402 + version = "2.0.17" 3403 + source = "registry+https://github.com/rust-lang/crates.io-index" 3404 + checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" 3405 + dependencies = [ 3406 + "proc-macro2", 3407 + "quote", 3408 + "syn 2.0.108", 3409 + ] 3410 + 3411 + [[package]] 3412 + name = "thread_local" 3413 + version = "1.1.9" 3414 + source = "registry+https://github.com/rust-lang/crates.io-index" 3415 + checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" 3416 + dependencies = [ 3417 + "cfg-if", 3418 + ] 3419 + 3420 + [[package]] 3421 + name = "timeago" 3422 + version = "0.5.0" 3423 + source = "registry+https://github.com/rust-lang/crates.io-index" 3424 + checksum = "05030782ebd7d1295cce15a98c8805de6e70776c95f8e3468f84f7f198824f49" 3425 + 3426 + [[package]] 3427 + name = "tinystr" 3428 + version = "0.8.2" 3429 + source = "registry+https://github.com/rust-lang/crates.io-index" 3430 + checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" 3431 + dependencies = [ 3432 + "displaydoc", 3433 + "zerovec", 3434 + ] 3435 + 3436 + [[package]] 3437 + name = "tinyvec" 3438 + version = "1.10.0" 3439 + source = "registry+https://github.com/rust-lang/crates.io-index" 3440 + checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" 3441 + dependencies = [ 3442 + "tinyvec_macros", 3443 + ] 3444 + 3445 + [[package]] 3446 + name = "tinyvec_macros" 3447 + version = "0.1.1" 3448 + source = "registry+https://github.com/rust-lang/crates.io-index" 3449 + checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 3450 + 3451 + [[package]] 3452 + name = "tokio" 3453 + version = "1.48.0" 3454 + source = "registry+https://github.com/rust-lang/crates.io-index" 3455 + checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" 3456 + dependencies = [ 3457 + "bytes", 3458 + "libc", 3459 + "mio", 3460 + "parking_lot", 3461 + "pin-project-lite", 3462 + "signal-hook-registry", 3463 + "socket2", 3464 + "tokio-macros", 3465 + "windows-sys 0.61.2", 3466 + ] 3467 + 3468 + [[package]] 3469 + name = "tokio-macros" 3470 + version = "2.6.0" 3471 + source = "registry+https://github.com/rust-lang/crates.io-index" 3472 + checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" 3473 + dependencies = [ 3474 + "proc-macro2", 3475 + "quote", 3476 + "syn 2.0.108", 3477 + ] 3478 + 3479 + [[package]] 3480 + name = "tokio-util" 3481 + version = "0.6.10" 3482 + source = "registry+https://github.com/rust-lang/crates.io-index" 3483 + checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" 3484 + dependencies = [ 3485 + "bytes", 3486 + "futures-core", 3487 + "futures-io", 3488 + "futures-sink", 3489 + "log", 3490 + "pin-project-lite", 3491 + "slab", 3492 + "tokio", 3493 + ] 3494 + 3495 + [[package]] 3496 + name = "toml" 3497 + version = "0.8.23" 3498 + source = "registry+https://github.com/rust-lang/crates.io-index" 3499 + checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" 3500 + dependencies = [ 3501 + "serde", 3502 + "serde_spanned 0.6.9", 3503 + "toml_datetime 0.6.11", 3504 + "toml_edit 0.22.27", 3505 + ] 3506 + 3507 + [[package]] 3508 + name = "toml" 3509 + version = "0.9.8" 3510 + source = "registry+https://github.com/rust-lang/crates.io-index" 3511 + checksum = "f0dc8b1fb61449e27716ec0e1bdf0f6b8f3e8f6b05391e8497b8b6d7804ea6d8" 3512 + dependencies = [ 3513 + "indexmap", 3514 + "serde_core", 3515 + "serde_spanned 1.0.3", 3516 + "toml_datetime 0.7.3", 3517 + "toml_parser", 3518 + "toml_writer", 3519 + "winnow", 3520 + ] 3521 + 3522 + [[package]] 3523 + name = "toml_datetime" 3524 + version = "0.6.11" 3525 + source = "registry+https://github.com/rust-lang/crates.io-index" 3526 + checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" 3527 + dependencies = [ 3528 + "serde", 3529 + ] 3530 + 3531 + [[package]] 3532 + name = "toml_datetime" 3533 + version = "0.7.3" 3534 + source = "registry+https://github.com/rust-lang/crates.io-index" 3535 + checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" 3536 + dependencies = [ 3537 + "serde_core", 3538 + ] 3539 + 3540 + [[package]] 3541 + name = "toml_edit" 3542 + version = "0.22.27" 3543 + source = "registry+https://github.com/rust-lang/crates.io-index" 3544 + checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" 3545 + dependencies = [ 3546 + "indexmap", 3547 + "serde", 3548 + "serde_spanned 0.6.9", 3549 + "toml_datetime 0.6.11", 3550 + "toml_write", 3551 + "winnow", 3552 + ] 3553 + 3554 + [[package]] 3555 + name = "toml_edit" 3556 + version = "0.23.7" 3557 + source = "registry+https://github.com/rust-lang/crates.io-index" 3558 + checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d" 3559 + dependencies = [ 3560 + "indexmap", 3561 + "serde_core", 3562 + "serde_spanned 1.0.3", 3563 + "toml_datetime 0.7.3", 3564 + "toml_parser", 3565 + "toml_writer", 3566 + "winnow", 3567 + ] 3568 + 3569 + [[package]] 3570 + name = "toml_parser" 3571 + version = "1.0.4" 3572 + source = "registry+https://github.com/rust-lang/crates.io-index" 3573 + checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" 3574 + dependencies = [ 3575 + "winnow", 3576 + ] 3577 + 3578 + [[package]] 3579 + name = "toml_write" 3580 + version = "0.1.2" 3581 + source = "registry+https://github.com/rust-lang/crates.io-index" 3582 + checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" 3583 + 3584 + [[package]] 3585 + name = "toml_writer" 3586 + version = "1.0.4" 3587 + source = "registry+https://github.com/rust-lang/crates.io-index" 3588 + checksum = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2" 3589 + 3590 + [[package]] 3591 + name = "tracing" 3592 + version = "0.1.41" 3593 + source = "registry+https://github.com/rust-lang/crates.io-index" 3594 + checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" 3595 + dependencies = [ 3596 + "pin-project-lite", 3597 + "tracing-attributes", 3598 + "tracing-core", 3599 + ] 3600 + 3601 + [[package]] 3602 + name = "tracing-attributes" 3603 + version = "0.1.30" 3604 + source = "registry+https://github.com/rust-lang/crates.io-index" 3605 + checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" 3606 + dependencies = [ 3607 + "proc-macro2", 3608 + "quote", 3609 + "syn 2.0.108", 3610 + ] 3611 + 3612 + [[package]] 3613 + name = "tracing-chrome" 3614 + version = "0.7.2" 3615 + source = "registry+https://github.com/rust-lang/crates.io-index" 3616 + checksum = "bf0a738ed5d6450a9fb96e86a23ad808de2b727fd1394585da5cdd6788ffe724" 3617 + dependencies = [ 3618 + "serde_json", 3619 + "tracing-core", 3620 + "tracing-subscriber", 3621 + ] 3622 + 3623 + [[package]] 3624 + name = "tracing-core" 3625 + version = "0.1.34" 3626 + source = "registry+https://github.com/rust-lang/crates.io-index" 3627 + checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" 3628 + dependencies = [ 3629 + "once_cell", 3630 + "valuable", 3631 + ] 3632 + 3633 + [[package]] 3634 + name = "tracing-log" 3635 + version = "0.2.0" 3636 + source = "registry+https://github.com/rust-lang/crates.io-index" 3637 + checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" 3638 + dependencies = [ 3639 + "log", 3640 + "once_cell", 3641 + "tracing-core", 3642 + ] 3643 + 3644 + [[package]] 3645 + name = "tracing-subscriber" 3646 + version = "0.3.20" 3647 + source = "registry+https://github.com/rust-lang/crates.io-index" 3648 + checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" 3649 + dependencies = [ 3650 + "matchers", 3651 + "nu-ansi-term", 3652 + "once_cell", 3653 + "regex-automata", 3654 + "sharded-slab", 3655 + "smallvec", 3656 + "thread_local", 3657 + "tracing", 3658 + "tracing-core", 3659 + "tracing-log", 3660 + ] 3661 + 3662 + [[package]] 3663 + name = "typeid" 3664 + version = "1.0.3" 3665 + source = "registry+https://github.com/rust-lang/crates.io-index" 3666 + checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" 3667 + 3668 + [[package]] 3669 + name = "typenum" 3670 + version = "1.19.0" 3671 + source = "registry+https://github.com/rust-lang/crates.io-index" 3672 + checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" 3673 + 3674 + [[package]] 3675 + name = "ucd-trie" 3676 + version = "0.1.7" 3677 + source = "registry+https://github.com/rust-lang/crates.io-index" 3678 + checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" 3679 + 3680 + [[package]] 3681 + name = "uluru" 3682 + version = "3.1.0" 3683 + source = "registry+https://github.com/rust-lang/crates.io-index" 3684 + checksum = "7c8a2469e56e6e5095c82ccd3afb98dad95f7af7929aab6d8ba8d6e0f73657da" 3685 + dependencies = [ 3686 + "arrayvec", 3687 + ] 3688 + 3689 + [[package]] 3690 + name = "unicode-bom" 3691 + version = "2.0.3" 3692 + source = "registry+https://github.com/rust-lang/crates.io-index" 3693 + checksum = "7eec5d1121208364f6793f7d2e222bf75a915c19557537745b195b253dd64217" 3694 + 3695 + [[package]] 3696 + name = "unicode-ident" 3697 + version = "1.0.22" 3698 + source = "registry+https://github.com/rust-lang/crates.io-index" 3699 + checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" 3700 + 3701 + [[package]] 3702 + name = "unicode-linebreak" 3703 + version = "0.1.5" 3704 + source = "registry+https://github.com/rust-lang/crates.io-index" 3705 + checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" 3706 + 3707 + [[package]] 3708 + name = "unicode-normalization" 3709 + version = "0.1.25" 3710 + source = "registry+https://github.com/rust-lang/crates.io-index" 3711 + checksum = "5fd4f6878c9cb28d874b009da9e8d183b5abc80117c40bbd187a1fde336be6e8" 3712 + dependencies = [ 3713 + "tinyvec", 3714 + ] 3715 + 3716 + [[package]] 3717 + name = "unicode-segmentation" 3718 + version = "1.12.0" 3719 + source = "registry+https://github.com/rust-lang/crates.io-index" 3720 + checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" 3721 + 3722 + [[package]] 3723 + name = "unicode-truncate" 3724 + version = "1.1.0" 3725 + source = "registry+https://github.com/rust-lang/crates.io-index" 3726 + checksum = "b3644627a5af5fa321c95b9b235a72fd24cd29c648c2c379431e6628655627bf" 3727 + dependencies = [ 3728 + "itertools 0.13.0", 3729 + "unicode-segmentation", 3730 + "unicode-width 0.1.12", 3731 + ] 3732 + 3733 + [[package]] 3734 + name = "unicode-width" 3735 + version = "0.1.12" 3736 + source = "registry+https://github.com/rust-lang/crates.io-index" 3737 + checksum = "68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6" 3738 + 3739 + [[package]] 3740 + name = "unicode-width" 3741 + version = "0.2.0" 3742 + source = "registry+https://github.com/rust-lang/crates.io-index" 3743 + checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" 3744 + 3745 + [[package]] 3746 + name = "url" 3747 + version = "2.5.7" 3748 + source = "registry+https://github.com/rust-lang/crates.io-index" 3749 + checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" 3750 + dependencies = [ 3751 + "form_urlencoded", 3752 + "idna", 3753 + "percent-encoding", 3754 + "serde", 3755 + ] 3756 + 3757 + [[package]] 3758 + name = "utf8_iter" 3759 + version = "1.0.4" 3760 + source = "registry+https://github.com/rust-lang/crates.io-index" 3761 + checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" 3762 + 3763 + [[package]] 3764 + name = "utf8parse" 3765 + version = "0.2.2" 3766 + source = "registry+https://github.com/rust-lang/crates.io-index" 3767 + checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" 3768 + 3769 + [[package]] 3770 + name = "uuid" 3771 + version = "1.18.1" 3772 + source = "registry+https://github.com/rust-lang/crates.io-index" 3773 + checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" 3774 + dependencies = [ 3775 + "atomic", 3776 + "getrandom 0.3.4", 3777 + "js-sys", 3778 + "wasm-bindgen", 3779 + ] 3780 + 3781 + [[package]] 3782 + name = "valuable" 3783 + version = "0.1.1" 3784 + source = "registry+https://github.com/rust-lang/crates.io-index" 3785 + checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" 3786 + 3787 + [[package]] 3788 + name = "vec_map" 3789 + version = "0.8.2" 3790 + source = "registry+https://github.com/rust-lang/crates.io-index" 3791 + checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" 3792 + 3793 + [[package]] 3794 + name = "version_check" 3795 + version = "0.9.5" 3796 + source = "registry+https://github.com/rust-lang/crates.io-index" 3797 + checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 3798 + 3799 + [[package]] 3800 + name = "vtparse" 3801 + version = "0.6.2" 3802 + source = "registry+https://github.com/rust-lang/crates.io-index" 3803 + checksum = "6d9b2acfb050df409c972a37d3b8e08cdea3bddb0c09db9d53137e504cfabed0" 3804 + dependencies = [ 3805 + "utf8parse", 3806 + ] 3807 + 3808 + [[package]] 3809 + name = "walkdir" 3810 + version = "2.5.0" 3811 + source = "registry+https://github.com/rust-lang/crates.io-index" 3812 + checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" 3813 + dependencies = [ 3814 + "same-file", 3815 + "winapi-util", 3816 + ] 3817 + 3818 + [[package]] 3819 + name = "wasi" 3820 + version = "0.11.1+wasi-snapshot-preview1" 3821 + source = "registry+https://github.com/rust-lang/crates.io-index" 3822 + checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" 3823 + 3824 + [[package]] 3825 + name = "wasip2" 3826 + version = "1.0.1+wasi-0.2.4" 3827 + source = "registry+https://github.com/rust-lang/crates.io-index" 3828 + checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" 3829 + dependencies = [ 3830 + "wit-bindgen", 3831 + ] 3832 + 3833 + [[package]] 3834 + name = "wasite" 3835 + version = "0.1.0" 3836 + source = "registry+https://github.com/rust-lang/crates.io-index" 3837 + checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" 3838 + 3839 + [[package]] 3840 + name = "wasm-bindgen" 3841 + version = "0.2.105" 3842 + source = "registry+https://github.com/rust-lang/crates.io-index" 3843 + checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60" 3844 + dependencies = [ 3845 + "cfg-if", 3846 + "once_cell", 3847 + "rustversion", 3848 + "wasm-bindgen-macro", 3849 + "wasm-bindgen-shared", 3850 + ] 3851 + 3852 + [[package]] 3853 + name = "wasm-bindgen-macro" 3854 + version = "0.2.105" 3855 + source = "registry+https://github.com/rust-lang/crates.io-index" 3856 + checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2" 3857 + dependencies = [ 3858 + "quote", 3859 + "wasm-bindgen-macro-support", 3860 + ] 3861 + 3862 + [[package]] 3863 + name = "wasm-bindgen-macro-support" 3864 + version = "0.2.105" 3865 + source = "registry+https://github.com/rust-lang/crates.io-index" 3866 + checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc" 3867 + dependencies = [ 3868 + "bumpalo", 3869 + "proc-macro2", 3870 + "quote", 3871 + "syn 2.0.108", 3872 + "wasm-bindgen-shared", 3873 + ] 3874 + 3875 + [[package]] 3876 + name = "wasm-bindgen-shared" 3877 + version = "0.2.105" 3878 + source = "registry+https://github.com/rust-lang/crates.io-index" 3879 + checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76" 3880 + dependencies = [ 3881 + "unicode-ident", 3882 + ] 3883 + 3884 + [[package]] 3885 + name = "watchman_client" 3886 + version = "0.9.0" 3887 + source = "registry+https://github.com/rust-lang/crates.io-index" 3888 + checksum = "88bc4c9bb443a7aae10d4fa7807bffc397805315e2305288c90c80e2f66cfb52" 3889 + dependencies = [ 3890 + "anyhow", 3891 + "bytes", 3892 + "futures 0.3.31", 3893 + "maplit", 3894 + "serde", 3895 + "serde_bser", 3896 + "thiserror 1.0.69", 3897 + "tokio", 3898 + "tokio-util", 3899 + "winapi", 3900 + ] 3901 + 3902 + [[package]] 3903 + name = "web-sys" 3904 + version = "0.3.82" 3905 + source = "registry+https://github.com/rust-lang/crates.io-index" 3906 + checksum = "3a1f95c0d03a47f4ae1f7a64643a6bb97465d9b740f0fa8f90ea33915c99a9a1" 3907 + dependencies = [ 3908 + "js-sys", 3909 + "wasm-bindgen", 3910 + ] 3911 + 3912 + [[package]] 3913 + name = "wezterm-bidi" 3914 + version = "0.2.3" 3915 + source = "registry+https://github.com/rust-lang/crates.io-index" 3916 + checksum = "0c0a6e355560527dd2d1cf7890652f4f09bb3433b6aadade4c9b5ed76de5f3ec" 3917 + dependencies = [ 3918 + "log", 3919 + "wezterm-dynamic", 3920 + ] 3921 + 3922 + [[package]] 3923 + name = "wezterm-blob-leases" 3924 + version = "0.1.1" 3925 + source = "registry+https://github.com/rust-lang/crates.io-index" 3926 + checksum = "692daff6d93d94e29e4114544ef6d5c942a7ed998b37abdc19b17136ea428eb7" 3927 + dependencies = [ 3928 + "getrandom 0.3.4", 3929 + "mac_address", 3930 + "sha2", 3931 + "thiserror 1.0.69", 3932 + "uuid", 3933 + ] 3934 + 3935 + [[package]] 3936 + name = "wezterm-color-types" 3937 + version = "0.3.0" 3938 + source = "registry+https://github.com/rust-lang/crates.io-index" 3939 + checksum = "7de81ef35c9010270d63772bebef2f2d6d1f2d20a983d27505ac850b8c4b4296" 3940 + dependencies = [ 3941 + "csscolorparser", 3942 + "deltae", 3943 + "lazy_static", 3944 + "wezterm-dynamic", 3945 + ] 3946 + 3947 + [[package]] 3948 + name = "wezterm-dynamic" 3949 + version = "0.2.1" 3950 + source = "registry+https://github.com/rust-lang/crates.io-index" 3951 + checksum = "5f2ab60e120fd6eaa68d9567f3226e876684639d22a4219b313ff69ec0ccd5ac" 3952 + dependencies = [ 3953 + "log", 3954 + "ordered-float", 3955 + "strsim", 3956 + "thiserror 1.0.69", 3957 + "wezterm-dynamic-derive", 3958 + ] 3959 + 3960 + [[package]] 3961 + name = "wezterm-dynamic-derive" 3962 + version = "0.1.1" 3963 + source = "registry+https://github.com/rust-lang/crates.io-index" 3964 + checksum = "46c0cf2d539c645b448eaffec9ec494b8b19bd5077d9e58cb1ae7efece8d575b" 3965 + dependencies = [ 3966 + "proc-macro2", 3967 + "quote", 3968 + "syn 1.0.109", 3969 + ] 3970 + 3971 + [[package]] 3972 + name = "wezterm-input-types" 3973 + version = "0.1.0" 3974 + source = "registry+https://github.com/rust-lang/crates.io-index" 3975 + checksum = "7012add459f951456ec9d6c7e6fc340b1ce15d6fc9629f8c42853412c029e57e" 3976 + dependencies = [ 3977 + "bitflags 1.3.2", 3978 + "euclid", 3979 + "lazy_static", 3980 + "serde", 3981 + "wezterm-dynamic", 3982 + ] 3983 + 3984 + [[package]] 3985 + name = "whoami" 3986 + version = "1.6.1" 3987 + source = "registry+https://github.com/rust-lang/crates.io-index" 3988 + checksum = "5d4a4db5077702ca3015d3d02d74974948aba2ad9e12ab7df718ee64ccd7e97d" 3989 + dependencies = [ 3990 + "libredox", 3991 + "wasite", 3992 + "web-sys", 3993 + ] 3994 + 3995 + [[package]] 3996 + name = "winapi" 3997 + version = "0.3.9" 3998 + source = "registry+https://github.com/rust-lang/crates.io-index" 3999 + checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 4000 + dependencies = [ 4001 + "winapi-i686-pc-windows-gnu", 4002 + "winapi-x86_64-pc-windows-gnu", 4003 + ] 4004 + 4005 + [[package]] 4006 + name = "winapi-i686-pc-windows-gnu" 4007 + version = "0.4.0" 4008 + source = "registry+https://github.com/rust-lang/crates.io-index" 4009 + checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 4010 + 4011 + [[package]] 4012 + name = "winapi-util" 4013 + version = "0.1.11" 4014 + source = "registry+https://github.com/rust-lang/crates.io-index" 4015 + checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" 4016 + dependencies = [ 4017 + "windows-sys 0.61.2", 4018 + ] 4019 + 4020 + [[package]] 4021 + name = "winapi-x86_64-pc-windows-gnu" 4022 + version = "0.4.0" 4023 + source = "registry+https://github.com/rust-lang/crates.io-index" 4024 + checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 4025 + 4026 + [[package]] 4027 + name = "windows-core" 4028 + version = "0.62.2" 4029 + source = "registry+https://github.com/rust-lang/crates.io-index" 4030 + checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" 4031 + dependencies = [ 4032 + "windows-implement", 4033 + "windows-interface", 4034 + "windows-link", 4035 + "windows-result", 4036 + "windows-strings", 4037 + ] 4038 + 4039 + [[package]] 4040 + name = "windows-implement" 4041 + version = "0.60.2" 4042 + source = "registry+https://github.com/rust-lang/crates.io-index" 4043 + checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" 4044 + dependencies = [ 4045 + "proc-macro2", 4046 + "quote", 4047 + "syn 2.0.108", 4048 + ] 4049 + 4050 + [[package]] 4051 + name = "windows-interface" 4052 + version = "0.59.3" 4053 + source = "registry+https://github.com/rust-lang/crates.io-index" 4054 + checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" 4055 + dependencies = [ 4056 + "proc-macro2", 4057 + "quote", 4058 + "syn 2.0.108", 4059 + ] 4060 + 4061 + [[package]] 4062 + name = "windows-link" 4063 + version = "0.2.1" 4064 + source = "registry+https://github.com/rust-lang/crates.io-index" 4065 + checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" 4066 + 4067 + [[package]] 4068 + name = "windows-result" 4069 + version = "0.4.1" 4070 + source = "registry+https://github.com/rust-lang/crates.io-index" 4071 + checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" 4072 + dependencies = [ 4073 + "windows-link", 4074 + ] 4075 + 4076 + [[package]] 4077 + name = "windows-strings" 4078 + version = "0.5.1" 4079 + source = "registry+https://github.com/rust-lang/crates.io-index" 4080 + checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" 4081 + dependencies = [ 4082 + "windows-link", 4083 + ] 4084 + 4085 + [[package]] 4086 + name = "windows-sys" 4087 + version = "0.52.0" 4088 + source = "registry+https://github.com/rust-lang/crates.io-index" 4089 + checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 4090 + dependencies = [ 4091 + "windows-targets 0.52.6", 4092 + ] 4093 + 4094 + [[package]] 4095 + name = "windows-sys" 4096 + version = "0.59.0" 4097 + source = "registry+https://github.com/rust-lang/crates.io-index" 4098 + checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 4099 + dependencies = [ 4100 + "windows-targets 0.52.6", 4101 + ] 4102 + 4103 + [[package]] 4104 + name = "windows-sys" 4105 + version = "0.60.2" 4106 + source = "registry+https://github.com/rust-lang/crates.io-index" 4107 + checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" 4108 + dependencies = [ 4109 + "windows-targets 0.53.5", 4110 + ] 4111 + 4112 + [[package]] 4113 + name = "windows-sys" 4114 + version = "0.61.2" 4115 + source = "registry+https://github.com/rust-lang/crates.io-index" 4116 + checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" 4117 + dependencies = [ 4118 + "windows-link", 4119 + ] 4120 + 4121 + [[package]] 4122 + name = "windows-targets" 4123 + version = "0.52.6" 4124 + source = "registry+https://github.com/rust-lang/crates.io-index" 4125 + checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 4126 + dependencies = [ 4127 + "windows_aarch64_gnullvm 0.52.6", 4128 + "windows_aarch64_msvc 0.52.6", 4129 + "windows_i686_gnu 0.52.6", 4130 + "windows_i686_gnullvm 0.52.6", 4131 + "windows_i686_msvc 0.52.6", 4132 + "windows_x86_64_gnu 0.52.6", 4133 + "windows_x86_64_gnullvm 0.52.6", 4134 + "windows_x86_64_msvc 0.52.6", 4135 + ] 4136 + 4137 + [[package]] 4138 + name = "windows-targets" 4139 + version = "0.53.5" 4140 + source = "registry+https://github.com/rust-lang/crates.io-index" 4141 + checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" 4142 + dependencies = [ 4143 + "windows-link", 4144 + "windows_aarch64_gnullvm 0.53.1", 4145 + "windows_aarch64_msvc 0.53.1", 4146 + "windows_i686_gnu 0.53.1", 4147 + "windows_i686_gnullvm 0.53.1", 4148 + "windows_i686_msvc 0.53.1", 4149 + "windows_x86_64_gnu 0.53.1", 4150 + "windows_x86_64_gnullvm 0.53.1", 4151 + "windows_x86_64_msvc 0.53.1", 4152 + ] 4153 + 4154 + [[package]] 4155 + name = "windows_aarch64_gnullvm" 4156 + version = "0.52.6" 4157 + source = "registry+https://github.com/rust-lang/crates.io-index" 4158 + checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 4159 + 4160 + [[package]] 4161 + name = "windows_aarch64_gnullvm" 4162 + version = "0.53.1" 4163 + source = "registry+https://github.com/rust-lang/crates.io-index" 4164 + checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" 4165 + 4166 + [[package]] 4167 + name = "windows_aarch64_msvc" 4168 + version = "0.52.6" 4169 + source = "registry+https://github.com/rust-lang/crates.io-index" 4170 + checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 4171 + 4172 + [[package]] 4173 + name = "windows_aarch64_msvc" 4174 + version = "0.53.1" 4175 + source = "registry+https://github.com/rust-lang/crates.io-index" 4176 + checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" 4177 + 4178 + [[package]] 4179 + name = "windows_i686_gnu" 4180 + version = "0.52.6" 4181 + source = "registry+https://github.com/rust-lang/crates.io-index" 4182 + checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 4183 + 4184 + [[package]] 4185 + name = "windows_i686_gnu" 4186 + version = "0.53.1" 4187 + source = "registry+https://github.com/rust-lang/crates.io-index" 4188 + checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" 4189 + 4190 + [[package]] 4191 + name = "windows_i686_gnullvm" 4192 + version = "0.52.6" 4193 + source = "registry+https://github.com/rust-lang/crates.io-index" 4194 + checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 4195 + 4196 + [[package]] 4197 + name = "windows_i686_gnullvm" 4198 + version = "0.53.1" 4199 + source = "registry+https://github.com/rust-lang/crates.io-index" 4200 + checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" 4201 + 4202 + [[package]] 4203 + name = "windows_i686_msvc" 4204 + version = "0.52.6" 4205 + source = "registry+https://github.com/rust-lang/crates.io-index" 4206 + checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 4207 + 4208 + [[package]] 4209 + name = "windows_i686_msvc" 4210 + version = "0.53.1" 4211 + source = "registry+https://github.com/rust-lang/crates.io-index" 4212 + checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" 4213 + 4214 + [[package]] 4215 + name = "windows_x86_64_gnu" 4216 + version = "0.52.6" 4217 + source = "registry+https://github.com/rust-lang/crates.io-index" 4218 + checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 4219 + 4220 + [[package]] 4221 + name = "windows_x86_64_gnu" 4222 + version = "0.53.1" 4223 + source = "registry+https://github.com/rust-lang/crates.io-index" 4224 + checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" 4225 + 4226 + [[package]] 4227 + name = "windows_x86_64_gnullvm" 4228 + version = "0.52.6" 4229 + source = "registry+https://github.com/rust-lang/crates.io-index" 4230 + checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 4231 + 4232 + [[package]] 4233 + name = "windows_x86_64_gnullvm" 4234 + version = "0.53.1" 4235 + source = "registry+https://github.com/rust-lang/crates.io-index" 4236 + checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" 4237 + 4238 + [[package]] 4239 + name = "windows_x86_64_msvc" 4240 + version = "0.52.6" 4241 + source = "registry+https://github.com/rust-lang/crates.io-index" 4242 + checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 4243 + 4244 + [[package]] 4245 + name = "windows_x86_64_msvc" 4246 + version = "0.53.1" 4247 + source = "registry+https://github.com/rust-lang/crates.io-index" 4248 + checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" 4249 + 4250 + [[package]] 4251 + name = "winnow" 4252 + version = "0.7.13" 4253 + source = "registry+https://github.com/rust-lang/crates.io-index" 4254 + checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" 4255 + dependencies = [ 4256 + "memchr", 4257 + ] 4258 + 4259 + [[package]] 4260 + name = "winreg" 4261 + version = "0.55.0" 4262 + source = "registry+https://github.com/rust-lang/crates.io-index" 4263 + checksum = "cb5a765337c50e9ec252c2069be9bf91c7df47afb103b642ba3a53bf8101be97" 4264 + dependencies = [ 4265 + "cfg-if", 4266 + "windows-sys 0.59.0", 4267 + ] 4268 + 4269 + [[package]] 4270 + name = "wit-bindgen" 4271 + version = "0.46.0" 4272 + source = "registry+https://github.com/rust-lang/crates.io-index" 4273 + checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" 4274 + 4275 + [[package]] 4276 + name = "writeable" 4277 + version = "0.6.2" 4278 + source = "registry+https://github.com/rust-lang/crates.io-index" 4279 + checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" 4280 + 4281 + [[package]] 4282 + name = "yoke" 4283 + version = "0.8.1" 4284 + source = "registry+https://github.com/rust-lang/crates.io-index" 4285 + checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" 4286 + dependencies = [ 4287 + "stable_deref_trait", 4288 + "yoke-derive", 4289 + "zerofrom", 4290 + ] 4291 + 4292 + [[package]] 4293 + name = "yoke-derive" 4294 + version = "0.8.1" 4295 + source = "registry+https://github.com/rust-lang/crates.io-index" 4296 + checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" 4297 + dependencies = [ 4298 + "proc-macro2", 4299 + "quote", 4300 + "syn 2.0.108", 4301 + "synstructure", 4302 + ] 4303 + 4304 + [[package]] 4305 + name = "zerocopy" 4306 + version = "0.8.27" 4307 + source = "registry+https://github.com/rust-lang/crates.io-index" 4308 + checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" 4309 + dependencies = [ 4310 + "zerocopy-derive", 4311 + ] 4312 + 4313 + [[package]] 4314 + name = "zerocopy-derive" 4315 + version = "0.8.27" 4316 + source = "registry+https://github.com/rust-lang/crates.io-index" 4317 + checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" 4318 + dependencies = [ 4319 + "proc-macro2", 4320 + "quote", 4321 + "syn 2.0.108", 4322 + ] 4323 + 4324 + [[package]] 4325 + name = "zerofrom" 4326 + version = "0.1.6" 4327 + source = "registry+https://github.com/rust-lang/crates.io-index" 4328 + checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" 4329 + dependencies = [ 4330 + "zerofrom-derive", 4331 + ] 4332 + 4333 + [[package]] 4334 + name = "zerofrom-derive" 4335 + version = "0.1.6" 4336 + source = "registry+https://github.com/rust-lang/crates.io-index" 4337 + checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" 4338 + dependencies = [ 4339 + "proc-macro2", 4340 + "quote", 4341 + "syn 2.0.108", 4342 + "synstructure", 4343 + ] 4344 + 4345 + [[package]] 4346 + name = "zerotrie" 4347 + version = "0.2.3" 4348 + source = "registry+https://github.com/rust-lang/crates.io-index" 4349 + checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" 4350 + dependencies = [ 4351 + "displaydoc", 4352 + "yoke", 4353 + "zerofrom", 4354 + ] 4355 + 4356 + [[package]] 4357 + name = "zerovec" 4358 + version = "0.11.5" 4359 + source = "registry+https://github.com/rust-lang/crates.io-index" 4360 + checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" 4361 + dependencies = [ 4362 + "yoke", 4363 + "zerofrom", 4364 + "zerovec-derive", 4365 + ] 4366 + 4367 + [[package]] 4368 + name = "zerovec-derive" 4369 + version = "0.11.2" 4370 + source = "registry+https://github.com/rust-lang/crates.io-index" 4371 + checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" 4372 + dependencies = [ 4373 + "proc-macro2", 4374 + "quote", 4375 + "syn 2.0.108", 4376 + ] 4377 + 4378 + [[package]] 4379 + name = "zlib-rs" 4380 + version = "0.5.2" 4381 + source = "registry+https://github.com/rust-lang/crates.io-index" 4382 + checksum = "2f06ae92f42f5e5c42443fd094f245eb656abf56dd7cce9b8b263236565e00f2"
+16
Cargo.toml
··· 1 + [package] 2 + name = "jj-mm" 3 + version = "0.1.0" 4 + description = "jujutsu tui suited for mega-merge workflow" 5 + authors = ["Seongmin Lee <boltlessengineer@users.noreply.github.com>"] 6 + license-file = "LICENSE" 7 + edition = "2024" 8 + 9 + [dependencies] 10 + anyhow = "1.0.100" 11 + clap = "4.5.51" 12 + crossterm = "0.29.0" 13 + jj-cli = "0.35.0" 14 + jj-lib = { version = "0.35.0", features = ["git"] } 15 + ratatui = "0.29.0" 16 + sapling-renderdag = "0.1.0"
+674
LICENSE
··· 1 + GNU GENERAL PUBLIC LICENSE 2 + Version 3, 29 June 2007 3 + 4 + Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> 5 + Everyone is permitted to copy and distribute verbatim copies 6 + of this license document, but changing it is not allowed. 7 + 8 + Preamble 9 + 10 + The GNU General Public License is a free, copyleft license for 11 + software and other kinds of works. 12 + 13 + The licenses for most software and other practical works are designed 14 + to take away your freedom to share and change the works. By contrast, 15 + the GNU General Public License is intended to guarantee your freedom to 16 + share and change all versions of a program--to make sure it remains free 17 + software for all its users. We, the Free Software Foundation, use the 18 + GNU General Public License for most of our software; it applies also to 19 + any other work released this way by its authors. You can apply it to 20 + your programs, too. 21 + 22 + When we speak of free software, we are referring to freedom, not 23 + price. Our General Public Licenses are designed to make sure that you 24 + have the freedom to distribute copies of free software (and charge for 25 + them if you wish), that you receive source code or can get it if you 26 + want it, that you can change the software or use pieces of it in new 27 + free programs, and that you know you can do these things. 28 + 29 + To protect your rights, we need to prevent others from denying you 30 + these rights or asking you to surrender the rights. Therefore, you have 31 + certain responsibilities if you distribute copies of the software, or if 32 + you modify it: responsibilities to respect the freedom of others. 33 + 34 + For example, if you distribute copies of such a program, whether 35 + gratis or for a fee, you must pass on to the recipients the same 36 + freedoms that you received. You must make sure that they, too, receive 37 + or can get the source code. And you must show them these terms so they 38 + know their rights. 39 + 40 + Developers that use the GNU GPL protect your rights with two steps: 41 + (1) assert copyright on the software, and (2) offer you this License 42 + giving you legal permission to copy, distribute and/or modify it. 43 + 44 + For the developers' and authors' protection, the GPL clearly explains 45 + that there is no warranty for this free software. For both users' and 46 + authors' sake, the GPL requires that modified versions be marked as 47 + changed, so that their problems will not be attributed erroneously to 48 + authors of previous versions. 49 + 50 + Some devices are designed to deny users access to install or run 51 + modified versions of the software inside them, although the manufacturer 52 + can do so. This is fundamentally incompatible with the aim of 53 + protecting users' freedom to change the software. The systematic 54 + pattern of such abuse occurs in the area of products for individuals to 55 + use, which is precisely where it is most unacceptable. Therefore, we 56 + have designed this version of the GPL to prohibit the practice for those 57 + products. If such problems arise substantially in other domains, we 58 + stand ready to extend this provision to those domains in future versions 59 + of the GPL, as needed to protect the freedom of users. 60 + 61 + Finally, every program is threatened constantly by software patents. 62 + States should not allow patents to restrict development and use of 63 + software on general-purpose computers, but in those that do, we wish to 64 + avoid the special danger that patents applied to a free program could 65 + make it effectively proprietary. To prevent this, the GPL assures that 66 + patents cannot be used to render the program non-free. 67 + 68 + The precise terms and conditions for copying, distribution and 69 + modification follow. 70 + 71 + TERMS AND CONDITIONS 72 + 73 + 0. Definitions. 74 + 75 + "This License" refers to version 3 of the GNU General Public License. 76 + 77 + "Copyright" also means copyright-like laws that apply to other kinds of 78 + works, such as semiconductor masks. 79 + 80 + "The Program" refers to any copyrightable work licensed under this 81 + License. Each licensee is addressed as "you". "Licensees" and 82 + "recipients" may be individuals or organizations. 83 + 84 + To "modify" a work means to copy from or adapt all or part of the work 85 + in a fashion requiring copyright permission, other than the making of an 86 + exact copy. The resulting work is called a "modified version" of the 87 + earlier work or a work "based on" the earlier work. 88 + 89 + A "covered work" means either the unmodified Program or a work based 90 + on the Program. 91 + 92 + To "propagate" a work means to do anything with it that, without 93 + permission, would make you directly or secondarily liable for 94 + infringement under applicable copyright law, except executing it on a 95 + computer or modifying a private copy. Propagation includes copying, 96 + distribution (with or without modification), making available to the 97 + public, and in some countries other activities as well. 98 + 99 + To "convey" a work means any kind of propagation that enables other 100 + parties to make or receive copies. Mere interaction with a user through 101 + a computer network, with no transfer of a copy, is not conveying. 102 + 103 + An interactive user interface displays "Appropriate Legal Notices" 104 + to the extent that it includes a convenient and prominently visible 105 + feature that (1) displays an appropriate copyright notice, and (2) 106 + tells the user that there is no warranty for the work (except to the 107 + extent that warranties are provided), that licensees may convey the 108 + work under this License, and how to view a copy of this License. If 109 + the interface presents a list of user commands or options, such as a 110 + menu, a prominent item in the list meets this criterion. 111 + 112 + 1. Source Code. 113 + 114 + The "source code" for a work means the preferred form of the work 115 + for making modifications to it. "Object code" means any non-source 116 + form of a work. 117 + 118 + A "Standard Interface" means an interface that either is an official 119 + standard defined by a recognized standards body, or, in the case of 120 + interfaces specified for a particular programming language, one that 121 + is widely used among developers working in that language. 122 + 123 + The "System Libraries" of an executable work include anything, other 124 + than the work as a whole, that (a) is included in the normal form of 125 + packaging a Major Component, but which is not part of that Major 126 + Component, and (b) serves only to enable use of the work with that 127 + Major Component, or to implement a Standard Interface for which an 128 + implementation is available to the public in source code form. A 129 + "Major Component", in this context, means a major essential component 130 + (kernel, window system, and so on) of the specific operating system 131 + (if any) on which the executable work runs, or a compiler used to 132 + produce the work, or an object code interpreter used to run it. 133 + 134 + The "Corresponding Source" for a work in object code form means all 135 + the source code needed to generate, install, and (for an executable 136 + work) run the object code and to modify the work, including scripts to 137 + control those activities. However, it does not include the work's 138 + System Libraries, or general-purpose tools or generally available free 139 + programs which are used unmodified in performing those activities but 140 + which are not part of the work. For example, Corresponding Source 141 + includes interface definition files associated with source files for 142 + the work, and the source code for shared libraries and dynamically 143 + linked subprograms that the work is specifically designed to require, 144 + such as by intimate data communication or control flow between those 145 + subprograms and other parts of the work. 146 + 147 + The Corresponding Source need not include anything that users 148 + can regenerate automatically from other parts of the Corresponding 149 + Source. 150 + 151 + The Corresponding Source for a work in source code form is that 152 + same work. 153 + 154 + 2. Basic Permissions. 155 + 156 + All rights granted under this License are granted for the term of 157 + copyright on the Program, and are irrevocable provided the stated 158 + conditions are met. This License explicitly affirms your unlimited 159 + permission to run the unmodified Program. The output from running a 160 + covered work is covered by this License only if the output, given its 161 + content, constitutes a covered work. This License acknowledges your 162 + rights of fair use or other equivalent, as provided by copyright law. 163 + 164 + You may make, run and propagate covered works that you do not 165 + convey, without conditions so long as your license otherwise remains 166 + in force. You may convey covered works to others for the sole purpose 167 + of having them make modifications exclusively for you, or provide you 168 + with facilities for running those works, provided that you comply with 169 + the terms of this License in conveying all material for which you do 170 + not control copyright. Those thus making or running the covered works 171 + for you must do so exclusively on your behalf, under your direction 172 + and control, on terms that prohibit them from making any copies of 173 + your copyrighted material outside their relationship with you. 174 + 175 + Conveying under any other circumstances is permitted solely under 176 + the conditions stated below. Sublicensing is not allowed; section 10 177 + makes it unnecessary. 178 + 179 + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. 180 + 181 + No covered work shall be deemed part of an effective technological 182 + measure under any applicable law fulfilling obligations under article 183 + 11 of the WIPO copyright treaty adopted on 20 December 1996, or 184 + similar laws prohibiting or restricting circumvention of such 185 + measures. 186 + 187 + When you convey a covered work, you waive any legal power to forbid 188 + circumvention of technological measures to the extent such circumvention 189 + is effected by exercising rights under this License with respect to 190 + the covered work, and you disclaim any intention to limit operation or 191 + modification of the work as a means of enforcing, against the work's 192 + users, your or third parties' legal rights to forbid circumvention of 193 + technological measures. 194 + 195 + 4. Conveying Verbatim Copies. 196 + 197 + You may convey verbatim copies of the Program's source code as you 198 + receive it, in any medium, provided that you conspicuously and 199 + appropriately publish on each copy an appropriate copyright notice; 200 + keep intact all notices stating that this License and any 201 + non-permissive terms added in accord with section 7 apply to the code; 202 + keep intact all notices of the absence of any warranty; and give all 203 + recipients a copy of this License along with the Program. 204 + 205 + You may charge any price or no price for each copy that you convey, 206 + and you may offer support or warranty protection for a fee. 207 + 208 + 5. Conveying Modified Source Versions. 209 + 210 + You may convey a work based on the Program, or the modifications to 211 + produce it from the Program, in the form of source code under the 212 + terms of section 4, provided that you also meet all of these conditions: 213 + 214 + a) The work must carry prominent notices stating that you modified 215 + it, and giving a relevant date. 216 + 217 + b) The work must carry prominent notices stating that it is 218 + released under this License and any conditions added under section 219 + 7. This requirement modifies the requirement in section 4 to 220 + "keep intact all notices". 221 + 222 + c) You must license the entire work, as a whole, under this 223 + License to anyone who comes into possession of a copy. This 224 + License will therefore apply, along with any applicable section 7 225 + additional terms, to the whole of the work, and all its parts, 226 + regardless of how they are packaged. This License gives no 227 + permission to license the work in any other way, but it does not 228 + invalidate such permission if you have separately received it. 229 + 230 + d) If the work has interactive user interfaces, each must display 231 + Appropriate Legal Notices; however, if the Program has interactive 232 + interfaces that do not display Appropriate Legal Notices, your 233 + work need not make them do so. 234 + 235 + A compilation of a covered work with other separate and independent 236 + works, which are not by their nature extensions of the covered work, 237 + and which are not combined with it such as to form a larger program, 238 + in or on a volume of a storage or distribution medium, is called an 239 + "aggregate" if the compilation and its resulting copyright are not 240 + used to limit the access or legal rights of the compilation's users 241 + beyond what the individual works permit. Inclusion of a covered work 242 + in an aggregate does not cause this License to apply to the other 243 + parts of the aggregate. 244 + 245 + 6. Conveying Non-Source Forms. 246 + 247 + You may convey a covered work in object code form under the terms 248 + of sections 4 and 5, provided that you also convey the 249 + machine-readable Corresponding Source under the terms of this License, 250 + in one of these ways: 251 + 252 + a) Convey the object code in, or embodied in, a physical product 253 + (including a physical distribution medium), accompanied by the 254 + Corresponding Source fixed on a durable physical medium 255 + customarily used for software interchange. 256 + 257 + b) Convey the object code in, or embodied in, a physical product 258 + (including a physical distribution medium), accompanied by a 259 + written offer, valid for at least three years and valid for as 260 + long as you offer spare parts or customer support for that product 261 + model, to give anyone who possesses the object code either (1) a 262 + copy of the Corresponding Source for all the software in the 263 + product that is covered by this License, on a durable physical 264 + medium customarily used for software interchange, for a price no 265 + more than your reasonable cost of physically performing this 266 + conveying of source, or (2) access to copy the 267 + Corresponding Source from a network server at no charge. 268 + 269 + c) Convey individual copies of the object code with a copy of the 270 + written offer to provide the Corresponding Source. This 271 + alternative is allowed only occasionally and noncommercially, and 272 + only if you received the object code with such an offer, in accord 273 + with subsection 6b. 274 + 275 + d) Convey the object code by offering access from a designated 276 + place (gratis or for a charge), and offer equivalent access to the 277 + Corresponding Source in the same way through the same place at no 278 + further charge. You need not require recipients to copy the 279 + Corresponding Source along with the object code. If the place to 280 + copy the object code is a network server, the Corresponding Source 281 + may be on a different server (operated by you or a third party) 282 + that supports equivalent copying facilities, provided you maintain 283 + clear directions next to the object code saying where to find the 284 + Corresponding Source. Regardless of what server hosts the 285 + Corresponding Source, you remain obligated to ensure that it is 286 + available for as long as needed to satisfy these requirements. 287 + 288 + e) Convey the object code using peer-to-peer transmission, provided 289 + you inform other peers where the object code and Corresponding 290 + Source of the work are being offered to the general public at no 291 + charge under subsection 6d. 292 + 293 + A separable portion of the object code, whose source code is excluded 294 + from the Corresponding Source as a System Library, need not be 295 + included in conveying the object code work. 296 + 297 + A "User Product" is either (1) a "consumer product", which means any 298 + tangible personal property which is normally used for personal, family, 299 + or household purposes, or (2) anything designed or sold for incorporation 300 + into a dwelling. In determining whether a product is a consumer product, 301 + doubtful cases shall be resolved in favor of coverage. For a particular 302 + product received by a particular user, "normally used" refers to a 303 + typical or common use of that class of product, regardless of the status 304 + of the particular user or of the way in which the particular user 305 + actually uses, or expects or is expected to use, the product. A product 306 + is a consumer product regardless of whether the product has substantial 307 + commercial, industrial or non-consumer uses, unless such uses represent 308 + the only significant mode of use of the product. 309 + 310 + "Installation Information" for a User Product means any methods, 311 + procedures, authorization keys, or other information required to install 312 + and execute modified versions of a covered work in that User Product from 313 + a modified version of its Corresponding Source. The information must 314 + suffice to ensure that the continued functioning of the modified object 315 + code is in no case prevented or interfered with solely because 316 + modification has been made. 317 + 318 + If you convey an object code work under this section in, or with, or 319 + specifically for use in, a User Product, and the conveying occurs as 320 + part of a transaction in which the right of possession and use of the 321 + User Product is transferred to the recipient in perpetuity or for a 322 + fixed term (regardless of how the transaction is characterized), the 323 + Corresponding Source conveyed under this section must be accompanied 324 + by the Installation Information. But this requirement does not apply 325 + if neither you nor any third party retains the ability to install 326 + modified object code on the User Product (for example, the work has 327 + been installed in ROM). 328 + 329 + The requirement to provide Installation Information does not include a 330 + requirement to continue to provide support service, warranty, or updates 331 + for a work that has been modified or installed by the recipient, or for 332 + the User Product in which it has been modified or installed. Access to a 333 + network may be denied when the modification itself materially and 334 + adversely affects the operation of the network or violates the rules and 335 + protocols for communication across the network. 336 + 337 + Corresponding Source conveyed, and Installation Information provided, 338 + in accord with this section must be in a format that is publicly 339 + documented (and with an implementation available to the public in 340 + source code form), and must require no special password or key for 341 + unpacking, reading or copying. 342 + 343 + 7. Additional Terms. 344 + 345 + "Additional permissions" are terms that supplement the terms of this 346 + License by making exceptions from one or more of its conditions. 347 + Additional permissions that are applicable to the entire Program shall 348 + be treated as though they were included in this License, to the extent 349 + that they are valid under applicable law. If additional permissions 350 + apply only to part of the Program, that part may be used separately 351 + under those permissions, but the entire Program remains governed by 352 + this License without regard to the additional permissions. 353 + 354 + When you convey a copy of a covered work, you may at your option 355 + remove any additional permissions from that copy, or from any part of 356 + it. (Additional permissions may be written to require their own 357 + removal in certain cases when you modify the work.) You may place 358 + additional permissions on material, added by you to a covered work, 359 + for which you have or can give appropriate copyright permission. 360 + 361 + Notwithstanding any other provision of this License, for material you 362 + add to a covered work, you may (if authorized by the copyright holders of 363 + that material) supplement the terms of this License with terms: 364 + 365 + a) Disclaiming warranty or limiting liability differently from the 366 + terms of sections 15 and 16 of this License; or 367 + 368 + b) Requiring preservation of specified reasonable legal notices or 369 + author attributions in that material or in the Appropriate Legal 370 + Notices displayed by works containing it; or 371 + 372 + c) Prohibiting misrepresentation of the origin of that material, or 373 + requiring that modified versions of such material be marked in 374 + reasonable ways as different from the original version; or 375 + 376 + d) Limiting the use for publicity purposes of names of licensors or 377 + authors of the material; or 378 + 379 + e) Declining to grant rights under trademark law for use of some 380 + trade names, trademarks, or service marks; or 381 + 382 + f) Requiring indemnification of licensors and authors of that 383 + material by anyone who conveys the material (or modified versions of 384 + it) with contractual assumptions of liability to the recipient, for 385 + any liability that these contractual assumptions directly impose on 386 + those licensors and authors. 387 + 388 + All other non-permissive additional terms are considered "further 389 + restrictions" within the meaning of section 10. If the Program as you 390 + received it, or any part of it, contains a notice stating that it is 391 + governed by this License along with a term that is a further 392 + restriction, you may remove that term. If a license document contains 393 + a further restriction but permits relicensing or conveying under this 394 + License, you may add to a covered work material governed by the terms 395 + of that license document, provided that the further restriction does 396 + not survive such relicensing or conveying. 397 + 398 + If you add terms to a covered work in accord with this section, you 399 + must place, in the relevant source files, a statement of the 400 + additional terms that apply to those files, or a notice indicating 401 + where to find the applicable terms. 402 + 403 + Additional terms, permissive or non-permissive, may be stated in the 404 + form of a separately written license, or stated as exceptions; 405 + the above requirements apply either way. 406 + 407 + 8. Termination. 408 + 409 + You may not propagate or modify a covered work except as expressly 410 + provided under this License. Any attempt otherwise to propagate or 411 + modify it is void, and will automatically terminate your rights under 412 + this License (including any patent licenses granted under the third 413 + paragraph of section 11). 414 + 415 + However, if you cease all violation of this License, then your 416 + license from a particular copyright holder is reinstated (a) 417 + provisionally, unless and until the copyright holder explicitly and 418 + finally terminates your license, and (b) permanently, if the copyright 419 + holder fails to notify you of the violation by some reasonable means 420 + prior to 60 days after the cessation. 421 + 422 + Moreover, your license from a particular copyright holder is 423 + reinstated permanently if the copyright holder notifies you of the 424 + violation by some reasonable means, this is the first time you have 425 + received notice of violation of this License (for any work) from that 426 + copyright holder, and you cure the violation prior to 30 days after 427 + your receipt of the notice. 428 + 429 + Termination of your rights under this section does not terminate the 430 + licenses of parties who have received copies or rights from you under 431 + this License. If your rights have been terminated and not permanently 432 + reinstated, you do not qualify to receive new licenses for the same 433 + material under section 10. 434 + 435 + 9. Acceptance Not Required for Having Copies. 436 + 437 + You are not required to accept this License in order to receive or 438 + run a copy of the Program. Ancillary propagation of a covered work 439 + occurring solely as a consequence of using peer-to-peer transmission 440 + to receive a copy likewise does not require acceptance. However, 441 + nothing other than this License grants you permission to propagate or 442 + modify any covered work. These actions infringe copyright if you do 443 + not accept this License. Therefore, by modifying or propagating a 444 + covered work, you indicate your acceptance of this License to do so. 445 + 446 + 10. Automatic Licensing of Downstream Recipients. 447 + 448 + Each time you convey a covered work, the recipient automatically 449 + receives a license from the original licensors, to run, modify and 450 + propagate that work, subject to this License. You are not responsible 451 + for enforcing compliance by third parties with this License. 452 + 453 + An "entity transaction" is a transaction transferring control of an 454 + organization, or substantially all assets of one, or subdividing an 455 + organization, or merging organizations. If propagation of a covered 456 + work results from an entity transaction, each party to that 457 + transaction who receives a copy of the work also receives whatever 458 + licenses to the work the party's predecessor in interest had or could 459 + give under the previous paragraph, plus a right to possession of the 460 + Corresponding Source of the work from the predecessor in interest, if 461 + the predecessor has it or can get it with reasonable efforts. 462 + 463 + You may not impose any further restrictions on the exercise of the 464 + rights granted or affirmed under this License. For example, you may 465 + not impose a license fee, royalty, or other charge for exercise of 466 + rights granted under this License, and you may not initiate litigation 467 + (including a cross-claim or counterclaim in a lawsuit) alleging that 468 + any patent claim is infringed by making, using, selling, offering for 469 + sale, or importing the Program or any portion of it. 470 + 471 + 11. Patents. 472 + 473 + A "contributor" is a copyright holder who authorizes use under this 474 + License of the Program or a work on which the Program is based. The 475 + work thus licensed is called the contributor's "contributor version". 476 + 477 + A contributor's "essential patent claims" are all patent claims 478 + owned or controlled by the contributor, whether already acquired or 479 + hereafter acquired, that would be infringed by some manner, permitted 480 + by this License, of making, using, or selling its contributor version, 481 + but do not include claims that would be infringed only as a 482 + consequence of further modification of the contributor version. For 483 + purposes of this definition, "control" includes the right to grant 484 + patent sublicenses in a manner consistent with the requirements of 485 + this License. 486 + 487 + Each contributor grants you a non-exclusive, worldwide, royalty-free 488 + patent license under the contributor's essential patent claims, to 489 + make, use, sell, offer for sale, import and otherwise run, modify and 490 + propagate the contents of its contributor version. 491 + 492 + In the following three paragraphs, a "patent license" is any express 493 + agreement or commitment, however denominated, not to enforce a patent 494 + (such as an express permission to practice a patent or covenant not to 495 + sue for patent infringement). To "grant" such a patent license to a 496 + party means to make such an agreement or commitment not to enforce a 497 + patent against the party. 498 + 499 + If you convey a covered work, knowingly relying on a patent license, 500 + and the Corresponding Source of the work is not available for anyone 501 + to copy, free of charge and under the terms of this License, through a 502 + publicly available network server or other readily accessible means, 503 + then you must either (1) cause the Corresponding Source to be so 504 + available, or (2) arrange to deprive yourself of the benefit of the 505 + patent license for this particular work, or (3) arrange, in a manner 506 + consistent with the requirements of this License, to extend the patent 507 + license to downstream recipients. "Knowingly relying" means you have 508 + actual knowledge that, but for the patent license, your conveying the 509 + covered work in a country, or your recipient's use of the covered work 510 + in a country, would infringe one or more identifiable patents in that 511 + country that you have reason to believe are valid. 512 + 513 + If, pursuant to or in connection with a single transaction or 514 + arrangement, you convey, or propagate by procuring conveyance of, a 515 + covered work, and grant a patent license to some of the parties 516 + receiving the covered work authorizing them to use, propagate, modify 517 + or convey a specific copy of the covered work, then the patent license 518 + you grant is automatically extended to all recipients of the covered 519 + work and works based on it. 520 + 521 + A patent license is "discriminatory" if it does not include within 522 + the scope of its coverage, prohibits the exercise of, or is 523 + conditioned on the non-exercise of one or more of the rights that are 524 + specifically granted under this License. You may not convey a covered 525 + work if you are a party to an arrangement with a third party that is 526 + in the business of distributing software, under which you make payment 527 + to the third party based on the extent of your activity of conveying 528 + the work, and under which the third party grants, to any of the 529 + parties who would receive the covered work from you, a discriminatory 530 + patent license (a) in connection with copies of the covered work 531 + conveyed by you (or copies made from those copies), or (b) primarily 532 + for and in connection with specific products or compilations that 533 + contain the covered work, unless you entered into that arrangement, 534 + or that patent license was granted, prior to 28 March 2007. 535 + 536 + Nothing in this License shall be construed as excluding or limiting 537 + any implied license or other defenses to infringement that may 538 + otherwise be available to you under applicable patent law. 539 + 540 + 12. No Surrender of Others' Freedom. 541 + 542 + If conditions are imposed on you (whether by court order, agreement or 543 + otherwise) that contradict the conditions of this License, they do not 544 + excuse you from the conditions of this License. If you cannot convey a 545 + covered work so as to satisfy simultaneously your obligations under this 546 + License and any other pertinent obligations, then as a consequence you may 547 + not convey it at all. For example, if you agree to terms that obligate you 548 + to collect a royalty for further conveying from those to whom you convey 549 + the Program, the only way you could satisfy both those terms and this 550 + License would be to refrain entirely from conveying the Program. 551 + 552 + 13. Use with the GNU Affero General Public License. 553 + 554 + Notwithstanding any other provision of this License, you have 555 + permission to link or combine any covered work with a work licensed 556 + under version 3 of the GNU Affero General Public License into a single 557 + combined work, and to convey the resulting work. The terms of this 558 + License will continue to apply to the part which is the covered work, 559 + but the special requirements of the GNU Affero General Public License, 560 + section 13, concerning interaction through a network will apply to the 561 + combination as such. 562 + 563 + 14. Revised Versions of this License. 564 + 565 + The Free Software Foundation may publish revised and/or new versions of 566 + the GNU General Public License from time to time. Such new versions will 567 + be similar in spirit to the present version, but may differ in detail to 568 + address new problems or concerns. 569 + 570 + Each version is given a distinguishing version number. If the 571 + Program specifies that a certain numbered version of the GNU General 572 + Public License "or any later version" applies to it, you have the 573 + option of following the terms and conditions either of that numbered 574 + version or of any later version published by the Free Software 575 + Foundation. If the Program does not specify a version number of the 576 + GNU General Public License, you may choose any version ever published 577 + by the Free Software Foundation. 578 + 579 + If the Program specifies that a proxy can decide which future 580 + versions of the GNU General Public License can be used, that proxy's 581 + public statement of acceptance of a version permanently authorizes you 582 + to choose that version for the Program. 583 + 584 + Later license versions may give you additional or different 585 + permissions. However, no additional obligations are imposed on any 586 + author or copyright holder as a result of your choosing to follow a 587 + later version. 588 + 589 + 15. Disclaimer of Warranty. 590 + 591 + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY 592 + APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT 593 + HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY 594 + OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 595 + THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 596 + PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM 597 + IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF 598 + ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 599 + 600 + 16. Limitation of Liability. 601 + 602 + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 603 + WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 604 + THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 605 + GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE 606 + USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF 607 + DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 608 + PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 609 + EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF 610 + SUCH DAMAGES. 611 + 612 + 17. Interpretation of Sections 15 and 16. 613 + 614 + If the disclaimer of warranty and limitation of liability provided 615 + above cannot be given local legal effect according to their terms, 616 + reviewing courts shall apply local law that most closely approximates 617 + an absolute waiver of all civil liability in connection with the 618 + Program, unless a warranty or assumption of liability accompanies a 619 + copy of the Program in return for a fee. 620 + 621 + END OF TERMS AND CONDITIONS 622 + 623 + How to Apply These Terms to Your New Programs 624 + 625 + If you develop a new program, and you want it to be of the greatest 626 + possible use to the public, the best way to achieve this is to make it 627 + free software which everyone can redistribute and change under these terms. 628 + 629 + To do so, attach the following notices to the program. It is safest 630 + to attach them to the start of each source file to most effectively 631 + state the exclusion of warranty; and each file should have at least 632 + the "copyright" line and a pointer to where the full notice is found. 633 + 634 + <one line to give the program's name and a brief idea of what it does.> 635 + Copyright (C) <year> <name of author> 636 + 637 + This program is free software: you can redistribute it and/or modify 638 + it under the terms of the GNU General Public License as published by 639 + the Free Software Foundation, either version 3 of the License, or 640 + (at your option) any later version. 641 + 642 + This program is distributed in the hope that it will be useful, 643 + but WITHOUT ANY WARRANTY; without even the implied warranty of 644 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 645 + GNU General Public License for more details. 646 + 647 + You should have received a copy of the GNU General Public License 648 + along with this program. If not, see <https://www.gnu.org/licenses/>. 649 + 650 + Also add information on how to contact you by electronic and paper mail. 651 + 652 + If the program does terminal interaction, make it output a short 653 + notice like this when it starts in an interactive mode: 654 + 655 + <program> Copyright (C) <year> <name of author> 656 + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 657 + This is free software, and you are welcome to redistribute it 658 + under certain conditions; type `show c' for details. 659 + 660 + The hypothetical commands `show w' and `show c' should show the appropriate 661 + parts of the General Public License. Of course, your program's commands 662 + might be different; for a GUI interface, you would use an "about box". 663 + 664 + You should also get your employer (if you work as a programmer) or school, 665 + if any, to sign a "copyright disclaimer" for the program, if necessary. 666 + For more information on this, and how to apply and follow the GNU GPL, see 667 + <https://www.gnu.org/licenses/>. 668 + 669 + The GNU General Public License does not permit incorporating your program 670 + into proprietary programs. If your program is a subroutine library, you 671 + may consider it more useful to permit linking proprietary applications with 672 + the library. If this is what you want to do, use the GNU Lesser General 673 + Public License instead of this License. But first, please read 674 + <https://www.gnu.org/licenses/why-not-lgpl.html>.
+9
README.md
··· 1 + # JJ-MM 2 + 3 + \[WIP\] Jujutsu TUI suited for mega-merge workflow 4 + 5 + > Not a full-blown interface like lazyjj but a small ui suited for specific need / short operations just like `less` 6 + 7 + - [ ] commit history with horizontal scroll 8 + - [ ] builtin terminal for native jj commands 9 + - [ ] helper commands for mega-merge workflow
+48
src/jj_helper/mod.rs
··· 1 + use anyhow::Result; 2 + use std::{ffi::OsStr, process::Command}; 3 + 4 + const LOG_TEMPLATE: &str = 5 + r#""[" ++ change_id ++ "|" ++ commit_id ++ "|" ++ divergent ++ "|" ++ immutable ++ "]""#; 6 + 7 + #[derive(Clone, PartialEq, Eq, Hash, Debug)] 8 + pub struct Head { 9 + pub change_id: String, 10 + pub commit_id: String, 11 + pub divergent: bool, 12 + pub immutable: bool, 13 + } 14 + 15 + #[derive(Debug)] 16 + pub struct Jujutsu { 17 + jj_bin: String, 18 + } 19 + 20 + impl Jujutsu { 21 + fn execute_jj_command<I, S>(&self, args: I, color: bool, quiet: bool) -> Result<()> 22 + where 23 + I: IntoIterator<Item = S>, 24 + S: AsRef<OsStr>, 25 + { 26 + let mut command = Command::new(&self.jj_bin); 27 + command.args(args); 28 + command.args(get_output_args(color, quiet)); 29 + return Ok(()); 30 + } 31 + 32 + pub fn get_log(&self) -> Result<()> { 33 + return Ok(()); 34 + } 35 + } 36 + 37 + fn get_output_args(color: bool, quiet: bool) -> Vec<String> { 38 + vec![ 39 + "--no-pager", 40 + "--color", 41 + if color { "always" } else { "never" }, 42 + if quiet { "--quiet" } else { "" }, 43 + ] 44 + .into_iter() 45 + .map(String::from) 46 + .filter(|arg| !arg.is_empty()) 47 + .collect() 48 + }
+360
src/main.rs
··· 1 + use std::{io, path::Path, sync::Arc}; 2 + 3 + use crossterm::event::{self, Event, KeyCode, KeyEvent, KeyEventKind}; 4 + use jj_lib::{ 5 + commit::Commit, 6 + config::StackedConfig, 7 + graph::{GraphEdge, GraphEdgeType, TopoGroupedGraphIterator}, 8 + repo::{Repo as _, StoreFactories}, 9 + revset::{RevsetExpression, RevsetIteratorExt, UserRevsetExpression}, 10 + settings::UserSettings, 11 + workspace::{WorkingCopyFactories, Workspace}, 12 + }; 13 + use ratatui::{ 14 + DefaultTerminal, Frame, 15 + buffer::Buffer, 16 + layout::{Constraint, Direction, Layout, Rect}, 17 + style::{Color, Style, Stylize}, 18 + symbols::border, 19 + text::{Line, Text}, 20 + widgets::{Block, Borders, Paragraph, Widget}, 21 + }; 22 + 23 + #[derive(Debug, Default)] 24 + pub struct App { 25 + counter: u8, 26 + exit: bool, 27 + } 28 + 29 + // Plan 30 + // 31 + // 1. run jj-log, get commits between mega-merge and each history's base. 32 + // 2. show UI where they are rendered separately 33 + // 3. make more consice UI (where other histories will be collapsed) 34 + 35 + impl App { 36 + pub fn run(mut self, terminal: &mut DefaultTerminal) -> io::Result<()> { 37 + while !self.exit { 38 + // terminal.draw(|frame| self.draw(frame))?; 39 + terminal.draw(|frame| frame.render_widget(&self, frame.area()))?; 40 + self.handle_events()?; 41 + } 42 + Ok(()) 43 + } 44 + 45 + fn draw(&self, frame: &mut Frame) { 46 + // TODO: draw all UI 47 + let chunks = Layout::default() 48 + .direction(Direction::Vertical) 49 + .constraints([ 50 + Constraint::Length(3), 51 + Constraint::Min(1), 52 + Constraint::Length(3), 53 + ]) 54 + .split(frame.area()); 55 + let title_block = Block::default() 56 + .borders(Borders::ALL) 57 + .style(Style::default()); 58 + let title_text = Text::from("hey"); 59 + // let title_text = Text::from(vec![ 60 + // Line::from(vec![ 61 + // "Value: ".into(), 62 + // self.counter.to_string().yellow(), 63 + // ]), 64 + // ]); 65 + let title = Paragraph::new(title_text) 66 + .block(title_block); 67 + frame.render_widget(title, chunks[0]); 68 + // frame.render_widget(self, frame.area()); 69 + } 70 + 71 + fn handle_events(&mut self) -> io::Result<()> { 72 + match event::read()? { 73 + Event::Key(key_event) if key_event.kind == KeyEventKind::Press => { 74 + self.handle_key_event(key_event) 75 + } 76 + _ => {} 77 + }; 78 + Ok(()) 79 + } 80 + 81 + fn handle_key_event(&mut self, key_event: KeyEvent) { 82 + match key_event.code { 83 + KeyCode::Char('q') => self.exit(), 84 + KeyCode::Char('h') | KeyCode::Left => self.decrement_counter(), 85 + KeyCode::Char('l') | KeyCode::Right => self.increment_counter(), 86 + _ => {} 87 + } 88 + } 89 + 90 + fn exit(&mut self) { 91 + self.exit = true 92 + } 93 + 94 + fn increment_counter(&mut self) { 95 + self.counter += 1; 96 + } 97 + 98 + fn decrement_counter(&mut self) { 99 + self.counter = self.counter.saturating_sub(1) 100 + } 101 + } 102 + 103 + impl Widget for &App { 104 + fn render(self, area: Rect, buf: &mut Buffer) { 105 + let title = Line::from(" Counter App Tutorial ".bold()); 106 + let block = Block::bordered() 107 + .title(title.centered()) 108 + .border_set(border::THICK); 109 + 110 + let counter_text = Text::from(vec![Line::from(vec![ 111 + "Value: ".into(), 112 + self.counter.to_string().yellow(), 113 + ])]); 114 + 115 + Paragraph::new(counter_text) 116 + .centered() 117 + .block(block) 118 + .render(area, buf); 119 + } 120 + } 121 + 122 + mod jj_helper; 123 + 124 + use jj_cli::{cli_util::CommandHelper, formatter::FormatterExt as _, graphlog::SaplingGraphLog}; 125 + use jj_cli::cli_util::RevisionArg; 126 + use jj_cli::command_error::CommandError; 127 + use jj_cli::ui::Ui; 128 + use jj_cli::{ 129 + cli_util::{CliRunner, LogContentFormat, format_template}, 130 + graphlog::{GraphStyle, get_graphlog}, 131 + templater::TemplateRenderer, 132 + }; 133 + use renderdag::GraphRowRenderer; 134 + 135 + // fn main() -> anyhow::Result<()> { 136 + // let path = Path::new("/Users/boltless/repo/tangled"); 137 + // let user_settings = UserSettings::from_config(StackedConfig::with_defaults())?; 138 + // let store_factories = StoreFactories::default(); 139 + // let working_copy_factories = WorkingCopyFactories::new(); 140 + // let ws = Workspace::load( 141 + // &user_settings, 142 + // path, 143 + // &store_factories, 144 + // &working_copy_factories, 145 + // )?; 146 + // name = ws.workspace_name(); 147 + // // let mut terminal = ratatui::init(); 148 + // // let result = App::default().run(&mut terminal); 149 + // // ratatui::restore(); 150 + // // result 151 + // Ok(()) 152 + // } 153 + 154 + #[derive(clap::Parser, Clone, Debug)] 155 + enum CustomCommand { 156 + MegaLog(MegaLogArgs), 157 + } 158 + 159 + /// Frobnicate a revisions 160 + #[derive(clap::Args, Clone, Debug)] 161 + struct MegaLogArgs { 162 + /// The revision to frobnicate 163 + #[arg(default_value = "@")] 164 + revision: RevisionArg, 165 + } 166 + 167 + fn run_custom_command( 168 + ui: &mut Ui, 169 + command_helper: &CommandHelper, 170 + command: CustomCommand, 171 + ) -> Result<(), CommandError> { 172 + match command { 173 + CustomCommand::MegaLog(args) => mega_merge_log(ui, command_helper, &args), 174 + } 175 + } 176 + 177 + fn mega_merge_log( 178 + ui: &mut Ui, 179 + command_helper: &CommandHelper, 180 + _args: &MegaLogArgs, 181 + ) -> Result<(), CommandError> { 182 + // 1. from "MM", get all edges, 183 + // 2. render graphs based on those edges, similar logic to jj-log 184 + // choose template based on focus state 185 + let workspace_command = command_helper.workspace_helper(ui)?; 186 + let settings = workspace_command.settings(); 187 + 188 + let repo = workspace_command.repo(); 189 + let store = repo.store(); 190 + let graph_style = GraphStyle::from_settings(settings)?; 191 + 192 + let use_elided_nodes = settings.get_bool("ui.log-synthetic-elided-nodes")?; 193 + let with_content_format = LogContentFormat::new(ui, settings)?; 194 + 195 + let template: TemplateRenderer<Commit>; 196 + let node_template: TemplateRenderer<Option<Commit>>; 197 + { 198 + let language = workspace_command.commit_template_language(); 199 + let template_string = settings.get_string("templates.log")?; 200 + template = workspace_command 201 + .parse_template(ui, &language, &template_string)? 202 + .labeled(["log", "commit"]); 203 + node_template = workspace_command 204 + .parse_template(ui, &language, &settings.get_string("templates.log_node")?)? 205 + .labeled(["log", "commit", "node"]); 206 + } 207 + 208 + // this part will be configurable 209 + let mm_rev = RevisionArg::from(String::from("MM")); 210 + let mm_commit = workspace_command.resolve_single_rev(ui, &mm_rev)?; 211 + 212 + let immutable_exp = { 213 + let rev = String::from("immutable()"); 214 + workspace_command.parse_revset(ui, &RevisionArg::from(rev))? 215 + }; 216 + let trunk_exp = { 217 + let rev = String::from("trunk()"); 218 + workspace_command.parse_revset(ui, &RevisionArg::from(rev))? 219 + }; 220 + 221 + // let parent = mm_commit.parents().next().unwrap()?; 222 + for parent in mm_commit.parents().take(3) { 223 + let parent = parent?; 224 + println!("{}", parent.change_id()); 225 + 226 + // create revsets based on each branches 227 + // maybe make this configurable as "log_revs(head)"? 228 + // ancestors(::x ~ immutable(), 2) 229 + let exp = 230 + RevsetExpression::union( 231 + &RevsetExpression::ancestors_range( 232 + &RevsetExpression::minus( 233 + &RevsetExpression::ancestors(&RevsetExpression::commits(vec![parent.id().clone()])), 234 + immutable_exp.expression(), 235 + ), 236 + 0..2, 237 + ), 238 + // &RevsetExpression::commits(vec![mm_commit.id().clone()]), 239 + trunk_exp.expression(), 240 + ); 241 + let exp = workspace_command.attach_revset_evaluator(exp); 242 + let revset = exp.evaluate()?; 243 + 244 + let mut formatter = ui.stdout_formatter(); 245 + let formatter = formatter.as_mut(); 246 + let mut raw_output = formatter.raw()?; 247 + 248 + 249 + // let mut graph = get_graphlog(graph_style, raw_output.as_mut()); 250 + // let mut graph = GraphRowRenderer::new().output().with_min_row_height(0).build_box_drawing(); 251 + let mut graph = { 252 + let builder = GraphRowRenderer::new().output().with_min_row_height(0); 253 + SaplingGraphLog::create(builder.build_box_drawing().with_square_glyphs(), raw_output.as_mut()) 254 + }; 255 + 256 + let iter = { 257 + let mut forward_iter = TopoGroupedGraphIterator::new(revset.iter_graph(), |id| id); 258 + forward_iter.prioritize_branch(parent.id().clone()); 259 + forward_iter 260 + }; 261 + 262 + for node in iter { 263 + let (commit_id, edges) = node?; 264 + 265 + // The graph is keyed by (CommitId, is_synthetic) 266 + let mut graphlog_edges = vec![]; 267 + let mut missing_edge_id = None; 268 + let mut elided_targets = vec![]; 269 + for edge in edges { 270 + match edge.edge_type { 271 + GraphEdgeType::Missing => { 272 + missing_edge_id = Some(edge.target); 273 + } 274 + GraphEdgeType::Direct => { 275 + graphlog_edges.push(GraphEdge::direct((edge.target, false))); 276 + } 277 + GraphEdgeType::Indirect => { 278 + if use_elided_nodes { 279 + elided_targets.push(edge.target.clone()); 280 + graphlog_edges.push(GraphEdge::direct((edge.target, true))); 281 + } else { 282 + graphlog_edges.push(GraphEdge::indirect((edge.target, false))); 283 + } 284 + } 285 + } 286 + } 287 + if let Some(missing_edge_id) = missing_edge_id { 288 + graphlog_edges.push(GraphEdge::missing((missing_edge_id, false))); 289 + } 290 + let mut buffer = vec![]; 291 + let key = (commit_id, false); 292 + let commit = store.get_commit(&key.0)?; 293 + 294 + with_content_format 295 + .sub_width(graph.width(&key, &graphlog_edges)) 296 + .write(ui.new_formatter(&mut buffer).as_mut(), |formatter| { 297 + template.format(&commit, formatter) 298 + })?; 299 + if !buffer.ends_with(b"\n") { 300 + buffer.push(b'\n'); 301 + } 302 + 303 + let node_symbol = format_template(ui, &Some(commit), &node_template); 304 + graph.add_node( 305 + &key, 306 + &graphlog_edges, 307 + &node_symbol, 308 + &String::from_utf8_lossy(&buffer), 309 + )?; 310 + for elided_target in elided_targets { 311 + let elided_key = (elided_target, true); 312 + let real_key = (elided_key.0.clone(), false); 313 + let edges = [GraphEdge::direct(real_key)]; 314 + let mut buffer = vec![]; 315 + let within_graph = 316 + with_content_format.sub_width(graph.width(&elided_key, &edges)); 317 + within_graph.write(ui.new_formatter(&mut buffer).as_mut(), |formatter| { 318 + writeln!(formatter.labeled("elided"), "(elided revisions)") 319 + })?; 320 + let node_symbol = format_template(ui, &None, &node_template); 321 + graph.add_node( 322 + &elided_key, 323 + &edges, 324 + &node_symbol, 325 + &String::from_utf8_lossy(&buffer), 326 + )?; 327 + } 328 + } 329 + } 330 + 331 + // let revset_expression = { 332 + // // let rev = String::from("ancestors(@, 4)"); 333 + // let rev = String::from("ancestors(MM, 2)"); 334 + // workspace_command.parse_revset(ui, &RevisionArg::from(rev))? 335 + // }; 336 + // let revset = revset_expression.evaluate()?; 337 + 338 + // // so this is possible 339 + // let mut terminal = ratatui::init(); 340 + // let result = App::default().run(&mut terminal); 341 + // ratatui::restore(); 342 + // result?; 343 + 344 + Ok(()) 345 + } 346 + 347 + fn main() -> std::process::ExitCode { 348 + CliRunner::init() 349 + .add_subcommand(run_custom_command) 350 + .run() 351 + .into() 352 + } 353 + 354 + // fn main() -> anyhow::Result<()> { 355 + // let mut terminal = ratatui::init(); 356 + // let result = App::default().run(&mut terminal); 357 + // ratatui::restore(); 358 + // result?; 359 + // Ok(()) 360 + // }