async_jsonrpc_client/
error.rs

1/// The error type for rpc transport.
2#[cfg(any(feature = "http-async-std", feature = "http-tokio"))]
3#[derive(Debug, thiserror::Error)]
4pub enum HttpClientError {
5    /// Json serialization/deserialization error.
6    #[error(transparent)]
7    Json(#[from] serde_json::Error),
8
9    /// HTTP error.
10    #[cfg(feature = "http-async-std")]
11    #[error(transparent)]
12    Http(#[from] anyhow::Error),
13
14    /// HTTP error.
15    #[cfg(feature = "http-tokio")]
16    #[error(transparent)]
17    Http(#[from] reqwest::Error),
18}
19
20/// WebSocket error type.
21#[cfg(any(feature = "ws-async-std", feature = "ws-tokio"))]
22pub use async_tungstenite::tungstenite::Error as WsError;
23
24/// The error type for websocket rpc transport.
25#[cfg(any(feature = "ws-async-std", feature = "ws-tokio"))]
26#[derive(Debug, thiserror::Error)]
27pub enum WsClientError {
28    /// Json serialization/deserialization error.
29    #[error(transparent)]
30    Json(#[from] serde_json::Error),
31    /// WebSocket protocol error.
32    #[error(transparent)]
33    WebSocket(#[from] WsError),
34    /// WebSocket request timeout.
35    #[error("WebSocket request timeout")]
36    RequestTimeout,
37    /// Duplicate request ID.
38    #[error("Duplicate request ID")]
39    DuplicateRequestId,
40    /// Invalid Request ID.
41    #[error("Invalid request ID")]
42    InvalidRequestId,
43    /// Invalid Subscription ID.
44    #[error("Invalid subscription ID")]
45    InvalidSubscriptionId,
46    /// Invalid Unsubscribe request result.
47    #[error("Invalid Unsubscribe result")]
48    InvalidUnsubscribeResult,
49    /// Internal channel error
50    #[error("Internal channel error")]
51    InternalChannel,
52}