use thiserror::Error;
#[derive(Debug, Error)]
pub enum ForeciteError {
#[error("Forecite API error (HTTP {status}, code: {code:?}): {message:?}")]
Api {
status: u16,
code: Option<String>,
message: Option<String>,
},
#[error("HTTP transport error: {0}")]
Http(#[from] reqwest::Error),
#[error("JSON (de)serialization error: {0}")]
Json(#[from] serde_json::Error),
#[error("WebSocket error: {0}")]
WebSocket(#[from] tokio_tungstenite::tungstenite::Error),
}