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
use reqwest; use serde_json; use std::fmt; use std::error; #[derive(Debug)] pub enum Error { Request(reqwest::Error), Serialize(serde_json::Error), } impl From<reqwest::Error> for Error { fn from(e : reqwest::Error) -> Error { Error::Request(e) } } impl From<serde_json::Error> for Error { fn from(e : serde_json::Error) -> Error { Error::Serialize(e) } } impl fmt::Display for Error { fn fmt(&self, f : &mut fmt::Formatter) -> fmt::Result { match self { &Error::Request(ref e) => write!(f, "{}", e), &Error::Serialize(ref e) => write!(f, "{}", e), } } } impl error::Error for Error { fn description(&self) -> &'static str { match self { &Error::Request(_) => "request failed", &Error::Serialize(_) => "invalid json", } } }