├── .gitignore ├── .gitmodules ├── src ├── main.rs ├── theme.rs ├── terminal.rs ├── highlight.rs └── plugin.rs ├── rustfmt.toml ├── Cargo.toml ├── LICENSE ├── README.md ├── syntaxes └── patches │ └── nushell.sublime-syntax.patch └── Cargo.lock /.gitignore: -------------------------------------------------------------------------------- 1 | # Cargo build output 2 | /target 3 | 4 | # JetBrains IDE 5 | /.idea 6 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "syntaxes/nushell"] 2 | path = syntaxes/nushell 3 | url = https://github.com/kurokirasama/nushell_sublime_syntax.git 4 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | #![allow(clippy::result_large_err)] 2 | 3 | use nu_plugin::{serve_plugin, MsgPackSerializer}; 4 | use plugin::HighlightPlugin; 5 | 6 | mod highlight; 7 | mod plugin; 8 | mod terminal; 9 | mod theme; 10 | 11 | /// The main function that serves the plugin using MsgPackSerializer. 12 | fn main() { 13 | serve_plugin(&HighlightPlugin, MsgPackSerializer); 14 | } 15 | -------------------------------------------------------------------------------- /rustfmt.toml: -------------------------------------------------------------------------------- 1 | unstable_features = true 2 | edition = "2021" 3 | binop_separator = "Back" 4 | control_brace_style = "ClosingNextLine" 5 | format_strings = true 6 | hex_literal_case = "Upper" 7 | imports_granularity = "Module" 8 | overflow_delimited_expr = true 9 | reorder_impl_items = true 10 | reorder_imports = true 11 | group_imports = "StdExternalCrate" 12 | trailing_comma = "Never" 13 | use_field_init_shorthand = true 14 | wrap_comments = true 15 | -------------------------------------------------------------------------------- /src/theme.rs: -------------------------------------------------------------------------------- 1 | use nu_protocol::{IntoValue, Span, Value}; 2 | 3 | /// Description of a theme. 4 | #[derive(Debug, IntoValue)] 5 | pub struct ThemeDescription { 6 | pub id: String, 7 | pub name: Option, 8 | pub author: Option, 9 | pub default: bool 10 | } 11 | 12 | /// List of theme descriptions. 13 | #[derive(Debug)] 14 | pub struct ListThemes(pub Vec); 15 | 16 | impl IntoValue for ListThemes { 17 | fn into_value(self, span: Span) -> Value { 18 | self.0.into_value(span) 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "nu_plugin_highlight" 3 | version = "1.4.10+0.108.0" 4 | authors = ["Tim 'Piepmatz' Hesse"] 5 | edition = "2021" 6 | repository = "https://github.com/cptpiepmatz/nu-plugin-highlight" 7 | description = "A nushell plugin for syntax highlighting" 8 | license = "MIT" 9 | keywords = ["nu", "plugin", "syntax", "highlighting"] 10 | categories = ["command-line-utilities", "development-tools", "value-formatting"] 11 | 12 | [workspace.dependencies] 13 | # share dependencies with build dependencies 14 | syntect = "5" 15 | bat = { version = "0.24", default-features = false } 16 | 17 | [dependencies] 18 | # nu 19 | nu-plugin = "0.108.0" 20 | nu-protocol = { version = "0.108.0", features = ["sqlite"] } # remove feature in next release 21 | nu-path = "0.108.0" 22 | 23 | # highlighting 24 | syntect = { workspace = true } 25 | nu-ansi-term = "0.50" 26 | ansi_colours = "1" 27 | bat = { workspace = true } 28 | 29 | # guess the type 30 | mime_guess = "2" 31 | 32 | [build-dependencies] 33 | patch-apply = "0.8.3" 34 | syntect = { workspace = true } 35 | bat = { workspace = true } 36 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Tim 'Piepmatz' Hesse 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 | -------------------------------------------------------------------------------- /src/terminal.rs: -------------------------------------------------------------------------------- 1 | // pulled from: 2 | // https://github.com/sharkdp/bat/blob/8676bbf97f2832ad2231e102ca9c9b7b72267fda/src/terminal.rs 3 | // applied patch to 64-67 to fix default update construction 4 | #![cfg_attr(rustfmt, rustfmt_skip)] 5 | 6 | use nu_ansi_term::Color::{self, Fixed, Rgb}; 7 | use nu_ansi_term::{self, Style}; 8 | 9 | use syntect::highlighting::{self, FontStyle}; 10 | 11 | pub fn to_ansi_color(color: highlighting::Color, true_color: bool) -> Option { 12 | if color.a == 0 { 13 | // Themes can specify one of the user-configurable terminal colors by 14 | // encoding them as #RRGGBBAA with AA set to 00 (transparent) and RR set 15 | // to the 8-bit color palette number. The built-in themes ansi, base16, 16 | // and base16-256 use this. 17 | Some(match color.r { 18 | // For the first 8 colors, use the Color enum to produce ANSI escape 19 | // sequences using codes 30-37 (foreground) and 40-47 (background). 20 | // For example, red foreground is \x1b[31m. This works on terminals 21 | // without 256-color support. 22 | 0x00 => Color::Black, 23 | 0x01 => Color::Red, 24 | 0x02 => Color::Green, 25 | 0x03 => Color::Yellow, 26 | 0x04 => Color::Blue, 27 | 0x05 => Color::Purple, 28 | 0x06 => Color::Cyan, 29 | 0x07 => Color::White, 30 | // For all other colors, use Fixed to produce escape sequences using 31 | // codes 38;5 (foreground) and 48;5 (background). For example, 32 | // bright red foreground is \x1b[38;5;9m. This only works on 33 | // terminals with 256-color support. 34 | // 35 | // TODO: When ansi_term adds support for bright variants using codes 36 | // 90-97 (foreground) and 100-107 (background), we should use those 37 | // for values 0x08 to 0x0f and only use Fixed for 0x10 to 0xff. 38 | n => Fixed(n), 39 | }) 40 | } else if color.a == 1 { 41 | // Themes can specify the terminal's default foreground/background color 42 | // (i.e. no escape sequence) using the encoding #RRGGBBAA with AA set to 43 | // 01. The built-in theme ansi uses this. 44 | None 45 | } else if true_color { 46 | Some(Rgb(color.r, color.g, color.b)) 47 | } else { 48 | Some(Fixed(ansi_colours::ansi256_from_rgb(( 49 | color.r, color.g, color.b, 50 | )))) 51 | } 52 | } 53 | 54 | pub fn as_terminal_escaped( 55 | style: highlighting::Style, 56 | text: &str, 57 | true_color: bool, 58 | colored: bool, 59 | italics: bool, 60 | background_color: Option, 61 | ) -> String { 62 | if text.is_empty() { 63 | return text.to_string(); 64 | } 65 | 66 | let mut style = if !colored { 67 | Style::default() 68 | } else { 69 | let mut color = Style { 70 | foreground: to_ansi_color(style.foreground, true_color), 71 | ..Default::default() 72 | }; 73 | if style.font_style.contains(FontStyle::BOLD) { 74 | color = color.bold(); 75 | } 76 | if style.font_style.contains(FontStyle::UNDERLINE) { 77 | color = color.underline(); 78 | } 79 | if italics && style.font_style.contains(FontStyle::ITALIC) { 80 | color = color.italic(); 81 | } 82 | color 83 | }; 84 | 85 | style.background = background_color.and_then(|c| to_ansi_color(c, true_color)); 86 | style.paint(text).to_string() 87 | } 88 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

nu-plugin-highlight

2 |

3 | 4 | A nushell 5 | plugin for syntax 6 | highlighting. 7 | 8 |

9 | 10 |
11 | 12 |
13 | 14 | [![Version](https://img.shields.io/crates/v/nu-plugin-highlight?style=for-the-badge)](https://crates.io/crates/nu-plugin-highlight) 15 | [![License](https://img.shields.io/crates/l/nu-plugin-highlight?style=for-the-badge)](https://github.com/cptpiepmatz/nu-plugin-highlight/blob/main/LICENSE) 16 | 17 |
18 | 19 | 20 | ## About 21 | `nu-plugin-highlight` is a plugin for [Nushell](https://www.nushell.sh) that 22 | provides syntax highlighting for source code. 23 | It uses the [`syntect`](https://crates.io/crates/syntect) library for syntax 24 | highlighting and the [`bat`](https://crates.io/crates/bat) library for easy 25 | access to its ready-to-use assets. 26 | Custom themes can be loaded too. 27 | 28 | ## Usage 29 | The `highlight` command can be used for syntax highlighting source code. 30 | Here are a few examples: 31 | ```nushell 32 | # Highlight a Markdown file by guessing the type from the pipeline metadata 33 | open README.md | highlight 34 | 35 | # Highlight a TOML file by its file extension 36 | open Cargo.toml -r | echo $in | highlight toml 37 | 38 | # Highlight a Rust file by programming language name 39 | open src/main.rs | echo $in | highlight Rust 40 | 41 | # Highlight a bash script by inferring the language (the file should start with a shebang) 42 | open example.sh | echo $in | highlight 43 | 44 | # Highlight a TOML file with a different theme 45 | open Cargo.toml -r | highlight -t ansi 46 | 47 | # List all available themes 48 | highlight --list-themes 49 | ``` 50 | 51 | ### Parameters 52 | - `language `: 53 | This is an optional parameter that can be used to specify the language or file 54 | extension to aid language detection. 55 | 56 | ### Flags 57 | - `-h, --help`: 58 | Display the help message for the highlight command. 59 | 60 | - `-t, --theme `: 61 | The theme used for highlighting. 62 | 63 | - `--list-themes`: 64 | List all possible themes. 65 | 66 | ## Configuration 67 | The plugin can be configured using the 68 | [`$env.config.plugins.highlight`](https://github.com/nushell/nushell/pull/10955) 69 | variable. 70 | 71 | ### `true_colors` 72 | Enable or disable true colors (24-bit). 73 | By default, this is enabled. 74 | ```nushell 75 | $env.config.plugins.highlight.true_colors = true 76 | ``` 77 | 78 | ### `theme` 79 | Set a theme to use. 80 | The default theme depends on the operating system. 81 | Use `highlight --list-themes | where default == true` to see your default theme. 82 | Setting this environment variable should allow 83 | `highlight --list-themes | where id == $env.config.plugins.highlight.theme` to 84 | result in a single row with your selected theme. 85 | If you get no results, you have set an invalid theme. 86 | ```nushell 87 | $env.config.plugins.highlight.theme = ansi 88 | ``` 89 | 90 | ### `custom_themes` 91 | Set a directory to load custom themes from. 92 | Using `synctect`s theme loader, you can load custom themes in the `.tmtheme` 93 | format from a directory that is passed as this configuration value. 94 | ```nushell 95 | $env.config.plugins.highlight.custom_themes = ~/.nu/highlight/themes 96 | ``` 97 | 98 | ## Plugin Installation 99 | Installing and registering the `nu-plugin-highlight` is a straightforward 100 | process. 101 | Follow these steps: 102 | 103 | 1. Install the plugin from crates.io using cargo: 104 | ```nushell 105 | cargo install nu_plugin_highlight 106 | ``` 107 | 108 | 2. Restart your terminal session to ensure the newly installed plugin is recognized. 109 | 110 | 3. Find path of your installation: 111 | ```nushell 112 | which nu_plugin_highlight 113 | ``` 114 | 115 | 4. Register the plugin with Nushell: 116 | 117 | If you are using a version **lower** than **0.93.0**, use `register` instead of `plugin add`. 118 | ```nushell 119 | plugin add path/to/the/plugin/binary 120 | ``` 121 | 122 | 5. Make the plugin available for use: 123 | 124 | Tip: You can simply restart the shell or terminal. When nushell starts, it loads all plugins. 125 | 126 | If you are using a version **lower** than **0.93.0**, you do **not need** to do this. 127 | ```nushell 128 | plugin use highlight 129 | ``` 130 | 131 | After registering, the plugin is available as part of your set of commands: 132 | 133 | ```nushell 134 | help commands | where command_type == "plugin" 135 | ``` 136 | 137 | ## Version Numbering 138 | Starting with version `v1.1.0`, the version number of `nu-plugin-highlight` 139 | incorporates the version number of its dependency, `nu-plugin`. 140 | This is denoted in the format `v1.1.0+0.90.1`, where `v1.1.0` refers to the 141 | version of `nu-plugin-highlight` and `0.90.1` refers to the version of the 142 | `nu-plugin` dependency. 143 | 144 | ## License 145 | `nu_plugin_highlight` is licensed under the MIT License. 146 | See [LICENSE](LICENSE) for more information. 147 | -------------------------------------------------------------------------------- /src/highlight.rs: -------------------------------------------------------------------------------- 1 | use std::ops::Deref; 2 | use std::path::Path; 3 | 4 | use bat::assets::HighlightingAssets; 5 | use syntect::easy::HighlightLines; 6 | use syntect::highlighting::ThemeSet; 7 | use syntect::parsing::{SyntaxReference, SyntaxSet}; 8 | use syntect::LoadingError; 9 | 10 | use crate::terminal; 11 | use crate::theme::{ListThemes, ThemeDescription}; 12 | 13 | const SYNTAX_SET: &[u8] = include_bytes!(concat!(env!("OUT_DIR"), "/syntax_set.bin")); 14 | 15 | /// The struct that handles the highlighting of code. 16 | pub struct Highlighter { 17 | syntax_set: SyntaxSet, 18 | highlighting_assets: HighlightingAssets, 19 | custom_themes: Option 20 | } 21 | 22 | impl Highlighter { 23 | /// Creates a new instance of the Highlighter. 24 | pub fn new() -> Self { 25 | Highlighter { 26 | syntax_set: syntect::dumps::from_uncompressed_data(SYNTAX_SET).unwrap(), 27 | highlighting_assets: HighlightingAssets::from_binary(), 28 | custom_themes: None 29 | } 30 | } 31 | 32 | pub fn custom_themes_from_folder( 33 | &mut self, 34 | path: impl AsRef 35 | ) -> Result<(), LoadingError> { 36 | let path = nu_path::expand_to_real_path(path); 37 | self.custom_themes = Some(ThemeSet::load_from_folder(path)?); 38 | Ok(()) 39 | } 40 | 41 | /// Lists all the available themes. 42 | pub fn list_themes(&self, user_default: Option<&str>) -> ListThemes { 43 | let ha = &self.highlighting_assets; 44 | let default_theme_id = user_default.unwrap_or(HighlightingAssets::default_theme()); 45 | 46 | let mut themes: Vec<_> = ha 47 | .themes() 48 | .map(|t_id| { 49 | let theme = ha.get_theme(t_id); 50 | ThemeDescription { 51 | id: t_id.to_owned(), 52 | name: theme.name.clone(), 53 | author: theme.author.clone(), 54 | default: default_theme_id == t_id 55 | } 56 | }) 57 | .collect(); 58 | 59 | if let Some(custom_themes) = self.custom_themes.as_ref() { 60 | for (id, theme) in custom_themes.themes.iter() { 61 | themes.push(ThemeDescription { 62 | id: id.to_owned(), 63 | name: theme.name.clone(), 64 | author: theme.author.clone(), 65 | default: default_theme_id == id 66 | }); 67 | } 68 | } 69 | 70 | ListThemes(themes) 71 | } 72 | 73 | /// Checks if a given theme id is valid. 74 | pub fn is_valid_theme(&self, theme_name: &str) -> bool { 75 | let ha = &self.highlighting_assets; 76 | let custom_themes = self 77 | .custom_themes 78 | .as_ref() 79 | .map(|themes| themes.themes.keys()) 80 | .unwrap_or_default() 81 | .map(Deref::deref); 82 | custom_themes.chain(ha.themes()).any(|t| t == theme_name) 83 | } 84 | 85 | /// Highlights the given input text based on the provided language and 86 | /// theme. 87 | pub fn highlight( 88 | &self, 89 | input: &str, 90 | language: Option<&str>, 91 | theme: Option<&str>, 92 | true_colors: bool 93 | ) -> String { 94 | let syntax_set = &self.syntax_set; 95 | let syntax_ref: Option<&SyntaxReference> = match language { 96 | Some(language) if !language.is_empty() => { 97 | // allow multiple variants to write the language 98 | let language_lowercase = language.to_lowercase(); 99 | let language_capitalized = { 100 | let mut chars = language.chars(); 101 | let mut out = String::with_capacity(language.len()); 102 | chars 103 | .next() 104 | .expect("language not empty") 105 | .to_uppercase() 106 | .for_each(|c| out.push(c)); 107 | chars.for_each(|c| out.push(c)); 108 | out 109 | }; 110 | 111 | syntax_set 112 | .find_syntax_by_name(language) 113 | .or_else(|| syntax_set.find_syntax_by_name(&language_lowercase)) 114 | .or_else(|| syntax_set.find_syntax_by_name(&language_capitalized)) 115 | .or_else(|| syntax_set.find_syntax_by_extension(language)) 116 | .or_else(|| syntax_set.find_syntax_by_extension(&language_lowercase)) 117 | .or_else(|| syntax_set.find_syntax_by_extension(&language_capitalized)) 118 | } 119 | _ => None 120 | }; 121 | let syntax_ref = syntax_ref 122 | .or(syntax_set.find_syntax_by_first_line(input)) 123 | .unwrap_or(syntax_set.find_syntax_plain_text()); 124 | 125 | let theme_id = match theme { 126 | None => HighlightingAssets::default_theme(), 127 | Some(theme) => theme 128 | }; 129 | let theme = self 130 | .custom_themes 131 | .as_ref() 132 | .and_then(|themes| themes.themes.get(theme_id)); 133 | let theme = theme.unwrap_or_else(|| self.highlighting_assets.get_theme(theme_id)); 134 | 135 | let mut highlighter = HighlightLines::new(syntax_ref, theme); 136 | let line_count = input.lines().count(); 137 | input 138 | .lines() 139 | .enumerate() 140 | .map(|(i, l)| { 141 | // insert a newline in between lines, this is necessary for bats syntax set 142 | let l = match i == line_count - 1 { 143 | false => format!("{}\n", l.trim_end()), 144 | true => l.trim_end().to_owned() 145 | }; 146 | 147 | let styled_lines = highlighter.highlight_line(&l, syntax_set).unwrap(); 148 | styled_lines 149 | .iter() 150 | .map(|(style, s)| { 151 | terminal::as_terminal_escaped(*style, s, true_colors, true, false, None) 152 | }) 153 | .collect::() 154 | }) 155 | .collect::() 156 | } 157 | } 158 | -------------------------------------------------------------------------------- /syntaxes/patches/nushell.sublime-syntax.patch: -------------------------------------------------------------------------------- 1 | diff --git a/nushell.sublime-syntax b/nushell.sublime-syntax 2 | index b164bbf..c66d6f1 100644 3 | --- a/nushell.sublime-syntax 4 | +++ b/nushell.sublime-syntax 5 | @@ -25,7 +25,7 @@ variables: 6 | (?x: all | ansi | any | append | ast | bits | bytes | cd | char | chunks | clear | collect | columns | commandline | compact | complete | config | cp | date | debug | decode | default | describe | detect | do | drop | du | each | echo | encode | enumerate | error | every | exec | exit | explain | explore | fill | filter | find | first | flatten | fmt | format | from | generate | get | glob | grid | group-by | hash | headers | help | hide-env | histogram | history | http | ignore | input | insert | inspect | interleave | into | is-admin | is-empty | is-not-empty | is-terminal | items | join | keybindings | kill | last | length | let-env | lines | load-env | ls | math | merge | metadata | mkdir | mktemp | move | mv | nu-check | nu-highlight | open | overlay | panic | par-each | parse | path | plugin | port | prepend | print | ps | query | random | range | reduce | reject | rename | reverse | rm | roll | rotate | run-external | save | schema | scope | select | seq | shuffle | skip | sleep | sort | sort-by | split | split-by | start | stor | str | sys | table | take | tee | term | timeit | to | touch | transpose | tutor | ulimit | uname | uniq | update | upsert | url | values | version | view | watch | which | whoami | window | with-env | wrap | zip) 7 | 8 | custom_functions: |- 9 | - (?x: 7z | ? | _atuin_search_cmd | activate | adbtasker | add-preamble | ai | ansi-strip-table | apps-update | askai | askdalle | askpdf | autolister | autouse-file | balena | banner | bar | base2dec | batstat | bhe-update | bitly | cblue | cd-pipe | chat_gpt | chatpdf | check-link | claude_ai | clean-analytics | clone-ubuntu-install | code | column | column2 | const-table | copy-downloads-2-ubbdrive | copy-research-2-ubbdrive | copy-scripts-and-commit | copy-webies-2-ubbdrive | copy-yandex-and-commit | coretemp | countdown | cp-pipe | cpwd | create_left_prompt | create_right_prompt | dall_e | date | debunk-table | dec2base | default-table | dpx | echo-c | echo-g | echo-r | exchange_rates | export-nushell-docs | find-file | find-index | fix-docker | fix-green-dirs | format-mails | fuzzy-dispatcher | fuzzy-select-fs | gcal | get-aliases | get-devices | get-dirs | get-env | get-files | get-github-latest | get-input | get-ips | get-keybindings | get-miss-chapters | get-monitors | get-pass | get-phone-number | get-rows | get-vers | get_weather_by_interval | gg | gg-trans | github-app-update | gmail | gnome-settings | gnu-plot | google_ai | google_search | goto-nuconfigdir | grep-nu | group-list | guake | h | habitica | history | history-stats | http | indexify | install-font | intersect | into | is-column | is-in | is-mounted | iselect | isleap | jd | jdown | join-text-files | killn | le | left_prompt | lg | libreoff | list-diff | list-sum | listen-ports | lister | lists2table | ln | lo | ls-ports | lt | m | maps | math | matlab-cli | mcx | med_discord | media | mk-anime | mkcd | monitor | mpv | multiwhere | mv-anime | mv-manga | mv-pipe | mv-torrents | my-pandoc | my-pdflatex | nchat | nerd-fonts-clean | network-switcher | nu-crypt | nu-sloc | nufetch | nushell-syntax-2-sublime | o_llama | obs | op | open-analytics | open-credential | open-link | openf | openl | openm | patch-font | pdf | pip3-upgrade | pivot-table | plot-table | png-plot | print-file | progress_bar | ps | psn | pwd | pwd-short | qrenc | quick-ubuntu-and-tools-update-module | ram | rand-select | randi | random | range2list | rclone | re-enamerate | rebrandly | rename-all | rename-date | rename-file | replicate-tree | reset-alpine-auth | return-error | rm-empty-dirs | rm-pipe | rml | rmount | save-credential | scale-minmax | scale-minmax-table | scompact | send-gmail | set-env | set-screen | setdiff | show-ips | show_banner | speedtest-plot | ssh-sin-pass | ssh-termux | ssh-to | std | stop-net-apps | str | subl | sum-size | supgrade | svg2pdf | sys | t | table-diff | table2record | tasker | tasker-join | to-conversiones | to-onedrive | tokei | token2word | trans | tts | typeof | ubb | ubb_announce | um | umall | union | uniq-by | unset-env | up2ubb | update-nu-config | upload-debs-to-gdrive | usage | ver | verify | weather | wget-all | which-cd | wifi-info | wifi-pass | xls2csv | ydx | yt-api | ytcli | ytm | z | zi) 10 | + (?x: 7z | \? | _atuin_search_cmd | activate | adbtasker | add-preamble | ai | ansi-strip-table | apps-update | askai | askdalle | askpdf | autolister | autouse-file | balena | banner | bar | base2dec | batstat | bhe-update | bitly | cblue | cd-pipe | chat_gpt | chatpdf | check-link | claude_ai | clean-analytics | clone-ubuntu-install | code | column | column2 | const-table | copy-downloads-2-ubbdrive | copy-research-2-ubbdrive | copy-scripts-and-commit | copy-webies-2-ubbdrive | copy-yandex-and-commit | coretemp | countdown | cp-pipe | cpwd | create_left_prompt | create_right_prompt | dall_e | date | debunk-table | dec2base | default-table | dpx | echo-c | echo-g | echo-r | exchange_rates | export-nushell-docs | find-file | find-index | fix-docker | fix-green-dirs | format-mails | fuzzy-dispatcher | fuzzy-select-fs | gcal | get-aliases | get-devices | get-dirs | get-env | get-files | get-github-latest | get-input | get-ips | get-keybindings | get-miss-chapters | get-monitors | get-pass | get-phone-number | get-rows | get-vers | get_weather_by_interval | gg | gg-trans | github-app-update | gmail | gnome-settings | gnu-plot | google_ai | google_search | goto-nuconfigdir | grep-nu | group-list | guake | h | habitica | history | history-stats | http | indexify | install-font | intersect | into | is-column | is-in | is-mounted | iselect | isleap | jd | jdown | join-text-files | killn | le | left_prompt | lg | libreoff | list-diff | list-sum | listen-ports | lister | lists2table | ln | lo | ls-ports | lt | m | maps | math | matlab-cli | mcx | med_discord | media | mk-anime | mkcd | monitor | mpv | multiwhere | mv-anime | mv-manga | mv-pipe | mv-torrents | my-pandoc | my-pdflatex | nchat | nerd-fonts-clean | network-switcher | nu-crypt | nu-sloc | nufetch | nushell-syntax-2-sublime | o_llama | obs | op | open-analytics | open-credential | open-link | openf | openl | openm | patch-font | pdf | pip3-upgrade | pivot-table | plot-table | png-plot | print-file | progress_bar | ps | psn | pwd | pwd-short | qrenc | quick-ubuntu-and-tools-update-module | ram | rand-select | randi | random | range2list | rclone | re-enamerate | rebrandly | rename-all | rename-date | rename-file | replicate-tree | reset-alpine-auth | return-error | rm-empty-dirs | rm-pipe | rml | rmount | save-credential | scale-minmax | scale-minmax-table | scompact | send-gmail | set-env | set-screen | setdiff | show-ips | show_banner | speedtest-plot | ssh-sin-pass | ssh-termux | ssh-to | std | stop-net-apps | str | subl | sum-size | supgrade | svg2pdf | sys | t | table-diff | table2record | tasker | tasker-join | to-conversiones | to-onedrive | tokei | token2word | trans | tts | typeof | ubb | ubb_announce | um | umall | union | uniq-by | unset-env | up2ubb | update-nu-config | upload-debs-to-gdrive | usage | ver | verify | weather | wget-all | which-cd | wifi-info | wifi-pass | xls2csv | ydx | yt-api | ytcli | ytm | z | zi) 11 | 12 | plugin_functions: |- 13 | (?x: from | gstat | highlight | hist | inc | plot | polars | port | query | to | xyplot) 14 | -------------------------------------------------------------------------------- /src/plugin.rs: -------------------------------------------------------------------------------- 1 | use std::path::PathBuf; 2 | use std::str::FromStr; 3 | 4 | use mime_guess::Mime; 5 | use nu_plugin::{EngineInterface, EvaluatedCall, Plugin, PluginCommand}; 6 | use nu_protocol::shell_error::io::IoError; 7 | use nu_protocol::{ 8 | Category, DataSource, ErrorLabel, Example, FromValue, IntoValue, LabeledError, PipelineData, 9 | PipelineMetadata, ShellError, Signature, Span, Spanned, SyntaxShape, Type, Value 10 | }; 11 | use syntect::LoadingError; 12 | 13 | use crate::highlight::Highlighter; 14 | 15 | /// The struct that handles the plugin itself. 16 | pub struct HighlightPlugin; 17 | 18 | impl Plugin for HighlightPlugin { 19 | fn commands(&self) -> Vec>> { 20 | vec![Box::new(Highlight)] 21 | } 22 | 23 | fn version(&self) -> String { 24 | env!("CARGO_PKG_VERSION").into() 25 | } 26 | } 27 | 28 | #[derive(Debug, FromValue, Default)] 29 | struct Config { 30 | pub theme: Option>, 31 | pub true_colors: Option, 32 | pub custom_themes: Option> 33 | } 34 | 35 | struct Highlight; 36 | 37 | impl PluginCommand for Highlight { 38 | type Plugin = HighlightPlugin; 39 | 40 | fn name(&self) -> &str { 41 | "highlight" 42 | } 43 | 44 | fn signature(&self) -> Signature { 45 | Signature::build(PluginCommand::name(self)) 46 | .optional( 47 | "language", 48 | SyntaxShape::String, 49 | "language or file extension to help language detection" 50 | ) 51 | .named( 52 | "theme", 53 | SyntaxShape::String, 54 | "them used for highlighting", 55 | Some('t') 56 | ) 57 | .switch("list-themes", "list all possible themes", None) 58 | .category(Category::Strings) 59 | .input_output_type(Type::String, Type::String) 60 | .input_output_type( 61 | Type::Any, 62 | Type::Table( 63 | vec![ 64 | (String::from("id"), Type::String), 65 | (String::from("name"), Type::String), 66 | (String::from("author"), Type::String), 67 | (String::from("default"), Type::Bool), 68 | ] 69 | .into() 70 | ) 71 | ) 72 | } 73 | 74 | fn description(&self) -> &str { 75 | "Syntax highlight source code." 76 | } 77 | 78 | fn run( 79 | &self, 80 | _plugin: &Self::Plugin, 81 | engine: &EngineInterface, 82 | call: &EvaluatedCall, 83 | input: PipelineData 84 | ) -> Result { 85 | let mut highlighter = Highlighter::new(); 86 | 87 | let config = Option::::from_value(engine.get_plugin_config()?.unwrap_or_default())? 88 | .unwrap_or_default(); 89 | 90 | if let Some(custom_themes_path) = config.custom_themes { 91 | match highlighter.custom_themes_from_folder(&custom_themes_path.item) { 92 | Ok(_) => (), 93 | Err(LoadingError::Io(err)) => { 94 | return Err(LabeledError::from(ShellError::from( 95 | IoError::new_with_additional_context( 96 | err, 97 | custom_themes_path.span, 98 | custom_themes_path.item, 99 | "Error while loading custom themes" 100 | ) 101 | ))) 102 | } 103 | Err(err) => { 104 | return Err(labeled_error( 105 | err, 106 | "Error while loading custom themes", 107 | custom_themes_path.span, 108 | None 109 | )) 110 | } 111 | } 112 | } 113 | 114 | let theme = call 115 | .get_flag_value("theme") 116 | .map(Spanned::::from_value) 117 | .transpose()? 118 | .or(config.theme); 119 | if let Some(theme) = &theme { 120 | if !highlighter.is_valid_theme(&theme.item) { 121 | return Err(labeled_error( 122 | "use `highlight --list-themes` to list all themes", 123 | format!("Unknown passed theme {:?}", &theme.item), 124 | theme.span, 125 | None 126 | )); 127 | } 128 | } 129 | let theme = theme.map(|spanned| spanned.item); 130 | let theme = theme.as_deref(); 131 | 132 | let true_colors = config.true_colors.unwrap_or(true); 133 | 134 | if call.has_flag("list-themes")? { 135 | let themes = highlighter.list_themes(theme).into_value(call.head); 136 | return Ok(PipelineData::Value(themes, None)); 137 | } 138 | 139 | let metadata = input.metadata(); 140 | let input = input.into_value(call.head)?; 141 | let Spanned { item: input, span } = Spanned::::from_value(input)?; 142 | 143 | let language = language_hint(call, metadata.as_ref())?; 144 | let highlighted = highlighter.highlight(&input, language.as_deref(), theme, true_colors); 145 | let highlighted = Value::string(highlighted, span); 146 | Ok(PipelineData::Value(highlighted, metadata)) 147 | } 148 | 149 | fn search_terms(&self) -> Vec<&str> { 150 | vec!["syntax", "highlight", "highlighting"] 151 | } 152 | 153 | fn examples(&self) -> Vec> { 154 | const fn example<'e>(description: &'e str, example: &'e str) -> Example<'e> 155 | where 156 | 'e: 'static 157 | { 158 | Example { 159 | example, 160 | description, 161 | result: None 162 | } 163 | } 164 | 165 | vec![ 166 | example( 167 | "Highlight a Markdown file by guessing the type from the pipeline metadata", 168 | "open README.md | highlight" 169 | ), 170 | example( 171 | "Highlight a toml file by its file extension", 172 | "open Cargo.toml -r | echo $in | highlight toml" 173 | ), 174 | example( 175 | "Highlight a rust file by programming language", 176 | "open src/main.rs | echo $in | highlight Rust" 177 | ), 178 | example( 179 | "Highlight a bash script by inferring the language (needs shebang)", 180 | "open example.sh | echo $in | highlight" 181 | ), 182 | example( 183 | "Highlight a toml file with another theme", 184 | "open Cargo.toml -r | highlight -t ansi" 185 | ), 186 | example("List all available themes", "highlight --list-themes"), 187 | ] 188 | } 189 | } 190 | 191 | fn language_hint( 192 | call: &EvaluatedCall, 193 | metadata: Option<&PipelineMetadata> 194 | ) -> Result, ShellError> { 195 | // first use passed argument 196 | let arg = call.opt(0)?.map(String::from_value).transpose()?; 197 | 198 | // then try to parse a mime type 199 | let content_type = || -> Option { 200 | let metadata = metadata?; 201 | let content_type = metadata.content_type.as_ref(); 202 | let content_type = content_type?.as_str(); 203 | let content_type = Mime::from_str(content_type).ok()?; 204 | let sub_type = content_type.subtype().to_string(); 205 | match sub_type.as_str() { 206 | "tab-separated-values" => Some("tsv".to_string()), 207 | "x-toml" => Some("toml".to_string()), 208 | "x-nuscript" | "x-nushell" | "x-nuon" => Some("nushell".to_string()), 209 | s if s.starts_with("x-") => None, // we cannot be sure about this type, 210 | _ => Some(sub_type) 211 | } 212 | }; 213 | 214 | // as last resort, try to use the extension of data source 215 | let data_source = || -> Option { 216 | let data_source = &metadata?.data_source; 217 | let DataSource::FilePath(path) = data_source 218 | else { 219 | return None; 220 | }; 221 | let extension = path.extension()?.to_string_lossy(); 222 | Some(extension.to_string()) 223 | }; 224 | 225 | Ok(arg.or_else(content_type).or_else(data_source)) 226 | } 227 | 228 | /// Simple constructor for [`LabeledError`]. 229 | fn labeled_error( 230 | msg: impl ToString, 231 | label: impl ToString, 232 | span: Span, 233 | inner: impl Into> 234 | ) -> LabeledError { 235 | LabeledError { 236 | msg: msg.to_string(), 237 | labels: Box::new(vec![ErrorLabel { 238 | text: label.to_string(), 239 | span 240 | }]), 241 | code: None, 242 | url: None, 243 | help: None, 244 | inner: match inner.into() { 245 | Some(inner) => Box::new(vec![inner.into()]), 246 | None => Box::new(vec![]) 247 | } 248 | } 249 | } 250 | -------------------------------------------------------------------------------- /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.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_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 = "ansi_colours" 52 | version = "1.2.3" 53 | source = "registry+https://github.com/rust-lang/crates.io-index" 54 | checksum = "14eec43e0298190790f41679fe69ef7a829d2a2ddd78c8c00339e84710e435fe" 55 | dependencies = [ 56 | "rgb", 57 | ] 58 | 59 | [[package]] 60 | name = "arrayvec" 61 | version = "0.7.6" 62 | source = "registry+https://github.com/rust-lang/crates.io-index" 63 | checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" 64 | 65 | [[package]] 66 | name = "autocfg" 67 | version = "1.5.0" 68 | source = "registry+https://github.com/rust-lang/crates.io-index" 69 | checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" 70 | 71 | [[package]] 72 | name = "base64" 73 | version = "0.22.1" 74 | source = "registry+https://github.com/rust-lang/crates.io-index" 75 | checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 76 | 77 | [[package]] 78 | name = "bat" 79 | version = "0.24.0" 80 | source = "registry+https://github.com/rust-lang/crates.io-index" 81 | checksum = "9dcc9e5637c2330d8eb7b920f2aa5d9e184446c258466f825ea1412c7614cc86" 82 | dependencies = [ 83 | "ansi_colours", 84 | "bincode", 85 | "bytesize", 86 | "clircle", 87 | "console", 88 | "content_inspector", 89 | "encoding_rs", 90 | "flate2", 91 | "globset", 92 | "home", 93 | "nu-ansi-term 0.49.0", 94 | "once_cell", 95 | "path_abs", 96 | "plist", 97 | "semver", 98 | "serde", 99 | "serde_yaml", 100 | "syntect", 101 | "thiserror 1.0.69", 102 | "unicode-width 0.1.14", 103 | ] 104 | 105 | [[package]] 106 | name = "bincode" 107 | version = "1.3.3" 108 | source = "registry+https://github.com/rust-lang/crates.io-index" 109 | checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" 110 | dependencies = [ 111 | "serde", 112 | ] 113 | 114 | [[package]] 115 | name = "bindgen" 116 | version = "0.72.1" 117 | source = "registry+https://github.com/rust-lang/crates.io-index" 118 | checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" 119 | dependencies = [ 120 | "bitflags", 121 | "cexpr", 122 | "clang-sys", 123 | "itertools 0.13.0", 124 | "proc-macro2", 125 | "quote", 126 | "regex", 127 | "rustc-hash", 128 | "shlex", 129 | "syn", 130 | ] 131 | 132 | [[package]] 133 | name = "bit-set" 134 | version = "0.8.0" 135 | source = "registry+https://github.com/rust-lang/crates.io-index" 136 | checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" 137 | dependencies = [ 138 | "bit-vec", 139 | ] 140 | 141 | [[package]] 142 | name = "bit-vec" 143 | version = "0.8.0" 144 | source = "registry+https://github.com/rust-lang/crates.io-index" 145 | checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" 146 | 147 | [[package]] 148 | name = "bitflags" 149 | version = "2.9.4" 150 | source = "registry+https://github.com/rust-lang/crates.io-index" 151 | checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" 152 | 153 | [[package]] 154 | name = "brotli" 155 | version = "8.0.2" 156 | source = "registry+https://github.com/rust-lang/crates.io-index" 157 | checksum = "4bd8b9603c7aa97359dbd97ecf258968c95f3adddd6db2f7e7a5bef101c84560" 158 | dependencies = [ 159 | "alloc-no-stdlib", 160 | "alloc-stdlib", 161 | "brotli-decompressor", 162 | ] 163 | 164 | [[package]] 165 | name = "brotli-decompressor" 166 | version = "5.0.0" 167 | source = "registry+https://github.com/rust-lang/crates.io-index" 168 | checksum = "874bb8112abecc98cbd6d81ea4fa7e94fb9449648c93cc89aa40c81c24d7de03" 169 | dependencies = [ 170 | "alloc-no-stdlib", 171 | "alloc-stdlib", 172 | ] 173 | 174 | [[package]] 175 | name = "bstr" 176 | version = "1.12.0" 177 | source = "registry+https://github.com/rust-lang/crates.io-index" 178 | checksum = "234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4" 179 | dependencies = [ 180 | "memchr", 181 | "serde", 182 | ] 183 | 184 | [[package]] 185 | name = "buf-trait" 186 | version = "0.4.1" 187 | source = "registry+https://github.com/rust-lang/crates.io-index" 188 | checksum = "21eaafc770e8c073d6c3facafe7617e774305d4954aa6351b9c452eb37ee17b4" 189 | dependencies = [ 190 | "zerocopy", 191 | ] 192 | 193 | [[package]] 194 | name = "bumpalo" 195 | version = "3.19.0" 196 | source = "registry+https://github.com/rust-lang/crates.io-index" 197 | checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" 198 | 199 | [[package]] 200 | name = "bytecount" 201 | version = "0.6.9" 202 | source = "registry+https://github.com/rust-lang/crates.io-index" 203 | checksum = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e" 204 | 205 | [[package]] 206 | name = "bytemuck" 207 | version = "1.24.0" 208 | source = "registry+https://github.com/rust-lang/crates.io-index" 209 | checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" 210 | 211 | [[package]] 212 | name = "byteorder" 213 | version = "1.5.0" 214 | source = "registry+https://github.com/rust-lang/crates.io-index" 215 | checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 216 | 217 | [[package]] 218 | name = "bytes" 219 | version = "1.10.1" 220 | source = "registry+https://github.com/rust-lang/crates.io-index" 221 | checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" 222 | 223 | [[package]] 224 | name = "bytesize" 225 | version = "1.3.3" 226 | source = "registry+https://github.com/rust-lang/crates.io-index" 227 | checksum = "2e93abca9e28e0a1b9877922aacb20576e05d4679ffa78c3d6dc22a26a216659" 228 | 229 | [[package]] 230 | name = "byteyarn" 231 | version = "0.5.1" 232 | source = "registry+https://github.com/rust-lang/crates.io-index" 233 | checksum = "b93e51d26468a15ea59f8525e0c13dc405db43e644a0b1e6d44346c72cf4cf7b" 234 | dependencies = [ 235 | "buf-trait", 236 | ] 237 | 238 | [[package]] 239 | name = "castaway" 240 | version = "0.2.4" 241 | source = "registry+https://github.com/rust-lang/crates.io-index" 242 | checksum = "dec551ab6e7578819132c713a93c022a05d60159dc86e7a7050223577484c55a" 243 | dependencies = [ 244 | "rustversion", 245 | ] 246 | 247 | [[package]] 248 | name = "cc" 249 | version = "1.2.41" 250 | source = "registry+https://github.com/rust-lang/crates.io-index" 251 | checksum = "ac9fe6cdbb24b6ade63616c0a0688e45bb56732262c158df3c0c4bea4ca47cb7" 252 | dependencies = [ 253 | "find-msvc-tools", 254 | "shlex", 255 | ] 256 | 257 | [[package]] 258 | name = "cexpr" 259 | version = "0.6.0" 260 | source = "registry+https://github.com/rust-lang/crates.io-index" 261 | checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" 262 | dependencies = [ 263 | "nom", 264 | ] 265 | 266 | [[package]] 267 | name = "cfg-if" 268 | version = "1.0.4" 269 | source = "registry+https://github.com/rust-lang/crates.io-index" 270 | checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" 271 | 272 | [[package]] 273 | name = "cfg_aliases" 274 | version = "0.2.1" 275 | source = "registry+https://github.com/rust-lang/crates.io-index" 276 | checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" 277 | 278 | [[package]] 279 | name = "chrono" 280 | version = "0.4.42" 281 | source = "registry+https://github.com/rust-lang/crates.io-index" 282 | checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" 283 | dependencies = [ 284 | "iana-time-zone", 285 | "js-sys", 286 | "num-traits", 287 | "pure-rust-locales", 288 | "serde", 289 | "wasm-bindgen", 290 | "windows-link 0.2.1", 291 | ] 292 | 293 | [[package]] 294 | name = "chrono-humanize" 295 | version = "0.2.3" 296 | source = "registry+https://github.com/rust-lang/crates.io-index" 297 | checksum = "799627e6b4d27827a814e837b9d8a504832086081806d45b1afa34dc982b023b" 298 | dependencies = [ 299 | "chrono", 300 | ] 301 | 302 | [[package]] 303 | name = "clang-sys" 304 | version = "1.8.1" 305 | source = "registry+https://github.com/rust-lang/crates.io-index" 306 | checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" 307 | dependencies = [ 308 | "glob", 309 | "libc", 310 | "libloading", 311 | ] 312 | 313 | [[package]] 314 | name = "clircle" 315 | version = "0.4.0" 316 | source = "registry+https://github.com/rust-lang/crates.io-index" 317 | checksum = "c8e87cbed5354f17bd8ca8821a097fb62599787fe8f611743fad7ee156a0a600" 318 | dependencies = [ 319 | "cfg-if", 320 | "libc", 321 | "serde", 322 | "winapi", 323 | ] 324 | 325 | [[package]] 326 | name = "console" 327 | version = "0.15.11" 328 | source = "registry+https://github.com/rust-lang/crates.io-index" 329 | checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8" 330 | dependencies = [ 331 | "encode_unicode", 332 | "libc", 333 | "once_cell", 334 | "unicode-width 0.2.2", 335 | "windows-sys 0.59.0", 336 | ] 337 | 338 | [[package]] 339 | name = "content_inspector" 340 | version = "0.2.4" 341 | source = "registry+https://github.com/rust-lang/crates.io-index" 342 | checksum = "b7bda66e858c683005a53a9a60c69a4aca7eeaa45d124526e389f7aec8e62f38" 343 | dependencies = [ 344 | "memchr", 345 | ] 346 | 347 | [[package]] 348 | name = "core-foundation-sys" 349 | version = "0.8.7" 350 | source = "registry+https://github.com/rust-lang/crates.io-index" 351 | checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 352 | 353 | [[package]] 354 | name = "crc32fast" 355 | version = "1.5.0" 356 | source = "registry+https://github.com/rust-lang/crates.io-index" 357 | checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" 358 | dependencies = [ 359 | "cfg-if", 360 | ] 361 | 362 | [[package]] 363 | name = "crossterm" 364 | version = "0.28.1" 365 | source = "registry+https://github.com/rust-lang/crates.io-index" 366 | checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6" 367 | dependencies = [ 368 | "bitflags", 369 | "crossterm_winapi", 370 | "mio", 371 | "parking_lot", 372 | "rustix 0.38.44", 373 | "signal-hook", 374 | "signal-hook-mio", 375 | "winapi", 376 | ] 377 | 378 | [[package]] 379 | name = "crossterm_winapi" 380 | version = "0.9.1" 381 | source = "registry+https://github.com/rust-lang/crates.io-index" 382 | checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" 383 | dependencies = [ 384 | "winapi", 385 | ] 386 | 387 | [[package]] 388 | name = "deranged" 389 | version = "0.5.4" 390 | source = "registry+https://github.com/rust-lang/crates.io-index" 391 | checksum = "a41953f86f8a05768a6cda24def994fd2f424b04ec5c719cf89989779f199071" 392 | dependencies = [ 393 | "powerfmt", 394 | ] 395 | 396 | [[package]] 397 | name = "dirs" 398 | version = "6.0.0" 399 | source = "registry+https://github.com/rust-lang/crates.io-index" 400 | checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" 401 | dependencies = [ 402 | "dirs-sys", 403 | ] 404 | 405 | [[package]] 406 | name = "dirs-sys" 407 | version = "0.5.0" 408 | source = "registry+https://github.com/rust-lang/crates.io-index" 409 | checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" 410 | dependencies = [ 411 | "libc", 412 | "option-ext", 413 | "redox_users", 414 | "windows-sys 0.61.2", 415 | ] 416 | 417 | [[package]] 418 | name = "doctest-file" 419 | version = "1.0.0" 420 | source = "registry+https://github.com/rust-lang/crates.io-index" 421 | checksum = "aac81fa3e28d21450aa4d2ac065992ba96a1d7303efbce51a95f4fd175b67562" 422 | 423 | [[package]] 424 | name = "either" 425 | version = "1.15.0" 426 | source = "registry+https://github.com/rust-lang/crates.io-index" 427 | checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" 428 | 429 | [[package]] 430 | name = "encode_unicode" 431 | version = "1.0.0" 432 | source = "registry+https://github.com/rust-lang/crates.io-index" 433 | checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" 434 | 435 | [[package]] 436 | name = "encoding_rs" 437 | version = "0.8.35" 438 | source = "registry+https://github.com/rust-lang/crates.io-index" 439 | checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" 440 | dependencies = [ 441 | "cfg-if", 442 | ] 443 | 444 | [[package]] 445 | name = "equivalent" 446 | version = "1.0.2" 447 | source = "registry+https://github.com/rust-lang/crates.io-index" 448 | checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" 449 | 450 | [[package]] 451 | name = "erased-serde" 452 | version = "0.4.8" 453 | source = "registry+https://github.com/rust-lang/crates.io-index" 454 | checksum = "259d404d09818dec19332e31d94558aeb442fea04c817006456c24b5460bbd4b" 455 | dependencies = [ 456 | "serde", 457 | "serde_core", 458 | "typeid", 459 | ] 460 | 461 | [[package]] 462 | name = "errno" 463 | version = "0.3.14" 464 | source = "registry+https://github.com/rust-lang/crates.io-index" 465 | checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" 466 | dependencies = [ 467 | "libc", 468 | "windows-sys 0.61.2", 469 | ] 470 | 471 | [[package]] 472 | name = "fancy-regex" 473 | version = "0.16.2" 474 | source = "registry+https://github.com/rust-lang/crates.io-index" 475 | checksum = "998b056554fbe42e03ae0e152895cd1a7e1002aec800fdc6635d20270260c46f" 476 | dependencies = [ 477 | "bit-set", 478 | "regex-automata", 479 | "regex-syntax", 480 | ] 481 | 482 | [[package]] 483 | name = "find-msvc-tools" 484 | version = "0.1.4" 485 | source = "registry+https://github.com/rust-lang/crates.io-index" 486 | checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127" 487 | 488 | [[package]] 489 | name = "flate2" 490 | version = "1.1.4" 491 | source = "registry+https://github.com/rust-lang/crates.io-index" 492 | checksum = "dc5a4e564e38c699f2880d3fda590bedc2e69f3f84cd48b457bd892ce61d0aa9" 493 | dependencies = [ 494 | "crc32fast", 495 | "miniz_oxide", 496 | ] 497 | 498 | [[package]] 499 | name = "fnv" 500 | version = "1.0.7" 501 | source = "registry+https://github.com/rust-lang/crates.io-index" 502 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 503 | 504 | [[package]] 505 | name = "foldhash" 506 | version = "0.1.5" 507 | source = "registry+https://github.com/rust-lang/crates.io-index" 508 | checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" 509 | 510 | [[package]] 511 | name = "getrandom" 512 | version = "0.2.16" 513 | source = "registry+https://github.com/rust-lang/crates.io-index" 514 | checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" 515 | dependencies = [ 516 | "cfg-if", 517 | "libc", 518 | "wasi", 519 | ] 520 | 521 | [[package]] 522 | name = "glob" 523 | version = "0.3.3" 524 | source = "registry+https://github.com/rust-lang/crates.io-index" 525 | checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" 526 | 527 | [[package]] 528 | name = "globset" 529 | version = "0.4.17" 530 | source = "registry+https://github.com/rust-lang/crates.io-index" 531 | checksum = "eab69130804d941f8075cfd713bf8848a2c3b3f201a9457a11e6f87e1ab62305" 532 | dependencies = [ 533 | "aho-corasick", 534 | "bstr", 535 | "log", 536 | "regex-automata", 537 | "regex-syntax", 538 | ] 539 | 540 | [[package]] 541 | name = "hashbrown" 542 | version = "0.15.5" 543 | source = "registry+https://github.com/rust-lang/crates.io-index" 544 | checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" 545 | dependencies = [ 546 | "allocator-api2", 547 | "equivalent", 548 | "foldhash", 549 | ] 550 | 551 | [[package]] 552 | name = "hashbrown" 553 | version = "0.16.0" 554 | source = "registry+https://github.com/rust-lang/crates.io-index" 555 | checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" 556 | 557 | [[package]] 558 | name = "heck" 559 | version = "0.5.0" 560 | source = "registry+https://github.com/rust-lang/crates.io-index" 561 | checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" 562 | 563 | [[package]] 564 | name = "hex" 565 | version = "0.4.3" 566 | source = "registry+https://github.com/rust-lang/crates.io-index" 567 | checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" 568 | 569 | [[package]] 570 | name = "home" 571 | version = "0.5.11" 572 | source = "registry+https://github.com/rust-lang/crates.io-index" 573 | checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" 574 | dependencies = [ 575 | "windows-sys 0.59.0", 576 | ] 577 | 578 | [[package]] 579 | name = "iana-time-zone" 580 | version = "0.1.64" 581 | source = "registry+https://github.com/rust-lang/crates.io-index" 582 | checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" 583 | dependencies = [ 584 | "android_system_properties", 585 | "core-foundation-sys", 586 | "iana-time-zone-haiku", 587 | "js-sys", 588 | "log", 589 | "wasm-bindgen", 590 | "windows-core 0.62.2", 591 | ] 592 | 593 | [[package]] 594 | name = "iana-time-zone-haiku" 595 | version = "0.1.2" 596 | source = "registry+https://github.com/rust-lang/crates.io-index" 597 | checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" 598 | dependencies = [ 599 | "cc", 600 | ] 601 | 602 | [[package]] 603 | name = "indexmap" 604 | version = "2.11.4" 605 | source = "registry+https://github.com/rust-lang/crates.io-index" 606 | checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5" 607 | dependencies = [ 608 | "equivalent", 609 | "hashbrown 0.16.0", 610 | ] 611 | 612 | [[package]] 613 | name = "interprocess" 614 | version = "2.2.3" 615 | source = "registry+https://github.com/rust-lang/crates.io-index" 616 | checksum = "d941b405bd2322993887859a8ee6ac9134945a24ec5ec763a8a962fc64dfec2d" 617 | dependencies = [ 618 | "doctest-file", 619 | "libc", 620 | "recvmsg", 621 | "widestring", 622 | "windows-sys 0.52.0", 623 | ] 624 | 625 | [[package]] 626 | name = "inventory" 627 | version = "0.3.21" 628 | source = "registry+https://github.com/rust-lang/crates.io-index" 629 | checksum = "bc61209c082fbeb19919bee74b176221b27223e27b65d781eb91af24eb1fb46e" 630 | dependencies = [ 631 | "rustversion", 632 | ] 633 | 634 | [[package]] 635 | name = "is_ci" 636 | version = "1.2.0" 637 | source = "registry+https://github.com/rust-lang/crates.io-index" 638 | checksum = "7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45" 639 | 640 | [[package]] 641 | name = "itertools" 642 | version = "0.13.0" 643 | source = "registry+https://github.com/rust-lang/crates.io-index" 644 | checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" 645 | dependencies = [ 646 | "either", 647 | ] 648 | 649 | [[package]] 650 | name = "itertools" 651 | version = "0.14.0" 652 | source = "registry+https://github.com/rust-lang/crates.io-index" 653 | checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" 654 | dependencies = [ 655 | "either", 656 | ] 657 | 658 | [[package]] 659 | name = "itoa" 660 | version = "1.0.15" 661 | source = "registry+https://github.com/rust-lang/crates.io-index" 662 | checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" 663 | 664 | [[package]] 665 | name = "js-sys" 666 | version = "0.3.81" 667 | source = "registry+https://github.com/rust-lang/crates.io-index" 668 | checksum = "ec48937a97411dcb524a265206ccd4c90bb711fca92b2792c407f268825b9305" 669 | dependencies = [ 670 | "once_cell", 671 | "wasm-bindgen", 672 | ] 673 | 674 | [[package]] 675 | name = "lean_string" 676 | version = "0.5.1" 677 | source = "registry+https://github.com/rust-lang/crates.io-index" 678 | checksum = "962df00ba70ac8d5ca5c064e17e5c3d090c087fd8d21aa45096c716b169da514" 679 | dependencies = [ 680 | "castaway", 681 | "itoa", 682 | "ryu", 683 | "serde", 684 | ] 685 | 686 | [[package]] 687 | name = "libc" 688 | version = "0.2.177" 689 | source = "registry+https://github.com/rust-lang/crates.io-index" 690 | checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" 691 | 692 | [[package]] 693 | name = "libloading" 694 | version = "0.8.9" 695 | source = "registry+https://github.com/rust-lang/crates.io-index" 696 | checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" 697 | dependencies = [ 698 | "cfg-if", 699 | "windows-link 0.2.1", 700 | ] 701 | 702 | [[package]] 703 | name = "libproc" 704 | version = "0.14.11" 705 | source = "registry+https://github.com/rust-lang/crates.io-index" 706 | checksum = "a54ad7278b8bc5301d5ffd2a94251c004feb971feba96c971ea4063645990757" 707 | dependencies = [ 708 | "bindgen", 709 | "errno", 710 | "libc", 711 | ] 712 | 713 | [[package]] 714 | name = "libredox" 715 | version = "0.1.10" 716 | source = "registry+https://github.com/rust-lang/crates.io-index" 717 | checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" 718 | dependencies = [ 719 | "bitflags", 720 | "libc", 721 | ] 722 | 723 | [[package]] 724 | name = "linked-hash-map" 725 | version = "0.5.6" 726 | source = "registry+https://github.com/rust-lang/crates.io-index" 727 | checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" 728 | 729 | [[package]] 730 | name = "linux-raw-sys" 731 | version = "0.4.15" 732 | source = "registry+https://github.com/rust-lang/crates.io-index" 733 | checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" 734 | 735 | [[package]] 736 | name = "linux-raw-sys" 737 | version = "0.11.0" 738 | source = "registry+https://github.com/rust-lang/crates.io-index" 739 | checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" 740 | 741 | [[package]] 742 | name = "lock_api" 743 | version = "0.4.14" 744 | source = "registry+https://github.com/rust-lang/crates.io-index" 745 | checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" 746 | dependencies = [ 747 | "scopeguard", 748 | ] 749 | 750 | [[package]] 751 | name = "log" 752 | version = "0.4.28" 753 | source = "registry+https://github.com/rust-lang/crates.io-index" 754 | checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" 755 | 756 | [[package]] 757 | name = "lru" 758 | version = "0.12.5" 759 | source = "registry+https://github.com/rust-lang/crates.io-index" 760 | checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" 761 | dependencies = [ 762 | "hashbrown 0.15.5", 763 | ] 764 | 765 | [[package]] 766 | name = "lscolors" 767 | version = "0.20.0" 768 | source = "registry+https://github.com/rust-lang/crates.io-index" 769 | checksum = "61183da5de8ba09a58e330d55e5ea796539d8443bd00fdeb863eac39724aa4ab" 770 | dependencies = [ 771 | "aho-corasick", 772 | "nu-ansi-term 0.50.3", 773 | ] 774 | 775 | [[package]] 776 | name = "mach2" 777 | version = "0.4.3" 778 | source = "registry+https://github.com/rust-lang/crates.io-index" 779 | checksum = "d640282b302c0bb0a2a8e0233ead9035e3bed871f0b7e81fe4a1ec829765db44" 780 | dependencies = [ 781 | "libc", 782 | ] 783 | 784 | [[package]] 785 | name = "memchr" 786 | version = "2.7.6" 787 | source = "registry+https://github.com/rust-lang/crates.io-index" 788 | checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" 789 | 790 | [[package]] 791 | name = "miette" 792 | version = "7.6.0" 793 | source = "registry+https://github.com/rust-lang/crates.io-index" 794 | checksum = "5f98efec8807c63c752b5bd61f862c165c115b0a35685bdcfd9238c7aeb592b7" 795 | dependencies = [ 796 | "cfg-if", 797 | "miette-derive", 798 | "owo-colors", 799 | "supports-color", 800 | "supports-hyperlinks", 801 | "supports-unicode", 802 | "terminal_size", 803 | "textwrap", 804 | "unicode-width 0.1.14", 805 | ] 806 | 807 | [[package]] 808 | name = "miette-derive" 809 | version = "7.6.0" 810 | source = "registry+https://github.com/rust-lang/crates.io-index" 811 | checksum = "db5b29714e950dbb20d5e6f74f9dcec4edbcc1067bb7f8ed198c097b8c1a818b" 812 | dependencies = [ 813 | "proc-macro2", 814 | "quote", 815 | "syn", 816 | ] 817 | 818 | [[package]] 819 | name = "mime" 820 | version = "0.3.17" 821 | source = "registry+https://github.com/rust-lang/crates.io-index" 822 | checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 823 | 824 | [[package]] 825 | name = "mime_guess" 826 | version = "2.0.5" 827 | source = "registry+https://github.com/rust-lang/crates.io-index" 828 | checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" 829 | dependencies = [ 830 | "mime", 831 | "unicase", 832 | ] 833 | 834 | [[package]] 835 | name = "minimal-lexical" 836 | version = "0.2.1" 837 | source = "registry+https://github.com/rust-lang/crates.io-index" 838 | checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" 839 | 840 | [[package]] 841 | name = "miniz_oxide" 842 | version = "0.8.9" 843 | source = "registry+https://github.com/rust-lang/crates.io-index" 844 | checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" 845 | dependencies = [ 846 | "adler2", 847 | "simd-adler32", 848 | ] 849 | 850 | [[package]] 851 | name = "mio" 852 | version = "1.0.4" 853 | source = "registry+https://github.com/rust-lang/crates.io-index" 854 | checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" 855 | dependencies = [ 856 | "libc", 857 | "log", 858 | "wasi", 859 | "windows-sys 0.59.0", 860 | ] 861 | 862 | [[package]] 863 | name = "nix" 864 | version = "0.30.1" 865 | source = "registry+https://github.com/rust-lang/crates.io-index" 866 | checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" 867 | dependencies = [ 868 | "bitflags", 869 | "cfg-if", 870 | "cfg_aliases", 871 | "libc", 872 | ] 873 | 874 | [[package]] 875 | name = "nom" 876 | version = "7.1.3" 877 | source = "registry+https://github.com/rust-lang/crates.io-index" 878 | checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" 879 | dependencies = [ 880 | "memchr", 881 | "minimal-lexical", 882 | ] 883 | 884 | [[package]] 885 | name = "nom_locate" 886 | version = "4.2.0" 887 | source = "registry+https://github.com/rust-lang/crates.io-index" 888 | checksum = "1e3c83c053b0713da60c5b8de47fe8e494fe3ece5267b2f23090a07a053ba8f3" 889 | dependencies = [ 890 | "bytecount", 891 | "memchr", 892 | "nom", 893 | ] 894 | 895 | [[package]] 896 | name = "ntapi" 897 | version = "0.4.1" 898 | source = "registry+https://github.com/rust-lang/crates.io-index" 899 | checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" 900 | dependencies = [ 901 | "winapi", 902 | ] 903 | 904 | [[package]] 905 | name = "nu-ansi-term" 906 | version = "0.49.0" 907 | source = "registry+https://github.com/rust-lang/crates.io-index" 908 | checksum = "c073d3c1930d0751774acf49e66653acecb416c3a54c6ec095a9b11caddb5a68" 909 | dependencies = [ 910 | "windows-sys 0.48.0", 911 | ] 912 | 913 | [[package]] 914 | name = "nu-ansi-term" 915 | version = "0.50.3" 916 | source = "registry+https://github.com/rust-lang/crates.io-index" 917 | checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" 918 | dependencies = [ 919 | "windows-sys 0.61.2", 920 | ] 921 | 922 | [[package]] 923 | name = "nu-derive-value" 924 | version = "0.108.0" 925 | source = "registry+https://github.com/rust-lang/crates.io-index" 926 | checksum = "39f6844d832ae0b97396c6cd7d2a18b7ab9effdde83fbe18a17255b16d2d95e6" 927 | dependencies = [ 928 | "heck", 929 | "proc-macro-error2", 930 | "proc-macro2", 931 | "quote", 932 | "syn", 933 | ] 934 | 935 | [[package]] 936 | name = "nu-engine" 937 | version = "0.108.0" 938 | source = "registry+https://github.com/rust-lang/crates.io-index" 939 | checksum = "6eb4562ca8e184393362cf9de2c4e500354e4b16b6ac31dc938f672d615a57a4" 940 | dependencies = [ 941 | "fancy-regex", 942 | "log", 943 | "nu-experimental", 944 | "nu-glob", 945 | "nu-path", 946 | "nu-protocol", 947 | "nu-utils", 948 | ] 949 | 950 | [[package]] 951 | name = "nu-experimental" 952 | version = "0.108.0" 953 | source = "registry+https://github.com/rust-lang/crates.io-index" 954 | checksum = "c0eb92aab3b0221658e1163aee36efef6e7018d101d7092a7747f426ecaa73a3" 955 | dependencies = [ 956 | "itertools 0.14.0", 957 | "thiserror 2.0.17", 958 | ] 959 | 960 | [[package]] 961 | name = "nu-glob" 962 | version = "0.108.0" 963 | source = "registry+https://github.com/rust-lang/crates.io-index" 964 | checksum = "6f4dff716f0e89268bddca91c984b3d67c8abda45039e38f5e3605c37d74b460" 965 | 966 | [[package]] 967 | name = "nu-path" 968 | version = "0.108.0" 969 | source = "registry+https://github.com/rust-lang/crates.io-index" 970 | checksum = "8b04577311397f1dd847c37a241b4bcb6a59719c03cb23672c486f57a37dba09" 971 | dependencies = [ 972 | "dirs", 973 | "omnipath", 974 | "pwd", 975 | "ref-cast", 976 | ] 977 | 978 | [[package]] 979 | name = "nu-plugin" 980 | version = "0.108.0" 981 | source = "registry+https://github.com/rust-lang/crates.io-index" 982 | checksum = "00f04d0af0c79ed0801ae9edce531cf0a3cbc9987f2ef8b18e7e758410b3495f" 983 | dependencies = [ 984 | "log", 985 | "nix", 986 | "nu-engine", 987 | "nu-plugin-core", 988 | "nu-plugin-protocol", 989 | "nu-protocol", 990 | "nu-utils", 991 | "thiserror 2.0.17", 992 | ] 993 | 994 | [[package]] 995 | name = "nu-plugin-core" 996 | version = "0.108.0" 997 | source = "registry+https://github.com/rust-lang/crates.io-index" 998 | checksum = "bf1f65bf58874f811ae8b61e9ff809347344b2628b0b69a09ae6d663242f25f2" 999 | dependencies = [ 1000 | "interprocess", 1001 | "log", 1002 | "nu-plugin-protocol", 1003 | "nu-protocol", 1004 | "rmp-serde", 1005 | "serde", 1006 | "serde_json", 1007 | "windows 0.62.2", 1008 | ] 1009 | 1010 | [[package]] 1011 | name = "nu-plugin-protocol" 1012 | version = "0.108.0" 1013 | source = "registry+https://github.com/rust-lang/crates.io-index" 1014 | checksum = "9eb646cdb01361724e2b142f3129016ed6230ec857832ba6aec56fed9377c935" 1015 | dependencies = [ 1016 | "nu-protocol", 1017 | "nu-utils", 1018 | "rmp-serde", 1019 | "semver", 1020 | "serde", 1021 | "typetag", 1022 | ] 1023 | 1024 | [[package]] 1025 | name = "nu-protocol" 1026 | version = "0.108.0" 1027 | source = "registry+https://github.com/rust-lang/crates.io-index" 1028 | checksum = "5d887a2fb4c325fdb78c3eef426ab0bccab85b1f644b8ec267e586fa02933060" 1029 | dependencies = [ 1030 | "brotli", 1031 | "bytes", 1032 | "chrono", 1033 | "chrono-humanize", 1034 | "dirs", 1035 | "dirs-sys", 1036 | "fancy-regex", 1037 | "heck", 1038 | "indexmap", 1039 | "log", 1040 | "lru", 1041 | "memchr", 1042 | "miette", 1043 | "nix", 1044 | "nu-derive-value", 1045 | "nu-experimental", 1046 | "nu-glob", 1047 | "nu-path", 1048 | "nu-system", 1049 | "nu-utils", 1050 | "num-format", 1051 | "os_pipe", 1052 | "rmp-serde", 1053 | "serde", 1054 | "serde_json", 1055 | "strum", 1056 | "strum_macros", 1057 | "thiserror 2.0.17", 1058 | "typetag", 1059 | "web-time", 1060 | "windows 0.62.2", 1061 | "windows-sys 0.61.2", 1062 | ] 1063 | 1064 | [[package]] 1065 | name = "nu-system" 1066 | version = "0.108.0" 1067 | source = "registry+https://github.com/rust-lang/crates.io-index" 1068 | checksum = "2499aaa5e03f648250ecad2cef2fd97723eb6a899a60871ae64479b90e9a1451" 1069 | dependencies = [ 1070 | "chrono", 1071 | "itertools 0.14.0", 1072 | "libc", 1073 | "libproc", 1074 | "log", 1075 | "mach2", 1076 | "nix", 1077 | "ntapi", 1078 | "procfs", 1079 | "sysinfo", 1080 | "web-time", 1081 | "windows 0.62.2", 1082 | ] 1083 | 1084 | [[package]] 1085 | name = "nu-utils" 1086 | version = "0.108.0" 1087 | source = "registry+https://github.com/rust-lang/crates.io-index" 1088 | checksum = "d43442cb69c1c9703afe66003b206b916015dd4f67d2b157bcf15ec81cba2360" 1089 | dependencies = [ 1090 | "byteyarn", 1091 | "crossterm", 1092 | "crossterm_winapi", 1093 | "fancy-regex", 1094 | "lean_string", 1095 | "log", 1096 | "lscolors", 1097 | "memchr", 1098 | "nix", 1099 | "num-format", 1100 | "serde", 1101 | "serde_json", 1102 | "strip-ansi-escapes", 1103 | "sys-locale", 1104 | "unicase", 1105 | ] 1106 | 1107 | [[package]] 1108 | name = "nu_plugin_highlight" 1109 | version = "1.4.10+0.108.0" 1110 | dependencies = [ 1111 | "ansi_colours", 1112 | "bat", 1113 | "mime_guess", 1114 | "nu-ansi-term 0.50.3", 1115 | "nu-path", 1116 | "nu-plugin", 1117 | "nu-protocol", 1118 | "patch-apply", 1119 | "syntect", 1120 | ] 1121 | 1122 | [[package]] 1123 | name = "num-conv" 1124 | version = "0.1.0" 1125 | source = "registry+https://github.com/rust-lang/crates.io-index" 1126 | checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" 1127 | 1128 | [[package]] 1129 | name = "num-format" 1130 | version = "0.4.4" 1131 | source = "registry+https://github.com/rust-lang/crates.io-index" 1132 | checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3" 1133 | dependencies = [ 1134 | "arrayvec", 1135 | "itoa", 1136 | ] 1137 | 1138 | [[package]] 1139 | name = "num-traits" 1140 | version = "0.2.19" 1141 | source = "registry+https://github.com/rust-lang/crates.io-index" 1142 | checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 1143 | dependencies = [ 1144 | "autocfg", 1145 | ] 1146 | 1147 | [[package]] 1148 | name = "objc2-core-foundation" 1149 | version = "0.3.2" 1150 | source = "registry+https://github.com/rust-lang/crates.io-index" 1151 | checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" 1152 | dependencies = [ 1153 | "bitflags", 1154 | ] 1155 | 1156 | [[package]] 1157 | name = "objc2-io-kit" 1158 | version = "0.3.2" 1159 | source = "registry+https://github.com/rust-lang/crates.io-index" 1160 | checksum = "33fafba39597d6dc1fb709123dfa8289d39406734be322956a69f0931c73bb15" 1161 | dependencies = [ 1162 | "libc", 1163 | "objc2-core-foundation", 1164 | ] 1165 | 1166 | [[package]] 1167 | name = "omnipath" 1168 | version = "0.1.6" 1169 | source = "registry+https://github.com/rust-lang/crates.io-index" 1170 | checksum = "80adb31078122c880307e9cdfd4e3361e6545c319f9b9dcafcb03acd3b51a575" 1171 | 1172 | [[package]] 1173 | name = "once_cell" 1174 | version = "1.21.3" 1175 | source = "registry+https://github.com/rust-lang/crates.io-index" 1176 | checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" 1177 | 1178 | [[package]] 1179 | name = "onig" 1180 | version = "6.5.1" 1181 | source = "registry+https://github.com/rust-lang/crates.io-index" 1182 | checksum = "336b9c63443aceef14bea841b899035ae3abe89b7c486aaf4c5bd8aafedac3f0" 1183 | dependencies = [ 1184 | "bitflags", 1185 | "libc", 1186 | "once_cell", 1187 | "onig_sys", 1188 | ] 1189 | 1190 | [[package]] 1191 | name = "onig_sys" 1192 | version = "69.9.1" 1193 | source = "registry+https://github.com/rust-lang/crates.io-index" 1194 | checksum = "c7f86c6eef3d6df15f23bcfb6af487cbd2fed4e5581d58d5bf1f5f8b7f6727dc" 1195 | dependencies = [ 1196 | "cc", 1197 | "pkg-config", 1198 | ] 1199 | 1200 | [[package]] 1201 | name = "option-ext" 1202 | version = "0.2.0" 1203 | source = "registry+https://github.com/rust-lang/crates.io-index" 1204 | checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" 1205 | 1206 | [[package]] 1207 | name = "os_pipe" 1208 | version = "1.2.3" 1209 | source = "registry+https://github.com/rust-lang/crates.io-index" 1210 | checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967" 1211 | dependencies = [ 1212 | "libc", 1213 | "windows-sys 0.61.2", 1214 | ] 1215 | 1216 | [[package]] 1217 | name = "owo-colors" 1218 | version = "4.2.3" 1219 | source = "registry+https://github.com/rust-lang/crates.io-index" 1220 | checksum = "9c6901729fa79e91a0913333229e9ca5dc725089d1c363b2f4b4760709dc4a52" 1221 | 1222 | [[package]] 1223 | name = "parking_lot" 1224 | version = "0.12.5" 1225 | source = "registry+https://github.com/rust-lang/crates.io-index" 1226 | checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" 1227 | dependencies = [ 1228 | "lock_api", 1229 | "parking_lot_core", 1230 | ] 1231 | 1232 | [[package]] 1233 | name = "parking_lot_core" 1234 | version = "0.9.12" 1235 | source = "registry+https://github.com/rust-lang/crates.io-index" 1236 | checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" 1237 | dependencies = [ 1238 | "cfg-if", 1239 | "libc", 1240 | "redox_syscall", 1241 | "smallvec", 1242 | "windows-link 0.2.1", 1243 | ] 1244 | 1245 | [[package]] 1246 | name = "paste" 1247 | version = "1.0.15" 1248 | source = "registry+https://github.com/rust-lang/crates.io-index" 1249 | checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" 1250 | 1251 | [[package]] 1252 | name = "patch-apply" 1253 | version = "0.8.3" 1254 | source = "registry+https://github.com/rust-lang/crates.io-index" 1255 | checksum = "7fe95476ec50a4e9b95ed12a4677ff5996aba4329bf2535fb21c49afaad20809" 1256 | dependencies = [ 1257 | "chrono", 1258 | "nom", 1259 | "nom_locate", 1260 | ] 1261 | 1262 | [[package]] 1263 | name = "path_abs" 1264 | version = "0.5.1" 1265 | source = "registry+https://github.com/rust-lang/crates.io-index" 1266 | checksum = "05ef02f6342ac01d8a93b65f96db53fe68a92a15f41144f97fb00a9e669633c3" 1267 | dependencies = [ 1268 | "std_prelude", 1269 | ] 1270 | 1271 | [[package]] 1272 | name = "pkg-config" 1273 | version = "0.3.32" 1274 | source = "registry+https://github.com/rust-lang/crates.io-index" 1275 | checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" 1276 | 1277 | [[package]] 1278 | name = "plist" 1279 | version = "1.8.0" 1280 | source = "registry+https://github.com/rust-lang/crates.io-index" 1281 | checksum = "740ebea15c5d1428f910cd1a5f52cebf8d25006245ed8ade92702f4943d91e07" 1282 | dependencies = [ 1283 | "base64", 1284 | "indexmap", 1285 | "quick-xml", 1286 | "serde", 1287 | "time", 1288 | ] 1289 | 1290 | [[package]] 1291 | name = "powerfmt" 1292 | version = "0.2.0" 1293 | source = "registry+https://github.com/rust-lang/crates.io-index" 1294 | checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" 1295 | 1296 | [[package]] 1297 | name = "proc-macro-error-attr2" 1298 | version = "2.0.0" 1299 | source = "registry+https://github.com/rust-lang/crates.io-index" 1300 | checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" 1301 | dependencies = [ 1302 | "proc-macro2", 1303 | "quote", 1304 | ] 1305 | 1306 | [[package]] 1307 | name = "proc-macro-error2" 1308 | version = "2.0.1" 1309 | source = "registry+https://github.com/rust-lang/crates.io-index" 1310 | checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" 1311 | dependencies = [ 1312 | "proc-macro-error-attr2", 1313 | "proc-macro2", 1314 | "quote", 1315 | "syn", 1316 | ] 1317 | 1318 | [[package]] 1319 | name = "proc-macro2" 1320 | version = "1.0.101" 1321 | source = "registry+https://github.com/rust-lang/crates.io-index" 1322 | checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" 1323 | dependencies = [ 1324 | "unicode-ident", 1325 | ] 1326 | 1327 | [[package]] 1328 | name = "procfs" 1329 | version = "0.17.0" 1330 | source = "registry+https://github.com/rust-lang/crates.io-index" 1331 | checksum = "cc5b72d8145275d844d4b5f6d4e1eef00c8cd889edb6035c21675d1bb1f45c9f" 1332 | dependencies = [ 1333 | "bitflags", 1334 | "chrono", 1335 | "flate2", 1336 | "hex", 1337 | "procfs-core", 1338 | "rustix 0.38.44", 1339 | ] 1340 | 1341 | [[package]] 1342 | name = "procfs-core" 1343 | version = "0.17.0" 1344 | source = "registry+https://github.com/rust-lang/crates.io-index" 1345 | checksum = "239df02d8349b06fc07398a3a1697b06418223b1c7725085e801e7c0fc6a12ec" 1346 | dependencies = [ 1347 | "bitflags", 1348 | "chrono", 1349 | "hex", 1350 | ] 1351 | 1352 | [[package]] 1353 | name = "pure-rust-locales" 1354 | version = "0.8.2" 1355 | source = "registry+https://github.com/rust-lang/crates.io-index" 1356 | checksum = "869675ad2d7541aea90c6d88c81f46a7f4ea9af8cd0395d38f11a95126998a0d" 1357 | 1358 | [[package]] 1359 | name = "pwd" 1360 | version = "1.4.0" 1361 | source = "registry+https://github.com/rust-lang/crates.io-index" 1362 | checksum = "72c71c0c79b9701efe4e1e4b563b2016dd4ee789eb99badcb09d61ac4b92e4a2" 1363 | dependencies = [ 1364 | "libc", 1365 | "thiserror 1.0.69", 1366 | ] 1367 | 1368 | [[package]] 1369 | name = "quick-xml" 1370 | version = "0.38.3" 1371 | source = "registry+https://github.com/rust-lang/crates.io-index" 1372 | checksum = "42a232e7487fc2ef313d96dde7948e7a3c05101870d8985e4fd8d26aedd27b89" 1373 | dependencies = [ 1374 | "memchr", 1375 | ] 1376 | 1377 | [[package]] 1378 | name = "quote" 1379 | version = "1.0.41" 1380 | source = "registry+https://github.com/rust-lang/crates.io-index" 1381 | checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" 1382 | dependencies = [ 1383 | "proc-macro2", 1384 | ] 1385 | 1386 | [[package]] 1387 | name = "recvmsg" 1388 | version = "1.0.0" 1389 | source = "registry+https://github.com/rust-lang/crates.io-index" 1390 | checksum = "d3edd4d5d42c92f0a659926464d4cce56b562761267ecf0f469d85b7de384175" 1391 | 1392 | [[package]] 1393 | name = "redox_syscall" 1394 | version = "0.5.18" 1395 | source = "registry+https://github.com/rust-lang/crates.io-index" 1396 | checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" 1397 | dependencies = [ 1398 | "bitflags", 1399 | ] 1400 | 1401 | [[package]] 1402 | name = "redox_users" 1403 | version = "0.5.2" 1404 | source = "registry+https://github.com/rust-lang/crates.io-index" 1405 | checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" 1406 | dependencies = [ 1407 | "getrandom", 1408 | "libredox", 1409 | "thiserror 2.0.17", 1410 | ] 1411 | 1412 | [[package]] 1413 | name = "ref-cast" 1414 | version = "1.0.25" 1415 | source = "registry+https://github.com/rust-lang/crates.io-index" 1416 | checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" 1417 | dependencies = [ 1418 | "ref-cast-impl", 1419 | ] 1420 | 1421 | [[package]] 1422 | name = "ref-cast-impl" 1423 | version = "1.0.25" 1424 | source = "registry+https://github.com/rust-lang/crates.io-index" 1425 | checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" 1426 | dependencies = [ 1427 | "proc-macro2", 1428 | "quote", 1429 | "syn", 1430 | ] 1431 | 1432 | [[package]] 1433 | name = "regex" 1434 | version = "1.12.2" 1435 | source = "registry+https://github.com/rust-lang/crates.io-index" 1436 | checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" 1437 | dependencies = [ 1438 | "aho-corasick", 1439 | "memchr", 1440 | "regex-automata", 1441 | "regex-syntax", 1442 | ] 1443 | 1444 | [[package]] 1445 | name = "regex-automata" 1446 | version = "0.4.13" 1447 | source = "registry+https://github.com/rust-lang/crates.io-index" 1448 | checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" 1449 | dependencies = [ 1450 | "aho-corasick", 1451 | "memchr", 1452 | "regex-syntax", 1453 | ] 1454 | 1455 | [[package]] 1456 | name = "regex-syntax" 1457 | version = "0.8.8" 1458 | source = "registry+https://github.com/rust-lang/crates.io-index" 1459 | checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" 1460 | 1461 | [[package]] 1462 | name = "rgb" 1463 | version = "0.8.52" 1464 | source = "registry+https://github.com/rust-lang/crates.io-index" 1465 | checksum = "0c6a884d2998352bb4daf0183589aec883f16a6da1f4dde84d8e2e9a5409a1ce" 1466 | dependencies = [ 1467 | "bytemuck", 1468 | ] 1469 | 1470 | [[package]] 1471 | name = "rmp" 1472 | version = "0.8.14" 1473 | source = "registry+https://github.com/rust-lang/crates.io-index" 1474 | checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4" 1475 | dependencies = [ 1476 | "byteorder", 1477 | "num-traits", 1478 | "paste", 1479 | ] 1480 | 1481 | [[package]] 1482 | name = "rmp-serde" 1483 | version = "1.3.0" 1484 | source = "registry+https://github.com/rust-lang/crates.io-index" 1485 | checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db" 1486 | dependencies = [ 1487 | "byteorder", 1488 | "rmp", 1489 | "serde", 1490 | ] 1491 | 1492 | [[package]] 1493 | name = "rustc-hash" 1494 | version = "2.1.1" 1495 | source = "registry+https://github.com/rust-lang/crates.io-index" 1496 | checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" 1497 | 1498 | [[package]] 1499 | name = "rustix" 1500 | version = "0.38.44" 1501 | source = "registry+https://github.com/rust-lang/crates.io-index" 1502 | checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" 1503 | dependencies = [ 1504 | "bitflags", 1505 | "errno", 1506 | "libc", 1507 | "linux-raw-sys 0.4.15", 1508 | "windows-sys 0.59.0", 1509 | ] 1510 | 1511 | [[package]] 1512 | name = "rustix" 1513 | version = "1.1.2" 1514 | source = "registry+https://github.com/rust-lang/crates.io-index" 1515 | checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" 1516 | dependencies = [ 1517 | "bitflags", 1518 | "errno", 1519 | "libc", 1520 | "linux-raw-sys 0.11.0", 1521 | "windows-sys 0.61.2", 1522 | ] 1523 | 1524 | [[package]] 1525 | name = "rustversion" 1526 | version = "1.0.22" 1527 | source = "registry+https://github.com/rust-lang/crates.io-index" 1528 | checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" 1529 | 1530 | [[package]] 1531 | name = "ryu" 1532 | version = "1.0.20" 1533 | source = "registry+https://github.com/rust-lang/crates.io-index" 1534 | checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" 1535 | 1536 | [[package]] 1537 | name = "same-file" 1538 | version = "1.0.6" 1539 | source = "registry+https://github.com/rust-lang/crates.io-index" 1540 | checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 1541 | dependencies = [ 1542 | "winapi-util", 1543 | ] 1544 | 1545 | [[package]] 1546 | name = "scopeguard" 1547 | version = "1.2.0" 1548 | source = "registry+https://github.com/rust-lang/crates.io-index" 1549 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 1550 | 1551 | [[package]] 1552 | name = "semver" 1553 | version = "1.0.27" 1554 | source = "registry+https://github.com/rust-lang/crates.io-index" 1555 | checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" 1556 | 1557 | [[package]] 1558 | name = "serde" 1559 | version = "1.0.228" 1560 | source = "registry+https://github.com/rust-lang/crates.io-index" 1561 | checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" 1562 | dependencies = [ 1563 | "serde_core", 1564 | "serde_derive", 1565 | ] 1566 | 1567 | [[package]] 1568 | name = "serde_core" 1569 | version = "1.0.228" 1570 | source = "registry+https://github.com/rust-lang/crates.io-index" 1571 | checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" 1572 | dependencies = [ 1573 | "serde_derive", 1574 | ] 1575 | 1576 | [[package]] 1577 | name = "serde_derive" 1578 | version = "1.0.228" 1579 | source = "registry+https://github.com/rust-lang/crates.io-index" 1580 | checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" 1581 | dependencies = [ 1582 | "proc-macro2", 1583 | "quote", 1584 | "syn", 1585 | ] 1586 | 1587 | [[package]] 1588 | name = "serde_json" 1589 | version = "1.0.145" 1590 | source = "registry+https://github.com/rust-lang/crates.io-index" 1591 | checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" 1592 | dependencies = [ 1593 | "itoa", 1594 | "memchr", 1595 | "ryu", 1596 | "serde", 1597 | "serde_core", 1598 | ] 1599 | 1600 | [[package]] 1601 | name = "serde_yaml" 1602 | version = "0.9.34+deprecated" 1603 | source = "registry+https://github.com/rust-lang/crates.io-index" 1604 | checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" 1605 | dependencies = [ 1606 | "indexmap", 1607 | "itoa", 1608 | "ryu", 1609 | "serde", 1610 | "unsafe-libyaml", 1611 | ] 1612 | 1613 | [[package]] 1614 | name = "shlex" 1615 | version = "1.3.0" 1616 | source = "registry+https://github.com/rust-lang/crates.io-index" 1617 | checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 1618 | 1619 | [[package]] 1620 | name = "signal-hook" 1621 | version = "0.3.18" 1622 | source = "registry+https://github.com/rust-lang/crates.io-index" 1623 | checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2" 1624 | dependencies = [ 1625 | "libc", 1626 | "signal-hook-registry", 1627 | ] 1628 | 1629 | [[package]] 1630 | name = "signal-hook-mio" 1631 | version = "0.2.4" 1632 | source = "registry+https://github.com/rust-lang/crates.io-index" 1633 | checksum = "34db1a06d485c9142248b7a054f034b349b212551f3dfd19c94d45a754a217cd" 1634 | dependencies = [ 1635 | "libc", 1636 | "mio", 1637 | "signal-hook", 1638 | ] 1639 | 1640 | [[package]] 1641 | name = "signal-hook-registry" 1642 | version = "1.4.6" 1643 | source = "registry+https://github.com/rust-lang/crates.io-index" 1644 | checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" 1645 | dependencies = [ 1646 | "libc", 1647 | ] 1648 | 1649 | [[package]] 1650 | name = "simd-adler32" 1651 | version = "0.3.7" 1652 | source = "registry+https://github.com/rust-lang/crates.io-index" 1653 | checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" 1654 | 1655 | [[package]] 1656 | name = "smallvec" 1657 | version = "1.15.1" 1658 | source = "registry+https://github.com/rust-lang/crates.io-index" 1659 | checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" 1660 | 1661 | [[package]] 1662 | name = "std_prelude" 1663 | version = "0.2.12" 1664 | source = "registry+https://github.com/rust-lang/crates.io-index" 1665 | checksum = "8207e78455ffdf55661170876f88daf85356e4edd54e0a3dbc79586ca1e50cbe" 1666 | 1667 | [[package]] 1668 | name = "strip-ansi-escapes" 1669 | version = "0.2.1" 1670 | source = "registry+https://github.com/rust-lang/crates.io-index" 1671 | checksum = "2a8f8038e7e7969abb3f1b7c2a811225e9296da208539e0f79c5251d6cac0025" 1672 | dependencies = [ 1673 | "vte", 1674 | ] 1675 | 1676 | [[package]] 1677 | name = "strum" 1678 | version = "0.26.3" 1679 | source = "registry+https://github.com/rust-lang/crates.io-index" 1680 | checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" 1681 | 1682 | [[package]] 1683 | name = "strum_macros" 1684 | version = "0.27.2" 1685 | source = "registry+https://github.com/rust-lang/crates.io-index" 1686 | checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" 1687 | dependencies = [ 1688 | "heck", 1689 | "proc-macro2", 1690 | "quote", 1691 | "syn", 1692 | ] 1693 | 1694 | [[package]] 1695 | name = "supports-color" 1696 | version = "3.0.2" 1697 | source = "registry+https://github.com/rust-lang/crates.io-index" 1698 | checksum = "c64fc7232dd8d2e4ac5ce4ef302b1d81e0b80d055b9d77c7c4f51f6aa4c867d6" 1699 | dependencies = [ 1700 | "is_ci", 1701 | ] 1702 | 1703 | [[package]] 1704 | name = "supports-hyperlinks" 1705 | version = "3.1.0" 1706 | source = "registry+https://github.com/rust-lang/crates.io-index" 1707 | checksum = "804f44ed3c63152de6a9f90acbea1a110441de43006ea51bcce8f436196a288b" 1708 | 1709 | [[package]] 1710 | name = "supports-unicode" 1711 | version = "3.0.0" 1712 | source = "registry+https://github.com/rust-lang/crates.io-index" 1713 | checksum = "b7401a30af6cb5818bb64852270bb722533397edcfc7344954a38f420819ece2" 1714 | 1715 | [[package]] 1716 | name = "syn" 1717 | version = "2.0.106" 1718 | source = "registry+https://github.com/rust-lang/crates.io-index" 1719 | checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" 1720 | dependencies = [ 1721 | "proc-macro2", 1722 | "quote", 1723 | "unicode-ident", 1724 | ] 1725 | 1726 | [[package]] 1727 | name = "syntect" 1728 | version = "5.3.0" 1729 | source = "registry+https://github.com/rust-lang/crates.io-index" 1730 | checksum = "656b45c05d95a5704399aeef6bd0ddec7b2b3531b7c9e900abbf7c4d2190c925" 1731 | dependencies = [ 1732 | "bincode", 1733 | "flate2", 1734 | "fnv", 1735 | "once_cell", 1736 | "onig", 1737 | "plist", 1738 | "regex-syntax", 1739 | "serde", 1740 | "serde_derive", 1741 | "serde_json", 1742 | "thiserror 2.0.17", 1743 | "walkdir", 1744 | "yaml-rust", 1745 | ] 1746 | 1747 | [[package]] 1748 | name = "sys-locale" 1749 | version = "0.3.2" 1750 | source = "registry+https://github.com/rust-lang/crates.io-index" 1751 | checksum = "8eab9a99a024a169fe8a903cf9d4a3b3601109bcc13bd9e3c6fff259138626c4" 1752 | dependencies = [ 1753 | "libc", 1754 | ] 1755 | 1756 | [[package]] 1757 | name = "sysinfo" 1758 | version = "0.36.1" 1759 | source = "registry+https://github.com/rust-lang/crates.io-index" 1760 | checksum = "252800745060e7b9ffb7b2badbd8b31cfa4aa2e61af879d0a3bf2a317c20217d" 1761 | dependencies = [ 1762 | "libc", 1763 | "memchr", 1764 | "ntapi", 1765 | "objc2-core-foundation", 1766 | "objc2-io-kit", 1767 | "windows 0.61.3", 1768 | ] 1769 | 1770 | [[package]] 1771 | name = "terminal_size" 1772 | version = "0.4.3" 1773 | source = "registry+https://github.com/rust-lang/crates.io-index" 1774 | checksum = "60b8cb979cb11c32ce1603f8137b22262a9d131aaa5c37b5678025f22b8becd0" 1775 | dependencies = [ 1776 | "rustix 1.1.2", 1777 | "windows-sys 0.60.2", 1778 | ] 1779 | 1780 | [[package]] 1781 | name = "textwrap" 1782 | version = "0.16.2" 1783 | source = "registry+https://github.com/rust-lang/crates.io-index" 1784 | checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057" 1785 | dependencies = [ 1786 | "unicode-linebreak", 1787 | "unicode-width 0.2.2", 1788 | ] 1789 | 1790 | [[package]] 1791 | name = "thiserror" 1792 | version = "1.0.69" 1793 | source = "registry+https://github.com/rust-lang/crates.io-index" 1794 | checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" 1795 | dependencies = [ 1796 | "thiserror-impl 1.0.69", 1797 | ] 1798 | 1799 | [[package]] 1800 | name = "thiserror" 1801 | version = "2.0.17" 1802 | source = "registry+https://github.com/rust-lang/crates.io-index" 1803 | checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" 1804 | dependencies = [ 1805 | "thiserror-impl 2.0.17", 1806 | ] 1807 | 1808 | [[package]] 1809 | name = "thiserror-impl" 1810 | version = "1.0.69" 1811 | source = "registry+https://github.com/rust-lang/crates.io-index" 1812 | checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" 1813 | dependencies = [ 1814 | "proc-macro2", 1815 | "quote", 1816 | "syn", 1817 | ] 1818 | 1819 | [[package]] 1820 | name = "thiserror-impl" 1821 | version = "2.0.17" 1822 | source = "registry+https://github.com/rust-lang/crates.io-index" 1823 | checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" 1824 | dependencies = [ 1825 | "proc-macro2", 1826 | "quote", 1827 | "syn", 1828 | ] 1829 | 1830 | [[package]] 1831 | name = "time" 1832 | version = "0.3.44" 1833 | source = "registry+https://github.com/rust-lang/crates.io-index" 1834 | checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" 1835 | dependencies = [ 1836 | "deranged", 1837 | "itoa", 1838 | "num-conv", 1839 | "powerfmt", 1840 | "serde", 1841 | "time-core", 1842 | "time-macros", 1843 | ] 1844 | 1845 | [[package]] 1846 | name = "time-core" 1847 | version = "0.1.6" 1848 | source = "registry+https://github.com/rust-lang/crates.io-index" 1849 | checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" 1850 | 1851 | [[package]] 1852 | name = "time-macros" 1853 | version = "0.2.24" 1854 | source = "registry+https://github.com/rust-lang/crates.io-index" 1855 | checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" 1856 | dependencies = [ 1857 | "num-conv", 1858 | "time-core", 1859 | ] 1860 | 1861 | [[package]] 1862 | name = "typeid" 1863 | version = "1.0.3" 1864 | source = "registry+https://github.com/rust-lang/crates.io-index" 1865 | checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" 1866 | 1867 | [[package]] 1868 | name = "typetag" 1869 | version = "0.2.21" 1870 | source = "registry+https://github.com/rust-lang/crates.io-index" 1871 | checksum = "be2212c8a9b9bcfca32024de14998494cf9a5dfa59ea1b829de98bac374b86bf" 1872 | dependencies = [ 1873 | "erased-serde", 1874 | "inventory", 1875 | "once_cell", 1876 | "serde", 1877 | "typetag-impl", 1878 | ] 1879 | 1880 | [[package]] 1881 | name = "typetag-impl" 1882 | version = "0.2.21" 1883 | source = "registry+https://github.com/rust-lang/crates.io-index" 1884 | checksum = "27a7a9b72ba121f6f1f6c3632b85604cac41aedb5ddc70accbebb6cac83de846" 1885 | dependencies = [ 1886 | "proc-macro2", 1887 | "quote", 1888 | "syn", 1889 | ] 1890 | 1891 | [[package]] 1892 | name = "unicase" 1893 | version = "2.8.1" 1894 | source = "registry+https://github.com/rust-lang/crates.io-index" 1895 | checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" 1896 | 1897 | [[package]] 1898 | name = "unicode-ident" 1899 | version = "1.0.19" 1900 | source = "registry+https://github.com/rust-lang/crates.io-index" 1901 | checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" 1902 | 1903 | [[package]] 1904 | name = "unicode-linebreak" 1905 | version = "0.1.5" 1906 | source = "registry+https://github.com/rust-lang/crates.io-index" 1907 | checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" 1908 | 1909 | [[package]] 1910 | name = "unicode-width" 1911 | version = "0.1.14" 1912 | source = "registry+https://github.com/rust-lang/crates.io-index" 1913 | checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" 1914 | 1915 | [[package]] 1916 | name = "unicode-width" 1917 | version = "0.2.2" 1918 | source = "registry+https://github.com/rust-lang/crates.io-index" 1919 | checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" 1920 | 1921 | [[package]] 1922 | name = "unsafe-libyaml" 1923 | version = "0.2.11" 1924 | source = "registry+https://github.com/rust-lang/crates.io-index" 1925 | checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" 1926 | 1927 | [[package]] 1928 | name = "vte" 1929 | version = "0.14.1" 1930 | source = "registry+https://github.com/rust-lang/crates.io-index" 1931 | checksum = "231fdcd7ef3037e8330d8e17e61011a2c244126acc0a982f4040ac3f9f0bc077" 1932 | dependencies = [ 1933 | "memchr", 1934 | ] 1935 | 1936 | [[package]] 1937 | name = "walkdir" 1938 | version = "2.5.0" 1939 | source = "registry+https://github.com/rust-lang/crates.io-index" 1940 | checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" 1941 | dependencies = [ 1942 | "same-file", 1943 | "winapi-util", 1944 | ] 1945 | 1946 | [[package]] 1947 | name = "wasi" 1948 | version = "0.11.1+wasi-snapshot-preview1" 1949 | source = "registry+https://github.com/rust-lang/crates.io-index" 1950 | checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" 1951 | 1952 | [[package]] 1953 | name = "wasm-bindgen" 1954 | version = "0.2.104" 1955 | source = "registry+https://github.com/rust-lang/crates.io-index" 1956 | checksum = "c1da10c01ae9f1ae40cbfac0bac3b1e724b320abfcf52229f80b547c0d250e2d" 1957 | dependencies = [ 1958 | "cfg-if", 1959 | "once_cell", 1960 | "rustversion", 1961 | "wasm-bindgen-macro", 1962 | "wasm-bindgen-shared", 1963 | ] 1964 | 1965 | [[package]] 1966 | name = "wasm-bindgen-backend" 1967 | version = "0.2.104" 1968 | source = "registry+https://github.com/rust-lang/crates.io-index" 1969 | checksum = "671c9a5a66f49d8a47345ab942e2cb93c7d1d0339065d4f8139c486121b43b19" 1970 | dependencies = [ 1971 | "bumpalo", 1972 | "log", 1973 | "proc-macro2", 1974 | "quote", 1975 | "syn", 1976 | "wasm-bindgen-shared", 1977 | ] 1978 | 1979 | [[package]] 1980 | name = "wasm-bindgen-macro" 1981 | version = "0.2.104" 1982 | source = "registry+https://github.com/rust-lang/crates.io-index" 1983 | checksum = "7ca60477e4c59f5f2986c50191cd972e3a50d8a95603bc9434501cf156a9a119" 1984 | dependencies = [ 1985 | "quote", 1986 | "wasm-bindgen-macro-support", 1987 | ] 1988 | 1989 | [[package]] 1990 | name = "wasm-bindgen-macro-support" 1991 | version = "0.2.104" 1992 | source = "registry+https://github.com/rust-lang/crates.io-index" 1993 | checksum = "9f07d2f20d4da7b26400c9f4a0511e6e0345b040694e8a75bd41d578fa4421d7" 1994 | dependencies = [ 1995 | "proc-macro2", 1996 | "quote", 1997 | "syn", 1998 | "wasm-bindgen-backend", 1999 | "wasm-bindgen-shared", 2000 | ] 2001 | 2002 | [[package]] 2003 | name = "wasm-bindgen-shared" 2004 | version = "0.2.104" 2005 | source = "registry+https://github.com/rust-lang/crates.io-index" 2006 | checksum = "bad67dc8b2a1a6e5448428adec4c3e84c43e561d8c9ee8a9e5aabeb193ec41d1" 2007 | dependencies = [ 2008 | "unicode-ident", 2009 | ] 2010 | 2011 | [[package]] 2012 | name = "web-time" 2013 | version = "1.1.0" 2014 | source = "registry+https://github.com/rust-lang/crates.io-index" 2015 | checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" 2016 | dependencies = [ 2017 | "js-sys", 2018 | "wasm-bindgen", 2019 | ] 2020 | 2021 | [[package]] 2022 | name = "widestring" 2023 | version = "1.2.1" 2024 | source = "registry+https://github.com/rust-lang/crates.io-index" 2025 | checksum = "72069c3113ab32ab29e5584db3c6ec55d416895e60715417b5b883a357c3e471" 2026 | 2027 | [[package]] 2028 | name = "winapi" 2029 | version = "0.3.9" 2030 | source = "registry+https://github.com/rust-lang/crates.io-index" 2031 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 2032 | dependencies = [ 2033 | "winapi-i686-pc-windows-gnu", 2034 | "winapi-x86_64-pc-windows-gnu", 2035 | ] 2036 | 2037 | [[package]] 2038 | name = "winapi-i686-pc-windows-gnu" 2039 | version = "0.4.0" 2040 | source = "registry+https://github.com/rust-lang/crates.io-index" 2041 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 2042 | 2043 | [[package]] 2044 | name = "winapi-util" 2045 | version = "0.1.11" 2046 | source = "registry+https://github.com/rust-lang/crates.io-index" 2047 | checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" 2048 | dependencies = [ 2049 | "windows-sys 0.61.2", 2050 | ] 2051 | 2052 | [[package]] 2053 | name = "winapi-x86_64-pc-windows-gnu" 2054 | version = "0.4.0" 2055 | source = "registry+https://github.com/rust-lang/crates.io-index" 2056 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 2057 | 2058 | [[package]] 2059 | name = "windows" 2060 | version = "0.61.3" 2061 | source = "registry+https://github.com/rust-lang/crates.io-index" 2062 | checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" 2063 | dependencies = [ 2064 | "windows-collections 0.2.0", 2065 | "windows-core 0.61.2", 2066 | "windows-future 0.2.1", 2067 | "windows-link 0.1.3", 2068 | "windows-numerics 0.2.0", 2069 | ] 2070 | 2071 | [[package]] 2072 | name = "windows" 2073 | version = "0.62.2" 2074 | source = "registry+https://github.com/rust-lang/crates.io-index" 2075 | checksum = "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580" 2076 | dependencies = [ 2077 | "windows-collections 0.3.2", 2078 | "windows-core 0.62.2", 2079 | "windows-future 0.3.2", 2080 | "windows-numerics 0.3.1", 2081 | ] 2082 | 2083 | [[package]] 2084 | name = "windows-collections" 2085 | version = "0.2.0" 2086 | source = "registry+https://github.com/rust-lang/crates.io-index" 2087 | checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" 2088 | dependencies = [ 2089 | "windows-core 0.61.2", 2090 | ] 2091 | 2092 | [[package]] 2093 | name = "windows-collections" 2094 | version = "0.3.2" 2095 | source = "registry+https://github.com/rust-lang/crates.io-index" 2096 | checksum = "23b2d95af1a8a14a3c7367e1ed4fc9c20e0a26e79551b1454d72583c97cc6610" 2097 | dependencies = [ 2098 | "windows-core 0.62.2", 2099 | ] 2100 | 2101 | [[package]] 2102 | name = "windows-core" 2103 | version = "0.61.2" 2104 | source = "registry+https://github.com/rust-lang/crates.io-index" 2105 | checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" 2106 | dependencies = [ 2107 | "windows-implement", 2108 | "windows-interface", 2109 | "windows-link 0.1.3", 2110 | "windows-result 0.3.4", 2111 | "windows-strings 0.4.2", 2112 | ] 2113 | 2114 | [[package]] 2115 | name = "windows-core" 2116 | version = "0.62.2" 2117 | source = "registry+https://github.com/rust-lang/crates.io-index" 2118 | checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" 2119 | dependencies = [ 2120 | "windows-implement", 2121 | "windows-interface", 2122 | "windows-link 0.2.1", 2123 | "windows-result 0.4.1", 2124 | "windows-strings 0.5.1", 2125 | ] 2126 | 2127 | [[package]] 2128 | name = "windows-future" 2129 | version = "0.2.1" 2130 | source = "registry+https://github.com/rust-lang/crates.io-index" 2131 | checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" 2132 | dependencies = [ 2133 | "windows-core 0.61.2", 2134 | "windows-link 0.1.3", 2135 | "windows-threading 0.1.0", 2136 | ] 2137 | 2138 | [[package]] 2139 | name = "windows-future" 2140 | version = "0.3.2" 2141 | source = "registry+https://github.com/rust-lang/crates.io-index" 2142 | checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb" 2143 | dependencies = [ 2144 | "windows-core 0.62.2", 2145 | "windows-link 0.2.1", 2146 | "windows-threading 0.2.1", 2147 | ] 2148 | 2149 | [[package]] 2150 | name = "windows-implement" 2151 | version = "0.60.2" 2152 | source = "registry+https://github.com/rust-lang/crates.io-index" 2153 | checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" 2154 | dependencies = [ 2155 | "proc-macro2", 2156 | "quote", 2157 | "syn", 2158 | ] 2159 | 2160 | [[package]] 2161 | name = "windows-interface" 2162 | version = "0.59.3" 2163 | source = "registry+https://github.com/rust-lang/crates.io-index" 2164 | checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" 2165 | dependencies = [ 2166 | "proc-macro2", 2167 | "quote", 2168 | "syn", 2169 | ] 2170 | 2171 | [[package]] 2172 | name = "windows-link" 2173 | version = "0.1.3" 2174 | source = "registry+https://github.com/rust-lang/crates.io-index" 2175 | checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" 2176 | 2177 | [[package]] 2178 | name = "windows-link" 2179 | version = "0.2.1" 2180 | source = "registry+https://github.com/rust-lang/crates.io-index" 2181 | checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" 2182 | 2183 | [[package]] 2184 | name = "windows-numerics" 2185 | version = "0.2.0" 2186 | source = "registry+https://github.com/rust-lang/crates.io-index" 2187 | checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" 2188 | dependencies = [ 2189 | "windows-core 0.61.2", 2190 | "windows-link 0.1.3", 2191 | ] 2192 | 2193 | [[package]] 2194 | name = "windows-numerics" 2195 | version = "0.3.1" 2196 | source = "registry+https://github.com/rust-lang/crates.io-index" 2197 | checksum = "6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26" 2198 | dependencies = [ 2199 | "windows-core 0.62.2", 2200 | "windows-link 0.2.1", 2201 | ] 2202 | 2203 | [[package]] 2204 | name = "windows-result" 2205 | version = "0.3.4" 2206 | source = "registry+https://github.com/rust-lang/crates.io-index" 2207 | checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" 2208 | dependencies = [ 2209 | "windows-link 0.1.3", 2210 | ] 2211 | 2212 | [[package]] 2213 | name = "windows-result" 2214 | version = "0.4.1" 2215 | source = "registry+https://github.com/rust-lang/crates.io-index" 2216 | checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" 2217 | dependencies = [ 2218 | "windows-link 0.2.1", 2219 | ] 2220 | 2221 | [[package]] 2222 | name = "windows-strings" 2223 | version = "0.4.2" 2224 | source = "registry+https://github.com/rust-lang/crates.io-index" 2225 | checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" 2226 | dependencies = [ 2227 | "windows-link 0.1.3", 2228 | ] 2229 | 2230 | [[package]] 2231 | name = "windows-strings" 2232 | version = "0.5.1" 2233 | source = "registry+https://github.com/rust-lang/crates.io-index" 2234 | checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" 2235 | dependencies = [ 2236 | "windows-link 0.2.1", 2237 | ] 2238 | 2239 | [[package]] 2240 | name = "windows-sys" 2241 | version = "0.48.0" 2242 | source = "registry+https://github.com/rust-lang/crates.io-index" 2243 | checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 2244 | dependencies = [ 2245 | "windows-targets 0.48.5", 2246 | ] 2247 | 2248 | [[package]] 2249 | name = "windows-sys" 2250 | version = "0.52.0" 2251 | source = "registry+https://github.com/rust-lang/crates.io-index" 2252 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 2253 | dependencies = [ 2254 | "windows-targets 0.52.6", 2255 | ] 2256 | 2257 | [[package]] 2258 | name = "windows-sys" 2259 | version = "0.59.0" 2260 | source = "registry+https://github.com/rust-lang/crates.io-index" 2261 | checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 2262 | dependencies = [ 2263 | "windows-targets 0.52.6", 2264 | ] 2265 | 2266 | [[package]] 2267 | name = "windows-sys" 2268 | version = "0.60.2" 2269 | source = "registry+https://github.com/rust-lang/crates.io-index" 2270 | checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" 2271 | dependencies = [ 2272 | "windows-targets 0.53.5", 2273 | ] 2274 | 2275 | [[package]] 2276 | name = "windows-sys" 2277 | version = "0.61.2" 2278 | source = "registry+https://github.com/rust-lang/crates.io-index" 2279 | checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" 2280 | dependencies = [ 2281 | "windows-link 0.2.1", 2282 | ] 2283 | 2284 | [[package]] 2285 | name = "windows-targets" 2286 | version = "0.48.5" 2287 | source = "registry+https://github.com/rust-lang/crates.io-index" 2288 | checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 2289 | dependencies = [ 2290 | "windows_aarch64_gnullvm 0.48.5", 2291 | "windows_aarch64_msvc 0.48.5", 2292 | "windows_i686_gnu 0.48.5", 2293 | "windows_i686_msvc 0.48.5", 2294 | "windows_x86_64_gnu 0.48.5", 2295 | "windows_x86_64_gnullvm 0.48.5", 2296 | "windows_x86_64_msvc 0.48.5", 2297 | ] 2298 | 2299 | [[package]] 2300 | name = "windows-targets" 2301 | version = "0.52.6" 2302 | source = "registry+https://github.com/rust-lang/crates.io-index" 2303 | checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 2304 | dependencies = [ 2305 | "windows_aarch64_gnullvm 0.52.6", 2306 | "windows_aarch64_msvc 0.52.6", 2307 | "windows_i686_gnu 0.52.6", 2308 | "windows_i686_gnullvm 0.52.6", 2309 | "windows_i686_msvc 0.52.6", 2310 | "windows_x86_64_gnu 0.52.6", 2311 | "windows_x86_64_gnullvm 0.52.6", 2312 | "windows_x86_64_msvc 0.52.6", 2313 | ] 2314 | 2315 | [[package]] 2316 | name = "windows-targets" 2317 | version = "0.53.5" 2318 | source = "registry+https://github.com/rust-lang/crates.io-index" 2319 | checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" 2320 | dependencies = [ 2321 | "windows-link 0.2.1", 2322 | "windows_aarch64_gnullvm 0.53.1", 2323 | "windows_aarch64_msvc 0.53.1", 2324 | "windows_i686_gnu 0.53.1", 2325 | "windows_i686_gnullvm 0.53.1", 2326 | "windows_i686_msvc 0.53.1", 2327 | "windows_x86_64_gnu 0.53.1", 2328 | "windows_x86_64_gnullvm 0.53.1", 2329 | "windows_x86_64_msvc 0.53.1", 2330 | ] 2331 | 2332 | [[package]] 2333 | name = "windows-threading" 2334 | version = "0.1.0" 2335 | source = "registry+https://github.com/rust-lang/crates.io-index" 2336 | checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" 2337 | dependencies = [ 2338 | "windows-link 0.1.3", 2339 | ] 2340 | 2341 | [[package]] 2342 | name = "windows-threading" 2343 | version = "0.2.1" 2344 | source = "registry+https://github.com/rust-lang/crates.io-index" 2345 | checksum = "3949bd5b99cafdf1c7ca86b43ca564028dfe27d66958f2470940f73d86d75b37" 2346 | dependencies = [ 2347 | "windows-link 0.2.1", 2348 | ] 2349 | 2350 | [[package]] 2351 | name = "windows_aarch64_gnullvm" 2352 | version = "0.48.5" 2353 | source = "registry+https://github.com/rust-lang/crates.io-index" 2354 | checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 2355 | 2356 | [[package]] 2357 | name = "windows_aarch64_gnullvm" 2358 | version = "0.52.6" 2359 | source = "registry+https://github.com/rust-lang/crates.io-index" 2360 | checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 2361 | 2362 | [[package]] 2363 | name = "windows_aarch64_gnullvm" 2364 | version = "0.53.1" 2365 | source = "registry+https://github.com/rust-lang/crates.io-index" 2366 | checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" 2367 | 2368 | [[package]] 2369 | name = "windows_aarch64_msvc" 2370 | version = "0.48.5" 2371 | source = "registry+https://github.com/rust-lang/crates.io-index" 2372 | checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 2373 | 2374 | [[package]] 2375 | name = "windows_aarch64_msvc" 2376 | version = "0.52.6" 2377 | source = "registry+https://github.com/rust-lang/crates.io-index" 2378 | checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 2379 | 2380 | [[package]] 2381 | name = "windows_aarch64_msvc" 2382 | version = "0.53.1" 2383 | source = "registry+https://github.com/rust-lang/crates.io-index" 2384 | checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" 2385 | 2386 | [[package]] 2387 | name = "windows_i686_gnu" 2388 | version = "0.48.5" 2389 | source = "registry+https://github.com/rust-lang/crates.io-index" 2390 | checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 2391 | 2392 | [[package]] 2393 | name = "windows_i686_gnu" 2394 | version = "0.52.6" 2395 | source = "registry+https://github.com/rust-lang/crates.io-index" 2396 | checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 2397 | 2398 | [[package]] 2399 | name = "windows_i686_gnu" 2400 | version = "0.53.1" 2401 | source = "registry+https://github.com/rust-lang/crates.io-index" 2402 | checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" 2403 | 2404 | [[package]] 2405 | name = "windows_i686_gnullvm" 2406 | version = "0.52.6" 2407 | source = "registry+https://github.com/rust-lang/crates.io-index" 2408 | checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 2409 | 2410 | [[package]] 2411 | name = "windows_i686_gnullvm" 2412 | version = "0.53.1" 2413 | source = "registry+https://github.com/rust-lang/crates.io-index" 2414 | checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" 2415 | 2416 | [[package]] 2417 | name = "windows_i686_msvc" 2418 | version = "0.48.5" 2419 | source = "registry+https://github.com/rust-lang/crates.io-index" 2420 | checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 2421 | 2422 | [[package]] 2423 | name = "windows_i686_msvc" 2424 | version = "0.52.6" 2425 | source = "registry+https://github.com/rust-lang/crates.io-index" 2426 | checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 2427 | 2428 | [[package]] 2429 | name = "windows_i686_msvc" 2430 | version = "0.53.1" 2431 | source = "registry+https://github.com/rust-lang/crates.io-index" 2432 | checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" 2433 | 2434 | [[package]] 2435 | name = "windows_x86_64_gnu" 2436 | version = "0.48.5" 2437 | source = "registry+https://github.com/rust-lang/crates.io-index" 2438 | checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 2439 | 2440 | [[package]] 2441 | name = "windows_x86_64_gnu" 2442 | version = "0.52.6" 2443 | source = "registry+https://github.com/rust-lang/crates.io-index" 2444 | checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 2445 | 2446 | [[package]] 2447 | name = "windows_x86_64_gnu" 2448 | version = "0.53.1" 2449 | source = "registry+https://github.com/rust-lang/crates.io-index" 2450 | checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" 2451 | 2452 | [[package]] 2453 | name = "windows_x86_64_gnullvm" 2454 | version = "0.48.5" 2455 | source = "registry+https://github.com/rust-lang/crates.io-index" 2456 | checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 2457 | 2458 | [[package]] 2459 | name = "windows_x86_64_gnullvm" 2460 | version = "0.52.6" 2461 | source = "registry+https://github.com/rust-lang/crates.io-index" 2462 | checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 2463 | 2464 | [[package]] 2465 | name = "windows_x86_64_gnullvm" 2466 | version = "0.53.1" 2467 | source = "registry+https://github.com/rust-lang/crates.io-index" 2468 | checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" 2469 | 2470 | [[package]] 2471 | name = "windows_x86_64_msvc" 2472 | version = "0.48.5" 2473 | source = "registry+https://github.com/rust-lang/crates.io-index" 2474 | checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 2475 | 2476 | [[package]] 2477 | name = "windows_x86_64_msvc" 2478 | version = "0.52.6" 2479 | source = "registry+https://github.com/rust-lang/crates.io-index" 2480 | checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 2481 | 2482 | [[package]] 2483 | name = "windows_x86_64_msvc" 2484 | version = "0.53.1" 2485 | source = "registry+https://github.com/rust-lang/crates.io-index" 2486 | checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" 2487 | 2488 | [[package]] 2489 | name = "yaml-rust" 2490 | version = "0.4.5" 2491 | source = "registry+https://github.com/rust-lang/crates.io-index" 2492 | checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" 2493 | dependencies = [ 2494 | "linked-hash-map", 2495 | ] 2496 | 2497 | [[package]] 2498 | name = "zerocopy" 2499 | version = "0.7.35" 2500 | source = "registry+https://github.com/rust-lang/crates.io-index" 2501 | checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" 2502 | dependencies = [ 2503 | "byteorder", 2504 | "zerocopy-derive", 2505 | ] 2506 | 2507 | [[package]] 2508 | name = "zerocopy-derive" 2509 | version = "0.7.35" 2510 | source = "registry+https://github.com/rust-lang/crates.io-index" 2511 | checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" 2512 | dependencies = [ 2513 | "proc-macro2", 2514 | "quote", 2515 | "syn", 2516 | ] 2517 | --------------------------------------------------------------------------------