1use thiserror::Error;
2
3#[derive(Error, Debug)]
4pub enum OpenPondError {
5 #[error("API error: {status} - {message}")]
6 ApiError {
7 status: u16,
8 message: String,
9 },
10 #[error("Network error: {0}")]
11 NetworkError(String),
12 #[error("Serialization error: {0}")]
13 SerializationError(#[from] serde_json::Error),
14 #[error("HTTP client error: {0}")]
15 HttpError(#[from] reqwest::Error),
16 #[error("SSE client error")]
17 SSEError,
18}
19
20impl From<eventsource_client::Error> for OpenPondError {
21 fn from(_: eventsource_client::Error) -> Self {
22 OpenPondError::SSEError
23 }
24}
25
26pub type Result<T> = std::result::Result<T, OpenPondError>;