1use thiserror::Error;
2
3#[derive(Debug, Error)]
5pub enum NubisError {
6 #[error("HTTP request failed: {0}")]
8 Http(#[from] reqwest::Error),
9
10 #[error("API error ({status}): {message}")]
12 Api {
13 status: u16,
14 message: String,
15 },
16
17 #[error("Invalid configuration: {0}")]
19 Config(String),
20
21 #[error("Serialization error: {0}")]
23 Serialization(#[from] serde_json::Error),
24
25 #[error("Invalid URL: {0}")]
27 Url(#[from] url::ParseError),
28}
29
30pub type Result<T> = std::result::Result<T, NubisError>;