wowsql/
errors.rs

1use std::fmt;
2
3/// Base error type for WOWSQL SDK
4#[derive(Debug)]
5pub enum WOWSQLError {
6    /// Authentication error
7    Authentication(String),
8    /// Not found error
9    NotFound(String),
10    /// Rate limit error
11    RateLimit(String),
12    /// Network error
13    Network(String),
14    /// Storage error
15    Storage(String),
16    /// Storage limit exceeded
17    StorageLimitExceeded {
18        message: String,
19        required_bytes: i64,
20        available_bytes: i64,
21    },
22    /// Permission denied error
23    PermissionDenied(String),
24    /// Request failed error
25    RequestFailed(String),
26    /// General error
27    General(String),
28}
29
30impl fmt::Display for WOWSQLError {
31    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
32        match self {
33            WOWSQLError::Authentication(msg) => write!(f, "Authentication error: {}", msg),
34            WOWSQLError::NotFound(msg) => write!(f, "Not found: {}", msg),
35            WOWSQLError::RateLimit(msg) => write!(f, "Rate limit exceeded: {}", msg),
36            WOWSQLError::Network(msg) => write!(f, "Network error: {}", msg),
37            WOWSQLError::Storage(msg) => write!(f, "Storage error: {}", msg),
38            WOWSQLError::StorageLimitExceeded { message, .. } => {
39                write!(f, "Storage limit exceeded: {}", message)
40            }
41            WOWSQLError::PermissionDenied(msg) => write!(f, "Permission denied: {}", msg),
42            WOWSQLError::RequestFailed(msg) => write!(f, "Request failed: {}", msg),
43            WOWSQLError::General(msg) => write!(f, "Error: {}", msg),
44        }
45    }
46}
47
48impl std::error::Error for WOWSQLError {}
49
50impl From<reqwest::Error> for WOWSQLError {
51    fn from(err: reqwest::Error) -> Self {
52        WOWSQLError::Network(err.to_string())
53    }
54}