egs_api/api/
error.rs

1use std::error::Error;
2use std::fmt;
3
4/// Error enum for the Epic API
5#[derive(Debug)]
6pub enum EpicAPIError {
7    /// Wrong credentials
8    InvalidCredentials,
9    /// API error - see the contents
10    APIError(String),
11    /// Unknown error
12    Unknown,
13    /// Invalid parameters
14    InvalidParams,
15    /// Server error
16    Server,
17    /// FAB Timeout
18    FabTimeout,
19}
20
21impl fmt::Display for EpicAPIError {
22    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
23        match self {
24            EpicAPIError::InvalidCredentials => {
25                write!(f, "Invalid Credentials")
26            }
27            EpicAPIError::Unknown => {
28                write!(f, "Unknown Error")
29            }
30            EpicAPIError::Server => {
31                write!(f, "Server Error")
32            }
33            EpicAPIError::APIError(e) => {
34                write!(f, "API Error: {}", e)
35            }
36            EpicAPIError::InvalidParams => {
37                write!(f, "Invalid Input Parameters")
38            }
39            EpicAPIError::FabTimeout => {
40                write!(f, "Fab Timeout Error")
41            }
42        }
43    }
44}
45
46impl Error for EpicAPIError {
47    fn description(&self) -> &str {
48        match *self {
49            EpicAPIError::InvalidCredentials => "Invalid Credentials",
50            EpicAPIError::Unknown => "Unknown Error",
51            EpicAPIError::Server => "Server Error",
52            EpicAPIError::APIError(_) => "API Error",
53            EpicAPIError::InvalidParams => "Invalid Input Parameters",
54            EpicAPIError::FabTimeout => "Fab Timeout Error",
55        }
56    }
57}