1use std::fmt;
2#[derive(Debug)]
3pub enum ApiError {
4 Unknown(String),
5 BadRequest(String),
6 Unauthorized(String),
7 InsufficientFunds(String),
8 InvalidParameters(String),
9 RateLimitExceeded(String),
10 ServerError(String),
11 ServiceUnavailable(String),
12}
13impl fmt::Display for ApiError {
14 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
15 let description = match self {
16 ApiError::Unknown(msg) => format!("Unknown Error: {}", msg),
17 ApiError::BadRequest(msg) => format!("Bad Request: {}", msg),
18 ApiError::Unauthorized(msg) => format!("Unauthorized: {}", msg),
19 ApiError::InsufficientFunds(msg) => format!("Insufficient Funds: {}", msg),
20 ApiError::InvalidParameters(msg) => format!("Invalid Parameters: {}", msg),
21 ApiError::RateLimitExceeded(msg) => format!("Rate Limit Exceeded: {}", msg),
22 ApiError::ServerError(msg) => format!("Server Error: {}", msg),
23 ApiError::ServiceUnavailable(msg) => format!("Service Unavailable: {}", msg),
24 };
25 write!(f, "{}", description)
26 }
27}
28
29impl std::error::Error for ApiError {}