Silly NuShell plugin to read Minecraft NBT
0
fork

Configure Feed

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

Initial Commit

Ben C 40664c0a

+2589
+3
.gitignore
··· 1 + /target 2 + result 3 + *.dat
+2143
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 = "adler2" 7 + version = "2.0.1" 8 + source = "registry+https://github.com/rust-lang/crates.io-index" 9 + checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" 10 + 11 + [[package]] 12 + name = "aho-corasick" 13 + version = "1.1.4" 14 + source = "registry+https://github.com/rust-lang/crates.io-index" 15 + checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" 16 + dependencies = [ 17 + "memchr", 18 + ] 19 + 20 + [[package]] 21 + name = "alloc-no-stdlib" 22 + version = "2.0.4" 23 + source = "registry+https://github.com/rust-lang/crates.io-index" 24 + checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" 25 + 26 + [[package]] 27 + name = "alloc-stdlib" 28 + version = "0.2.2" 29 + source = "registry+https://github.com/rust-lang/crates.io-index" 30 + checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" 31 + dependencies = [ 32 + "alloc-no-stdlib", 33 + ] 34 + 35 + [[package]] 36 + name = "allocator-api2" 37 + version = "0.2.21" 38 + source = "registry+https://github.com/rust-lang/crates.io-index" 39 + checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" 40 + 41 + [[package]] 42 + name = "android_system_properties" 43 + version = "0.1.5" 44 + source = "registry+https://github.com/rust-lang/crates.io-index" 45 + checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 46 + dependencies = [ 47 + "libc", 48 + ] 49 + 50 + [[package]] 51 + name = "arrayvec" 52 + version = "0.7.6" 53 + source = "registry+https://github.com/rust-lang/crates.io-index" 54 + checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" 55 + 56 + [[package]] 57 + name = "autocfg" 58 + version = "1.5.0" 59 + source = "registry+https://github.com/rust-lang/crates.io-index" 60 + checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" 61 + 62 + [[package]] 63 + name = "bindgen" 64 + version = "0.72.1" 65 + source = "registry+https://github.com/rust-lang/crates.io-index" 66 + checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" 67 + dependencies = [ 68 + "bitflags", 69 + "cexpr", 70 + "clang-sys", 71 + "itertools 0.13.0", 72 + "proc-macro2", 73 + "quote", 74 + "regex", 75 + "rustc-hash", 76 + "shlex", 77 + "syn", 78 + ] 79 + 80 + [[package]] 81 + name = "bit-set" 82 + version = "0.8.0" 83 + source = "registry+https://github.com/rust-lang/crates.io-index" 84 + checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" 85 + dependencies = [ 86 + "bit-vec", 87 + ] 88 + 89 + [[package]] 90 + name = "bit-vec" 91 + version = "0.8.0" 92 + source = "registry+https://github.com/rust-lang/crates.io-index" 93 + checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" 94 + 95 + [[package]] 96 + name = "bitflags" 97 + version = "2.10.0" 98 + source = "registry+https://github.com/rust-lang/crates.io-index" 99 + checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" 100 + 101 + [[package]] 102 + name = "brotli" 103 + version = "8.0.2" 104 + source = "registry+https://github.com/rust-lang/crates.io-index" 105 + checksum = "4bd8b9603c7aa97359dbd97ecf258968c95f3adddd6db2f7e7a5bef101c84560" 106 + dependencies = [ 107 + "alloc-no-stdlib", 108 + "alloc-stdlib", 109 + "brotli-decompressor", 110 + ] 111 + 112 + [[package]] 113 + name = "brotli-decompressor" 114 + version = "5.0.0" 115 + source = "registry+https://github.com/rust-lang/crates.io-index" 116 + checksum = "874bb8112abecc98cbd6d81ea4fa7e94fb9449648c93cc89aa40c81c24d7de03" 117 + dependencies = [ 118 + "alloc-no-stdlib", 119 + "alloc-stdlib", 120 + ] 121 + 122 + [[package]] 123 + name = "buf-trait" 124 + version = "0.4.1" 125 + source = "registry+https://github.com/rust-lang/crates.io-index" 126 + checksum = "21eaafc770e8c073d6c3facafe7617e774305d4954aa6351b9c452eb37ee17b4" 127 + dependencies = [ 128 + "zerocopy", 129 + ] 130 + 131 + [[package]] 132 + name = "bumpalo" 133 + version = "3.19.1" 134 + source = "registry+https://github.com/rust-lang/crates.io-index" 135 + checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" 136 + 137 + [[package]] 138 + name = "byteorder" 139 + version = "1.5.0" 140 + source = "registry+https://github.com/rust-lang/crates.io-index" 141 + checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 142 + 143 + [[package]] 144 + name = "bytes" 145 + version = "1.11.0" 146 + source = "registry+https://github.com/rust-lang/crates.io-index" 147 + checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" 148 + 149 + [[package]] 150 + name = "byteyarn" 151 + version = "0.5.1" 152 + source = "registry+https://github.com/rust-lang/crates.io-index" 153 + checksum = "b93e51d26468a15ea59f8525e0c13dc405db43e644a0b1e6d44346c72cf4cf7b" 154 + dependencies = [ 155 + "buf-trait", 156 + ] 157 + 158 + [[package]] 159 + name = "castaway" 160 + version = "0.2.4" 161 + source = "registry+https://github.com/rust-lang/crates.io-index" 162 + checksum = "dec551ab6e7578819132c713a93c022a05d60159dc86e7a7050223577484c55a" 163 + dependencies = [ 164 + "rustversion", 165 + ] 166 + 167 + [[package]] 168 + name = "cc" 169 + version = "1.2.52" 170 + source = "registry+https://github.com/rust-lang/crates.io-index" 171 + checksum = "cd4932aefd12402b36c60956a4fe0035421f544799057659ff86f923657aada3" 172 + dependencies = [ 173 + "find-msvc-tools", 174 + "shlex", 175 + ] 176 + 177 + [[package]] 178 + name = "cexpr" 179 + version = "0.6.0" 180 + source = "registry+https://github.com/rust-lang/crates.io-index" 181 + checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" 182 + dependencies = [ 183 + "nom", 184 + ] 185 + 186 + [[package]] 187 + name = "cfg-if" 188 + version = "1.0.4" 189 + source = "registry+https://github.com/rust-lang/crates.io-index" 190 + checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" 191 + 192 + [[package]] 193 + name = "cfg_aliases" 194 + version = "0.2.1" 195 + source = "registry+https://github.com/rust-lang/crates.io-index" 196 + checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" 197 + 198 + [[package]] 199 + name = "chrono" 200 + version = "0.4.43" 201 + source = "registry+https://github.com/rust-lang/crates.io-index" 202 + checksum = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118" 203 + dependencies = [ 204 + "iana-time-zone", 205 + "num-traits", 206 + "pure-rust-locales", 207 + "serde", 208 + "windows-link 0.2.1", 209 + ] 210 + 211 + [[package]] 212 + name = "chrono-humanize" 213 + version = "0.2.3" 214 + source = "registry+https://github.com/rust-lang/crates.io-index" 215 + checksum = "799627e6b4d27827a814e837b9d8a504832086081806d45b1afa34dc982b023b" 216 + dependencies = [ 217 + "chrono", 218 + ] 219 + 220 + [[package]] 221 + name = "clang-sys" 222 + version = "1.8.1" 223 + source = "registry+https://github.com/rust-lang/crates.io-index" 224 + checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" 225 + dependencies = [ 226 + "glob", 227 + "libc", 228 + "libloading", 229 + ] 230 + 231 + [[package]] 232 + name = "convert_case" 233 + version = "0.10.0" 234 + source = "registry+https://github.com/rust-lang/crates.io-index" 235 + checksum = "633458d4ef8c78b72454de2d54fd6ab2e60f9e02be22f3c6104cdc8a4e0fceb9" 236 + dependencies = [ 237 + "unicode-segmentation", 238 + ] 239 + 240 + [[package]] 241 + name = "core-foundation-sys" 242 + version = "0.8.7" 243 + source = "registry+https://github.com/rust-lang/crates.io-index" 244 + checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 245 + 246 + [[package]] 247 + name = "crc32fast" 248 + version = "1.5.0" 249 + source = "registry+https://github.com/rust-lang/crates.io-index" 250 + checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" 251 + dependencies = [ 252 + "cfg-if", 253 + ] 254 + 255 + [[package]] 256 + name = "crossterm" 257 + version = "0.29.0" 258 + source = "registry+https://github.com/rust-lang/crates.io-index" 259 + checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" 260 + dependencies = [ 261 + "bitflags", 262 + "crossterm_winapi", 263 + "derive_more", 264 + "document-features", 265 + "mio", 266 + "parking_lot", 267 + "rustix 1.1.3", 268 + "signal-hook", 269 + "signal-hook-mio", 270 + "winapi", 271 + ] 272 + 273 + [[package]] 274 + name = "crossterm_winapi" 275 + version = "0.9.1" 276 + source = "registry+https://github.com/rust-lang/crates.io-index" 277 + checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" 278 + dependencies = [ 279 + "winapi", 280 + ] 281 + 282 + [[package]] 283 + name = "derive_more" 284 + version = "2.1.1" 285 + source = "registry+https://github.com/rust-lang/crates.io-index" 286 + checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134" 287 + dependencies = [ 288 + "derive_more-impl", 289 + ] 290 + 291 + [[package]] 292 + name = "derive_more-impl" 293 + version = "2.1.1" 294 + source = "registry+https://github.com/rust-lang/crates.io-index" 295 + checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb" 296 + dependencies = [ 297 + "convert_case", 298 + "proc-macro2", 299 + "quote", 300 + "rustc_version", 301 + "syn", 302 + ] 303 + 304 + [[package]] 305 + name = "dirs" 306 + version = "6.0.0" 307 + source = "registry+https://github.com/rust-lang/crates.io-index" 308 + checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" 309 + dependencies = [ 310 + "dirs-sys", 311 + ] 312 + 313 + [[package]] 314 + name = "dirs-sys" 315 + version = "0.5.0" 316 + source = "registry+https://github.com/rust-lang/crates.io-index" 317 + checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" 318 + dependencies = [ 319 + "libc", 320 + "option-ext", 321 + "redox_users", 322 + "windows-sys 0.61.2", 323 + ] 324 + 325 + [[package]] 326 + name = "doctest-file" 327 + version = "1.0.0" 328 + source = "registry+https://github.com/rust-lang/crates.io-index" 329 + checksum = "aac81fa3e28d21450aa4d2ac065992ba96a1d7303efbce51a95f4fd175b67562" 330 + 331 + [[package]] 332 + name = "document-features" 333 + version = "0.2.12" 334 + source = "registry+https://github.com/rust-lang/crates.io-index" 335 + checksum = "d4b8a88685455ed29a21542a33abd9cb6510b6b129abadabdcef0f4c55bc8f61" 336 + dependencies = [ 337 + "litrs", 338 + ] 339 + 340 + [[package]] 341 + name = "either" 342 + version = "1.15.0" 343 + source = "registry+https://github.com/rust-lang/crates.io-index" 344 + checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" 345 + 346 + [[package]] 347 + name = "equivalent" 348 + version = "1.0.2" 349 + source = "registry+https://github.com/rust-lang/crates.io-index" 350 + checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" 351 + 352 + [[package]] 353 + name = "erased-serde" 354 + version = "0.4.9" 355 + source = "registry+https://github.com/rust-lang/crates.io-index" 356 + checksum = "89e8918065695684b2b0702da20382d5ae6065cf3327bc2d6436bd49a71ce9f3" 357 + dependencies = [ 358 + "serde", 359 + "serde_core", 360 + "typeid", 361 + ] 362 + 363 + [[package]] 364 + name = "errno" 365 + version = "0.3.14" 366 + source = "registry+https://github.com/rust-lang/crates.io-index" 367 + checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" 368 + dependencies = [ 369 + "libc", 370 + "windows-sys 0.61.2", 371 + ] 372 + 373 + [[package]] 374 + name = "fancy-regex" 375 + version = "0.16.2" 376 + source = "registry+https://github.com/rust-lang/crates.io-index" 377 + checksum = "998b056554fbe42e03ae0e152895cd1a7e1002aec800fdc6635d20270260c46f" 378 + dependencies = [ 379 + "bit-set", 380 + "regex-automata", 381 + "regex-syntax", 382 + ] 383 + 384 + [[package]] 385 + name = "find-msvc-tools" 386 + version = "0.1.7" 387 + source = "registry+https://github.com/rust-lang/crates.io-index" 388 + checksum = "f449e6c6c08c865631d4890cfacf252b3d396c9bcc83adb6623cdb02a8336c41" 389 + 390 + [[package]] 391 + name = "flate2" 392 + version = "1.1.8" 393 + source = "registry+https://github.com/rust-lang/crates.io-index" 394 + checksum = "b375d6465b98090a5f25b1c7703f3859783755aa9a80433b36e0379a3ec2f369" 395 + dependencies = [ 396 + "crc32fast", 397 + "libz-sys", 398 + "miniz_oxide", 399 + ] 400 + 401 + [[package]] 402 + name = "foldhash" 403 + version = "0.1.5" 404 + source = "registry+https://github.com/rust-lang/crates.io-index" 405 + checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" 406 + 407 + [[package]] 408 + name = "getrandom" 409 + version = "0.2.17" 410 + source = "registry+https://github.com/rust-lang/crates.io-index" 411 + checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" 412 + dependencies = [ 413 + "cfg-if", 414 + "libc", 415 + "wasi", 416 + ] 417 + 418 + [[package]] 419 + name = "glob" 420 + version = "0.3.3" 421 + source = "registry+https://github.com/rust-lang/crates.io-index" 422 + checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" 423 + 424 + [[package]] 425 + name = "hashbrown" 426 + version = "0.15.5" 427 + source = "registry+https://github.com/rust-lang/crates.io-index" 428 + checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" 429 + dependencies = [ 430 + "allocator-api2", 431 + "equivalent", 432 + "foldhash", 433 + ] 434 + 435 + [[package]] 436 + name = "hashbrown" 437 + version = "0.16.1" 438 + source = "registry+https://github.com/rust-lang/crates.io-index" 439 + checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" 440 + 441 + [[package]] 442 + name = "heck" 443 + version = "0.5.0" 444 + source = "registry+https://github.com/rust-lang/crates.io-index" 445 + checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" 446 + 447 + [[package]] 448 + name = "hex" 449 + version = "0.4.3" 450 + source = "registry+https://github.com/rust-lang/crates.io-index" 451 + checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" 452 + 453 + [[package]] 454 + name = "iana-time-zone" 455 + version = "0.1.64" 456 + source = "registry+https://github.com/rust-lang/crates.io-index" 457 + checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" 458 + dependencies = [ 459 + "android_system_properties", 460 + "core-foundation-sys", 461 + "iana-time-zone-haiku", 462 + "js-sys", 463 + "log", 464 + "wasm-bindgen", 465 + "windows-core 0.62.2", 466 + ] 467 + 468 + [[package]] 469 + name = "iana-time-zone-haiku" 470 + version = "0.1.2" 471 + source = "registry+https://github.com/rust-lang/crates.io-index" 472 + checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" 473 + dependencies = [ 474 + "cc", 475 + ] 476 + 477 + [[package]] 478 + name = "indexmap" 479 + version = "2.13.0" 480 + source = "registry+https://github.com/rust-lang/crates.io-index" 481 + checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" 482 + dependencies = [ 483 + "equivalent", 484 + "hashbrown 0.16.1", 485 + ] 486 + 487 + [[package]] 488 + name = "interprocess" 489 + version = "2.2.3" 490 + source = "registry+https://github.com/rust-lang/crates.io-index" 491 + checksum = "d941b405bd2322993887859a8ee6ac9134945a24ec5ec763a8a962fc64dfec2d" 492 + dependencies = [ 493 + "doctest-file", 494 + "libc", 495 + "recvmsg", 496 + "widestring", 497 + "windows-sys 0.52.0", 498 + ] 499 + 500 + [[package]] 501 + name = "inventory" 502 + version = "0.3.21" 503 + source = "registry+https://github.com/rust-lang/crates.io-index" 504 + checksum = "bc61209c082fbeb19919bee74b176221b27223e27b65d781eb91af24eb1fb46e" 505 + dependencies = [ 506 + "rustversion", 507 + ] 508 + 509 + [[package]] 510 + name = "is_ci" 511 + version = "1.2.0" 512 + source = "registry+https://github.com/rust-lang/crates.io-index" 513 + checksum = "7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45" 514 + 515 + [[package]] 516 + name = "itertools" 517 + version = "0.13.0" 518 + source = "registry+https://github.com/rust-lang/crates.io-index" 519 + checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" 520 + dependencies = [ 521 + "either", 522 + ] 523 + 524 + [[package]] 525 + name = "itertools" 526 + version = "0.14.0" 527 + source = "registry+https://github.com/rust-lang/crates.io-index" 528 + checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" 529 + dependencies = [ 530 + "either", 531 + ] 532 + 533 + [[package]] 534 + name = "itoa" 535 + version = "1.0.17" 536 + source = "registry+https://github.com/rust-lang/crates.io-index" 537 + checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" 538 + 539 + [[package]] 540 + name = "js-sys" 541 + version = "0.3.85" 542 + source = "registry+https://github.com/rust-lang/crates.io-index" 543 + checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3" 544 + dependencies = [ 545 + "once_cell", 546 + "wasm-bindgen", 547 + ] 548 + 549 + [[package]] 550 + name = "lean_string" 551 + version = "0.5.1" 552 + source = "registry+https://github.com/rust-lang/crates.io-index" 553 + checksum = "962df00ba70ac8d5ca5c064e17e5c3d090c087fd8d21aa45096c716b169da514" 554 + dependencies = [ 555 + "castaway", 556 + "itoa", 557 + "ryu", 558 + "serde", 559 + ] 560 + 561 + [[package]] 562 + name = "libc" 563 + version = "0.2.180" 564 + source = "registry+https://github.com/rust-lang/crates.io-index" 565 + checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc" 566 + 567 + [[package]] 568 + name = "libloading" 569 + version = "0.8.9" 570 + source = "registry+https://github.com/rust-lang/crates.io-index" 571 + checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" 572 + dependencies = [ 573 + "cfg-if", 574 + "windows-link 0.2.1", 575 + ] 576 + 577 + [[package]] 578 + name = "libproc" 579 + version = "0.14.11" 580 + source = "registry+https://github.com/rust-lang/crates.io-index" 581 + checksum = "a54ad7278b8bc5301d5ffd2a94251c004feb971feba96c971ea4063645990757" 582 + dependencies = [ 583 + "bindgen", 584 + "errno", 585 + "libc", 586 + ] 587 + 588 + [[package]] 589 + name = "libredox" 590 + version = "0.1.12" 591 + source = "registry+https://github.com/rust-lang/crates.io-index" 592 + checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616" 593 + dependencies = [ 594 + "bitflags", 595 + "libc", 596 + ] 597 + 598 + [[package]] 599 + name = "libz-sys" 600 + version = "1.1.23" 601 + source = "registry+https://github.com/rust-lang/crates.io-index" 602 + checksum = "15d118bbf3771060e7311cc7bb0545b01d08a8b4a7de949198dec1fa0ca1c0f7" 603 + dependencies = [ 604 + "cc", 605 + "pkg-config", 606 + "vcpkg", 607 + ] 608 + 609 + [[package]] 610 + name = "linux-raw-sys" 611 + version = "0.4.15" 612 + source = "registry+https://github.com/rust-lang/crates.io-index" 613 + checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" 614 + 615 + [[package]] 616 + name = "linux-raw-sys" 617 + version = "0.11.0" 618 + source = "registry+https://github.com/rust-lang/crates.io-index" 619 + checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" 620 + 621 + [[package]] 622 + name = "litrs" 623 + version = "1.0.0" 624 + source = "registry+https://github.com/rust-lang/crates.io-index" 625 + checksum = "11d3d7f243d5c5a8b9bb5d6dd2b1602c0cb0b9db1621bafc7ed66e35ff9fe092" 626 + 627 + [[package]] 628 + name = "lock_api" 629 + version = "0.4.14" 630 + source = "registry+https://github.com/rust-lang/crates.io-index" 631 + checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" 632 + dependencies = [ 633 + "scopeguard", 634 + ] 635 + 636 + [[package]] 637 + name = "log" 638 + version = "0.4.29" 639 + source = "registry+https://github.com/rust-lang/crates.io-index" 640 + checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" 641 + 642 + [[package]] 643 + name = "lru" 644 + version = "0.12.5" 645 + source = "registry+https://github.com/rust-lang/crates.io-index" 646 + checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" 647 + dependencies = [ 648 + "hashbrown 0.15.5", 649 + ] 650 + 651 + [[package]] 652 + name = "lscolors" 653 + version = "0.20.0" 654 + source = "registry+https://github.com/rust-lang/crates.io-index" 655 + checksum = "61183da5de8ba09a58e330d55e5ea796539d8443bd00fdeb863eac39724aa4ab" 656 + dependencies = [ 657 + "aho-corasick", 658 + "nu-ansi-term", 659 + ] 660 + 661 + [[package]] 662 + name = "mach2" 663 + version = "0.4.3" 664 + source = "registry+https://github.com/rust-lang/crates.io-index" 665 + checksum = "d640282b302c0bb0a2a8e0233ead9035e3bed871f0b7e81fe4a1ec829765db44" 666 + dependencies = [ 667 + "libc", 668 + ] 669 + 670 + [[package]] 671 + name = "memchr" 672 + version = "2.7.6" 673 + source = "registry+https://github.com/rust-lang/crates.io-index" 674 + checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" 675 + 676 + [[package]] 677 + name = "miette" 678 + version = "7.6.0" 679 + source = "registry+https://github.com/rust-lang/crates.io-index" 680 + checksum = "5f98efec8807c63c752b5bd61f862c165c115b0a35685bdcfd9238c7aeb592b7" 681 + dependencies = [ 682 + "cfg-if", 683 + "miette-derive", 684 + "owo-colors", 685 + "supports-color", 686 + "supports-hyperlinks", 687 + "supports-unicode", 688 + "terminal_size", 689 + "textwrap", 690 + "unicode-width 0.1.14", 691 + ] 692 + 693 + [[package]] 694 + name = "miette-derive" 695 + version = "7.6.0" 696 + source = "registry+https://github.com/rust-lang/crates.io-index" 697 + checksum = "db5b29714e950dbb20d5e6f74f9dcec4edbcc1067bb7f8ed198c097b8c1a818b" 698 + dependencies = [ 699 + "proc-macro2", 700 + "quote", 701 + "syn", 702 + ] 703 + 704 + [[package]] 705 + name = "minimal-lexical" 706 + version = "0.2.1" 707 + source = "registry+https://github.com/rust-lang/crates.io-index" 708 + checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" 709 + 710 + [[package]] 711 + name = "miniz_oxide" 712 + version = "0.8.9" 713 + source = "registry+https://github.com/rust-lang/crates.io-index" 714 + checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" 715 + dependencies = [ 716 + "adler2", 717 + "simd-adler32", 718 + ] 719 + 720 + [[package]] 721 + name = "mio" 722 + version = "1.1.1" 723 + source = "registry+https://github.com/rust-lang/crates.io-index" 724 + checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" 725 + dependencies = [ 726 + "libc", 727 + "log", 728 + "wasi", 729 + "windows-sys 0.61.2", 730 + ] 731 + 732 + [[package]] 733 + name = "nix" 734 + version = "0.30.1" 735 + source = "registry+https://github.com/rust-lang/crates.io-index" 736 + checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" 737 + dependencies = [ 738 + "bitflags", 739 + "cfg-if", 740 + "cfg_aliases", 741 + "libc", 742 + ] 743 + 744 + [[package]] 745 + name = "nom" 746 + version = "7.1.3" 747 + source = "registry+https://github.com/rust-lang/crates.io-index" 748 + checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" 749 + dependencies = [ 750 + "memchr", 751 + "minimal-lexical", 752 + ] 753 + 754 + [[package]] 755 + name = "ntapi" 756 + version = "0.4.2" 757 + source = "registry+https://github.com/rust-lang/crates.io-index" 758 + checksum = "c70f219e21142367c70c0b30c6a9e3a14d55b4d12a204d897fbec83a0363f081" 759 + dependencies = [ 760 + "winapi", 761 + ] 762 + 763 + [[package]] 764 + name = "nu-ansi-term" 765 + version = "0.50.3" 766 + source = "registry+https://github.com/rust-lang/crates.io-index" 767 + checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" 768 + dependencies = [ 769 + "windows-sys 0.61.2", 770 + ] 771 + 772 + [[package]] 773 + name = "nu-derive-value" 774 + version = "0.109.1" 775 + source = "registry+https://github.com/rust-lang/crates.io-index" 776 + checksum = "1465d2d3ada6004cb6689f269a08c70ba81056231e2b5392d1e0ccf5825f81cb" 777 + dependencies = [ 778 + "heck", 779 + "proc-macro-error2", 780 + "proc-macro2", 781 + "quote", 782 + "syn", 783 + ] 784 + 785 + [[package]] 786 + name = "nu-engine" 787 + version = "0.109.1" 788 + source = "registry+https://github.com/rust-lang/crates.io-index" 789 + checksum = "b3b777faf7c5180fe5d7f67d83c44fd14138d91f2938a36494ed6ac66b7160f3" 790 + dependencies = [ 791 + "fancy-regex", 792 + "log", 793 + "nu-experimental", 794 + "nu-glob", 795 + "nu-path", 796 + "nu-protocol", 797 + "nu-utils", 798 + ] 799 + 800 + [[package]] 801 + name = "nu-experimental" 802 + version = "0.109.1" 803 + source = "registry+https://github.com/rust-lang/crates.io-index" 804 + checksum = "73dd212a1afdad646a38c00579a0988264880aeb97fee820b349a28cdcc04df2" 805 + dependencies = [ 806 + "itertools 0.14.0", 807 + "thiserror 2.0.17", 808 + ] 809 + 810 + [[package]] 811 + name = "nu-glob" 812 + version = "0.109.1" 813 + source = "registry+https://github.com/rust-lang/crates.io-index" 814 + checksum = "15aa2c17078926f14e393b4b708e69f228cb6fd4c81136839bde82772bdde1b5" 815 + 816 + [[package]] 817 + name = "nu-path" 818 + version = "0.109.1" 819 + source = "registry+https://github.com/rust-lang/crates.io-index" 820 + checksum = "dde9d8ba26f62c07176c0237a36f38ce964ab3a0dcfb6aab1feea7515d1c6594" 821 + dependencies = [ 822 + "dirs", 823 + "omnipath", 824 + "pwd", 825 + "ref-cast", 826 + ] 827 + 828 + [[package]] 829 + name = "nu-plugin" 830 + version = "0.109.1" 831 + source = "registry+https://github.com/rust-lang/crates.io-index" 832 + checksum = "9ea1fbfd41b2f5c967675fc948831e03be67d91c6b8e18a60f3445113fe6548c" 833 + dependencies = [ 834 + "log", 835 + "nix", 836 + "nu-engine", 837 + "nu-plugin-core", 838 + "nu-plugin-protocol", 839 + "nu-protocol", 840 + "nu-utils", 841 + "thiserror 2.0.17", 842 + ] 843 + 844 + [[package]] 845 + name = "nu-plugin-core" 846 + version = "0.109.1" 847 + source = "registry+https://github.com/rust-lang/crates.io-index" 848 + checksum = "dd2410648c2c38cf9359595ffcf281d9d60a81c0580ff07f7c7d42bed414f3a1" 849 + dependencies = [ 850 + "interprocess", 851 + "log", 852 + "nu-plugin-protocol", 853 + "nu-protocol", 854 + "rmp-serde", 855 + "serde", 856 + "serde_json", 857 + "windows 0.62.2", 858 + ] 859 + 860 + [[package]] 861 + name = "nu-plugin-protocol" 862 + version = "0.109.1" 863 + source = "registry+https://github.com/rust-lang/crates.io-index" 864 + checksum = "27de26da922261dff8103a811879228c55749a1b7b0e573b639c609a0651a01e" 865 + dependencies = [ 866 + "nu-protocol", 867 + "nu-utils", 868 + "rmp-serde", 869 + "semver", 870 + "serde", 871 + "typetag", 872 + ] 873 + 874 + [[package]] 875 + name = "nu-protocol" 876 + version = "0.109.1" 877 + source = "registry+https://github.com/rust-lang/crates.io-index" 878 + checksum = "038943300ca9de0924fef1c795a7dd16ffc67105629477cf163e8ee6bad95ea6" 879 + dependencies = [ 880 + "brotli", 881 + "bytes", 882 + "chrono", 883 + "chrono-humanize", 884 + "dirs", 885 + "dirs-sys", 886 + "fancy-regex", 887 + "heck", 888 + "indexmap", 889 + "log", 890 + "lru", 891 + "memchr", 892 + "miette", 893 + "nix", 894 + "nu-derive-value", 895 + "nu-experimental", 896 + "nu-glob", 897 + "nu-path", 898 + "nu-system", 899 + "nu-utils", 900 + "num-format", 901 + "os_pipe", 902 + "rmp-serde", 903 + "serde", 904 + "serde_json", 905 + "strum", 906 + "strum_macros", 907 + "thiserror 2.0.17", 908 + "typetag", 909 + "web-time", 910 + "windows 0.62.2", 911 + "windows-sys 0.61.2", 912 + ] 913 + 914 + [[package]] 915 + name = "nu-system" 916 + version = "0.109.1" 917 + source = "registry+https://github.com/rust-lang/crates.io-index" 918 + checksum = "46be734cc9b19e09a9665769e14360e13e6978490056ba5c8bfad7dd0537ea83" 919 + dependencies = [ 920 + "chrono", 921 + "itertools 0.14.0", 922 + "libc", 923 + "libproc", 924 + "log", 925 + "mach2", 926 + "nix", 927 + "ntapi", 928 + "procfs", 929 + "sysinfo", 930 + "web-time", 931 + "windows 0.62.2", 932 + ] 933 + 934 + [[package]] 935 + name = "nu-utils" 936 + version = "0.109.1" 937 + source = "registry+https://github.com/rust-lang/crates.io-index" 938 + checksum = "3f8eb43c29cc5bce85f87defdadc2cca964fa434d808af37036a7cb78f3c68e9" 939 + dependencies = [ 940 + "byteyarn", 941 + "crossterm", 942 + "crossterm_winapi", 943 + "fancy-regex", 944 + "lean_string", 945 + "log", 946 + "lscolors", 947 + "memchr", 948 + "nix", 949 + "num-format", 950 + "serde", 951 + "serde_json", 952 + "strip-ansi-escapes", 953 + "sys-locale", 954 + "unicase", 955 + ] 956 + 957 + [[package]] 958 + name = "nu_plugin_nbt" 959 + version = "0.1.0" 960 + dependencies = [ 961 + "flate2", 962 + "nu-plugin", 963 + "nu-protocol", 964 + "serde", 965 + "simdnbt", 966 + ] 967 + 968 + [[package]] 969 + name = "num-format" 970 + version = "0.4.4" 971 + source = "registry+https://github.com/rust-lang/crates.io-index" 972 + checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3" 973 + dependencies = [ 974 + "arrayvec", 975 + "itoa", 976 + ] 977 + 978 + [[package]] 979 + name = "num-traits" 980 + version = "0.2.19" 981 + source = "registry+https://github.com/rust-lang/crates.io-index" 982 + checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 983 + dependencies = [ 984 + "autocfg", 985 + ] 986 + 987 + [[package]] 988 + name = "objc2-core-foundation" 989 + version = "0.3.2" 990 + source = "registry+https://github.com/rust-lang/crates.io-index" 991 + checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" 992 + dependencies = [ 993 + "bitflags", 994 + ] 995 + 996 + [[package]] 997 + name = "objc2-io-kit" 998 + version = "0.3.2" 999 + source = "registry+https://github.com/rust-lang/crates.io-index" 1000 + checksum = "33fafba39597d6dc1fb709123dfa8289d39406734be322956a69f0931c73bb15" 1001 + dependencies = [ 1002 + "libc", 1003 + "objc2-core-foundation", 1004 + ] 1005 + 1006 + [[package]] 1007 + name = "omnipath" 1008 + version = "0.1.6" 1009 + source = "registry+https://github.com/rust-lang/crates.io-index" 1010 + checksum = "80adb31078122c880307e9cdfd4e3361e6545c319f9b9dcafcb03acd3b51a575" 1011 + 1012 + [[package]] 1013 + name = "once_cell" 1014 + version = "1.21.3" 1015 + source = "registry+https://github.com/rust-lang/crates.io-index" 1016 + checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" 1017 + 1018 + [[package]] 1019 + name = "option-ext" 1020 + version = "0.2.0" 1021 + source = "registry+https://github.com/rust-lang/crates.io-index" 1022 + checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" 1023 + 1024 + [[package]] 1025 + name = "os_pipe" 1026 + version = "1.2.3" 1027 + source = "registry+https://github.com/rust-lang/crates.io-index" 1028 + checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967" 1029 + dependencies = [ 1030 + "libc", 1031 + "windows-sys 0.61.2", 1032 + ] 1033 + 1034 + [[package]] 1035 + name = "owo-colors" 1036 + version = "4.2.3" 1037 + source = "registry+https://github.com/rust-lang/crates.io-index" 1038 + checksum = "9c6901729fa79e91a0913333229e9ca5dc725089d1c363b2f4b4760709dc4a52" 1039 + 1040 + [[package]] 1041 + name = "parking_lot" 1042 + version = "0.12.5" 1043 + source = "registry+https://github.com/rust-lang/crates.io-index" 1044 + checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" 1045 + dependencies = [ 1046 + "lock_api", 1047 + "parking_lot_core", 1048 + ] 1049 + 1050 + [[package]] 1051 + name = "parking_lot_core" 1052 + version = "0.9.12" 1053 + source = "registry+https://github.com/rust-lang/crates.io-index" 1054 + checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" 1055 + dependencies = [ 1056 + "cfg-if", 1057 + "libc", 1058 + "redox_syscall", 1059 + "smallvec", 1060 + "windows-link 0.2.1", 1061 + ] 1062 + 1063 + [[package]] 1064 + name = "pkg-config" 1065 + version = "0.3.32" 1066 + source = "registry+https://github.com/rust-lang/crates.io-index" 1067 + checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" 1068 + 1069 + [[package]] 1070 + name = "proc-macro-error-attr2" 1071 + version = "2.0.0" 1072 + source = "registry+https://github.com/rust-lang/crates.io-index" 1073 + checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" 1074 + dependencies = [ 1075 + "proc-macro2", 1076 + "quote", 1077 + ] 1078 + 1079 + [[package]] 1080 + name = "proc-macro-error2" 1081 + version = "2.0.1" 1082 + source = "registry+https://github.com/rust-lang/crates.io-index" 1083 + checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" 1084 + dependencies = [ 1085 + "proc-macro-error-attr2", 1086 + "proc-macro2", 1087 + "quote", 1088 + "syn", 1089 + ] 1090 + 1091 + [[package]] 1092 + name = "proc-macro2" 1093 + version = "1.0.105" 1094 + source = "registry+https://github.com/rust-lang/crates.io-index" 1095 + checksum = "535d180e0ecab6268a3e718bb9fd44db66bbbc256257165fc699dadf70d16fe7" 1096 + dependencies = [ 1097 + "unicode-ident", 1098 + ] 1099 + 1100 + [[package]] 1101 + name = "procfs" 1102 + version = "0.17.0" 1103 + source = "registry+https://github.com/rust-lang/crates.io-index" 1104 + checksum = "cc5b72d8145275d844d4b5f6d4e1eef00c8cd889edb6035c21675d1bb1f45c9f" 1105 + dependencies = [ 1106 + "bitflags", 1107 + "chrono", 1108 + "flate2", 1109 + "hex", 1110 + "procfs-core", 1111 + "rustix 0.38.44", 1112 + ] 1113 + 1114 + [[package]] 1115 + name = "procfs-core" 1116 + version = "0.17.0" 1117 + source = "registry+https://github.com/rust-lang/crates.io-index" 1118 + checksum = "239df02d8349b06fc07398a3a1697b06418223b1c7725085e801e7c0fc6a12ec" 1119 + dependencies = [ 1120 + "bitflags", 1121 + "chrono", 1122 + "hex", 1123 + ] 1124 + 1125 + [[package]] 1126 + name = "pure-rust-locales" 1127 + version = "0.8.2" 1128 + source = "registry+https://github.com/rust-lang/crates.io-index" 1129 + checksum = "869675ad2d7541aea90c6d88c81f46a7f4ea9af8cd0395d38f11a95126998a0d" 1130 + 1131 + [[package]] 1132 + name = "pwd" 1133 + version = "1.4.0" 1134 + source = "registry+https://github.com/rust-lang/crates.io-index" 1135 + checksum = "72c71c0c79b9701efe4e1e4b563b2016dd4ee789eb99badcb09d61ac4b92e4a2" 1136 + dependencies = [ 1137 + "libc", 1138 + "thiserror 1.0.69", 1139 + ] 1140 + 1141 + [[package]] 1142 + name = "quote" 1143 + version = "1.0.43" 1144 + source = "registry+https://github.com/rust-lang/crates.io-index" 1145 + checksum = "dc74d9a594b72ae6656596548f56f667211f8a97b3d4c3d467150794690dc40a" 1146 + dependencies = [ 1147 + "proc-macro2", 1148 + ] 1149 + 1150 + [[package]] 1151 + name = "recvmsg" 1152 + version = "1.0.0" 1153 + source = "registry+https://github.com/rust-lang/crates.io-index" 1154 + checksum = "d3edd4d5d42c92f0a659926464d4cce56b562761267ecf0f469d85b7de384175" 1155 + 1156 + [[package]] 1157 + name = "redox_syscall" 1158 + version = "0.5.18" 1159 + source = "registry+https://github.com/rust-lang/crates.io-index" 1160 + checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" 1161 + dependencies = [ 1162 + "bitflags", 1163 + ] 1164 + 1165 + [[package]] 1166 + name = "redox_users" 1167 + version = "0.5.2" 1168 + source = "registry+https://github.com/rust-lang/crates.io-index" 1169 + checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" 1170 + dependencies = [ 1171 + "getrandom", 1172 + "libredox", 1173 + "thiserror 2.0.17", 1174 + ] 1175 + 1176 + [[package]] 1177 + name = "ref-cast" 1178 + version = "1.0.25" 1179 + source = "registry+https://github.com/rust-lang/crates.io-index" 1180 + checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" 1181 + dependencies = [ 1182 + "ref-cast-impl", 1183 + ] 1184 + 1185 + [[package]] 1186 + name = "ref-cast-impl" 1187 + version = "1.0.25" 1188 + source = "registry+https://github.com/rust-lang/crates.io-index" 1189 + checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" 1190 + dependencies = [ 1191 + "proc-macro2", 1192 + "quote", 1193 + "syn", 1194 + ] 1195 + 1196 + [[package]] 1197 + name = "regex" 1198 + version = "1.12.2" 1199 + source = "registry+https://github.com/rust-lang/crates.io-index" 1200 + checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" 1201 + dependencies = [ 1202 + "aho-corasick", 1203 + "memchr", 1204 + "regex-automata", 1205 + "regex-syntax", 1206 + ] 1207 + 1208 + [[package]] 1209 + name = "regex-automata" 1210 + version = "0.4.13" 1211 + source = "registry+https://github.com/rust-lang/crates.io-index" 1212 + checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" 1213 + dependencies = [ 1214 + "aho-corasick", 1215 + "memchr", 1216 + "regex-syntax", 1217 + ] 1218 + 1219 + [[package]] 1220 + name = "regex-syntax" 1221 + version = "0.8.8" 1222 + source = "registry+https://github.com/rust-lang/crates.io-index" 1223 + checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" 1224 + 1225 + [[package]] 1226 + name = "rmp" 1227 + version = "0.8.15" 1228 + source = "registry+https://github.com/rust-lang/crates.io-index" 1229 + checksum = "4ba8be72d372b2c9b35542551678538b562e7cf86c3315773cae48dfbfe7790c" 1230 + dependencies = [ 1231 + "num-traits", 1232 + ] 1233 + 1234 + [[package]] 1235 + name = "rmp-serde" 1236 + version = "1.3.1" 1237 + source = "registry+https://github.com/rust-lang/crates.io-index" 1238 + checksum = "72f81bee8c8ef9b577d1681a70ebbc962c232461e397b22c208c43c04b67a155" 1239 + dependencies = [ 1240 + "rmp", 1241 + "serde", 1242 + ] 1243 + 1244 + [[package]] 1245 + name = "rustc-hash" 1246 + version = "2.1.1" 1247 + source = "registry+https://github.com/rust-lang/crates.io-index" 1248 + checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" 1249 + 1250 + [[package]] 1251 + name = "rustc_version" 1252 + version = "0.4.1" 1253 + source = "registry+https://github.com/rust-lang/crates.io-index" 1254 + checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" 1255 + dependencies = [ 1256 + "semver", 1257 + ] 1258 + 1259 + [[package]] 1260 + name = "rustix" 1261 + version = "0.38.44" 1262 + source = "registry+https://github.com/rust-lang/crates.io-index" 1263 + checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" 1264 + dependencies = [ 1265 + "bitflags", 1266 + "errno", 1267 + "libc", 1268 + "linux-raw-sys 0.4.15", 1269 + "windows-sys 0.59.0", 1270 + ] 1271 + 1272 + [[package]] 1273 + name = "rustix" 1274 + version = "1.1.3" 1275 + source = "registry+https://github.com/rust-lang/crates.io-index" 1276 + checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34" 1277 + dependencies = [ 1278 + "bitflags", 1279 + "errno", 1280 + "libc", 1281 + "linux-raw-sys 0.11.0", 1282 + "windows-sys 0.61.2", 1283 + ] 1284 + 1285 + [[package]] 1286 + name = "rustversion" 1287 + version = "1.0.22" 1288 + source = "registry+https://github.com/rust-lang/crates.io-index" 1289 + checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" 1290 + 1291 + [[package]] 1292 + name = "ryu" 1293 + version = "1.0.22" 1294 + source = "registry+https://github.com/rust-lang/crates.io-index" 1295 + checksum = "a50f4cf475b65d88e057964e0e9bb1f0aa9bbb2036dc65c64596b42932536984" 1296 + 1297 + [[package]] 1298 + name = "scopeguard" 1299 + version = "1.2.0" 1300 + source = "registry+https://github.com/rust-lang/crates.io-index" 1301 + checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 1302 + 1303 + [[package]] 1304 + name = "semver" 1305 + version = "1.0.27" 1306 + source = "registry+https://github.com/rust-lang/crates.io-index" 1307 + checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" 1308 + 1309 + [[package]] 1310 + name = "serde" 1311 + version = "1.0.228" 1312 + source = "registry+https://github.com/rust-lang/crates.io-index" 1313 + checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" 1314 + dependencies = [ 1315 + "serde_core", 1316 + "serde_derive", 1317 + ] 1318 + 1319 + [[package]] 1320 + name = "serde_core" 1321 + version = "1.0.228" 1322 + source = "registry+https://github.com/rust-lang/crates.io-index" 1323 + checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" 1324 + dependencies = [ 1325 + "serde_derive", 1326 + ] 1327 + 1328 + [[package]] 1329 + name = "serde_derive" 1330 + version = "1.0.228" 1331 + source = "registry+https://github.com/rust-lang/crates.io-index" 1332 + checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" 1333 + dependencies = [ 1334 + "proc-macro2", 1335 + "quote", 1336 + "syn", 1337 + ] 1338 + 1339 + [[package]] 1340 + name = "serde_json" 1341 + version = "1.0.149" 1342 + source = "registry+https://github.com/rust-lang/crates.io-index" 1343 + checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" 1344 + dependencies = [ 1345 + "itoa", 1346 + "memchr", 1347 + "serde", 1348 + "serde_core", 1349 + "zmij", 1350 + ] 1351 + 1352 + [[package]] 1353 + name = "shlex" 1354 + version = "1.3.0" 1355 + source = "registry+https://github.com/rust-lang/crates.io-index" 1356 + checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 1357 + 1358 + [[package]] 1359 + name = "signal-hook" 1360 + version = "0.3.18" 1361 + source = "registry+https://github.com/rust-lang/crates.io-index" 1362 + checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2" 1363 + dependencies = [ 1364 + "libc", 1365 + "signal-hook-registry", 1366 + ] 1367 + 1368 + [[package]] 1369 + name = "signal-hook-mio" 1370 + version = "0.2.5" 1371 + source = "registry+https://github.com/rust-lang/crates.io-index" 1372 + checksum = "b75a19a7a740b25bc7944bdee6172368f988763b744e3d4dfe753f6b4ece40cc" 1373 + dependencies = [ 1374 + "libc", 1375 + "mio", 1376 + "signal-hook", 1377 + ] 1378 + 1379 + [[package]] 1380 + name = "signal-hook-registry" 1381 + version = "1.4.8" 1382 + source = "registry+https://github.com/rust-lang/crates.io-index" 1383 + checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" 1384 + dependencies = [ 1385 + "errno", 1386 + "libc", 1387 + ] 1388 + 1389 + [[package]] 1390 + name = "simd-adler32" 1391 + version = "0.3.8" 1392 + source = "registry+https://github.com/rust-lang/crates.io-index" 1393 + checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" 1394 + 1395 + [[package]] 1396 + name = "simd_cesu8" 1397 + version = "1.1.0" 1398 + source = "registry+https://github.com/rust-lang/crates.io-index" 1399 + checksum = "19e75ccd3404ef387c23d4cf34a30d49eab8f2aeb17e5ad575aacad434170daf" 1400 + dependencies = [ 1401 + "rustc_version", 1402 + "simdutf8", 1403 + ] 1404 + 1405 + [[package]] 1406 + name = "simdnbt" 1407 + version = "0.9.0" 1408 + source = "registry+https://github.com/rust-lang/crates.io-index" 1409 + checksum = "3260d6b36af95a09a37b0c6f33d6e0c55387ddfcb165c1bf17d948850a53c3c4" 1410 + dependencies = [ 1411 + "byteorder", 1412 + "flate2", 1413 + "serde", 1414 + "simd_cesu8", 1415 + "simdnbt-derive", 1416 + "thiserror 2.0.17", 1417 + ] 1418 + 1419 + [[package]] 1420 + name = "simdnbt-derive" 1421 + version = "0.9.0" 1422 + source = "registry+https://github.com/rust-lang/crates.io-index" 1423 + checksum = "e9b1c2b979a5d5ce4dcaa0e7fb9077836e92931a79a625b97b6cab8534bf761a" 1424 + dependencies = [ 1425 + "proc-macro2", 1426 + "quote", 1427 + "syn", 1428 + ] 1429 + 1430 + [[package]] 1431 + name = "simdutf8" 1432 + version = "0.1.5" 1433 + source = "registry+https://github.com/rust-lang/crates.io-index" 1434 + checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" 1435 + 1436 + [[package]] 1437 + name = "smallvec" 1438 + version = "1.15.1" 1439 + source = "registry+https://github.com/rust-lang/crates.io-index" 1440 + checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" 1441 + 1442 + [[package]] 1443 + name = "strip-ansi-escapes" 1444 + version = "0.2.1" 1445 + source = "registry+https://github.com/rust-lang/crates.io-index" 1446 + checksum = "2a8f8038e7e7969abb3f1b7c2a811225e9296da208539e0f79c5251d6cac0025" 1447 + dependencies = [ 1448 + "vte", 1449 + ] 1450 + 1451 + [[package]] 1452 + name = "strum" 1453 + version = "0.26.3" 1454 + source = "registry+https://github.com/rust-lang/crates.io-index" 1455 + checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" 1456 + 1457 + [[package]] 1458 + name = "strum_macros" 1459 + version = "0.27.2" 1460 + source = "registry+https://github.com/rust-lang/crates.io-index" 1461 + checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" 1462 + dependencies = [ 1463 + "heck", 1464 + "proc-macro2", 1465 + "quote", 1466 + "syn", 1467 + ] 1468 + 1469 + [[package]] 1470 + name = "supports-color" 1471 + version = "3.0.2" 1472 + source = "registry+https://github.com/rust-lang/crates.io-index" 1473 + checksum = "c64fc7232dd8d2e4ac5ce4ef302b1d81e0b80d055b9d77c7c4f51f6aa4c867d6" 1474 + dependencies = [ 1475 + "is_ci", 1476 + ] 1477 + 1478 + [[package]] 1479 + name = "supports-hyperlinks" 1480 + version = "3.2.0" 1481 + source = "registry+https://github.com/rust-lang/crates.io-index" 1482 + checksum = "e396b6523b11ccb83120b115a0b7366de372751aa6edf19844dfb13a6af97e91" 1483 + 1484 + [[package]] 1485 + name = "supports-unicode" 1486 + version = "3.0.0" 1487 + source = "registry+https://github.com/rust-lang/crates.io-index" 1488 + checksum = "b7401a30af6cb5818bb64852270bb722533397edcfc7344954a38f420819ece2" 1489 + 1490 + [[package]] 1491 + name = "syn" 1492 + version = "2.0.114" 1493 + source = "registry+https://github.com/rust-lang/crates.io-index" 1494 + checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a" 1495 + dependencies = [ 1496 + "proc-macro2", 1497 + "quote", 1498 + "unicode-ident", 1499 + ] 1500 + 1501 + [[package]] 1502 + name = "sys-locale" 1503 + version = "0.3.2" 1504 + source = "registry+https://github.com/rust-lang/crates.io-index" 1505 + checksum = "8eab9a99a024a169fe8a903cf9d4a3b3601109bcc13bd9e3c6fff259138626c4" 1506 + dependencies = [ 1507 + "libc", 1508 + ] 1509 + 1510 + [[package]] 1511 + name = "sysinfo" 1512 + version = "0.37.2" 1513 + source = "registry+https://github.com/rust-lang/crates.io-index" 1514 + checksum = "16607d5caffd1c07ce073528f9ed972d88db15dd44023fa57142963be3feb11f" 1515 + dependencies = [ 1516 + "libc", 1517 + "memchr", 1518 + "ntapi", 1519 + "objc2-core-foundation", 1520 + "objc2-io-kit", 1521 + "windows 0.61.3", 1522 + ] 1523 + 1524 + [[package]] 1525 + name = "terminal_size" 1526 + version = "0.4.3" 1527 + source = "registry+https://github.com/rust-lang/crates.io-index" 1528 + checksum = "60b8cb979cb11c32ce1603f8137b22262a9d131aaa5c37b5678025f22b8becd0" 1529 + dependencies = [ 1530 + "rustix 1.1.3", 1531 + "windows-sys 0.60.2", 1532 + ] 1533 + 1534 + [[package]] 1535 + name = "textwrap" 1536 + version = "0.16.2" 1537 + source = "registry+https://github.com/rust-lang/crates.io-index" 1538 + checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057" 1539 + dependencies = [ 1540 + "unicode-linebreak", 1541 + "unicode-width 0.2.2", 1542 + ] 1543 + 1544 + [[package]] 1545 + name = "thiserror" 1546 + version = "1.0.69" 1547 + source = "registry+https://github.com/rust-lang/crates.io-index" 1548 + checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" 1549 + dependencies = [ 1550 + "thiserror-impl 1.0.69", 1551 + ] 1552 + 1553 + [[package]] 1554 + name = "thiserror" 1555 + version = "2.0.17" 1556 + source = "registry+https://github.com/rust-lang/crates.io-index" 1557 + checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" 1558 + dependencies = [ 1559 + "thiserror-impl 2.0.17", 1560 + ] 1561 + 1562 + [[package]] 1563 + name = "thiserror-impl" 1564 + version = "1.0.69" 1565 + source = "registry+https://github.com/rust-lang/crates.io-index" 1566 + checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" 1567 + dependencies = [ 1568 + "proc-macro2", 1569 + "quote", 1570 + "syn", 1571 + ] 1572 + 1573 + [[package]] 1574 + name = "thiserror-impl" 1575 + version = "2.0.17" 1576 + source = "registry+https://github.com/rust-lang/crates.io-index" 1577 + checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" 1578 + dependencies = [ 1579 + "proc-macro2", 1580 + "quote", 1581 + "syn", 1582 + ] 1583 + 1584 + [[package]] 1585 + name = "typeid" 1586 + version = "1.0.3" 1587 + source = "registry+https://github.com/rust-lang/crates.io-index" 1588 + checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" 1589 + 1590 + [[package]] 1591 + name = "typetag" 1592 + version = "0.2.21" 1593 + source = "registry+https://github.com/rust-lang/crates.io-index" 1594 + checksum = "be2212c8a9b9bcfca32024de14998494cf9a5dfa59ea1b829de98bac374b86bf" 1595 + dependencies = [ 1596 + "erased-serde", 1597 + "inventory", 1598 + "once_cell", 1599 + "serde", 1600 + "typetag-impl", 1601 + ] 1602 + 1603 + [[package]] 1604 + name = "typetag-impl" 1605 + version = "0.2.21" 1606 + source = "registry+https://github.com/rust-lang/crates.io-index" 1607 + checksum = "27a7a9b72ba121f6f1f6c3632b85604cac41aedb5ddc70accbebb6cac83de846" 1608 + dependencies = [ 1609 + "proc-macro2", 1610 + "quote", 1611 + "syn", 1612 + ] 1613 + 1614 + [[package]] 1615 + name = "unicase" 1616 + version = "2.9.0" 1617 + source = "registry+https://github.com/rust-lang/crates.io-index" 1618 + checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142" 1619 + 1620 + [[package]] 1621 + name = "unicode-ident" 1622 + version = "1.0.22" 1623 + source = "registry+https://github.com/rust-lang/crates.io-index" 1624 + checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" 1625 + 1626 + [[package]] 1627 + name = "unicode-linebreak" 1628 + version = "0.1.5" 1629 + source = "registry+https://github.com/rust-lang/crates.io-index" 1630 + checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" 1631 + 1632 + [[package]] 1633 + name = "unicode-segmentation" 1634 + version = "1.12.0" 1635 + source = "registry+https://github.com/rust-lang/crates.io-index" 1636 + checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" 1637 + 1638 + [[package]] 1639 + name = "unicode-width" 1640 + version = "0.1.14" 1641 + source = "registry+https://github.com/rust-lang/crates.io-index" 1642 + checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" 1643 + 1644 + [[package]] 1645 + name = "unicode-width" 1646 + version = "0.2.2" 1647 + source = "registry+https://github.com/rust-lang/crates.io-index" 1648 + checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" 1649 + 1650 + [[package]] 1651 + name = "vcpkg" 1652 + version = "0.2.15" 1653 + source = "registry+https://github.com/rust-lang/crates.io-index" 1654 + checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" 1655 + 1656 + [[package]] 1657 + name = "vte" 1658 + version = "0.14.1" 1659 + source = "registry+https://github.com/rust-lang/crates.io-index" 1660 + checksum = "231fdcd7ef3037e8330d8e17e61011a2c244126acc0a982f4040ac3f9f0bc077" 1661 + dependencies = [ 1662 + "memchr", 1663 + ] 1664 + 1665 + [[package]] 1666 + name = "wasi" 1667 + version = "0.11.1+wasi-snapshot-preview1" 1668 + source = "registry+https://github.com/rust-lang/crates.io-index" 1669 + checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" 1670 + 1671 + [[package]] 1672 + name = "wasm-bindgen" 1673 + version = "0.2.108" 1674 + source = "registry+https://github.com/rust-lang/crates.io-index" 1675 + checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566" 1676 + dependencies = [ 1677 + "cfg-if", 1678 + "once_cell", 1679 + "rustversion", 1680 + "wasm-bindgen-macro", 1681 + "wasm-bindgen-shared", 1682 + ] 1683 + 1684 + [[package]] 1685 + name = "wasm-bindgen-macro" 1686 + version = "0.2.108" 1687 + source = "registry+https://github.com/rust-lang/crates.io-index" 1688 + checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608" 1689 + dependencies = [ 1690 + "quote", 1691 + "wasm-bindgen-macro-support", 1692 + ] 1693 + 1694 + [[package]] 1695 + name = "wasm-bindgen-macro-support" 1696 + version = "0.2.108" 1697 + source = "registry+https://github.com/rust-lang/crates.io-index" 1698 + checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55" 1699 + dependencies = [ 1700 + "bumpalo", 1701 + "proc-macro2", 1702 + "quote", 1703 + "syn", 1704 + "wasm-bindgen-shared", 1705 + ] 1706 + 1707 + [[package]] 1708 + name = "wasm-bindgen-shared" 1709 + version = "0.2.108" 1710 + source = "registry+https://github.com/rust-lang/crates.io-index" 1711 + checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12" 1712 + dependencies = [ 1713 + "unicode-ident", 1714 + ] 1715 + 1716 + [[package]] 1717 + name = "web-time" 1718 + version = "1.1.0" 1719 + source = "registry+https://github.com/rust-lang/crates.io-index" 1720 + checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" 1721 + dependencies = [ 1722 + "js-sys", 1723 + "wasm-bindgen", 1724 + ] 1725 + 1726 + [[package]] 1727 + name = "widestring" 1728 + version = "1.2.1" 1729 + source = "registry+https://github.com/rust-lang/crates.io-index" 1730 + checksum = "72069c3113ab32ab29e5584db3c6ec55d416895e60715417b5b883a357c3e471" 1731 + 1732 + [[package]] 1733 + name = "winapi" 1734 + version = "0.3.9" 1735 + source = "registry+https://github.com/rust-lang/crates.io-index" 1736 + checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 1737 + dependencies = [ 1738 + "winapi-i686-pc-windows-gnu", 1739 + "winapi-x86_64-pc-windows-gnu", 1740 + ] 1741 + 1742 + [[package]] 1743 + name = "winapi-i686-pc-windows-gnu" 1744 + version = "0.4.0" 1745 + source = "registry+https://github.com/rust-lang/crates.io-index" 1746 + checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 1747 + 1748 + [[package]] 1749 + name = "winapi-x86_64-pc-windows-gnu" 1750 + version = "0.4.0" 1751 + source = "registry+https://github.com/rust-lang/crates.io-index" 1752 + checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 1753 + 1754 + [[package]] 1755 + name = "windows" 1756 + version = "0.61.3" 1757 + source = "registry+https://github.com/rust-lang/crates.io-index" 1758 + checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" 1759 + dependencies = [ 1760 + "windows-collections 0.2.0", 1761 + "windows-core 0.61.2", 1762 + "windows-future 0.2.1", 1763 + "windows-link 0.1.3", 1764 + "windows-numerics 0.2.0", 1765 + ] 1766 + 1767 + [[package]] 1768 + name = "windows" 1769 + version = "0.62.2" 1770 + source = "registry+https://github.com/rust-lang/crates.io-index" 1771 + checksum = "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580" 1772 + dependencies = [ 1773 + "windows-collections 0.3.2", 1774 + "windows-core 0.62.2", 1775 + "windows-future 0.3.2", 1776 + "windows-numerics 0.3.1", 1777 + ] 1778 + 1779 + [[package]] 1780 + name = "windows-collections" 1781 + version = "0.2.0" 1782 + source = "registry+https://github.com/rust-lang/crates.io-index" 1783 + checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" 1784 + dependencies = [ 1785 + "windows-core 0.61.2", 1786 + ] 1787 + 1788 + [[package]] 1789 + name = "windows-collections" 1790 + version = "0.3.2" 1791 + source = "registry+https://github.com/rust-lang/crates.io-index" 1792 + checksum = "23b2d95af1a8a14a3c7367e1ed4fc9c20e0a26e79551b1454d72583c97cc6610" 1793 + dependencies = [ 1794 + "windows-core 0.62.2", 1795 + ] 1796 + 1797 + [[package]] 1798 + name = "windows-core" 1799 + version = "0.61.2" 1800 + source = "registry+https://github.com/rust-lang/crates.io-index" 1801 + checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" 1802 + dependencies = [ 1803 + "windows-implement", 1804 + "windows-interface", 1805 + "windows-link 0.1.3", 1806 + "windows-result 0.3.4", 1807 + "windows-strings 0.4.2", 1808 + ] 1809 + 1810 + [[package]] 1811 + name = "windows-core" 1812 + version = "0.62.2" 1813 + source = "registry+https://github.com/rust-lang/crates.io-index" 1814 + checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" 1815 + dependencies = [ 1816 + "windows-implement", 1817 + "windows-interface", 1818 + "windows-link 0.2.1", 1819 + "windows-result 0.4.1", 1820 + "windows-strings 0.5.1", 1821 + ] 1822 + 1823 + [[package]] 1824 + name = "windows-future" 1825 + version = "0.2.1" 1826 + source = "registry+https://github.com/rust-lang/crates.io-index" 1827 + checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" 1828 + dependencies = [ 1829 + "windows-core 0.61.2", 1830 + "windows-link 0.1.3", 1831 + "windows-threading 0.1.0", 1832 + ] 1833 + 1834 + [[package]] 1835 + name = "windows-future" 1836 + version = "0.3.2" 1837 + source = "registry+https://github.com/rust-lang/crates.io-index" 1838 + checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb" 1839 + dependencies = [ 1840 + "windows-core 0.62.2", 1841 + "windows-link 0.2.1", 1842 + "windows-threading 0.2.1", 1843 + ] 1844 + 1845 + [[package]] 1846 + name = "windows-implement" 1847 + version = "0.60.2" 1848 + source = "registry+https://github.com/rust-lang/crates.io-index" 1849 + checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" 1850 + dependencies = [ 1851 + "proc-macro2", 1852 + "quote", 1853 + "syn", 1854 + ] 1855 + 1856 + [[package]] 1857 + name = "windows-interface" 1858 + version = "0.59.3" 1859 + source = "registry+https://github.com/rust-lang/crates.io-index" 1860 + checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" 1861 + dependencies = [ 1862 + "proc-macro2", 1863 + "quote", 1864 + "syn", 1865 + ] 1866 + 1867 + [[package]] 1868 + name = "windows-link" 1869 + version = "0.1.3" 1870 + source = "registry+https://github.com/rust-lang/crates.io-index" 1871 + checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" 1872 + 1873 + [[package]] 1874 + name = "windows-link" 1875 + version = "0.2.1" 1876 + source = "registry+https://github.com/rust-lang/crates.io-index" 1877 + checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" 1878 + 1879 + [[package]] 1880 + name = "windows-numerics" 1881 + version = "0.2.0" 1882 + source = "registry+https://github.com/rust-lang/crates.io-index" 1883 + checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" 1884 + dependencies = [ 1885 + "windows-core 0.61.2", 1886 + "windows-link 0.1.3", 1887 + ] 1888 + 1889 + [[package]] 1890 + name = "windows-numerics" 1891 + version = "0.3.1" 1892 + source = "registry+https://github.com/rust-lang/crates.io-index" 1893 + checksum = "6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26" 1894 + dependencies = [ 1895 + "windows-core 0.62.2", 1896 + "windows-link 0.2.1", 1897 + ] 1898 + 1899 + [[package]] 1900 + name = "windows-result" 1901 + version = "0.3.4" 1902 + source = "registry+https://github.com/rust-lang/crates.io-index" 1903 + checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" 1904 + dependencies = [ 1905 + "windows-link 0.1.3", 1906 + ] 1907 + 1908 + [[package]] 1909 + name = "windows-result" 1910 + version = "0.4.1" 1911 + source = "registry+https://github.com/rust-lang/crates.io-index" 1912 + checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" 1913 + dependencies = [ 1914 + "windows-link 0.2.1", 1915 + ] 1916 + 1917 + [[package]] 1918 + name = "windows-strings" 1919 + version = "0.4.2" 1920 + source = "registry+https://github.com/rust-lang/crates.io-index" 1921 + checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" 1922 + dependencies = [ 1923 + "windows-link 0.1.3", 1924 + ] 1925 + 1926 + [[package]] 1927 + name = "windows-strings" 1928 + version = "0.5.1" 1929 + source = "registry+https://github.com/rust-lang/crates.io-index" 1930 + checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" 1931 + dependencies = [ 1932 + "windows-link 0.2.1", 1933 + ] 1934 + 1935 + [[package]] 1936 + name = "windows-sys" 1937 + version = "0.52.0" 1938 + source = "registry+https://github.com/rust-lang/crates.io-index" 1939 + checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 1940 + dependencies = [ 1941 + "windows-targets 0.52.6", 1942 + ] 1943 + 1944 + [[package]] 1945 + name = "windows-sys" 1946 + version = "0.59.0" 1947 + source = "registry+https://github.com/rust-lang/crates.io-index" 1948 + checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 1949 + dependencies = [ 1950 + "windows-targets 0.52.6", 1951 + ] 1952 + 1953 + [[package]] 1954 + name = "windows-sys" 1955 + version = "0.60.2" 1956 + source = "registry+https://github.com/rust-lang/crates.io-index" 1957 + checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" 1958 + dependencies = [ 1959 + "windows-targets 0.53.5", 1960 + ] 1961 + 1962 + [[package]] 1963 + name = "windows-sys" 1964 + version = "0.61.2" 1965 + source = "registry+https://github.com/rust-lang/crates.io-index" 1966 + checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" 1967 + dependencies = [ 1968 + "windows-link 0.2.1", 1969 + ] 1970 + 1971 + [[package]] 1972 + name = "windows-targets" 1973 + version = "0.52.6" 1974 + source = "registry+https://github.com/rust-lang/crates.io-index" 1975 + checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 1976 + dependencies = [ 1977 + "windows_aarch64_gnullvm 0.52.6", 1978 + "windows_aarch64_msvc 0.52.6", 1979 + "windows_i686_gnu 0.52.6", 1980 + "windows_i686_gnullvm 0.52.6", 1981 + "windows_i686_msvc 0.52.6", 1982 + "windows_x86_64_gnu 0.52.6", 1983 + "windows_x86_64_gnullvm 0.52.6", 1984 + "windows_x86_64_msvc 0.52.6", 1985 + ] 1986 + 1987 + [[package]] 1988 + name = "windows-targets" 1989 + version = "0.53.5" 1990 + source = "registry+https://github.com/rust-lang/crates.io-index" 1991 + checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" 1992 + dependencies = [ 1993 + "windows-link 0.2.1", 1994 + "windows_aarch64_gnullvm 0.53.1", 1995 + "windows_aarch64_msvc 0.53.1", 1996 + "windows_i686_gnu 0.53.1", 1997 + "windows_i686_gnullvm 0.53.1", 1998 + "windows_i686_msvc 0.53.1", 1999 + "windows_x86_64_gnu 0.53.1", 2000 + "windows_x86_64_gnullvm 0.53.1", 2001 + "windows_x86_64_msvc 0.53.1", 2002 + ] 2003 + 2004 + [[package]] 2005 + name = "windows-threading" 2006 + version = "0.1.0" 2007 + source = "registry+https://github.com/rust-lang/crates.io-index" 2008 + checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" 2009 + dependencies = [ 2010 + "windows-link 0.1.3", 2011 + ] 2012 + 2013 + [[package]] 2014 + name = "windows-threading" 2015 + version = "0.2.1" 2016 + source = "registry+https://github.com/rust-lang/crates.io-index" 2017 + checksum = "3949bd5b99cafdf1c7ca86b43ca564028dfe27d66958f2470940f73d86d75b37" 2018 + dependencies = [ 2019 + "windows-link 0.2.1", 2020 + ] 2021 + 2022 + [[package]] 2023 + name = "windows_aarch64_gnullvm" 2024 + version = "0.52.6" 2025 + source = "registry+https://github.com/rust-lang/crates.io-index" 2026 + checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 2027 + 2028 + [[package]] 2029 + name = "windows_aarch64_gnullvm" 2030 + version = "0.53.1" 2031 + source = "registry+https://github.com/rust-lang/crates.io-index" 2032 + checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" 2033 + 2034 + [[package]] 2035 + name = "windows_aarch64_msvc" 2036 + version = "0.52.6" 2037 + source = "registry+https://github.com/rust-lang/crates.io-index" 2038 + checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 2039 + 2040 + [[package]] 2041 + name = "windows_aarch64_msvc" 2042 + version = "0.53.1" 2043 + source = "registry+https://github.com/rust-lang/crates.io-index" 2044 + checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" 2045 + 2046 + [[package]] 2047 + name = "windows_i686_gnu" 2048 + version = "0.52.6" 2049 + source = "registry+https://github.com/rust-lang/crates.io-index" 2050 + checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 2051 + 2052 + [[package]] 2053 + name = "windows_i686_gnu" 2054 + version = "0.53.1" 2055 + source = "registry+https://github.com/rust-lang/crates.io-index" 2056 + checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" 2057 + 2058 + [[package]] 2059 + name = "windows_i686_gnullvm" 2060 + version = "0.52.6" 2061 + source = "registry+https://github.com/rust-lang/crates.io-index" 2062 + checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 2063 + 2064 + [[package]] 2065 + name = "windows_i686_gnullvm" 2066 + version = "0.53.1" 2067 + source = "registry+https://github.com/rust-lang/crates.io-index" 2068 + checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" 2069 + 2070 + [[package]] 2071 + name = "windows_i686_msvc" 2072 + version = "0.52.6" 2073 + source = "registry+https://github.com/rust-lang/crates.io-index" 2074 + checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 2075 + 2076 + [[package]] 2077 + name = "windows_i686_msvc" 2078 + version = "0.53.1" 2079 + source = "registry+https://github.com/rust-lang/crates.io-index" 2080 + checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" 2081 + 2082 + [[package]] 2083 + name = "windows_x86_64_gnu" 2084 + version = "0.52.6" 2085 + source = "registry+https://github.com/rust-lang/crates.io-index" 2086 + checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 2087 + 2088 + [[package]] 2089 + name = "windows_x86_64_gnu" 2090 + version = "0.53.1" 2091 + source = "registry+https://github.com/rust-lang/crates.io-index" 2092 + checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" 2093 + 2094 + [[package]] 2095 + name = "windows_x86_64_gnullvm" 2096 + version = "0.52.6" 2097 + source = "registry+https://github.com/rust-lang/crates.io-index" 2098 + checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 2099 + 2100 + [[package]] 2101 + name = "windows_x86_64_gnullvm" 2102 + version = "0.53.1" 2103 + source = "registry+https://github.com/rust-lang/crates.io-index" 2104 + checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" 2105 + 2106 + [[package]] 2107 + name = "windows_x86_64_msvc" 2108 + version = "0.52.6" 2109 + source = "registry+https://github.com/rust-lang/crates.io-index" 2110 + checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 2111 + 2112 + [[package]] 2113 + name = "windows_x86_64_msvc" 2114 + version = "0.53.1" 2115 + source = "registry+https://github.com/rust-lang/crates.io-index" 2116 + checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" 2117 + 2118 + [[package]] 2119 + name = "zerocopy" 2120 + version = "0.7.35" 2121 + source = "registry+https://github.com/rust-lang/crates.io-index" 2122 + checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" 2123 + dependencies = [ 2124 + "byteorder", 2125 + "zerocopy-derive", 2126 + ] 2127 + 2128 + [[package]] 2129 + name = "zerocopy-derive" 2130 + version = "0.7.35" 2131 + source = "registry+https://github.com/rust-lang/crates.io-index" 2132 + checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" 2133 + dependencies = [ 2134 + "proc-macro2", 2135 + "quote", 2136 + "syn", 2137 + ] 2138 + 2139 + [[package]] 2140 + name = "zmij" 2141 + version = "1.0.14" 2142 + source = "registry+https://github.com/rust-lang/crates.io-index" 2143 + checksum = "bd8f3f50b848df28f887acb68e41201b5aea6bc8a8dacc00fb40635ff9a72fea"
+13
Cargo.toml
··· 1 + [package] 2 + name = "nu_plugin_nbt" 3 + description = "A NuShell plugin to work with Minecraft Java Edition NBT data" 4 + authors = ["Bwc9876"] 5 + version = "0.1.0" 6 + edition = "2024" 7 + 8 + [dependencies] 9 + flate2 = { version = "1.1.8", features = ["zlib"] } 10 + nu-plugin = "0.109.1" 11 + nu-protocol = { version = "0.109.1", features = ["plugin"] } 12 + serde = { version = "1.0.228", features = ["derive"] } 13 + simdnbt = "0.9.0"
+117
flake.lock
··· 1 + { 2 + "nodes": { 3 + "crane": { 4 + "locked": { 5 + "lastModified": 1768319649, 6 + "narHash": "sha256-VFkNyxHxkqGp8gf8kfFMW1j6XeBy609kv6TE9uF/0Js=", 7 + "owner": "ipetkov", 8 + "repo": "crane", 9 + "rev": "4b6527687cfd20da3c2ef8287e01b74c2d6c705b", 10 + "type": "github" 11 + }, 12 + "original": { 13 + "owner": "ipetkov", 14 + "repo": "crane", 15 + "type": "github" 16 + } 17 + }, 18 + "fenix": { 19 + "inputs": { 20 + "nixpkgs": "nixpkgs", 21 + "rust-analyzer-src": "rust-analyzer-src" 22 + }, 23 + "locked": { 24 + "lastModified": 1768546293, 25 + "narHash": "sha256-o15jS3eJe9Ek5KXWXSETjtFHUo6VHkWKT+JDBEz6xew=", 26 + "owner": "nix-community", 27 + "repo": "fenix", 28 + "rev": "0a6822c636473a16ba89e7d99c5d6bde163d49d0", 29 + "type": "github" 30 + }, 31 + "original": { 32 + "owner": "nix-community", 33 + "repo": "fenix", 34 + "type": "github" 35 + } 36 + }, 37 + "flakelight": { 38 + "inputs": { 39 + "nixpkgs": [ 40 + "nixpkgs" 41 + ] 42 + }, 43 + "locked": { 44 + "lastModified": 1768222660, 45 + "narHash": "sha256-wpotiS/H2Lgg6B5d5uLuy6jpzur9ZoeKv3W61DsL1HQ=", 46 + "owner": "nix-community", 47 + "repo": "flakelight", 48 + "rev": "0adb311848bbc449f006ada255a9ca33ad692661", 49 + "type": "github" 50 + }, 51 + "original": { 52 + "owner": "nix-community", 53 + "repo": "flakelight", 54 + "type": "github" 55 + } 56 + }, 57 + "nixpkgs": { 58 + "locked": { 59 + "lastModified": 1768305791, 60 + "narHash": "sha256-AIdl6WAn9aymeaH/NvBj0H9qM+XuAuYbGMZaP0zcXAQ=", 61 + "owner": "nixos", 62 + "repo": "nixpkgs", 63 + "rev": "1412caf7bf9e660f2f962917c14b1ea1c3bc695e", 64 + "type": "github" 65 + }, 66 + "original": { 67 + "owner": "nixos", 68 + "ref": "nixos-unstable", 69 + "repo": "nixpkgs", 70 + "type": "github" 71 + } 72 + }, 73 + "nixpkgs_2": { 74 + "locked": { 75 + "lastModified": 1768395095, 76 + "narHash": "sha256-ZhuYJbwbZT32QA95tSkXd9zXHcdZj90EzHpEXBMabaw=", 77 + "owner": "NixOS", 78 + "repo": "nixpkgs", 79 + "rev": "13868c071cc73a5e9f610c47d7bb08e5da64fdd5", 80 + "type": "github" 81 + }, 82 + "original": { 83 + "owner": "NixOS", 84 + "ref": "nixpkgs-unstable", 85 + "repo": "nixpkgs", 86 + "type": "github" 87 + } 88 + }, 89 + "root": { 90 + "inputs": { 91 + "crane": "crane", 92 + "fenix": "fenix", 93 + "flakelight": "flakelight", 94 + "nixpkgs": "nixpkgs_2" 95 + } 96 + }, 97 + "rust-analyzer-src": { 98 + "flake": false, 99 + "locked": { 100 + "lastModified": 1768468158, 101 + "narHash": "sha256-DfifO/Se9ogmp5rxe/OwmRIz20/w6BsbWC1s4kL1Bzc=", 102 + "owner": "rust-lang", 103 + "repo": "rust-analyzer", 104 + "rev": "adbff8baedae53f9955fe60c0d470ecd77b4f548", 105 + "type": "github" 106 + }, 107 + "original": { 108 + "owner": "rust-lang", 109 + "ref": "nightly", 110 + "repo": "rust-analyzer", 111 + "type": "github" 112 + } 113 + } 114 + }, 115 + "root": "root", 116 + "version": 7 117 + }
+78
flake.nix
··· 1 + { 2 + inputs = { 3 + nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; 4 + flakelight.url = "github:nix-community/flakelight"; 5 + flakelight.inputs.nixpkgs.follows = "nixpkgs"; 6 + crane.url = "github:ipetkov/crane"; 7 + fenix.url = "github:nix-community/fenix"; 8 + }; 9 + outputs = { 10 + self, 11 + nixpkgs, 12 + flakelight, 13 + crane, 14 + fenix, 15 + ... 16 + } @ inputs: let 17 + selectToolchain = fenix: fenix.default; 18 + mkCrane = pkgs: let 19 + inherit (selectToolchain pkgs.fenix) toolchain; 20 + craneLib = (crane.mkLib nixpkgs.legacyPackages.${pkgs.system}).overrideToolchain toolchain; 21 + rawSrc = ./.; 22 + src = craneLib.cleanCargoSource rawSrc; 23 + commonArgs = { 24 + inherit src; 25 + strictDeps = true; 26 + cargoArtifacts = craneLib.buildDepsOnly commonArgs; 27 + }; 28 + crate = craneLib.buildPackage ( 29 + commonArgs 30 + // { 31 + inherit (craneLib.crateNameFromCargoToml {inherit src;}) version; 32 + doCheck = false; 33 + } 34 + ); 35 + in { 36 + inherit crate craneLib commonArgs; 37 + }; 38 + in 39 + flakelight ./. { 40 + inherit inputs; 41 + pname = "nu_plugin_nbt"; 42 + nixpkgs.overlays = [fenix.overlays.default]; 43 + package = pkgs: (mkCrane pkgs).crate; 44 + formatters = pkgs: let 45 + alejandra = "${pkgs.lib.getExe pkgs.alejandra} ."; 46 + rustfmt = "${(selectToolchain pkgs.fenix).rustfmt}/bin/rustfmt ."; 47 + taplo = "${pkgs.lib.getExe pkgs.taplo} fmt ."; 48 + in { 49 + "*.nix" = alejandra; 50 + "*.rs" = rustfmt; 51 + "*.toml" = taplo; 52 + }; 53 + checks = pkgs: let 54 + inherit (mkCrane pkgs) craneLib commonArgs; 55 + in { 56 + clippy = craneLib.cargoClippy ( 57 + commonArgs 58 + // { 59 + cargoClippyExtraArgs = "--all-targets -- --deny warnings"; 60 + } 61 + ); 62 + test = craneLib.cargoNextest ( 63 + commonArgs 64 + // { 65 + partitions = 1; 66 + partitionType = "count"; 67 + cargoNextestPartitionsExtraArgs = "--no-tests=pass"; 68 + } 69 + ); 70 + }; 71 + devShell = pkgs: 72 + (mkCrane pkgs).craneLib.devShell { 73 + checks = self.checks.${pkgs.system}; 74 + 75 + packages = with pkgs; [cargo-nextest]; 76 + }; 77 + }; 78 + }
+200
src/from.rs
··· 1 + use std::io::Cursor; 2 + 3 + use nu_plugin::PluginCommand; 4 + use nu_protocol::{ 5 + Category, IntoPipelineData, IntoValue, LabeledError, PipelineData, Record, Signature, Span, 6 + Type, Value, record, 7 + }; 8 + use simdnbt::{ 9 + FromNbtTag, 10 + borrow::{Nbt, NbtCompound, NbtList, NbtTag}, 11 + }; 12 + 13 + use crate::tags; 14 + 15 + pub struct FromNbt; 16 + 17 + fn tag_val(tag: u8, list_type: Option<u8>, val: Value, span: Span) -> Value { 18 + Value::record( 19 + record!("nbt_tag" => Value::int(tag as i64, span), "nbt_list_type" => list_type.map(|t| t as i64).into_value(span), "value" => val), 20 + span, 21 + ) 22 + } 23 + 24 + macro_rules! arm { 25 + ($struct:ident, $func:ident, $tag:ident, $span:ident) => { 26 + Ok($struct::$func(&$tag).unwrap().into_value($span)) 27 + }; 28 + } 29 + 30 + macro_rules! arm_array { 31 + ($struct:ident, $func:ident, $tag:ident, $span:ident) => { 32 + Ok(Vec::from($struct::$func(&$tag).unwrap()).into_value($span)) 33 + }; 34 + } 35 + 36 + macro_rules! match_tag { 37 + ($id:ident, $tag:ident, $struct:ident, $span:ident, [$($tag_id:pat => $ty:ident$(,)?)*], [$($arrtag_id:pat => $func:ident$(,)?)*], [$($rest_id:pat => $rest:expr$(,)?)*], $def:expr) => { 38 + match $id { 39 + $($tag_id => arm!($struct, $ty, $tag, $span),)* 40 + $($arrtag_id => arm_array!($struct, $func, $tag, $span),)* 41 + $($rest_id => $rest,)* 42 + _ => $def, 43 + } 44 + } 45 + } 46 + 47 + fn nbt_to_val<'a: 'tape, 'tape>( 48 + tag: NbtTag<'a, 'tape>, 49 + span: Span, 50 + do_tags: bool, 51 + ) -> Result<Value, LabeledError> { 52 + // Roundabout way of doing this, unwraps are safe bc we're checking with [NbtTag::id] first and 53 + // the conversion functions do that too 54 + let id = tag.id(); 55 + let list_type = tag.list().map(|l| l.id()); 56 + let res = match_tag!(id, tag, NbtTag, span, [ 57 + tags::BYTE_ID => byte, 58 + tags::SHORT_ID => short, 59 + tags::INT_ID => int, 60 + tags::LONG_ID => long, 61 + tags::FLOAT_ID => float, 62 + tags::DOUBLE_ID => double, 63 + ], [ 64 + tags::BYTE_ARRAY_ID => byte_array, 65 + tags::INT_ARRAY_ID => int_array, 66 + tags::LONG_ARRAY_ID => long_array, 67 + ], [ 68 + tags::STRING_ID => Ok(String::from_nbt_tag(tag).unwrap().into_value(span)), 69 + tags::COMPOUND_ID => compound_to_record(tag.compound().unwrap(), span, do_tags).map(|r| r.into_value(span)), 70 + tags::LIST_ID => list_to_val(tag.list().unwrap(), span, do_tags), 71 + ], Err(LabeledError::new(format!("Unknown NBT tag {id}")))); 72 + 73 + if do_tags { 74 + res.map(|v| tag_val(id, list_type, v, span)) 75 + } else { 76 + res 77 + } 78 + } 79 + 80 + fn list_to_val<'a: 'tape, 'tape>( 81 + list: NbtList<'a, 'tape>, 82 + span: Span, 83 + do_tags: bool, 84 + ) -> Result<Value, LabeledError> { 85 + let id = list.id(); 86 + match_tag!(id, list, NbtList, span, [ 87 + tags::SHORT_ID => shorts, 88 + tags::INT_ID => ints, 89 + tags::LONG_ID => longs, 90 + tags::FLOAT_ID => floats, 91 + tags::DOUBLE_ID => doubles, 92 + ], [ 93 + tags::BYTE_ID => bytes, 94 + ], [ 95 + tags::STRING_ID => Ok(list.strings().unwrap().iter().map(|s| s.to_string()).collect::<Vec<_>>().into_value(span)), 96 + tags::BYTE_ARRAY_ID => Ok(list.byte_arrays().unwrap().iter().map(|a| a.iter().copied().collect()).collect::<Vec<Vec<_>>>().into_value(span)), 97 + tags::INT_ARRAY_ID => Ok(list.int_arrays().unwrap().iter().map(|a| a.to_vec()).collect::<Vec<_>>().into_value(span)), 98 + tags::LONG_ARRAY_ID => Ok(list.long_arrays().unwrap().iter().map(|a| a.to_vec()).collect::<Vec<_>>().into_value(span)), 99 + tags::LIST_ID => Ok(list.lists().unwrap().into_iter().map(|l| { 100 + let inner_id = l.id(); 101 + let val = list_to_val(l, span, do_tags); 102 + if do_tags { val.map(|v| tag_val(tags::LIST_ID, Some(inner_id), v, span)) } else { val } 103 + }).collect::<Result<Vec<_>, _>>()?.into_value(span)), 104 + tags::COMPOUND_ID => Ok(list.compounds().unwrap().into_iter().map(|c| { 105 + let record = compound_to_record(c, span, do_tags); 106 + record.map(|r| r.into_value(span)) 107 + }).collect::<Result<Vec<_>, _>>()?.into_value(span)), 108 + tags::END_ID => Ok(Vec::<u8>::new().into_value(span)), 109 + ], Err(LabeledError::new(format!("Unknown NBT list type: {id}")))) 110 + } 111 + 112 + fn compound_to_record<'a: 'tape, 'tape>( 113 + compound: NbtCompound<'a, 'tape>, 114 + span: Span, 115 + do_tags: bool, 116 + ) -> Result<Record, LabeledError> { 117 + compound 118 + .iter() 119 + .map(|(s, v)| { 120 + let key = s.to_string(); 121 + let value = nbt_to_val(v, span, do_tags); 122 + value.map(|value| (key, value)) 123 + }) 124 + .collect() 125 + } 126 + 127 + fn parse_nbt( 128 + src: &[u8], 129 + src_span: Span, 130 + call_span: Span, 131 + do_tags: bool, 132 + ) -> Result<PipelineData, LabeledError> { 133 + let mut decoded_src_decoder = flate2::read::GzDecoder::new(&src[..]); 134 + let mut input = Vec::new(); 135 + if std::io::Read::read_to_end(&mut decoded_src_decoder, &mut input).is_err() { 136 + // oh probably wasn't gzipped then 137 + input = src.to_vec(); 138 + } 139 + let input = input.as_slice(); 140 + 141 + let nbt = simdnbt::borrow::read(&mut Cursor::new(input)).map_err(|err| { 142 + let msg = format!("Failed to parse NBT data:\n{err:?}"); 143 + LabeledError::new(&msg).with_label("Invalid NBT data passed in".to_string(), src_span) 144 + })?; 145 + 146 + match nbt { 147 + Nbt::Some(nbt) => { 148 + let record = compound_to_record(nbt.as_compound(), call_span, do_tags)?; 149 + Ok(Value::record(record, call_span)) 150 + } 151 + Nbt::None => Ok(Value::nothing(call_span)), 152 + } 153 + .map(Value::into_pipeline_data) 154 + } 155 + 156 + impl PluginCommand for FromNbt { 157 + type Plugin = crate::NbtPlugin; 158 + 159 + fn name(&self) -> &str { 160 + "from nbt" 161 + } 162 + 163 + fn signature(&self) -> nu_protocol::Signature { 164 + Signature::build(self.name()) 165 + .input_output_type(Type::Binary, Type::record()) 166 + .switch("with-tags", "Whether to output NBT tag info (use this if you want a format that you can save data from)", Some('t')) 167 + .category(Category::Formats) 168 + } 169 + 170 + fn description(&self) -> &str { 171 + "Convert from a stream of raw NBT data" 172 + } 173 + 174 + fn run( 175 + &self, 176 + _plugin: &Self::Plugin, 177 + _engine: &nu_plugin::EngineInterface, 178 + call: &nu_plugin::EvaluatedCall, 179 + input: nu_protocol::PipelineData, 180 + ) -> Result<nu_protocol::PipelineData, nu_protocol::LabeledError> { 181 + let do_tags = call.has_flag("with-tags")?; 182 + match input { 183 + PipelineData::Value(v, _) => { 184 + let data = v.as_binary()?; 185 + parse_nbt(&data, v.span(), call.head, do_tags) 186 + } 187 + PipelineData::ByteStream(stream, _) => { 188 + let span = stream.span(); 189 + let data = stream.into_bytes()?; 190 + parse_nbt(&data, span, call.head, do_tags) 191 + } 192 + _ => Err( 193 + LabeledError::new("Expected value or byte stream from pipeline").with_label( 194 + format!("requires value or byte stream; got {}", input.get_type(),), 195 + call.head, 196 + ), 197 + ), 198 + } 199 + } 200 + }
+20
src/main.rs
··· 1 + use nu_plugin::{serve_plugin, MsgPackSerializer, Plugin, PluginCommand}; 2 + 3 + mod from; 4 + mod tags; 5 + 6 + pub struct NbtPlugin; 7 + 8 + impl Plugin for NbtPlugin { 9 + fn version(&self) -> String { 10 + env!("CARGO_PKG_VERSION").into() 11 + } 12 + 13 + fn commands(&self) -> Vec<Box<dyn PluginCommand<Plugin = Self>>> { 14 + vec![Box::new(from::FromNbt)] 15 + } 16 + } 17 + 18 + fn main() { 19 + serve_plugin(&NbtPlugin, MsgPackSerializer) 20 + }
+15
src/tags.rs
··· 1 + // Tag types bc simdnbt doesn't expose them 2 + 3 + pub const END_ID: u8 = 0; 4 + pub const BYTE_ID: u8 = 1; 5 + pub const SHORT_ID: u8 = 2; 6 + pub const INT_ID: u8 = 3; 7 + pub const LONG_ID: u8 = 4; 8 + pub const FLOAT_ID: u8 = 5; 9 + pub const DOUBLE_ID: u8 = 6; 10 + pub const BYTE_ARRAY_ID: u8 = 7; 11 + pub const STRING_ID: u8 = 8; 12 + pub const LIST_ID: u8 = 9; 13 + pub const COMPOUND_ID: u8 = 10; 14 + pub const INT_ARRAY_ID: u8 = 11; 15 + pub const LONG_ARRAY_ID: u8 = 12;