use std::fmt::Display;
#[derive(Debug)]
pub enum BinanceFuturesWsApiError {
ClientError(String),
HandlerUnavailable(String),
ConnectionError(String),
RequestRejected {
code: i32,
msg: String,
},
JsonError(String),
UnknownRequestId(String),
}
impl Display for BinanceFuturesWsApiError {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Self::ClientError(msg) => write!(f, "Client error: {msg}"),
Self::HandlerUnavailable(msg) => write!(f, "Handler unavailable: {msg}"),
Self::ConnectionError(msg) => write!(f, "Connection error: {msg}"),
Self::RequestRejected { code, msg } => {
write!(f, "Request rejected [{code}]: {msg}")
}
Self::JsonError(msg) => write!(f, "JSON error: {msg}"),
Self::UnknownRequestId(id) => write!(f, "Unknown request ID: {id}"),
}
}
}
impl std::error::Error for BinanceFuturesWsApiError {}
pub type BinanceFuturesWsApiResult<T> = Result<T, BinanceFuturesWsApiError>;