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}