├── .gitignore ├── .vscode └── launch.json ├── Cargo.lock ├── Cargo.toml ├── LICENSE ├── README.md ├── emoji.json └── src └── main.rs /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | .DS_Store -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // Use IntelliSense to learn about possible attributes. 3 | // Hover to view descriptions of existing attributes. 4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 | "version": "0.2.0", 6 | "configurations": [ 7 | { 8 | "type": "lldb", 9 | "request": "attach", 10 | "name": "Attach", 11 | "pid": "${command:pickMyProcess}" // use ${command:pickProcess} to pick other users' processes 12 | }, 13 | { 14 | "type": "lldb", 15 | "request": "launch", 16 | "name": "Debug executable 'nu_plugin_emoji'", 17 | "cargo": { 18 | "args": [ 19 | "build", 20 | "--bin=nu_plugin_emoji", 21 | "--package=nu_plugin_emoji" 22 | ], 23 | "filter": { 24 | "name": "nu_plugin_emoji", 25 | "kind": "bin" 26 | } 27 | }, 28 | "args": ["nu", "-c", "emoji", "--list"], 29 | "cwd": "${workspaceFolder}" 30 | }, 31 | { 32 | "type": "lldb", 33 | "request": "launch", 34 | "name": "Debug unit tests in executable 'nu_plugin_emoji'", 35 | "cargo": { 36 | "args": [ 37 | "test", 38 | "--no-run", 39 | "--bin=nu_plugin_emoji", 40 | "--package=nu_plugin_emoji" 41 | ], 42 | "filter": { 43 | "name": "nu_plugin_emoji", 44 | "kind": "bin" 45 | } 46 | }, 47 | "args": [], 48 | "cwd": "${workspaceFolder}" 49 | } 50 | ] 51 | } -------------------------------------------------------------------------------- /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.0" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" 10 | 11 | [[package]] 12 | name = "aho-corasick" 13 | version = "1.1.3" 14 | source = "registry+https://github.com/rust-lang/crates.io-index" 15 | checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" 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-tzdata" 43 | version = "0.1.1" 44 | source = "registry+https://github.com/rust-lang/crates.io-index" 45 | checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" 46 | 47 | [[package]] 48 | name = "android_system_properties" 49 | version = "0.1.5" 50 | source = "registry+https://github.com/rust-lang/crates.io-index" 51 | checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 52 | dependencies = [ 53 | "libc", 54 | ] 55 | 56 | [[package]] 57 | name = "arrayvec" 58 | version = "0.7.6" 59 | source = "registry+https://github.com/rust-lang/crates.io-index" 60 | checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" 61 | 62 | [[package]] 63 | name = "autocfg" 64 | version = "1.4.0" 65 | source = "registry+https://github.com/rust-lang/crates.io-index" 66 | checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" 67 | 68 | [[package]] 69 | name = "bindgen" 70 | version = "0.70.1" 71 | source = "registry+https://github.com/rust-lang/crates.io-index" 72 | checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" 73 | dependencies = [ 74 | "bitflags", 75 | "cexpr", 76 | "clang-sys", 77 | "itertools 0.13.0", 78 | "proc-macro2", 79 | "quote", 80 | "regex", 81 | "rustc-hash", 82 | "shlex", 83 | "syn", 84 | ] 85 | 86 | [[package]] 87 | name = "bit-set" 88 | version = "0.8.0" 89 | source = "registry+https://github.com/rust-lang/crates.io-index" 90 | checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" 91 | dependencies = [ 92 | "bit-vec", 93 | ] 94 | 95 | [[package]] 96 | name = "bit-vec" 97 | version = "0.8.0" 98 | source = "registry+https://github.com/rust-lang/crates.io-index" 99 | checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" 100 | 101 | [[package]] 102 | name = "bitflags" 103 | version = "2.8.0" 104 | source = "registry+https://github.com/rust-lang/crates.io-index" 105 | checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" 106 | 107 | [[package]] 108 | name = "brotli" 109 | version = "7.0.0" 110 | source = "registry+https://github.com/rust-lang/crates.io-index" 111 | checksum = "cc97b8f16f944bba54f0433f07e30be199b6dc2bd25937444bbad560bcea29bd" 112 | dependencies = [ 113 | "alloc-no-stdlib", 114 | "alloc-stdlib", 115 | "brotli-decompressor", 116 | ] 117 | 118 | [[package]] 119 | name = "brotli-decompressor" 120 | version = "4.0.2" 121 | source = "registry+https://github.com/rust-lang/crates.io-index" 122 | checksum = "74fa05ad7d803d413eb8380983b092cbbaf9a85f151b871360e7b00cd7060b37" 123 | dependencies = [ 124 | "alloc-no-stdlib", 125 | "alloc-stdlib", 126 | ] 127 | 128 | [[package]] 129 | name = "bumpalo" 130 | version = "3.17.0" 131 | source = "registry+https://github.com/rust-lang/crates.io-index" 132 | checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" 133 | 134 | [[package]] 135 | name = "byteorder" 136 | version = "1.5.0" 137 | source = "registry+https://github.com/rust-lang/crates.io-index" 138 | checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 139 | 140 | [[package]] 141 | name = "bytes" 142 | version = "1.10.0" 143 | source = "registry+https://github.com/rust-lang/crates.io-index" 144 | checksum = "f61dac84819c6588b558454b194026eb1f09c293b9036ae9b159e74e73ab6cf9" 145 | 146 | [[package]] 147 | name = "bytesize" 148 | version = "1.3.3" 149 | source = "registry+https://github.com/rust-lang/crates.io-index" 150 | checksum = "2e93abca9e28e0a1b9877922aacb20576e05d4679ffa78c3d6dc22a26a216659" 151 | 152 | [[package]] 153 | name = "cc" 154 | version = "1.2.13" 155 | source = "registry+https://github.com/rust-lang/crates.io-index" 156 | checksum = "c7777341816418c02e033934a09f20dc0ccaf65a5201ef8a450ae0105a573fda" 157 | dependencies = [ 158 | "shlex", 159 | ] 160 | 161 | [[package]] 162 | name = "cexpr" 163 | version = "0.6.0" 164 | source = "registry+https://github.com/rust-lang/crates.io-index" 165 | checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" 166 | dependencies = [ 167 | "nom", 168 | ] 169 | 170 | [[package]] 171 | name = "cfg-if" 172 | version = "1.0.0" 173 | source = "registry+https://github.com/rust-lang/crates.io-index" 174 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 175 | 176 | [[package]] 177 | name = "cfg_aliases" 178 | version = "0.2.1" 179 | source = "registry+https://github.com/rust-lang/crates.io-index" 180 | checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" 181 | 182 | [[package]] 183 | name = "chrono" 184 | version = "0.4.39" 185 | source = "registry+https://github.com/rust-lang/crates.io-index" 186 | checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" 187 | dependencies = [ 188 | "android-tzdata", 189 | "iana-time-zone", 190 | "num-traits", 191 | "pure-rust-locales", 192 | "serde", 193 | "windows-targets 0.52.6", 194 | ] 195 | 196 | [[package]] 197 | name = "chrono-humanize" 198 | version = "0.2.3" 199 | source = "registry+https://github.com/rust-lang/crates.io-index" 200 | checksum = "799627e6b4d27827a814e837b9d8a504832086081806d45b1afa34dc982b023b" 201 | dependencies = [ 202 | "chrono", 203 | ] 204 | 205 | [[package]] 206 | name = "clang-sys" 207 | version = "1.8.1" 208 | source = "registry+https://github.com/rust-lang/crates.io-index" 209 | checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" 210 | dependencies = [ 211 | "glob", 212 | "libc", 213 | "libloading", 214 | ] 215 | 216 | [[package]] 217 | name = "const_format" 218 | version = "0.2.34" 219 | source = "registry+https://github.com/rust-lang/crates.io-index" 220 | checksum = "126f97965c8ad46d6d9163268ff28432e8f6a1196a55578867832e3049df63dd" 221 | dependencies = [ 222 | "const_format_proc_macros", 223 | ] 224 | 225 | [[package]] 226 | name = "const_format_proc_macros" 227 | version = "0.2.34" 228 | source = "registry+https://github.com/rust-lang/crates.io-index" 229 | checksum = "1d57c2eccfb16dbac1f4e61e206105db5820c9d26c3c472bc17c774259ef7744" 230 | dependencies = [ 231 | "proc-macro2", 232 | "quote", 233 | "unicode-xid", 234 | ] 235 | 236 | [[package]] 237 | name = "core-foundation-sys" 238 | version = "0.8.7" 239 | source = "registry+https://github.com/rust-lang/crates.io-index" 240 | checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 241 | 242 | [[package]] 243 | name = "crc32fast" 244 | version = "1.4.2" 245 | source = "registry+https://github.com/rust-lang/crates.io-index" 246 | checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" 247 | dependencies = [ 248 | "cfg-if", 249 | ] 250 | 251 | [[package]] 252 | name = "crossbeam-deque" 253 | version = "0.8.6" 254 | source = "registry+https://github.com/rust-lang/crates.io-index" 255 | checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" 256 | dependencies = [ 257 | "crossbeam-epoch", 258 | "crossbeam-utils", 259 | ] 260 | 261 | [[package]] 262 | name = "crossbeam-epoch" 263 | version = "0.9.18" 264 | source = "registry+https://github.com/rust-lang/crates.io-index" 265 | checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" 266 | dependencies = [ 267 | "crossbeam-utils", 268 | ] 269 | 270 | [[package]] 271 | name = "crossbeam-utils" 272 | version = "0.8.21" 273 | source = "registry+https://github.com/rust-lang/crates.io-index" 274 | checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" 275 | 276 | [[package]] 277 | name = "crossterm" 278 | version = "0.28.1" 279 | source = "registry+https://github.com/rust-lang/crates.io-index" 280 | checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6" 281 | dependencies = [ 282 | "bitflags", 283 | "crossterm_winapi", 284 | "mio", 285 | "parking_lot", 286 | "rustix", 287 | "signal-hook", 288 | "signal-hook-mio", 289 | "winapi", 290 | ] 291 | 292 | [[package]] 293 | name = "crossterm_winapi" 294 | version = "0.9.1" 295 | source = "registry+https://github.com/rust-lang/crates.io-index" 296 | checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" 297 | dependencies = [ 298 | "winapi", 299 | ] 300 | 301 | [[package]] 302 | name = "deranged" 303 | version = "0.3.11" 304 | source = "registry+https://github.com/rust-lang/crates.io-index" 305 | checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" 306 | dependencies = [ 307 | "powerfmt", 308 | ] 309 | 310 | [[package]] 311 | name = "dirs" 312 | version = "5.0.1" 313 | source = "registry+https://github.com/rust-lang/crates.io-index" 314 | checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" 315 | dependencies = [ 316 | "dirs-sys", 317 | ] 318 | 319 | [[package]] 320 | name = "dirs-sys" 321 | version = "0.4.1" 322 | source = "registry+https://github.com/rust-lang/crates.io-index" 323 | checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" 324 | dependencies = [ 325 | "libc", 326 | "option-ext", 327 | "redox_users", 328 | "windows-sys 0.48.0", 329 | ] 330 | 331 | [[package]] 332 | name = "doctest-file" 333 | version = "1.0.0" 334 | source = "registry+https://github.com/rust-lang/crates.io-index" 335 | checksum = "aac81fa3e28d21450aa4d2ac065992ba96a1d7303efbce51a95f4fd175b67562" 336 | 337 | [[package]] 338 | name = "either" 339 | version = "1.13.0" 340 | source = "registry+https://github.com/rust-lang/crates.io-index" 341 | checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" 342 | 343 | [[package]] 344 | name = "emojis" 345 | version = "0.6.4" 346 | source = "registry+https://github.com/rust-lang/crates.io-index" 347 | checksum = "99e1f1df1f181f2539bac8bf027d31ca5ffbf9e559e3f2d09413b9107b5c02f4" 348 | dependencies = [ 349 | "phf", 350 | ] 351 | 352 | [[package]] 353 | name = "equivalent" 354 | version = "1.0.1" 355 | source = "registry+https://github.com/rust-lang/crates.io-index" 356 | checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" 357 | 358 | [[package]] 359 | name = "erased-serde" 360 | version = "0.4.5" 361 | source = "registry+https://github.com/rust-lang/crates.io-index" 362 | checksum = "24e2389d65ab4fab27dc2a5de7b191e1f6617d1f1c8855c0dc569c94a4cbb18d" 363 | dependencies = [ 364 | "serde", 365 | "typeid", 366 | ] 367 | 368 | [[package]] 369 | name = "errno" 370 | version = "0.3.10" 371 | source = "registry+https://github.com/rust-lang/crates.io-index" 372 | checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" 373 | dependencies = [ 374 | "libc", 375 | "windows-sys 0.59.0", 376 | ] 377 | 378 | [[package]] 379 | name = "fancy-regex" 380 | version = "0.14.0" 381 | source = "registry+https://github.com/rust-lang/crates.io-index" 382 | checksum = "6e24cb5a94bcae1e5408b0effca5cd7172ea3c5755049c5f3af4cd283a165298" 383 | dependencies = [ 384 | "bit-set", 385 | "regex-automata", 386 | "regex-syntax", 387 | ] 388 | 389 | [[package]] 390 | name = "flate2" 391 | version = "1.0.35" 392 | source = "registry+https://github.com/rust-lang/crates.io-index" 393 | checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" 394 | dependencies = [ 395 | "crc32fast", 396 | "miniz_oxide", 397 | ] 398 | 399 | [[package]] 400 | name = "foldhash" 401 | version = "0.1.4" 402 | source = "registry+https://github.com/rust-lang/crates.io-index" 403 | checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" 404 | 405 | [[package]] 406 | name = "getrandom" 407 | version = "0.2.15" 408 | source = "registry+https://github.com/rust-lang/crates.io-index" 409 | checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" 410 | dependencies = [ 411 | "cfg-if", 412 | "libc", 413 | "wasi", 414 | ] 415 | 416 | [[package]] 417 | name = "glob" 418 | version = "0.3.2" 419 | source = "registry+https://github.com/rust-lang/crates.io-index" 420 | checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" 421 | 422 | [[package]] 423 | name = "hashbrown" 424 | version = "0.15.2" 425 | source = "registry+https://github.com/rust-lang/crates.io-index" 426 | checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" 427 | dependencies = [ 428 | "allocator-api2", 429 | "equivalent", 430 | "foldhash", 431 | ] 432 | 433 | [[package]] 434 | name = "heck" 435 | version = "0.5.0" 436 | source = "registry+https://github.com/rust-lang/crates.io-index" 437 | checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" 438 | 439 | [[package]] 440 | name = "hex" 441 | version = "0.4.3" 442 | source = "registry+https://github.com/rust-lang/crates.io-index" 443 | checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" 444 | 445 | [[package]] 446 | name = "iana-time-zone" 447 | version = "0.1.61" 448 | source = "registry+https://github.com/rust-lang/crates.io-index" 449 | checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" 450 | dependencies = [ 451 | "android_system_properties", 452 | "core-foundation-sys", 453 | "iana-time-zone-haiku", 454 | "js-sys", 455 | "wasm-bindgen", 456 | "windows-core 0.52.0", 457 | ] 458 | 459 | [[package]] 460 | name = "iana-time-zone-haiku" 461 | version = "0.1.2" 462 | source = "registry+https://github.com/rust-lang/crates.io-index" 463 | checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" 464 | dependencies = [ 465 | "cc", 466 | ] 467 | 468 | [[package]] 469 | name = "indexmap" 470 | version = "2.9.0" 471 | source = "registry+https://github.com/rust-lang/crates.io-index" 472 | checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" 473 | dependencies = [ 474 | "equivalent", 475 | "hashbrown", 476 | ] 477 | 478 | [[package]] 479 | name = "interprocess" 480 | version = "2.2.2" 481 | source = "registry+https://github.com/rust-lang/crates.io-index" 482 | checksum = "894148491d817cb36b6f778017b8ac46b17408d522dd90f539d677ea938362eb" 483 | dependencies = [ 484 | "doctest-file", 485 | "libc", 486 | "recvmsg", 487 | "widestring", 488 | "windows-sys 0.52.0", 489 | ] 490 | 491 | [[package]] 492 | name = "inventory" 493 | version = "0.3.19" 494 | source = "registry+https://github.com/rust-lang/crates.io-index" 495 | checksum = "54b12ebb6799019b044deaf431eadfe23245b259bba5a2c0796acec3943a3cdb" 496 | dependencies = [ 497 | "rustversion", 498 | ] 499 | 500 | [[package]] 501 | name = "is_ci" 502 | version = "1.2.0" 503 | source = "registry+https://github.com/rust-lang/crates.io-index" 504 | checksum = "7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45" 505 | 506 | [[package]] 507 | name = "is_debug" 508 | version = "1.1.0" 509 | source = "registry+https://github.com/rust-lang/crates.io-index" 510 | checksum = "1fe266d2e243c931d8190177f20bf7f24eed45e96f39e87dc49a27b32d12d407" 511 | 512 | [[package]] 513 | name = "itertools" 514 | version = "0.13.0" 515 | source = "registry+https://github.com/rust-lang/crates.io-index" 516 | checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" 517 | dependencies = [ 518 | "either", 519 | ] 520 | 521 | [[package]] 522 | name = "itertools" 523 | version = "0.14.0" 524 | source = "registry+https://github.com/rust-lang/crates.io-index" 525 | checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" 526 | dependencies = [ 527 | "either", 528 | ] 529 | 530 | [[package]] 531 | name = "itoa" 532 | version = "1.0.14" 533 | source = "registry+https://github.com/rust-lang/crates.io-index" 534 | checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" 535 | 536 | [[package]] 537 | name = "js-sys" 538 | version = "0.3.77" 539 | source = "registry+https://github.com/rust-lang/crates.io-index" 540 | checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" 541 | dependencies = [ 542 | "once_cell", 543 | "wasm-bindgen", 544 | ] 545 | 546 | [[package]] 547 | name = "libc" 548 | version = "0.2.169" 549 | source = "registry+https://github.com/rust-lang/crates.io-index" 550 | checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" 551 | 552 | [[package]] 553 | name = "libloading" 554 | version = "0.8.6" 555 | source = "registry+https://github.com/rust-lang/crates.io-index" 556 | checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" 557 | dependencies = [ 558 | "cfg-if", 559 | "windows-targets 0.52.6", 560 | ] 561 | 562 | [[package]] 563 | name = "libproc" 564 | version = "0.14.10" 565 | source = "registry+https://github.com/rust-lang/crates.io-index" 566 | checksum = "e78a09b56be5adbcad5aa1197371688dc6bb249a26da3bca2011ee2fb987ebfb" 567 | dependencies = [ 568 | "bindgen", 569 | "errno", 570 | "libc", 571 | ] 572 | 573 | [[package]] 574 | name = "libredox" 575 | version = "0.1.3" 576 | source = "registry+https://github.com/rust-lang/crates.io-index" 577 | checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" 578 | dependencies = [ 579 | "bitflags", 580 | "libc", 581 | ] 582 | 583 | [[package]] 584 | name = "linux-raw-sys" 585 | version = "0.4.15" 586 | source = "registry+https://github.com/rust-lang/crates.io-index" 587 | checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" 588 | 589 | [[package]] 590 | name = "lock_api" 591 | version = "0.4.12" 592 | source = "registry+https://github.com/rust-lang/crates.io-index" 593 | checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" 594 | dependencies = [ 595 | "autocfg", 596 | "scopeguard", 597 | ] 598 | 599 | [[package]] 600 | name = "log" 601 | version = "0.4.25" 602 | source = "registry+https://github.com/rust-lang/crates.io-index" 603 | checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" 604 | 605 | [[package]] 606 | name = "lru" 607 | version = "0.12.5" 608 | source = "registry+https://github.com/rust-lang/crates.io-index" 609 | checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" 610 | dependencies = [ 611 | "hashbrown", 612 | ] 613 | 614 | [[package]] 615 | name = "lscolors" 616 | version = "0.17.0" 617 | source = "registry+https://github.com/rust-lang/crates.io-index" 618 | checksum = "53304fff6ab1e597661eee37e42ea8c47a146fca280af902bb76bff8a896e523" 619 | dependencies = [ 620 | "nu-ansi-term", 621 | ] 622 | 623 | [[package]] 624 | name = "mach2" 625 | version = "0.4.2" 626 | source = "registry+https://github.com/rust-lang/crates.io-index" 627 | checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709" 628 | dependencies = [ 629 | "libc", 630 | ] 631 | 632 | [[package]] 633 | name = "memchr" 634 | version = "2.7.4" 635 | source = "registry+https://github.com/rust-lang/crates.io-index" 636 | checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" 637 | 638 | [[package]] 639 | name = "miette" 640 | version = "7.5.0" 641 | source = "registry+https://github.com/rust-lang/crates.io-index" 642 | checksum = "1a955165f87b37fd1862df2a59547ac542c77ef6d17c666f619d1ad22dd89484" 643 | dependencies = [ 644 | "cfg-if", 645 | "miette-derive", 646 | "owo-colors", 647 | "supports-color", 648 | "supports-hyperlinks", 649 | "supports-unicode", 650 | "terminal_size", 651 | "textwrap", 652 | "thiserror 1.0.69", 653 | "unicode-width", 654 | ] 655 | 656 | [[package]] 657 | name = "miette-derive" 658 | version = "7.5.0" 659 | source = "registry+https://github.com/rust-lang/crates.io-index" 660 | checksum = "bf45bf44ab49be92fd1227a3be6fc6f617f1a337c06af54981048574d8783147" 661 | dependencies = [ 662 | "proc-macro2", 663 | "quote", 664 | "syn", 665 | ] 666 | 667 | [[package]] 668 | name = "minimal-lexical" 669 | version = "0.2.1" 670 | source = "registry+https://github.com/rust-lang/crates.io-index" 671 | checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" 672 | 673 | [[package]] 674 | name = "miniz_oxide" 675 | version = "0.8.3" 676 | source = "registry+https://github.com/rust-lang/crates.io-index" 677 | checksum = "b8402cab7aefae129c6977bb0ff1b8fd9a04eb5b51efc50a70bea51cda0c7924" 678 | dependencies = [ 679 | "adler2", 680 | ] 681 | 682 | [[package]] 683 | name = "mio" 684 | version = "1.0.3" 685 | source = "registry+https://github.com/rust-lang/crates.io-index" 686 | checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" 687 | dependencies = [ 688 | "libc", 689 | "log", 690 | "wasi", 691 | "windows-sys 0.52.0", 692 | ] 693 | 694 | [[package]] 695 | name = "nix" 696 | version = "0.29.0" 697 | source = "registry+https://github.com/rust-lang/crates.io-index" 698 | checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" 699 | dependencies = [ 700 | "bitflags", 701 | "cfg-if", 702 | "cfg_aliases", 703 | "libc", 704 | ] 705 | 706 | [[package]] 707 | name = "nom" 708 | version = "7.1.3" 709 | source = "registry+https://github.com/rust-lang/crates.io-index" 710 | checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" 711 | dependencies = [ 712 | "memchr", 713 | "minimal-lexical", 714 | ] 715 | 716 | [[package]] 717 | name = "ntapi" 718 | version = "0.4.1" 719 | source = "registry+https://github.com/rust-lang/crates.io-index" 720 | checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" 721 | dependencies = [ 722 | "winapi", 723 | ] 724 | 725 | [[package]] 726 | name = "nu-ansi-term" 727 | version = "0.50.1" 728 | source = "registry+https://github.com/rust-lang/crates.io-index" 729 | checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" 730 | dependencies = [ 731 | "windows-sys 0.52.0", 732 | ] 733 | 734 | [[package]] 735 | name = "nu-cmd-lang" 736 | version = "0.104.0" 737 | source = "registry+https://github.com/rust-lang/crates.io-index" 738 | checksum = "e66adfeda88f8e27bcb25d068d9e6e8b3a94c2bf988a9c30e8e3b2045867aefe" 739 | dependencies = [ 740 | "itertools 0.13.0", 741 | "nu-engine", 742 | "nu-parser", 743 | "nu-protocol", 744 | "nu-utils", 745 | "shadow-rs", 746 | ] 747 | 748 | [[package]] 749 | name = "nu-derive-value" 750 | version = "0.104.0" 751 | source = "registry+https://github.com/rust-lang/crates.io-index" 752 | checksum = "5fd0d8e358b6440d01fe4e617f180aea826bade72efb54f5dc1c22e0e8038b6f" 753 | dependencies = [ 754 | "heck", 755 | "proc-macro-error2", 756 | "proc-macro2", 757 | "quote", 758 | "syn", 759 | ] 760 | 761 | [[package]] 762 | name = "nu-engine" 763 | version = "0.104.0" 764 | source = "registry+https://github.com/rust-lang/crates.io-index" 765 | checksum = "0c2b01483e3d09460375f0c0da7a83b6dc26fb319ca09c55d0665087b2d587c7" 766 | dependencies = [ 767 | "log", 768 | "nu-glob", 769 | "nu-path", 770 | "nu-protocol", 771 | "nu-utils", 772 | ] 773 | 774 | [[package]] 775 | name = "nu-glob" 776 | version = "0.104.0" 777 | source = "registry+https://github.com/rust-lang/crates.io-index" 778 | checksum = "202ce25889336061efea24e69d4e0de7147c15fd9892cdd70533500d47db8364" 779 | 780 | [[package]] 781 | name = "nu-parser" 782 | version = "0.104.0" 783 | source = "registry+https://github.com/rust-lang/crates.io-index" 784 | checksum = "cb0591ef4d4989c1930863d9d17d8fd2d70b03ec2d9caeca067e9626e05c49d9" 785 | dependencies = [ 786 | "bytesize", 787 | "chrono", 788 | "itertools 0.13.0", 789 | "log", 790 | "nu-engine", 791 | "nu-path", 792 | "nu-plugin-engine", 793 | "nu-protocol", 794 | "nu-utils", 795 | "serde_json", 796 | ] 797 | 798 | [[package]] 799 | name = "nu-path" 800 | version = "0.104.0" 801 | source = "registry+https://github.com/rust-lang/crates.io-index" 802 | checksum = "41c68c7c06898a5c4c9f10038da63759661cb8ac8f301ce7d159173a595c8258" 803 | dependencies = [ 804 | "dirs", 805 | "omnipath", 806 | "pwd", 807 | "ref-cast", 808 | ] 809 | 810 | [[package]] 811 | name = "nu-plugin" 812 | version = "0.104.0" 813 | source = "registry+https://github.com/rust-lang/crates.io-index" 814 | checksum = "e00d2ccb35a1206c51740bea63b0deb72dc4c34ca6ceae6feac95f84d68370d2" 815 | dependencies = [ 816 | "log", 817 | "nix", 818 | "nu-engine", 819 | "nu-plugin-core", 820 | "nu-plugin-protocol", 821 | "nu-protocol", 822 | "nu-utils", 823 | "thiserror 2.0.12", 824 | ] 825 | 826 | [[package]] 827 | name = "nu-plugin-core" 828 | version = "0.104.0" 829 | source = "registry+https://github.com/rust-lang/crates.io-index" 830 | checksum = "30e416e6de2b62925ffc1924740a0e5340316a1630af3d2490d513bcb1f94e94" 831 | dependencies = [ 832 | "interprocess", 833 | "log", 834 | "nu-plugin-protocol", 835 | "nu-protocol", 836 | "rmp-serde", 837 | "serde", 838 | "serde_json", 839 | "windows 0.56.0", 840 | ] 841 | 842 | [[package]] 843 | name = "nu-plugin-engine" 844 | version = "0.104.0" 845 | source = "registry+https://github.com/rust-lang/crates.io-index" 846 | checksum = "14fb214ba23829ebfe61b9a5e0688cd5620922438d7d76a6f6b3e1151d07e82a" 847 | dependencies = [ 848 | "log", 849 | "nu-engine", 850 | "nu-plugin-core", 851 | "nu-plugin-protocol", 852 | "nu-protocol", 853 | "nu-system", 854 | "nu-utils", 855 | "serde", 856 | "windows 0.56.0", 857 | ] 858 | 859 | [[package]] 860 | name = "nu-plugin-protocol" 861 | version = "0.104.0" 862 | source = "registry+https://github.com/rust-lang/crates.io-index" 863 | checksum = "be7edbdee451bb29150b5e8184660d79d0c0801a6748b9f712b758cb78110305" 864 | dependencies = [ 865 | "nu-protocol", 866 | "nu-utils", 867 | "rmp-serde", 868 | "semver", 869 | "serde", 870 | "typetag", 871 | ] 872 | 873 | [[package]] 874 | name = "nu-plugin-test-support" 875 | version = "0.104.0" 876 | source = "registry+https://github.com/rust-lang/crates.io-index" 877 | checksum = "b8acb62c21fd980e467162bc17a4e93a8435e28249256b52e58718278149978d" 878 | dependencies = [ 879 | "nu-ansi-term", 880 | "nu-cmd-lang", 881 | "nu-engine", 882 | "nu-parser", 883 | "nu-plugin", 884 | "nu-plugin-core", 885 | "nu-plugin-engine", 886 | "nu-plugin-protocol", 887 | "nu-protocol", 888 | "similar", 889 | ] 890 | 891 | [[package]] 892 | name = "nu-protocol" 893 | version = "0.104.0" 894 | source = "registry+https://github.com/rust-lang/crates.io-index" 895 | checksum = "ab657b1947f1fad3c5052cb210fa311744736a4800a966ae21c4bc63de7c60ab" 896 | dependencies = [ 897 | "brotli", 898 | "bytes", 899 | "chrono", 900 | "chrono-humanize", 901 | "dirs", 902 | "dirs-sys", 903 | "fancy-regex", 904 | "heck", 905 | "indexmap", 906 | "log", 907 | "lru", 908 | "memchr", 909 | "miette", 910 | "nix", 911 | "nu-derive-value", 912 | "nu-glob", 913 | "nu-path", 914 | "nu-system", 915 | "nu-utils", 916 | "num-format", 917 | "os_pipe", 918 | "rmp-serde", 919 | "serde", 920 | "serde_json", 921 | "strum", 922 | "strum_macros", 923 | "thiserror 2.0.12", 924 | "typetag", 925 | "web-time", 926 | "windows-sys 0.48.0", 927 | ] 928 | 929 | [[package]] 930 | name = "nu-system" 931 | version = "0.104.0" 932 | source = "registry+https://github.com/rust-lang/crates.io-index" 933 | checksum = "f47094aaab4f1e3a86c3960400d82a50fcabde907f964ae095963ec95669577a" 934 | dependencies = [ 935 | "chrono", 936 | "itertools 0.13.0", 937 | "libc", 938 | "libproc", 939 | "log", 940 | "mach2", 941 | "nix", 942 | "ntapi", 943 | "procfs", 944 | "sysinfo", 945 | "web-time", 946 | "windows 0.56.0", 947 | ] 948 | 949 | [[package]] 950 | name = "nu-utils" 951 | version = "0.104.0" 952 | source = "registry+https://github.com/rust-lang/crates.io-index" 953 | checksum = "327999b774d78b301a6b68c33d312a1a8047c59fb8971b6552ebf823251f1481" 954 | dependencies = [ 955 | "crossterm", 956 | "crossterm_winapi", 957 | "fancy-regex", 958 | "log", 959 | "lscolors", 960 | "nix", 961 | "num-format", 962 | "serde", 963 | "serde_json", 964 | "strip-ansi-escapes", 965 | "sys-locale", 966 | "unicase", 967 | ] 968 | 969 | [[package]] 970 | name = "nu_plugin_emoji" 971 | version = "0.13.0" 972 | dependencies = [ 973 | "emojis", 974 | "itertools 0.14.0", 975 | "nu-path", 976 | "nu-plugin", 977 | "nu-plugin-test-support", 978 | "nu-protocol", 979 | ] 980 | 981 | [[package]] 982 | name = "num-conv" 983 | version = "0.1.0" 984 | source = "registry+https://github.com/rust-lang/crates.io-index" 985 | checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" 986 | 987 | [[package]] 988 | name = "num-format" 989 | version = "0.4.4" 990 | source = "registry+https://github.com/rust-lang/crates.io-index" 991 | checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3" 992 | dependencies = [ 993 | "arrayvec", 994 | "itoa", 995 | ] 996 | 997 | [[package]] 998 | name = "num-traits" 999 | version = "0.2.19" 1000 | source = "registry+https://github.com/rust-lang/crates.io-index" 1001 | checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 1002 | dependencies = [ 1003 | "autocfg", 1004 | ] 1005 | 1006 | [[package]] 1007 | name = "num_threads" 1008 | version = "0.1.7" 1009 | source = "registry+https://github.com/rust-lang/crates.io-index" 1010 | checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" 1011 | dependencies = [ 1012 | "libc", 1013 | ] 1014 | 1015 | [[package]] 1016 | name = "omnipath" 1017 | version = "0.1.6" 1018 | source = "registry+https://github.com/rust-lang/crates.io-index" 1019 | checksum = "80adb31078122c880307e9cdfd4e3361e6545c319f9b9dcafcb03acd3b51a575" 1020 | 1021 | [[package]] 1022 | name = "once_cell" 1023 | version = "1.20.3" 1024 | source = "registry+https://github.com/rust-lang/crates.io-index" 1025 | checksum = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e" 1026 | 1027 | [[package]] 1028 | name = "option-ext" 1029 | version = "0.2.0" 1030 | source = "registry+https://github.com/rust-lang/crates.io-index" 1031 | checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" 1032 | 1033 | [[package]] 1034 | name = "os_pipe" 1035 | version = "1.2.1" 1036 | source = "registry+https://github.com/rust-lang/crates.io-index" 1037 | checksum = "5ffd2b0a5634335b135d5728d84c5e0fd726954b87111f7506a61c502280d982" 1038 | dependencies = [ 1039 | "libc", 1040 | "windows-sys 0.59.0", 1041 | ] 1042 | 1043 | [[package]] 1044 | name = "owo-colors" 1045 | version = "4.1.0" 1046 | source = "registry+https://github.com/rust-lang/crates.io-index" 1047 | checksum = "fb37767f6569cd834a413442455e0f066d0d522de8630436e2a1761d9726ba56" 1048 | 1049 | [[package]] 1050 | name = "parking_lot" 1051 | version = "0.12.3" 1052 | source = "registry+https://github.com/rust-lang/crates.io-index" 1053 | checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" 1054 | dependencies = [ 1055 | "lock_api", 1056 | "parking_lot_core", 1057 | ] 1058 | 1059 | [[package]] 1060 | name = "parking_lot_core" 1061 | version = "0.9.10" 1062 | source = "registry+https://github.com/rust-lang/crates.io-index" 1063 | checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" 1064 | dependencies = [ 1065 | "cfg-if", 1066 | "libc", 1067 | "redox_syscall", 1068 | "smallvec", 1069 | "windows-targets 0.52.6", 1070 | ] 1071 | 1072 | [[package]] 1073 | name = "paste" 1074 | version = "1.0.15" 1075 | source = "registry+https://github.com/rust-lang/crates.io-index" 1076 | checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" 1077 | 1078 | [[package]] 1079 | name = "phf" 1080 | version = "0.11.3" 1081 | source = "registry+https://github.com/rust-lang/crates.io-index" 1082 | checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" 1083 | dependencies = [ 1084 | "phf_shared", 1085 | ] 1086 | 1087 | [[package]] 1088 | name = "phf_shared" 1089 | version = "0.11.3" 1090 | source = "registry+https://github.com/rust-lang/crates.io-index" 1091 | checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" 1092 | dependencies = [ 1093 | "siphasher", 1094 | ] 1095 | 1096 | [[package]] 1097 | name = "powerfmt" 1098 | version = "0.2.0" 1099 | source = "registry+https://github.com/rust-lang/crates.io-index" 1100 | checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" 1101 | 1102 | [[package]] 1103 | name = "proc-macro-error-attr2" 1104 | version = "2.0.0" 1105 | source = "registry+https://github.com/rust-lang/crates.io-index" 1106 | checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" 1107 | dependencies = [ 1108 | "proc-macro2", 1109 | "quote", 1110 | ] 1111 | 1112 | [[package]] 1113 | name = "proc-macro-error2" 1114 | version = "2.0.1" 1115 | source = "registry+https://github.com/rust-lang/crates.io-index" 1116 | checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" 1117 | dependencies = [ 1118 | "proc-macro-error-attr2", 1119 | "proc-macro2", 1120 | "quote", 1121 | "syn", 1122 | ] 1123 | 1124 | [[package]] 1125 | name = "proc-macro2" 1126 | version = "1.0.93" 1127 | source = "registry+https://github.com/rust-lang/crates.io-index" 1128 | checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" 1129 | dependencies = [ 1130 | "unicode-ident", 1131 | ] 1132 | 1133 | [[package]] 1134 | name = "procfs" 1135 | version = "0.17.0" 1136 | source = "registry+https://github.com/rust-lang/crates.io-index" 1137 | checksum = "cc5b72d8145275d844d4b5f6d4e1eef00c8cd889edb6035c21675d1bb1f45c9f" 1138 | dependencies = [ 1139 | "bitflags", 1140 | "chrono", 1141 | "flate2", 1142 | "hex", 1143 | "procfs-core", 1144 | "rustix", 1145 | ] 1146 | 1147 | [[package]] 1148 | name = "procfs-core" 1149 | version = "0.17.0" 1150 | source = "registry+https://github.com/rust-lang/crates.io-index" 1151 | checksum = "239df02d8349b06fc07398a3a1697b06418223b1c7725085e801e7c0fc6a12ec" 1152 | dependencies = [ 1153 | "bitflags", 1154 | "chrono", 1155 | "hex", 1156 | ] 1157 | 1158 | [[package]] 1159 | name = "pure-rust-locales" 1160 | version = "0.8.1" 1161 | source = "registry+https://github.com/rust-lang/crates.io-index" 1162 | checksum = "1190fd18ae6ce9e137184f207593877e70f39b015040156b1e05081cdfe3733a" 1163 | 1164 | [[package]] 1165 | name = "pwd" 1166 | version = "1.4.0" 1167 | source = "registry+https://github.com/rust-lang/crates.io-index" 1168 | checksum = "72c71c0c79b9701efe4e1e4b563b2016dd4ee789eb99badcb09d61ac4b92e4a2" 1169 | dependencies = [ 1170 | "libc", 1171 | "thiserror 1.0.69", 1172 | ] 1173 | 1174 | [[package]] 1175 | name = "quote" 1176 | version = "1.0.38" 1177 | source = "registry+https://github.com/rust-lang/crates.io-index" 1178 | checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" 1179 | dependencies = [ 1180 | "proc-macro2", 1181 | ] 1182 | 1183 | [[package]] 1184 | name = "rayon" 1185 | version = "1.10.0" 1186 | source = "registry+https://github.com/rust-lang/crates.io-index" 1187 | checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" 1188 | dependencies = [ 1189 | "either", 1190 | "rayon-core", 1191 | ] 1192 | 1193 | [[package]] 1194 | name = "rayon-core" 1195 | version = "1.12.1" 1196 | source = "registry+https://github.com/rust-lang/crates.io-index" 1197 | checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" 1198 | dependencies = [ 1199 | "crossbeam-deque", 1200 | "crossbeam-utils", 1201 | ] 1202 | 1203 | [[package]] 1204 | name = "recvmsg" 1205 | version = "1.0.0" 1206 | source = "registry+https://github.com/rust-lang/crates.io-index" 1207 | checksum = "d3edd4d5d42c92f0a659926464d4cce56b562761267ecf0f469d85b7de384175" 1208 | 1209 | [[package]] 1210 | name = "redox_syscall" 1211 | version = "0.5.8" 1212 | source = "registry+https://github.com/rust-lang/crates.io-index" 1213 | checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" 1214 | dependencies = [ 1215 | "bitflags", 1216 | ] 1217 | 1218 | [[package]] 1219 | name = "redox_users" 1220 | version = "0.4.6" 1221 | source = "registry+https://github.com/rust-lang/crates.io-index" 1222 | checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" 1223 | dependencies = [ 1224 | "getrandom", 1225 | "libredox", 1226 | "thiserror 1.0.69", 1227 | ] 1228 | 1229 | [[package]] 1230 | name = "ref-cast" 1231 | version = "1.0.23" 1232 | source = "registry+https://github.com/rust-lang/crates.io-index" 1233 | checksum = "ccf0a6f84d5f1d581da8b41b47ec8600871962f2a528115b542b362d4b744931" 1234 | dependencies = [ 1235 | "ref-cast-impl", 1236 | ] 1237 | 1238 | [[package]] 1239 | name = "ref-cast-impl" 1240 | version = "1.0.23" 1241 | source = "registry+https://github.com/rust-lang/crates.io-index" 1242 | checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" 1243 | dependencies = [ 1244 | "proc-macro2", 1245 | "quote", 1246 | "syn", 1247 | ] 1248 | 1249 | [[package]] 1250 | name = "regex" 1251 | version = "1.11.1" 1252 | source = "registry+https://github.com/rust-lang/crates.io-index" 1253 | checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" 1254 | dependencies = [ 1255 | "aho-corasick", 1256 | "memchr", 1257 | "regex-automata", 1258 | "regex-syntax", 1259 | ] 1260 | 1261 | [[package]] 1262 | name = "regex-automata" 1263 | version = "0.4.9" 1264 | source = "registry+https://github.com/rust-lang/crates.io-index" 1265 | checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" 1266 | dependencies = [ 1267 | "aho-corasick", 1268 | "memchr", 1269 | "regex-syntax", 1270 | ] 1271 | 1272 | [[package]] 1273 | name = "regex-syntax" 1274 | version = "0.8.5" 1275 | source = "registry+https://github.com/rust-lang/crates.io-index" 1276 | checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" 1277 | 1278 | [[package]] 1279 | name = "rmp" 1280 | version = "0.8.14" 1281 | source = "registry+https://github.com/rust-lang/crates.io-index" 1282 | checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4" 1283 | dependencies = [ 1284 | "byteorder", 1285 | "num-traits", 1286 | "paste", 1287 | ] 1288 | 1289 | [[package]] 1290 | name = "rmp-serde" 1291 | version = "1.3.0" 1292 | source = "registry+https://github.com/rust-lang/crates.io-index" 1293 | checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db" 1294 | dependencies = [ 1295 | "byteorder", 1296 | "rmp", 1297 | "serde", 1298 | ] 1299 | 1300 | [[package]] 1301 | name = "rustc-hash" 1302 | version = "1.1.0" 1303 | source = "registry+https://github.com/rust-lang/crates.io-index" 1304 | checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" 1305 | 1306 | [[package]] 1307 | name = "rustix" 1308 | version = "0.38.44" 1309 | source = "registry+https://github.com/rust-lang/crates.io-index" 1310 | checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" 1311 | dependencies = [ 1312 | "bitflags", 1313 | "errno", 1314 | "libc", 1315 | "linux-raw-sys", 1316 | "windows-sys 0.59.0", 1317 | ] 1318 | 1319 | [[package]] 1320 | name = "rustversion" 1321 | version = "1.0.19" 1322 | source = "registry+https://github.com/rust-lang/crates.io-index" 1323 | checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" 1324 | 1325 | [[package]] 1326 | name = "ryu" 1327 | version = "1.0.19" 1328 | source = "registry+https://github.com/rust-lang/crates.io-index" 1329 | checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd" 1330 | 1331 | [[package]] 1332 | name = "scopeguard" 1333 | version = "1.2.0" 1334 | source = "registry+https://github.com/rust-lang/crates.io-index" 1335 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 1336 | 1337 | [[package]] 1338 | name = "semver" 1339 | version = "1.0.25" 1340 | source = "registry+https://github.com/rust-lang/crates.io-index" 1341 | checksum = "f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03" 1342 | 1343 | [[package]] 1344 | name = "serde" 1345 | version = "1.0.217" 1346 | source = "registry+https://github.com/rust-lang/crates.io-index" 1347 | checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" 1348 | dependencies = [ 1349 | "serde_derive", 1350 | ] 1351 | 1352 | [[package]] 1353 | name = "serde_derive" 1354 | version = "1.0.217" 1355 | source = "registry+https://github.com/rust-lang/crates.io-index" 1356 | checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" 1357 | dependencies = [ 1358 | "proc-macro2", 1359 | "quote", 1360 | "syn", 1361 | ] 1362 | 1363 | [[package]] 1364 | name = "serde_json" 1365 | version = "1.0.138" 1366 | source = "registry+https://github.com/rust-lang/crates.io-index" 1367 | checksum = "d434192e7da787e94a6ea7e9670b26a036d0ca41e0b7efb2676dd32bae872949" 1368 | dependencies = [ 1369 | "itoa", 1370 | "memchr", 1371 | "ryu", 1372 | "serde", 1373 | ] 1374 | 1375 | [[package]] 1376 | name = "shadow-rs" 1377 | version = "1.1.1" 1378 | source = "registry+https://github.com/rust-lang/crates.io-index" 1379 | checksum = "6d5625ed609cf66d7e505e7d487aca815626dc4ebb6c0dd07637ca61a44651a6" 1380 | dependencies = [ 1381 | "const_format", 1382 | "is_debug", 1383 | "time", 1384 | "tzdb", 1385 | ] 1386 | 1387 | [[package]] 1388 | name = "shlex" 1389 | version = "1.3.0" 1390 | source = "registry+https://github.com/rust-lang/crates.io-index" 1391 | checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 1392 | 1393 | [[package]] 1394 | name = "signal-hook" 1395 | version = "0.3.17" 1396 | source = "registry+https://github.com/rust-lang/crates.io-index" 1397 | checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" 1398 | dependencies = [ 1399 | "libc", 1400 | "signal-hook-registry", 1401 | ] 1402 | 1403 | [[package]] 1404 | name = "signal-hook-mio" 1405 | version = "0.2.4" 1406 | source = "registry+https://github.com/rust-lang/crates.io-index" 1407 | checksum = "34db1a06d485c9142248b7a054f034b349b212551f3dfd19c94d45a754a217cd" 1408 | dependencies = [ 1409 | "libc", 1410 | "mio", 1411 | "signal-hook", 1412 | ] 1413 | 1414 | [[package]] 1415 | name = "signal-hook-registry" 1416 | version = "1.4.2" 1417 | source = "registry+https://github.com/rust-lang/crates.io-index" 1418 | checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" 1419 | dependencies = [ 1420 | "libc", 1421 | ] 1422 | 1423 | [[package]] 1424 | name = "similar" 1425 | version = "2.7.0" 1426 | source = "registry+https://github.com/rust-lang/crates.io-index" 1427 | checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa" 1428 | 1429 | [[package]] 1430 | name = "siphasher" 1431 | version = "1.0.1" 1432 | source = "registry+https://github.com/rust-lang/crates.io-index" 1433 | checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" 1434 | 1435 | [[package]] 1436 | name = "smallvec" 1437 | version = "1.13.2" 1438 | source = "registry+https://github.com/rust-lang/crates.io-index" 1439 | checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" 1440 | 1441 | [[package]] 1442 | name = "strip-ansi-escapes" 1443 | version = "0.2.1" 1444 | source = "registry+https://github.com/rust-lang/crates.io-index" 1445 | checksum = "2a8f8038e7e7969abb3f1b7c2a811225e9296da208539e0f79c5251d6cac0025" 1446 | dependencies = [ 1447 | "vte", 1448 | ] 1449 | 1450 | [[package]] 1451 | name = "strum" 1452 | version = "0.26.3" 1453 | source = "registry+https://github.com/rust-lang/crates.io-index" 1454 | checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" 1455 | 1456 | [[package]] 1457 | name = "strum_macros" 1458 | version = "0.26.4" 1459 | source = "registry+https://github.com/rust-lang/crates.io-index" 1460 | checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" 1461 | dependencies = [ 1462 | "heck", 1463 | "proc-macro2", 1464 | "quote", 1465 | "rustversion", 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.1.0" 1481 | source = "registry+https://github.com/rust-lang/crates.io-index" 1482 | checksum = "804f44ed3c63152de6a9f90acbea1a110441de43006ea51bcce8f436196a288b" 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.98" 1493 | source = "registry+https://github.com/rust-lang/crates.io-index" 1494 | checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" 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.33.1" 1513 | source = "registry+https://github.com/rust-lang/crates.io-index" 1514 | checksum = "4fc858248ea01b66f19d8e8a6d55f41deaf91e9d495246fd01368d99935c6c01" 1515 | dependencies = [ 1516 | "core-foundation-sys", 1517 | "libc", 1518 | "memchr", 1519 | "ntapi", 1520 | "rayon", 1521 | "windows 0.57.0", 1522 | ] 1523 | 1524 | [[package]] 1525 | name = "terminal_size" 1526 | version = "0.4.1" 1527 | source = "registry+https://github.com/rust-lang/crates.io-index" 1528 | checksum = "5352447f921fda68cf61b4101566c0bdb5104eff6804d0678e5227580ab6a4e9" 1529 | dependencies = [ 1530 | "rustix", 1531 | "windows-sys 0.59.0", 1532 | ] 1533 | 1534 | [[package]] 1535 | name = "textwrap" 1536 | version = "0.16.1" 1537 | source = "registry+https://github.com/rust-lang/crates.io-index" 1538 | checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" 1539 | dependencies = [ 1540 | "unicode-linebreak", 1541 | "unicode-width", 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.12" 1556 | source = "registry+https://github.com/rust-lang/crates.io-index" 1557 | checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" 1558 | dependencies = [ 1559 | "thiserror-impl 2.0.12", 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.12" 1576 | source = "registry+https://github.com/rust-lang/crates.io-index" 1577 | checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" 1578 | dependencies = [ 1579 | "proc-macro2", 1580 | "quote", 1581 | "syn", 1582 | ] 1583 | 1584 | [[package]] 1585 | name = "time" 1586 | version = "0.3.37" 1587 | source = "registry+https://github.com/rust-lang/crates.io-index" 1588 | checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21" 1589 | dependencies = [ 1590 | "deranged", 1591 | "itoa", 1592 | "libc", 1593 | "num-conv", 1594 | "num_threads", 1595 | "powerfmt", 1596 | "serde", 1597 | "time-core", 1598 | "time-macros", 1599 | ] 1600 | 1601 | [[package]] 1602 | name = "time-core" 1603 | version = "0.1.2" 1604 | source = "registry+https://github.com/rust-lang/crates.io-index" 1605 | checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" 1606 | 1607 | [[package]] 1608 | name = "time-macros" 1609 | version = "0.2.19" 1610 | source = "registry+https://github.com/rust-lang/crates.io-index" 1611 | checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de" 1612 | dependencies = [ 1613 | "num-conv", 1614 | "time-core", 1615 | ] 1616 | 1617 | [[package]] 1618 | name = "typeid" 1619 | version = "1.0.2" 1620 | source = "registry+https://github.com/rust-lang/crates.io-index" 1621 | checksum = "0e13db2e0ccd5e14a544e8a246ba2312cd25223f616442d7f2cb0e3db614236e" 1622 | 1623 | [[package]] 1624 | name = "typetag" 1625 | version = "0.2.19" 1626 | source = "registry+https://github.com/rust-lang/crates.io-index" 1627 | checksum = "044fc3365ddd307c297fe0fe7b2e70588cdab4d0f62dc52055ca0d11b174cf0e" 1628 | dependencies = [ 1629 | "erased-serde", 1630 | "inventory", 1631 | "once_cell", 1632 | "serde", 1633 | "typetag-impl", 1634 | ] 1635 | 1636 | [[package]] 1637 | name = "typetag-impl" 1638 | version = "0.2.19" 1639 | source = "registry+https://github.com/rust-lang/crates.io-index" 1640 | checksum = "d9d30226ac9cbd2d1ff775f74e8febdab985dab14fb14aa2582c29a92d5555dc" 1641 | dependencies = [ 1642 | "proc-macro2", 1643 | "quote", 1644 | "syn", 1645 | ] 1646 | 1647 | [[package]] 1648 | name = "tz-rs" 1649 | version = "0.7.0" 1650 | source = "registry+https://github.com/rust-lang/crates.io-index" 1651 | checksum = "e1450bf2b99397e72070e7935c89facaa80092ac812502200375f1f7d33c71a1" 1652 | 1653 | [[package]] 1654 | name = "tzdb" 1655 | version = "0.7.2" 1656 | source = "registry+https://github.com/rust-lang/crates.io-index" 1657 | checksum = "0be2ea5956f295449f47c0b825c5e109022ff1a6a53bb4f77682a87c2341fbf5" 1658 | dependencies = [ 1659 | "iana-time-zone", 1660 | "tz-rs", 1661 | "tzdb_data", 1662 | ] 1663 | 1664 | [[package]] 1665 | name = "tzdb_data" 1666 | version = "0.2.2" 1667 | source = "registry+https://github.com/rust-lang/crates.io-index" 1668 | checksum = "9c4c81d75033770e40fbd3643ce7472a1a9fd301f90b7139038228daf8af03ec" 1669 | dependencies = [ 1670 | "tz-rs", 1671 | ] 1672 | 1673 | [[package]] 1674 | name = "unicase" 1675 | version = "2.8.1" 1676 | source = "registry+https://github.com/rust-lang/crates.io-index" 1677 | checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" 1678 | 1679 | [[package]] 1680 | name = "unicode-ident" 1681 | version = "1.0.16" 1682 | source = "registry+https://github.com/rust-lang/crates.io-index" 1683 | checksum = "a210d160f08b701c8721ba1c726c11662f877ea6b7094007e1ca9a1041945034" 1684 | 1685 | [[package]] 1686 | name = "unicode-linebreak" 1687 | version = "0.1.5" 1688 | source = "registry+https://github.com/rust-lang/crates.io-index" 1689 | checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" 1690 | 1691 | [[package]] 1692 | name = "unicode-width" 1693 | version = "0.1.14" 1694 | source = "registry+https://github.com/rust-lang/crates.io-index" 1695 | checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" 1696 | 1697 | [[package]] 1698 | name = "unicode-xid" 1699 | version = "0.2.6" 1700 | source = "registry+https://github.com/rust-lang/crates.io-index" 1701 | checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" 1702 | 1703 | [[package]] 1704 | name = "vte" 1705 | version = "0.14.1" 1706 | source = "registry+https://github.com/rust-lang/crates.io-index" 1707 | checksum = "231fdcd7ef3037e8330d8e17e61011a2c244126acc0a982f4040ac3f9f0bc077" 1708 | dependencies = [ 1709 | "memchr", 1710 | ] 1711 | 1712 | [[package]] 1713 | name = "wasi" 1714 | version = "0.11.0+wasi-snapshot-preview1" 1715 | source = "registry+https://github.com/rust-lang/crates.io-index" 1716 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 1717 | 1718 | [[package]] 1719 | name = "wasm-bindgen" 1720 | version = "0.2.100" 1721 | source = "registry+https://github.com/rust-lang/crates.io-index" 1722 | checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" 1723 | dependencies = [ 1724 | "cfg-if", 1725 | "once_cell", 1726 | "rustversion", 1727 | "wasm-bindgen-macro", 1728 | ] 1729 | 1730 | [[package]] 1731 | name = "wasm-bindgen-backend" 1732 | version = "0.2.100" 1733 | source = "registry+https://github.com/rust-lang/crates.io-index" 1734 | checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" 1735 | dependencies = [ 1736 | "bumpalo", 1737 | "log", 1738 | "proc-macro2", 1739 | "quote", 1740 | "syn", 1741 | "wasm-bindgen-shared", 1742 | ] 1743 | 1744 | [[package]] 1745 | name = "wasm-bindgen-macro" 1746 | version = "0.2.100" 1747 | source = "registry+https://github.com/rust-lang/crates.io-index" 1748 | checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" 1749 | dependencies = [ 1750 | "quote", 1751 | "wasm-bindgen-macro-support", 1752 | ] 1753 | 1754 | [[package]] 1755 | name = "wasm-bindgen-macro-support" 1756 | version = "0.2.100" 1757 | source = "registry+https://github.com/rust-lang/crates.io-index" 1758 | checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" 1759 | dependencies = [ 1760 | "proc-macro2", 1761 | "quote", 1762 | "syn", 1763 | "wasm-bindgen-backend", 1764 | "wasm-bindgen-shared", 1765 | ] 1766 | 1767 | [[package]] 1768 | name = "wasm-bindgen-shared" 1769 | version = "0.2.100" 1770 | source = "registry+https://github.com/rust-lang/crates.io-index" 1771 | checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" 1772 | dependencies = [ 1773 | "unicode-ident", 1774 | ] 1775 | 1776 | [[package]] 1777 | name = "web-time" 1778 | version = "1.1.0" 1779 | source = "registry+https://github.com/rust-lang/crates.io-index" 1780 | checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" 1781 | dependencies = [ 1782 | "js-sys", 1783 | "wasm-bindgen", 1784 | ] 1785 | 1786 | [[package]] 1787 | name = "widestring" 1788 | version = "1.1.0" 1789 | source = "registry+https://github.com/rust-lang/crates.io-index" 1790 | checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" 1791 | 1792 | [[package]] 1793 | name = "winapi" 1794 | version = "0.3.9" 1795 | source = "registry+https://github.com/rust-lang/crates.io-index" 1796 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 1797 | dependencies = [ 1798 | "winapi-i686-pc-windows-gnu", 1799 | "winapi-x86_64-pc-windows-gnu", 1800 | ] 1801 | 1802 | [[package]] 1803 | name = "winapi-i686-pc-windows-gnu" 1804 | version = "0.4.0" 1805 | source = "registry+https://github.com/rust-lang/crates.io-index" 1806 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 1807 | 1808 | [[package]] 1809 | name = "winapi-x86_64-pc-windows-gnu" 1810 | version = "0.4.0" 1811 | source = "registry+https://github.com/rust-lang/crates.io-index" 1812 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 1813 | 1814 | [[package]] 1815 | name = "windows" 1816 | version = "0.56.0" 1817 | source = "registry+https://github.com/rust-lang/crates.io-index" 1818 | checksum = "1de69df01bdf1ead2f4ac895dc77c9351aefff65b2f3db429a343f9cbf05e132" 1819 | dependencies = [ 1820 | "windows-core 0.56.0", 1821 | "windows-targets 0.52.6", 1822 | ] 1823 | 1824 | [[package]] 1825 | name = "windows" 1826 | version = "0.57.0" 1827 | source = "registry+https://github.com/rust-lang/crates.io-index" 1828 | checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143" 1829 | dependencies = [ 1830 | "windows-core 0.57.0", 1831 | "windows-targets 0.52.6", 1832 | ] 1833 | 1834 | [[package]] 1835 | name = "windows-core" 1836 | version = "0.52.0" 1837 | source = "registry+https://github.com/rust-lang/crates.io-index" 1838 | checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" 1839 | dependencies = [ 1840 | "windows-targets 0.52.6", 1841 | ] 1842 | 1843 | [[package]] 1844 | name = "windows-core" 1845 | version = "0.56.0" 1846 | source = "registry+https://github.com/rust-lang/crates.io-index" 1847 | checksum = "4698e52ed2d08f8658ab0c39512a7c00ee5fe2688c65f8c0a4f06750d729f2a6" 1848 | dependencies = [ 1849 | "windows-implement 0.56.0", 1850 | "windows-interface 0.56.0", 1851 | "windows-result", 1852 | "windows-targets 0.52.6", 1853 | ] 1854 | 1855 | [[package]] 1856 | name = "windows-core" 1857 | version = "0.57.0" 1858 | source = "registry+https://github.com/rust-lang/crates.io-index" 1859 | checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d" 1860 | dependencies = [ 1861 | "windows-implement 0.57.0", 1862 | "windows-interface 0.57.0", 1863 | "windows-result", 1864 | "windows-targets 0.52.6", 1865 | ] 1866 | 1867 | [[package]] 1868 | name = "windows-implement" 1869 | version = "0.56.0" 1870 | source = "registry+https://github.com/rust-lang/crates.io-index" 1871 | checksum = "f6fc35f58ecd95a9b71c4f2329b911016e6bec66b3f2e6a4aad86bd2e99e2f9b" 1872 | dependencies = [ 1873 | "proc-macro2", 1874 | "quote", 1875 | "syn", 1876 | ] 1877 | 1878 | [[package]] 1879 | name = "windows-implement" 1880 | version = "0.57.0" 1881 | source = "registry+https://github.com/rust-lang/crates.io-index" 1882 | checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" 1883 | dependencies = [ 1884 | "proc-macro2", 1885 | "quote", 1886 | "syn", 1887 | ] 1888 | 1889 | [[package]] 1890 | name = "windows-interface" 1891 | version = "0.56.0" 1892 | source = "registry+https://github.com/rust-lang/crates.io-index" 1893 | checksum = "08990546bf4edef8f431fa6326e032865f27138718c587dc21bc0265bbcb57cc" 1894 | dependencies = [ 1895 | "proc-macro2", 1896 | "quote", 1897 | "syn", 1898 | ] 1899 | 1900 | [[package]] 1901 | name = "windows-interface" 1902 | version = "0.57.0" 1903 | source = "registry+https://github.com/rust-lang/crates.io-index" 1904 | checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" 1905 | dependencies = [ 1906 | "proc-macro2", 1907 | "quote", 1908 | "syn", 1909 | ] 1910 | 1911 | [[package]] 1912 | name = "windows-result" 1913 | version = "0.1.2" 1914 | source = "registry+https://github.com/rust-lang/crates.io-index" 1915 | checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" 1916 | dependencies = [ 1917 | "windows-targets 0.52.6", 1918 | ] 1919 | 1920 | [[package]] 1921 | name = "windows-sys" 1922 | version = "0.48.0" 1923 | source = "registry+https://github.com/rust-lang/crates.io-index" 1924 | checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 1925 | dependencies = [ 1926 | "windows-targets 0.48.5", 1927 | ] 1928 | 1929 | [[package]] 1930 | name = "windows-sys" 1931 | version = "0.52.0" 1932 | source = "registry+https://github.com/rust-lang/crates.io-index" 1933 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 1934 | dependencies = [ 1935 | "windows-targets 0.52.6", 1936 | ] 1937 | 1938 | [[package]] 1939 | name = "windows-sys" 1940 | version = "0.59.0" 1941 | source = "registry+https://github.com/rust-lang/crates.io-index" 1942 | checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 1943 | dependencies = [ 1944 | "windows-targets 0.52.6", 1945 | ] 1946 | 1947 | [[package]] 1948 | name = "windows-targets" 1949 | version = "0.48.5" 1950 | source = "registry+https://github.com/rust-lang/crates.io-index" 1951 | checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 1952 | dependencies = [ 1953 | "windows_aarch64_gnullvm 0.48.5", 1954 | "windows_aarch64_msvc 0.48.5", 1955 | "windows_i686_gnu 0.48.5", 1956 | "windows_i686_msvc 0.48.5", 1957 | "windows_x86_64_gnu 0.48.5", 1958 | "windows_x86_64_gnullvm 0.48.5", 1959 | "windows_x86_64_msvc 0.48.5", 1960 | ] 1961 | 1962 | [[package]] 1963 | name = "windows-targets" 1964 | version = "0.52.6" 1965 | source = "registry+https://github.com/rust-lang/crates.io-index" 1966 | checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 1967 | dependencies = [ 1968 | "windows_aarch64_gnullvm 0.52.6", 1969 | "windows_aarch64_msvc 0.52.6", 1970 | "windows_i686_gnu 0.52.6", 1971 | "windows_i686_gnullvm", 1972 | "windows_i686_msvc 0.52.6", 1973 | "windows_x86_64_gnu 0.52.6", 1974 | "windows_x86_64_gnullvm 0.52.6", 1975 | "windows_x86_64_msvc 0.52.6", 1976 | ] 1977 | 1978 | [[package]] 1979 | name = "windows_aarch64_gnullvm" 1980 | version = "0.48.5" 1981 | source = "registry+https://github.com/rust-lang/crates.io-index" 1982 | checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 1983 | 1984 | [[package]] 1985 | name = "windows_aarch64_gnullvm" 1986 | version = "0.52.6" 1987 | source = "registry+https://github.com/rust-lang/crates.io-index" 1988 | checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 1989 | 1990 | [[package]] 1991 | name = "windows_aarch64_msvc" 1992 | version = "0.48.5" 1993 | source = "registry+https://github.com/rust-lang/crates.io-index" 1994 | checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 1995 | 1996 | [[package]] 1997 | name = "windows_aarch64_msvc" 1998 | version = "0.52.6" 1999 | source = "registry+https://github.com/rust-lang/crates.io-index" 2000 | checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 2001 | 2002 | [[package]] 2003 | name = "windows_i686_gnu" 2004 | version = "0.48.5" 2005 | source = "registry+https://github.com/rust-lang/crates.io-index" 2006 | checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 2007 | 2008 | [[package]] 2009 | name = "windows_i686_gnu" 2010 | version = "0.52.6" 2011 | source = "registry+https://github.com/rust-lang/crates.io-index" 2012 | checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 2013 | 2014 | [[package]] 2015 | name = "windows_i686_gnullvm" 2016 | version = "0.52.6" 2017 | source = "registry+https://github.com/rust-lang/crates.io-index" 2018 | checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 2019 | 2020 | [[package]] 2021 | name = "windows_i686_msvc" 2022 | version = "0.48.5" 2023 | source = "registry+https://github.com/rust-lang/crates.io-index" 2024 | checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 2025 | 2026 | [[package]] 2027 | name = "windows_i686_msvc" 2028 | version = "0.52.6" 2029 | source = "registry+https://github.com/rust-lang/crates.io-index" 2030 | checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 2031 | 2032 | [[package]] 2033 | name = "windows_x86_64_gnu" 2034 | version = "0.48.5" 2035 | source = "registry+https://github.com/rust-lang/crates.io-index" 2036 | checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 2037 | 2038 | [[package]] 2039 | name = "windows_x86_64_gnu" 2040 | version = "0.52.6" 2041 | source = "registry+https://github.com/rust-lang/crates.io-index" 2042 | checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 2043 | 2044 | [[package]] 2045 | name = "windows_x86_64_gnullvm" 2046 | version = "0.48.5" 2047 | source = "registry+https://github.com/rust-lang/crates.io-index" 2048 | checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 2049 | 2050 | [[package]] 2051 | name = "windows_x86_64_gnullvm" 2052 | version = "0.52.6" 2053 | source = "registry+https://github.com/rust-lang/crates.io-index" 2054 | checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 2055 | 2056 | [[package]] 2057 | name = "windows_x86_64_msvc" 2058 | version = "0.48.5" 2059 | source = "registry+https://github.com/rust-lang/crates.io-index" 2060 | checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 2061 | 2062 | [[package]] 2063 | name = "windows_x86_64_msvc" 2064 | version = "0.52.6" 2065 | source = "registry+https://github.com/rust-lang/crates.io-index" 2066 | checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 2067 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "nu_plugin_emoji" 3 | version = "0.13.0" 4 | authors = ["Darren Schroeder"] 5 | edition = "2021" 6 | repository = "https://github.com/fdncred/nu_plugin_emoji" 7 | description = "a nushell plugin called emoji" 8 | license = "MIT" 9 | 10 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 11 | 12 | [dependencies] 13 | # nushell dependencies 14 | nu-plugin = "0.104.0" 15 | nu-protocol = "0.104.0" 16 | nu-path = "0.104.0" 17 | 18 | # for local development, you can use a path dependency 19 | # nu-plugin = { path = "../nushell/crates/nu-plugin", version = "0.98.0" } 20 | # nu-protocol = { path = "../nushell/crates/nu-protocol", version = "0.98.0" } 21 | # nu-path = { path = "../nushell/crates/nu-path", version = "0.98.0" } 22 | 23 | emojis = "0.6.4" 24 | itertools = "0.14.0" 25 | 26 | [dev-dependencies] 27 | nu-plugin-test-support = "0.104.0" 28 | # nu-plugin-test-support = { path = "../nushell/crates/nu-plugin-test-support" } 29 | 30 | [profile.release] 31 | opt-level = "s" # Optimize for size 32 | strip = "debuginfo" 33 | lto = "thin" 34 | 35 | [profile.dev] 36 | opt-level = 0 37 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 - 2022 The Nushell Project Developers 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # nu_plugin_emoji 2 | 3 | This nushell plugin wraps the `emojis` create in an effort to help create emojis more easily. 4 | 5 | ## Usage: 6 | 7 | ``` 8 | ❯ emoji --help 9 | Create emojis from text 10 | 11 | Usage: 12 | > emoji {flags} (emoji-name) 13 | 14 | Flags: 15 | -h, --help - Display the help message for this command 16 | -l, --list - List stuff 17 | 18 | Parameters: 19 | emoji-name : name of the emoji shorthand with colons before and after e.g. :grinning: (optional) 20 | 21 | Examples: 22 | This is the example descripion 23 | > some pipeline involving emoji 24 | ``` 25 | 26 | ``` 27 | ❯ emoji :wave: 28 | 👋 29 | ``` 30 | 31 | ``` 32 | ❯ emoji --list | where shortcodes =~ wave 33 | ╭─#─┬emoji┬────name─────┬unicode_version┬─────group─────┬────utf8_bytes────┬codepoints┬shortcodes┬────────────skin_tones────────────╮ 34 | │ 0 │ 👋 │ waving hand │ 0.6 │ PeopleAndBody │ [F0, 9F, 91, 8B] │ 1F44B │ wave │ 👋, 👋🏻, 👋🏼, 👋🏽, 👋🏾, 👋🏿 │ 35 | ╰───┴─────┴─────────────┴───────────────┴───────────────┴──────────────────┴──────────┴──────────┴──────────────────────────────────╯ 36 | ``` 37 | 38 | ``` 39 | ❯ emoji --list | first 20 40 | ╭─#──┬─emo┬──────────────name──────────────┬─unico┬───────group───────┬────────utf8_bytes────────┬─codepoints┬───────────shortcodes───────────┬─s╮ 41 | │ 0 │ 😀 │ grinning face │ 1.0 │ SmileysAndEmotion │ [F0, 9F, 98, 80] │ 1F600 │ grinning │ │ 42 | │ 1 │ 😃 │ grinning face with big eyes │ 0.6 │ SmileysAndEmotion │ [F0, 9F, 98, 83] │ 1F603 │ smiley │ │ 43 | │ 2 │ 😄 │ grinning face with smiling │ 0.6 │ SmileysAndEmotion │ [F0, 9F, 98, 84] │ 1F604 │ smile │ │ 44 | │ │ │ eyes │ │ │ │ │ │ │ 45 | │ 3 │ 😁 │ beaming face with smiling eyes │ 0.6 │ SmileysAndEmotion │ [F0, 9F, 98, 81] │ 1F601 │ grin │ │ 46 | │ 4 │ 😆 │ grinning squinting face │ 0.6 │ SmileysAndEmotion │ [F0, 9F, 98, 86] │ 1F606 │ laughing, satisfied │ │ 47 | │ 5 │ 😅 │ grinning face with sweat │ 0.6 │ SmileysAndEmotion │ [F0, 9F, 98, 85] │ 1F605 │ sweat_smile │ │ 48 | │ 6 │ 🤣 │ rolling on the floor laughing │ 3.0 │ SmileysAndEmotion │ [F0, 9F, A4, A3] │ 1F923 │ rofl │ │ 49 | │ 7 │ 😂 │ face with tears of joy │ 0.6 │ SmileysAndEmotion │ [F0, 9F, 98, 82] │ 1F602 │ joy │ │ 50 | │ 8 │ 🙂 │ slightly smiling face │ 1.0 │ SmileysAndEmotion │ [F0, 9F, 99, 82] │ 1F642 │ slightly_smiling_face │ │ 51 | │ 9 │ 🙃 │ upside-down face │ 1.0 │ SmileysAndEmotion │ [F0, 9F, 99, 83] │ 1F643 │ upside_down_face │ │ 52 | │ 10 │ 🫠 │ melting face │ 14.0 │ SmileysAndEmotion │ [F0, 9F, AB, A0] │ 1FAE0 │ melting_face │ │ 53 | │ 11 │ 😉 │ winking face │ 0.6 │ SmileysAndEmotion │ [F0, 9F, 98, 89] │ 1F609 │ wink │ │ 54 | │ 12 │ 😊 │ smiling face with smiling eyes │ 0.6 │ SmileysAndEmotion │ [F0, 9F, 98, 8A] │ 1F60A │ blush │ │ 55 | │ 13 │ 😇 │ smiling face with halo │ 1.0 │ SmileysAndEmotion │ [F0, 9F, 98, 87] │ 1F607 │ innocent │ │ 56 | │ 14 │ 🥰 │ smiling face with hearts │ 11.0 │ SmileysAndEmotion │ [F0, 9F, A5, B0] │ 1F970 │ smiling_face_with_three_hearts │ │ 57 | │ 15 │ 😍 │ smiling face with heart-eyes │ 0.6 │ SmileysAndEmotion │ [F0, 9F, 98, 8D] │ 1F60D │ heart_eyes │ │ 58 | │ 16 │ 🤩 │ star-struck │ 5.0 │ SmileysAndEmotion │ [F0, 9F, A4, A9] │ 1F929 │ star_struck │ │ 59 | │ 17 │ 😘 │ face blowing a kiss │ 0.6 │ SmileysAndEmotion │ [F0, 9F, 98, 98] │ 1F618 │ kissing_heart │ │ 60 | │ 18 │ 😗 │ kissing face │ 1.0 │ SmileysAndEmotion │ [F0, 9F, 98, 97] │ 1F617 │ kissing │ │ 61 | │ 19 │ ☺️ │ smiling face │ 0.6 │ SmileysAndEmotion │ [E2, 98, BA, EF, B8, 8F] │ 263A FE0F │ relaxed │ │ 62 | ╰─#──┴─emo┴──────────────name──────────────┴─unico┴───────group───────┴────────utf8_bytes────────┴─codepoints┴───────────shortcodes───────────┴─s╯ 63 | ``` 64 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | use itertools::Itertools; 2 | use nu_plugin::{ 3 | serve_plugin, EngineInterface, EvaluatedCall, MsgPackSerializer, Plugin, PluginCommand, 4 | SimplePluginCommand, 5 | }; 6 | use nu_protocol::{ 7 | record, Category, Example, LabeledError, Signature, Span, Spanned, SyntaxShape, Value, 8 | }; 9 | use std::io::Write; 10 | 11 | struct EmojiPlugin; 12 | 13 | impl Plugin for EmojiPlugin { 14 | fn version(&self) -> String { 15 | env!("CARGO_PKG_VERSION").into() 16 | } 17 | 18 | fn commands(&self) -> Vec>> { 19 | vec![Box::new(Emoji)] 20 | } 21 | } 22 | 23 | struct Emoji; 24 | 25 | impl SimplePluginCommand for Emoji { 26 | type Plugin = EmojiPlugin; 27 | 28 | fn name(&self) -> &str { 29 | "emoji" 30 | } 31 | 32 | fn description(&self) -> &str { 33 | "Create emojis from text." 34 | } 35 | 36 | fn signature(&self) -> Signature { 37 | Signature::build(PluginCommand::name(self)) 38 | .optional( 39 | "emoji-name", 40 | SyntaxShape::String, 41 | "name of the emoji shorthand with colons before and after e.g. :grinning:", 42 | ) 43 | .switch("list", "List stuff", Some('l')) 44 | .category(Category::Experimental) 45 | } 46 | 47 | fn examples(&self) -> Vec { 48 | vec![ 49 | Example { 50 | description: "Show the smirk emoji".into(), 51 | example: "emoji :smirk:".into(), 52 | result: None, 53 | }, 54 | Example { 55 | description: "List all known emojis".into(), 56 | example: "emoji --list".into(), 57 | result: None, 58 | }, 59 | ] 60 | } 61 | 62 | fn run( 63 | &self, 64 | _plugin: &EmojiPlugin, 65 | _engine: &EngineInterface, 66 | call: &EvaluatedCall, 67 | _input: &Value, 68 | ) -> Result { 69 | let param: Option> = call.opt(0)?; 70 | let list = call.has_flag("list")?; 71 | 72 | if list { 73 | let mut rec = vec![]; 74 | for emoji in emojis::iter() { 75 | let span = Span::unknown(); 76 | let em = emoji.as_str().to_string(); 77 | 78 | let emoji_chars = em.chars().collect::>(); 79 | let mut cp = String::new(); 80 | for c in emoji_chars { 81 | cp.push_str(&format!("{:X} ", c as u32)); 82 | } 83 | 84 | let na = emoji.name().to_string(); 85 | let unic = emoji.unicode_version(); 86 | let gr = emoji.group(); 87 | let bi = emoji.as_bytes(); 88 | // let sh = emoji.shortcode(); 89 | let shc = emoji.shortcodes(); 90 | // let sk = emoji.skin_tone(); 91 | // 1F44B ; fully-qualified # 👋 E0.6 waving hand 92 | // 1F44B 1F3FB ; fully-qualified # 👋🏻 E1.0 waving hand: light skin tone 93 | // 1F44B 1F3FC ; fully-qualified # 👋🏼 E1.0 waving hand: medium-light skin tone 94 | // 1F44B 1F3FD ; fully-qualified # 👋🏽 E1.0 waving hand: medium skin tone 95 | // 1F44B 1F3FE ; fully-qualified # 👋🏾 E1.0 waving hand: medium-dark skin tone 96 | // 1F44B 1F3FF ; fully-qualified # 👋🏿 E1.0 waving hand: dark skin tone 97 | let mut sks = vec![]; 98 | if let Some(st) = emoji.skin_tones() { 99 | for s in st { 100 | sks.push(s.as_str()); 101 | } 102 | }; 103 | 104 | rec.push(Value::record( 105 | record! { 106 | "emoji" => Value::string(em, span), 107 | "name" => Value::string(na, span), 108 | "unicode_version" => Value::string(format!("{}.{}", unic.major(), unic.minor()), span), 109 | "group" => Value::string(format!("{:?}", gr), span), 110 | "utf8_bytes" => Value::string(format!("{:X?}", bi), span), 111 | "codepoints" => Value::string(cp.trim().to_string(), span), 112 | "shortcodes" => Value::string(shc.into_iter().join(", "), span), 113 | "skin_tones" => Value::string(sks.join(", "), span), 114 | }, 115 | span, 116 | )) 117 | } 118 | 119 | return Ok(Value::list(rec, call.head)); 120 | } 121 | 122 | if let Some(emoj) = param { 123 | let emoji = replace(&emoj.item).map_err(|op| { 124 | LabeledError::new(format!("Error in emoji plugin: {}", op)) 125 | .with_label("Error in emoji plugin", emoj.span) 126 | })?; 127 | return Ok(Value::string(emoji, emoj.span)); 128 | } else { 129 | return Err(LabeledError::new("requires some input, got None") 130 | .with_label("Expected something from pipeline", call.head)); 131 | } 132 | } 133 | } 134 | 135 | fn main() { 136 | serve_plugin(&EmojiPlugin, MsgPackSerializer); 137 | } 138 | 139 | fn replace(mut s: &str) -> Result { 140 | // The meaning of the index values is as follows. 141 | // 142 | // : r o c k e t : 143 | // ^ ^ ^ ^ 144 | // i m n j 145 | // 146 | // i..j gives ":rocket:" 147 | // m..n gives "rocket" 148 | let mut o = Vec::new(); 149 | while let Some((i, m, n, j)) = s 150 | .find(':') 151 | .map(|i| (i, i + 1)) 152 | .and_then(|(i, m)| s[m..].find(':').map(|x| (i, m, m + x, m + x + 1))) 153 | { 154 | match emojis::get_by_shortcode(&s[m..n]) { 155 | Some(emoji) => { 156 | // Output everything preceding, except the first colon. 157 | o.write_all(s[..i].as_bytes())?; 158 | // Output the emoji. 159 | o.write_all(emoji.as_bytes())?; 160 | // Update the string to past the last colon. 161 | s = &s[j..]; 162 | } 163 | None => { 164 | // Output everything preceding but not including the colon. 165 | o.write_all(s[..n].as_bytes())?; 166 | // Update the string to start with the last colon. 167 | s = &s[n..]; 168 | } 169 | } 170 | } 171 | o.write_all(s.as_bytes())?; 172 | Ok(String::from_utf8(o).unwrap()) 173 | } 174 | --------------------------------------------------------------------------------