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}