duration_parser/
error.rs

1use std::fmt;
2use std::error::Error as StdError;
3
4#[derive(Debug, PartialEq)]
5pub enum Error {
6	Overflow,
7	NoData,
8	UnknownSuffix,
9	UnparsableNumber,
10	UnparsableExtras,
11}
12
13impl fmt::Display for Error {
14	fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
15		match *self {
16			Error::Overflow => f.write_str("Overflow"),
17			Error::NoData => f.write_str("NoData"),
18			Error::UnknownSuffix => f.write_str("UnknownSuffix"),
19			Error::UnparsableNumber => f.write_str("UnparsableNumber"),
20			Error::UnparsableExtras => f.write_str("UnparsableExtras"),
21		}
22	}
23}
24
25impl StdError for Error {
26	fn description(&self) -> &str {
27		match *self {
28			Error::Overflow => "Duration too big",
29			Error::NoData => "Duration empty",
30			Error::UnknownSuffix => "Duration contains unknown unit suffix",
31			Error::UnparsableNumber => "Duration contains unparsable number",
32			Error::UnparsableExtras => "Duration contains extra, erroneous characters",
33		}
34	}
35}