polyte_clob/ws/
error.rs

1use thiserror::Error;
2
3/// WebSocket-specific errors.
4#[derive(Debug, Error)]
5pub enum WebSocketError {
6    /// WebSocket connection error
7    #[error("WebSocket connection error: {0}")]
8    Connection(Box<tokio_tungstenite::tungstenite::Error>),
9
10    /// JSON serialization/deserialization error
11    #[error("JSON error: {0}")]
12    Json(#[from] serde_json::Error),
13
14    /// Connection was closed
15    #[error("Connection closed")]
16    ConnectionClosed,
17
18    /// Authentication error
19    #[error("Authentication error: {0}")]
20    Authentication(String),
21
22    /// Invalid message received
23    #[error("Invalid message: {0}")]
24    InvalidMessage(String),
25
26    /// URL parse error
27    #[error("URL parse error: {0}")]
28    Url(#[from] url::ParseError),
29}
30
31impl From<tokio_tungstenite::tungstenite::Error> for WebSocketError {
32    fn from(err: tokio_tungstenite::tungstenite::Error) -> Self {
33        WebSocketError::Connection(Box::new(err))
34    }
35}