diff options
Diffstat (limited to 'src/error.rs')
-rw-r--r-- | src/error.rs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/error.rs b/src/error.rs index d27966a..22ff600 100644 --- a/src/error.rs +++ b/src/error.rs @@ -1,4 +1,5 @@ use bcrypt::BcryptError; +use chrono::format::ParseResult; use diesel::result::Error as DieselErr; use serde_json::Value; use std::convert::From; @@ -80,6 +81,7 @@ pub enum Error { PasswordError(BcryptError), CommunicationError(reqwest::Error), ParseError(serde_json::error::Error), + ParseTimeError(chrono::format::ParseError), StravaApiError(StravaApiError), UnexpectedJson(Value), AlreadyExists, @@ -94,6 +96,7 @@ impl fmt::Display for Error { Error::PasswordError(ref e) => e.fmt(f), Error::CommunicationError(ref e) => e.fmt(f), Error::ParseError(ref e) => e.fmt(f), + Error::ParseTimeError(ref e) => e.fmt(f), Error::UnexpectedJson(_) => f.write_str("UnexpectedJson"), Error::StravaApiError(ref e) => e.fmt(f), Error::AlreadyExists => f.write_str("AlreadyExists"), @@ -103,6 +106,12 @@ impl fmt::Display for Error { } } +impl From<chrono::format::ParseError> for Error { + fn from(e: chrono::format::ParseError) -> Error { + Error::ParseTimeError(e) + } +} + impl From<StravaApiError> for Error { fn from(e: StravaApiError) -> Error { Error::StravaApiError(e) |