hackmd_rs/
error.rs

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}