#[derive(Debug, PartialEq, Eq, PartialOrd, Ord)]
pub enum ParsingError {
Unrecognized(String),
Ambiguous(String, Vec<String>),
MissingArgument(String),
ArgumentParsingError(String, String),
ParameterRepetition(String),
}
impl ParsingError {
pub fn default_message(&self) -> String {
match *self {
ParsingError::Unrecognized(ref option) => format!("error: unrecognized option \'{}\'", option),
ParsingError::Ambiguous(ref arg, ref options) => format!("error: argument \'{}\' is ambiguous for:\n{:?}", arg, options),
ParsingError::MissingArgument(ref param) => format!("error: option \'{}\' is missing an argument", param),
ParsingError::ArgumentParsingError(ref param, ref arg) => format!("error: argument \'{}\' is not a valid value for option \'{}\'", arg, param),
ParsingError::ParameterRepetition(ref param) => format!("error: option \'{}\' can be specified only once", param),
}
}
}