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}