Skip to main content

aliyun_oss_sdk/
errors.rs

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