oss_rust_sdk/
errors.rs

1use quick_xml::DeError;
2use quick_xml::Error as QxmlError;
3use reqwest::header::InvalidHeaderName as HttpInvalidHeaderNameError;
4use reqwest::header::InvalidHeaderValue as HttpInvalidHeaderValueError;
5use reqwest::Error as ReqwestError;
6use std::error::Error as StdError;
7use std::io::Error as IoError;
8use std::string::FromUtf8Error;
9
10#[derive(Debug, Display)]
11pub enum Error {
12    Object(ObjectError),
13    Io(IoError),
14    String(FromUtf8Error),
15    Reqwest(ReqwestError),
16    Qxml(QxmlError),
17    Http(HttpError),
18    DeserializeError(DeError),
19}
20
21#[derive(Debug, Display)]
22pub enum HttpError {
23    HttpInvalidHeaderValue(HttpInvalidHeaderValueError),
24    HttpInvalidHeaderName(HttpInvalidHeaderNameError),
25}
26
27impl From<QxmlError> for Error {
28    fn from(e: QxmlError) -> Error {
29        Error::Qxml(e)
30    }
31}
32
33impl From<IoError> for Error {
34    fn from(e: IoError) -> Error {
35        Error::Io(e)
36    }
37}
38
39impl From<ReqwestError> for Error {
40    fn from(e: ReqwestError) -> Error {
41        Error::Reqwest(e)
42    }
43}
44
45impl From<HttpInvalidHeaderValueError> for Error {
46    fn from(e: HttpInvalidHeaderValueError) -> Error {
47        Error::Http(HttpError::HttpInvalidHeaderValue(e))
48    }
49}
50
51impl From<HttpInvalidHeaderNameError> for Error {
52    fn from(e: HttpInvalidHeaderNameError) -> Error {
53        Error::Http(HttpError::HttpInvalidHeaderName(e))
54    }
55}
56
57impl From<FromUtf8Error> for Error {
58    fn from(e: FromUtf8Error) -> Error {
59        Error::String(e)
60    }
61}
62
63impl From<DeError> for Error {
64    fn from(value: DeError) -> Error {
65        Error::DeserializeError(value)
66    }
67}
68
69#[derive(Debug, Display)]
70pub enum ObjectError {
71    #[display(fmt = "PUT ERROR: {}", msg)]
72    PutError { msg: String },
73    #[display(fmt = "GET ERROR: {}", msg)]
74    GetError { msg: String },
75    #[display(fmt = "COPY ERROR: {}", msg)]
76    CopyError { msg: String },
77    #[display(fmt = "DELETE ERROR: {}", msg)]
78    DeleteError { msg: String },
79    #[display(fmt = "HEAD ERROR: {}", msg)]
80    HeadError { msg: String },
81    #[display(fmt = "POST ERROR: {}", msg)]
82    PostError { msg: String },
83}
84
85impl StdError for Error {}