1use thiserror::Error;
2
3pub type TogglrResult<T> = Result<T, TogglrError>;
4
5#[derive(Error, Debug)]
6pub enum TogglrError {
7 #[error("Invalid configuration: {0}")]
8 InvalidConfig(String),
9
10 #[error("HTTP error: {0}")]
11 HttpError(#[from] reqwest::Error),
12
13 #[error("Serialization error: {0}")]
14 SerializationError(#[from] serde_json::Error),
15
16 #[error("Bad request: {0}")]
17 BadRequest(String),
18
19 #[error("Unauthorized: {0}")]
20 Unauthorized(String),
21
22 #[error("Feature not found: {0}")]
23 FeatureNotFound(String),
24
25 #[error("Too many requests: {0}")]
26 TooManyRequests(String),
27
28 #[error("Internal server error: {0}")]
29 InternalServerError(String),
30
31 #[error("Timeout: {0}")]
32 Timeout(String),
33
34 #[error("Network error: {0}")]
35 NetworkError(String),
36
37 #[error("TLS error: {0}")]
38 TlsError(#[from] rustls::Error),
39
40 #[error("IO error: {0}")]
41 IoError(#[from] std::io::Error),
42
43 #[error("Unknown error: {0}")]
44 Unknown(String),
45}