diff options
Diffstat (limited to 'clap/examples/15_custom_validator.rs')
-rw-r--r-- | clap/examples/15_custom_validator.rs | 37 |
1 files changed, 0 insertions, 37 deletions
diff --git a/clap/examples/15_custom_validator.rs b/clap/examples/15_custom_validator.rs deleted file mode 100644 index a5c0d42..0000000 --- a/clap/examples/15_custom_validator.rs +++ /dev/null @@ -1,37 +0,0 @@ -extern crate clap; - -use clap::{App, Arg}; - -fn main() { - // You can define a function (or a closure) to use as a validator to argument values. The - // function must accept a String and return Result<(), String> where Err(String) is the message - // displayed to the user. - - let matches = App::new("myapp") - // Application logic goes here... - .arg(Arg::with_name("input") - .help("the input file to use") - .index(1) - .required(true) - // You can pass in a closure, or a function - .validator(is_png)) - .get_matches(); - - // Here we can call .unwrap() because the argument is required. - println!("The .PNG file is: {}", matches.value_of("input").unwrap()); -} - -fn is_png(val: String) -> Result<(), String> { - // val is the argument value passed in by the user - // val has type of String. - if val.ends_with(".png") { - Ok(()) - } else { - // clap automatically adds "error: " to the beginning - // of the message. - Err(String::from("the file format must be png.")) - } - // Of course, you can do more complicated validation as - // well, but for the simplicity, this example only checks - // if the value passed in ends with ".png" or not. -} |