From 08c91a116c7513518e857c5e3b9d629e81d98f80 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Thu, 1 Sep 2022 21:06:39 -0500 Subject: [PATCH] refactor: Parse, don't validate --- src/bin/bat/clap_app.rs | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/bin/bat/clap_app.rs b/src/bin/bat/clap_app.rs index 7965ab0e..f96e9e98 100644 --- a/src/bin/bat/clap_app.rs +++ b/src/bin/bat/clap_app.rs @@ -152,11 +152,11 @@ pub fn build_app(interactive_output: bool) -> Command<'static> { .overrides_with("diff-context") .takes_value(true) .value_name("N") - .validator( - |n| { + .value_parser( + |n: &str| { n.parse::() .map_err(|_| "must be a number") - .map(|_| ()) // Convert to Result<(), &str> + .map(|_| n.to_owned()) // Convert to Result .map_err(|e| e.to_string()) }, // Convert to Result<(), String> ) @@ -173,11 +173,11 @@ pub fn build_app(interactive_output: bool) -> Command<'static> { .overrides_with("tabs") .takes_value(true) .value_name("T") - .validator( - |t| { + .value_parser( + |t: &str| { t.parse::() .map_err(|_t| "must be a number") - .map(|_t| ()) // Convert to Result<(), &str> + .map(|_t| t.to_owned()) // Convert to Result .map_err(|e| e.to_string()) }, // Convert to Result<(), String> ) @@ -208,15 +208,15 @@ pub fn build_app(interactive_output: bool) -> Command<'static> { .value_name("width") .hide_short_help(true) .allow_hyphen_values(true) - .validator( - |t| { + .value_parser( + |t: &str| { let is_offset = t.starts_with('+') || t.starts_with('-'); t.parse::() .map_err(|_e| "must be an offset or number") .and_then(|v| if v == 0 && !is_offset { Err("terminal width cannot be zero") } else { - Ok(()) + Ok(t.to_owned()) }) .map_err(|e| e.to_string()) }) @@ -400,7 +400,7 @@ pub fn build_app(interactive_output: bool) -> Command<'static> { .overrides_with("plain") .overrides_with("number") // Cannot use claps built in validation because we have to turn off clap's delimiters - .validator(|val| { + .value_parser(|val: &str| { let mut invalid_vals = val.split(',').filter(|style| { !&[ "auto", @@ -422,7 +422,7 @@ pub fn build_app(interactive_output: bool) -> Command<'static> { if let Some(invalid) = invalid_vals.next() { Err(format!("Unknown style, '{}'", invalid)) } else { - Ok(()) + Ok(val.to_owned()) } }) .help(