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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
use std::io::Error as IoError; use std::error::Error as StdError; use reqwest::Error as ReqwestError; use quick_xml::Error as QxmlError; use http::header::InvalidHeaderValue as HttpInvalidHeaderValueError; use http::header::InvalidHeaderName as HttpInvalidHeaderNameError; use std::string::FromUtf8Error; #[derive(Debug, Display)] pub enum Error { Object(ObjectError), Io(IoError), String(FromUtf8Error), Reqwest(ReqwestError), Qxml(QxmlError), Http(HttpError), } #[derive(Debug, Display)] pub enum HttpError { HttpInvalidHeaderValue(HttpInvalidHeaderValueError), HttpInvalidHeaderName(HttpInvalidHeaderNameError) } impl From<QxmlError> for Error { fn from(e: QxmlError) -> Error { Error::Qxml(e) } } impl From<IoError> for Error { fn from(e: IoError) -> Error { Error::Io(e) } } impl From<ReqwestError> for Error { fn from(e: ReqwestError) -> Error { Error::Reqwest(e) } } impl From<HttpInvalidHeaderValueError> for Error { fn from(e: HttpInvalidHeaderValueError) -> Error { Error::Http(HttpError::HttpInvalidHeaderValue(e)) } } impl From<HttpInvalidHeaderNameError> for Error { fn from(e: HttpInvalidHeaderNameError) -> Error { Error::Http(HttpError::HttpInvalidHeaderName(e)) } } impl From<FromUtf8Error> for Error { fn from(e: FromUtf8Error) -> Error { Error::String(e) } } #[derive(Debug, Display)] pub enum ObjectError { #[display(fmt = "PUT ERROR: {}", msg)] PutError {msg: String}, #[display(fmt = "PUT ERROR: {}", msg)] GetError{msg: String}, #[display(fmt = "PUT ERROR: {}", msg)] CopyError{msg: String}, #[display(fmt = "PUT ERROR: {}", msg)] DeleteError{msg: String}, } impl StdError for Error {}