neis_client/
error.rs

1use hyper::Error as HyperError;
2use hyper_util::client::legacy::Error as ClientError;
3use serde_json::Error as JsonError;
4
5#[derive(Debug)]
6pub enum Error {
7    Hyper(HyperError),
8    Client(ClientError),
9    Json(JsonError),
10    Unknown(String),
11}
12
13impl Error {
14    pub fn new_unknown(message: &str) -> Error {
15        Error::Unknown(message.to_owned())
16    }
17}
18
19impl std::fmt::Display for Error {
20    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
21        match *self {
22            Error::Hyper(ref err) => err.fmt(f),
23            Error::Client(ref err) => err.fmt(f),
24            Error::Json(ref err) => err.fmt(f),
25            Error::Unknown(ref err) => err.fmt(f),
26        }
27    }
28}
29
30impl From<HyperError> for Error {
31    fn from(err: HyperError) -> Error {
32        Error::Hyper(err)
33    }
34}
35
36impl From<ClientError> for Error {
37    fn from(err: ClientError) -> Error {
38        Error::Client(err)
39    }
40}
41
42impl From<JsonError> for Error {
43    fn from(err: JsonError) -> Error {
44        Error::Json(err)
45    }
46}