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
InvalidValueError 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"]);
InvalidArgumentError 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"]);
InvalidSubcommandError 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"]);
EmptyValueError 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"]);
ValueValidationErrorOption fails validation of a custom validator
ArgumentErrorParser inner error
TooManyArgsError 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"]);
TooManyValuesError 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"]);
TooFewValuesError 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"]);
WrongNumValuesError 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"]);
ArgumentConflictError 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"]);
MissingRequiredArgumentError 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![""]);
MissingSubcommandError 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![""]);
MissingArgumentOrSubcommandOccurs 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![""]);
UnexpectedArgumentError occurs when clap find argument while is was not expecting any
Examples
let result = App::new("myprog") .get_matches_from_safe(vec!["", "--arg"]);
UnexpectedMultipleUsageError 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"]);
InvalidUnicodeError 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());