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
use async_httplib::{Error as HttpError}; #[derive(Debug, Clone, Copy, Eq, PartialEq, Hash)] pub enum Error { InvalidUrl, InvalidMethod, InvalidVersion, InvalidStatus, InvalidInput, InvalidHeader, UnableToConnect, UnableToRead, UnableToWrite, LimitExceeded, } impl<'a> std::convert::TryFrom<HttpError> for Error { type Error = crate::Error; fn try_from(err: HttpError) -> Result<Self, Self::Error> { match err { HttpError::InvalidMethod => Ok(Error::InvalidMethod), HttpError::InvalidVersion => Ok(Error::InvalidVersion), HttpError::InvalidStatus => Ok(Error::InvalidStatus), HttpError::InvalidInput => Ok(Error::InvalidInput), HttpError::UnableToRead => Ok(Error::UnableToRead), HttpError::UnableToWrite => Ok(Error::UnableToWrite), HttpError::LimitExceeded => Ok(Error::LimitExceeded), } } } #[cfg(test)] mod tests { use super::*; use std::convert::TryFrom; #[async_std::test] async fn implements_try_from() { assert_eq!(Error::try_from(HttpError::InvalidInput).unwrap(), Error::InvalidInput); } }