use thiserror::Error;
#[derive(Debug, Error)]
pub enum WebSocketError {
#[error("WebSocket connection error: {0}")]
Connection(Box<tokio_tungstenite::tungstenite::Error>),
#[error("JSON error: {0}")]
Json(#[from] serde_json::Error),
#[error("Connection closed")]
ConnectionClosed,
#[error("Authentication error: {0}")]
Authentication(String),
#[error("Invalid message: {0}")]
InvalidMessage(String),
#[error("URL parse error: {0}")]
Url(#[from] url::ParseError),
}
impl From<tokio_tungstenite::tungstenite::Error> for WebSocketError {
fn from(err: tokio_tungstenite::tungstenite::Error) -> Self {
WebSocketError::Connection(Box::new(err))
}
}