Skip to main content

ws_reconnect_client/
error.rs

1use thiserror::Error;
2
3#[derive(Debug, Error)]
4pub enum WebSocketError {
5    #[error("Failed to connect to websocket: {0}")]
6    ConnectionFailed(String),
7
8    #[error("WebSocket not connected. Call connect() first")]
9    NotConnected,
10
11    #[error("WebSocket writer not available")]
12    WriterNotAvailable,
13
14    #[error("WebSocket reader not available")]
15    ReaderNotAvailable,
16
17    #[error("WebSocket error: {0}")]
18    Tungstenite(#[from] tokio_tungstenite::tungstenite::Error),
19
20    #[error("Failed to establish websocket connection after retries")]
21    RetriesExhausted,
22
23    #[error("Failed to serialize message: {0}")]
24    SerializationError(#[from] serde_json::Error),
25
26    #[error("Failed to send message")]
27    SendError,
28
29    #[error("Connection closed")]
30    ConnectionClosed,
31
32    #[error("Message handler error: {0}")]
33    HandlerError(String),
34}
35
36pub type Result<T> = std::result::Result<T, WebSocketError>;