use std::error::Error;
use std::fmt;
#[derive(PartialEq, Debug)]
pub enum ClapErrorType {
InvalidValue,
InvalidArgument,
InvalidSubcommand,
EmptyValue,
OptionError,
ArgumentError,
ValueError,
TooMuchValues,
TooFewValues,
ArgumentConflict,
MissingRequiredArgument,
MissingSubcommand,
UnexpectedArgument,
UnexpectedMultipleUsage,
}
#[derive(Debug)]
pub struct ClapError {
pub error: String,
pub error_type: ClapErrorType,
}
impl Error for ClapError {
fn description(&self) -> &str {
&*self.error
}
}
impl fmt::Display for ClapError {
fn fmt(&self,
f: &mut fmt::Formatter)
-> fmt::Result {
write!(f, "{}", self.error)
}
}