readability_fork/
error.rs

1use std::fmt::{Display, Formatter, Result as FmtResult};
2use std::error;
3#[cfg(feature = "reqwest")]
4use reqwest;
5use url;
6
7#[derive(Debug)]
8pub enum Error {
9    #[cfg(feature = "reqwest")]
10    NetworkError(reqwest::Error),
11    UrlParseError(url::ParseError),
12    Unexpected,
13}
14
15impl Display for Error {
16    fn fmt(&self, f: &mut Formatter) -> FmtResult {
17        match *self {
18            #[cfg(feature = "reqwest")]
19            Error::NetworkError(ref e)   => write!(f, "NetworkError:  {}", e),
20            Error::UrlParseError(ref e)  => write!(f, "UrlParseError:  {}", e),
21            Error::Unexpected            => write!(f, "UnexpectedError"),
22        }
23    }
24}
25
26impl From<url::ParseError> for Error {
27    fn from(err: url::ParseError) -> Error {
28        Error::UrlParseError(err)
29    }
30}
31
32#[cfg(feature = "reqwest")]
33impl From<reqwest::Error> for Error {
34    fn from(err: reqwest::Error) -> Error {
35        Error::NetworkError(err)
36    }
37}
38
39impl error::Error for Error {
40    fn description(&self) -> &str { "" }
41}