1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
use reqwest::StatusCode;
use thiserror::Error;

#[derive(Error, Debug)]
pub enum ObsError {
    #[error("request client build fail")]
    Request(#[from] reqwest::Error),

    #[error("ak or sk not provided")]
    Security,

    #[error("operation is not valid, status:{status:?}, message:{message:?}")]
    Response {
        status: StatusCode,
        message: String,
    },

    #[error("parse or convert json error")]
    ParseOrConvert,

    #[error("serialize error")]
    Serialize(#[from] serde_xml_rs::Error),
    #[error("unknown data store error")]
    Unknown,
}