Enum clap::ClapErrorType [] [src]

pub enum ClapErrorType {
    InvalidValue,
    InvalidArgument,
    InvalidSubcommand,
    EmptyValue,
    ValueValidationError,
    ArgumentError,
    TooManyArgs,
    TooManyValues,
    TooFewValues,
    WrongNumValues,
    ArgumentConflict,
    MissingRequiredArgument,
    MissingSubcommand,
    MissingArgumentOrSubcommand,
    UnexpectedArgument,
    UnexpectedMultipleUsage,
    InvalidUnicode,
    HelpDisplayed,
    VersionDisplayed,
    InternalError,
    Io,
    Format,
}

Command line argument parser error types

Variants

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"]);

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"]);

Error occurs when clap found unexpected subcommand

Examples

let result = App::new("myprog")
    .subcommand(SubCommand::with_name("config")
        .about("Used for configuration")
        .arg(Arg::with_name("config_file")
            .help("The configuration file to use")
            .index(1)))
    .get_matches_from_safe(vec!["", "other"]);

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"]);

Option fails validation of a custom validator

Parser inner error

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"]);

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"]);

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"]);

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"]);

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"]);

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![""]);

Error occurs when required subcommand missing

Examples

let result = App::new("myprog")
    .setting(AppSettings::SubcommandRequired)
    .subcommand(SubCommand::with_name("config")
        .about("Used for configuration")
        .arg(Arg::with_name("config_file")
            .help("The configuration file to use")
            .index(1)))
    .get_matches_from_safe(vec![""]);

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("config")
        .about("Used for configuration")
        .arg(Arg::with_name("config_file")
            .help("The configuration file to use")
            .index(1)))
    .get_matches_from_safe(vec![""]);

Error occurs when clap find argument while is was not expecting any

Examples

let result = App::new("myprog")
    .get_matches_from_safe(vec!["", "--arg"]);

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"]);

Error occurs when argument contains invalid unicode characters

Note: Non-Windows OS only

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());

Not a true 'error' as it means --help or similar was used. The help message will be sent to stdout unless the help is displayed due to an error (such as missing subcommands) at which point it will be sent to stderr

Examples

let result = App::new("myprog")
    .get_matches_from_safe(vec!["", "--help"]);
assert!(result.is_err());
assert_eq!(result.unwrap_err().error_type, ClapErrorType::HelpDisplayed);

Not a true 'error' as it means --version or similar was used. The message will be sent to stdout

Examples

let result = App::new("myprog")
    .get_matches_from_safe(vec!["", "--version"]);
assert!(result.is_err());
assert_eq!(result.unwrap_err().error_type, ClapErrorType::VersionDisplayed);

Represents an internal error, please consider filing a bug report if this happens!

Represents an I/O error, typically white writing to stderr or stdout

Represents an Rust Display Format error, typically white writing to stderr or stdout

Trait Implementations

impl Debug for ClapErrorType
[src]

Formats the value using the given formatter.

impl Copy for ClapErrorType
[src]

impl Clone for ClapErrorType
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl PartialEq for ClapErrorType
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.