use std::fmt;
use reqwest::StatusCode;
#[derive(Debug)]
pub enum MicroversusApiError {
Unknown,
Request(reqwest::Error),
ApiResponse { status: StatusCode, body: String },
}
impl Default for MicroversusApiError {
fn default() -> Self {
Self::Unknown
}
}
impl std::error::Error for MicroversusApiError {}
impl fmt::Display for MicroversusApiError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match self {
Self::Unknown => write!(f, "Unknown PFP City error"),
Self::Request(e) => write!(f, "Error with PFP City request: {:?}", e),
Self::ApiResponse { status, body } => {
write!(f, "PFP City API Error {} - {:?}", status, body)
}
}
}
}
impl From<reqwest::Error> for MicroversusApiError {
fn from(err: reqwest::Error) -> Self {
Self::Request(err)
}
}