From 376d9c1896d6e23970071a6e9da01f9f0842c0d0 Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Sun, 24 Feb 2019 10:48:36 +0100 Subject: Let errors propagate out of main too. Makes error messages from the program slightly nicer, but still a bit cryptic for the casual user. --- src/error.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/error.rs') diff --git a/src/error.rs b/src/error.rs index ed17362..b0ab95d 100644 --- a/src/error.rs +++ b/src/error.rs @@ -27,6 +27,26 @@ pub enum Error { JsonError(serde_json::error::Error), } +impl std::fmt::Display for Error { + fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { + match self { + Error::InvalidHeaderValue(e) => e.fmt(f), + Error::ReqwestError(e) => e.fmt(f), + Error::JsonError(e) => e.fmt(f), + } + } +} + +impl std::error::Error for Error { + fn cause(&self) -> Option<&std::error::Error> { + match self { + Error::InvalidHeaderValue(e) => Some(e), + Error::ReqwestError(e) => Some(e), + Error::JsonError(e) => Some(e), + } + } +} + impl From for Error { fn from(err: reqwest::header::InvalidHeaderValue) -> Error { Error::InvalidHeaderValue(err) -- cgit v1.2.3