1use thiserror::Error;
2
3pub type Result<T> = std::result::Result<T, Error>;
4
5#[derive(Debug, Error)]
6pub enum Error {
7 #[error("configuration error: {0}")]
8 Config(String),
9
10 #[error("transport error: {0}")]
11 Transport(String),
12
13 #[error("http status {status} from OpenAPI")]
14 HttpStatus { status: u16 },
15
16 #[error("api error {code}: {message}")]
17 Api { code: i64, message: String },
18
19 #[error("validation error: {0}")]
20 Validation(String),
21
22 #[error("serialization error: {0}")]
23 Serde(#[from] serde_json::Error),
24
25 #[error("url parse error: {0}")]
26 Url(#[from] url::ParseError),
27}