diff options
Diffstat (limited to 'crates')
| -rw-r--r-- | crates/atuin/src/command/client/stats.rs | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/crates/atuin/src/command/client/stats.rs b/crates/atuin/src/command/client/stats.rs index daffdd84..3ee60633 100644 --- a/crates/atuin/src/command/client/stats.rs +++ b/crates/atuin/src/command/client/stats.rs @@ -11,6 +11,18 @@ use atuin_client::{ use atuin_history::stats::{compute, pretty_print}; +fn parse_ngram_size(s: &str) -> Result<usize, String> { + let value = s + .parse::<usize>() + .map_err(|_| format!("'{s}' is not a valid window size"))?; + + if value == 0 { + return Err("ngram window size must be at least 1".to_string()); + } + + Ok(value) +} + #[derive(Parser, Debug)] #[command(infer_subcommands = true)] pub struct Cmd { @@ -22,7 +34,7 @@ pub struct Cmd { count: usize, /// The number of consecutive commands to consider - #[arg(long, short, default_value = "1")] + #[arg(long, short, default_value = "1", value_parser = parse_ngram_size)] ngram_size: usize, } |
