summaryrefslogtreecommitdiff
path: root/src/error.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/error.rs')
-rw-r--r--src/error.rs9
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)