retrommo_fetch/
error.rs

1use reqwest::StatusCode;
2
3#[derive(Debug)]
4pub struct Error {
5    pub code: StatusCode,
6    pub message: Option<String>,
7}
8
9impl std::fmt::Display for Error {
10    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11        match &self.message {
12            Some(message) => write!(f, "{}: {message}", self.code),
13            None => write!(f, "{}", self.code),
14        }
15    }
16}
17
18impl std::error::Error for Error {
19    fn description(&self) -> &str {
20        match self.message {
21            Some(ref message) => message,
22            None => "",
23        }
24    }
25}
26
27impl Error {
28    #[must_use]
29    pub fn new(code: StatusCode, message: Option<String>) -> Self {
30        Self { code, message }
31    }
32}