Enum clap::ClapErrorType
[−]
[src]
pub enum ClapErrorType { InvalidValue, InvalidArgument, InvalidSubcommand, EmptyValue, ValueValidationError, ArgumentError, TooManyArgs, TooManyValues, TooFewValues, WrongNumValues, ArgumentConflict, MissingRequiredArgument, MissingSubcommand, MissingArgumentOrSubcommand, UnexpectedArgument, UnexpectedMultipleUsage, InvalidUnicode, }
Command line argument parser error types
Variants
InvalidValue
Error occurs when some possible values were set, but clap found unexpected value
Examples
let result = App::new("myprog") .arg(Arg::with_name("debug").index(1) .possible_value("fast") .possible_value("slow")) .get_matches_from_safe(vec!["", "other"]);
InvalidArgument
Error occurs when clap found unexpected flag or option
Examples
let result = App::new("myprog") .arg(Arg::from_usage("-f, --flag 'some flag'")) .get_matches_from_safe(vec!["", "--other"]);
InvalidSubcommand
Error occurs when clap found unexpected subcommand
Examples
let result = App::new("myprog") .subcommand(SubCommand::with_name("conifg") .about("Used for configuration") .arg(Arg::with_name("config_file") .help("The configuration file to use") .index(1))) .get_matches_from_safe(vec!["", "other"]);
EmptyValue
Error occurs when option does not allow empty values but some was found
Examples
let result = App::new("myprog") .arg(Arg::with_name("debug") .empty_values(false)) .arg(Arg::with_name("color")) .get_matches_from_safe(vec!["", "--debug", "--color"]);
ValueValidationError
Option fails validation of a custom validator
ArgumentError
Parser inner error
TooManyArgs
Error occurs when an application got more arguments then were expected
Examples
let result = App::new("myprog") .arg(Arg::with_name("debug").index(1) .max_values(2)) .get_matches_from_safe(vec!["", "too", "much", "values"]);
TooManyValues
Error occurs when argument got more values then were expected
Examples
let result = App::new("myprog") .arg(Arg::with_name("debug").index(1) .max_values(2)) .get_matches_from_safe(vec!["", "too", "much", "values"]);
TooFewValues
Error occurs when argument got less values then were expected
Examples
let result = App::new("myprog") .arg(Arg::with_name("debug").index(1) .min_values(3)) .get_matches_from_safe(vec!["", "too", "few"]);
WrongNumValues
Error occurs when argument got a different number of values then were expected
Examples
let result = App::new("myprog") .arg(Arg::with_name("debug").index(1) .max_values(2)) .get_matches_from_safe(vec!["", "too", "much", "values"]);
ArgumentConflict
Error occurs when clap find two ore more conflicting arguments
Examples
let result = App::new("myprog") .arg(Arg::with_name("debug") .conflicts_with("color")) .get_matches_from_safe(vec!["", "--debug", "--color"]);
MissingRequiredArgument
Error occurs when one or more required arguments missing
Examples
let result = App::new("myprog") .arg(Arg::with_name("debug") .required(true)) .get_matches_from_safe(vec![""]);
MissingSubcommand
Error occurs when required subcommand missing
Examples
let result = App::new("myprog") .setting(AppSettings::SubcommandRequired) .subcommand(SubCommand::with_name("conifg") .about("Used for configuration") .arg(Arg::with_name("config_file") .help("The configuration file to use") .index(1))) .get_matches_from_safe(vec![""]);
MissingArgumentOrSubcommand
Occurs when no argument or subcommand has been supplied and
AppSettings::ArgRequiredElseHelp
was used
Examples
let result = App::new("myprog") .setting(AppSettings::ArgRequiredElseHelp) .subcommand(SubCommand::with_name("conifg") .about("Used for configuration") .arg(Arg::with_name("config_file") .help("The configuration file to use") .index(1))) .get_matches_from_safe(vec![""]);
UnexpectedArgument
Error occurs when clap find argument while is was not expecting any
Examples
let result = App::new("myprog") .get_matches_from_safe(vec!["", "--arg"]);
UnexpectedMultipleUsage
Error occurs when argument was used multiple times and was not set as multiple.
Examples
let result = App::new("myprog") .arg(Arg::with_name("debug") .multiple(false)) .get_matches_from_safe(vec!["", "--debug", "--debug"]);
InvalidUnicode
Error occurs when argument contains invalid unicode characters
Examples
let result = App::new("myprog") .arg(Arg::with_name("debug") .short("u") .takes_value(true)) .get_matches_from_safe(vec![OsString::from_vec(vec![0x20]), OsString::from_vec(vec![0xE9])]); assert!(result.is_err());