1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
use std::error::Error; use std::fmt; use serde_json; use reqwest; pub type GymResult<T> = Result<T, GymError>; #[derive(Debug)] pub enum GymError { Connection(reqwest::Error), Json(serde_json::Error) } impl fmt::Display for GymError { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { match *self { GymError::Connection(ref err) => fmt::Display::fmt(err, f), GymError::Json(ref err) => fmt::Display::fmt(err, f), } } } impl Error for GymError { fn description(&self) -> &str { match *self { GymError::Connection(ref err) => err.description(), GymError::Json(ref err) => err.description() } } } impl From<reqwest::Error> for GymError { fn from(err: reqwest::Error) -> GymError { GymError::Connection(err) } } impl From<serde_json::Error> for GymError { fn from(err: serde_json::Error) -> GymError { GymError::Json(err) } }