openstreetmap_api/
errors.rs1use std::error;
2use std::fmt;
3
4#[derive(Debug)]
5pub enum OpenstreetmapError {
6 Http(reqwest::Error),
8
9 Url(url::ParseError),
11
12 Serde(quick_xml::de::DeError),
14
15 UrlEncode(serde_urlencoded::ser::Error),
17
18 Client {
20 code: reqwest::StatusCode,
21 error: String,
22 },
23
24 Unauthorized,
26
27 MethodNotAllowed,
29
30 NotFound,
32
33 CredentialsNeeded,
35}
36
37impl error::Error for OpenstreetmapError {}
38
39impl fmt::Display for OpenstreetmapError {
40 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
41 write!(f, "SuperError is here!")
42 }
43}
44
45impl From<reqwest::Error> for OpenstreetmapError {
46 fn from(error: reqwest::Error) -> Self {
47 OpenstreetmapError::Http(error)
48 }
49}
50
51impl From<url::ParseError> for OpenstreetmapError {
52 fn from(error: url::ParseError) -> Self {
53 OpenstreetmapError::Url(error)
54 }
55}
56
57impl From<quick_xml::de::DeError> for OpenstreetmapError {
58 fn from(error: quick_xml::de::DeError) -> Self {
59 OpenstreetmapError::Serde(error)
60 }
61}
62
63impl From<serde_urlencoded::ser::Error> for OpenstreetmapError {
64 fn from(error: serde_urlencoded::ser::Error) -> Self {
65 OpenstreetmapError::UrlEncode(error)
66 }
67}