use std::error;
use std::fmt;
#[derive(Debug)]
pub enum OpenstreetmapError {
Http(reqwest::Error),
Url(url::ParseError),
Serde(quick_xml::de::DeError),
UrlEncode(serde_urlencoded::ser::Error),
Client {
code: reqwest::StatusCode,
error: String,
},
Unauthorized,
MethodNotAllowed,
NotFound,
CredentialsNeeded,
}
impl error::Error for OpenstreetmapError {}
impl fmt::Display for OpenstreetmapError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "SuperError is here!")
}
}
impl From<reqwest::Error> for OpenstreetmapError {
fn from(error: reqwest::Error) -> Self {
OpenstreetmapError::Http(error)
}
}
impl From<url::ParseError> for OpenstreetmapError {
fn from(error: url::ParseError) -> Self {
OpenstreetmapError::Url(error)
}
}
impl From<quick_xml::de::DeError> for OpenstreetmapError {
fn from(error: quick_xml::de::DeError) -> Self {
OpenstreetmapError::Serde(error)
}
}
impl From<serde_urlencoded::ser::Error> for OpenstreetmapError {
fn from(error: serde_urlencoded::ser::Error) -> Self {
OpenstreetmapError::UrlEncode(error)
}
}