1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
use std::error; use std::fmt; #[derive(PartialEq, Clone, Debug)] pub enum FlagError { NotFound, Undefined, TypeError, ValueTypeError, ArgumentError, } impl fmt::Display for FlagError { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { match *self { FlagError::NotFound => f.write_str("NotFound"), FlagError::Undefined => f.write_str("Undefined"), FlagError::TypeError => f.write_str("TypeError"), FlagError::ValueTypeError => f.write_str("ValueTypeError"), FlagError::ArgumentError => f.write_str("ArgumentError"), } } } impl error::Error for FlagError { fn description(&self) -> &str { match *self { FlagError::NotFound => "Flag not found", FlagError::Undefined => "Flag undefined", FlagError::TypeError => "Flag type mismatch", FlagError::ValueTypeError => "Value type mismatch", FlagError::ArgumentError => "Illegal argument", } } }