1use reqwest::Error as ReqwestError;
2use serde_json::Error as SerdeJsonError;
3use std::{
4 error,
5 fmt::{self, Display},
6 result,
7};
8
9pub type Result<T> = result::Result<T, Error>;
10
11#[derive(Debug)]
12pub enum Error {
13 Http(ReqwestError),
14 Json(SerdeJsonError),
15}
16
17impl Display for Error {
18 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
19 match self {
20 Error::Http(e) => e.fmt(f),
21 Error::Json(e) => e.fmt(f),
22 }
23 }
24}
25
26impl error::Error for Error {
27 fn source(&self) -> Option<&(dyn error::Error + 'static)> {
28 match self {
29 Error::Http(e) => e.source(),
30 Error::Json(e) => e.source(),
31 }
32 }
33}
34
35impl From<ReqwestError> for Error {
36 fn from(error: ReqwestError) -> Error {
37 Error::Http(error)
38 }
39}
40
41impl From<SerdeJsonError> for Error {
42 fn from(e: SerdeJsonError) -> Error {
43 Error::Json(e)
44 }
45}