meegle/
error.rs

1use thiserror::Error;
2
3#[derive(Error, Debug)]
4pub enum ApiError {
5    #[error("HTTP request failed: {0}")]
6    RequestError(#[from] reqwest::Error),
7
8    #[error("API response error: {code}, message: {message}")]
9    ResponseError {
10        code: i32,
11        message: String,
12    },
13
14    #[error("Token error: {0}")]
15    TokenError(String),
16
17    #[error("Other error: {0}")]
18    Other(String),
19}
20
21impl From<serde_json::Error> for ApiError {
22    fn from(err: serde_json::Error) -> Self {
23        ApiError::Other(err.to_string())
24    }
25}
26
27pub type ApiResult<T> = Result<T, ApiError>;