binance_sdk/common/
errors.rs

1use thiserror::Error;
2
3#[derive(Error, Debug)]
4pub enum ConnectorError {
5    #[error("Connector client error: {0}")]
6    ConnectorClientError(String),
7
8    #[error("Unauthorized access. Authentication required. {0}")]
9    UnauthorizedError(String),
10
11    #[error("Access to the requested resource is forbidden. {0}")]
12    ForbiddenError(String),
13
14    #[error("Too many requests. You are being rate-limited. {0}")]
15    TooManyRequestsError(String),
16
17    #[error("The IP address has been banned for exceeding rate limits. {0}")]
18    RateLimitBanError(String),
19
20    #[error("Internal server error: {msg} (status code: {status_code:?})")]
21    ServerError {
22        msg: String,
23        status_code: Option<u16>,
24    },
25
26    #[error("Network error: {0}")]
27    NetworkError(String),
28
29    #[error("The requested resource was not found. {0}")]
30    NotFoundError(String),
31
32    #[error("Bad request: {0}")]
33    BadRequestError(String),
34}
35
36#[derive(Debug, Error)]
37pub enum WebsocketError {
38    #[error("WebSocket timeout error")]
39    Timeout,
40    #[error("WebSocket protocol error: {0}")]
41    Protocol(String),
42    #[error("URL parse error: {0}")]
43    Url(#[from] url::ParseError),
44    #[error("WebSocket handshake error: {0}")]
45    Handshake(String),
46    #[error("Network error: {0}")]
47    NetworkError(String),
48    #[error("No active WebSocket connection error.")]
49    NotConnected,
50    #[error("Server error: {0}")]
51    ServerError(String),
52    #[error("No response error.")]
53    NoResponse,
54    #[error("Server‐side response error (code {code}): {message}")]
55    ResponseError { code: i64, message: String },
56}