mercury_rust/
error.rs

1use http;
2use serde_json;
3use serde_qs;
4use reqwest;
5use std::io;
6use thiserror::Error;
7
8#[derive(Error, Debug)]
9pub enum Error {
10    #[error("{0}")]
11    Http(#[from] reqwest::Error),
12    #[error("{0}")]
13    Json(#[from] serde_json::error::Error),
14    #[error("{0}")]
15    Uri(#[from] http::uri::InvalidUri),
16    #[error("{0}")]
17    Io(#[from] io::Error),
18    #[error("{0}")]
19    QsError(#[from] serde_qs::Error),
20    #[error("{0}")]
21    HeaderError(#[from] reqwest::header::InvalidHeaderValue),
22    #[error("Response error {:?}", .errors)]
23    MercuryError { errors: ErrorMessage },
24    #[error("Other/Unknown")]
25    Unknown,
26}
27
28#[derive(Serialize, Deserialize, Debug)]
29pub struct ErrorResponse {
30    pub errors: ErrorMessage
31}
32
33#[derive(Serialize, Deserialize, Debug)]
34pub struct ErrorMessage {
35    pub message: String
36}