scaleway_rs/
scaleway_error.rs1use std::fmt::Display;
2use crate::api_error::ScalewayApiError;
3
4#[derive(Debug)]
5pub enum ScalewayError {
6 Reqwest(reqwest::Error),
7 Api(ScalewayApiError),
8 Json(),
9}
10
11impl From<reqwest::Error> for ScalewayError {
12 fn from(value: reqwest::Error) -> Self {
13 ScalewayError::Reqwest(value)
14 }
15}
16
17impl Display for ScalewayError {
18 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error> {
19 match self {
20 ScalewayError::Reqwest(err) => write!(f, "Request: {}", err),
21 ScalewayError::Api(err) => write!(f, "Api: {} - {}", err.etype, err.message),
22 ScalewayError::Json() => write!(f, "JSON"),
23 }
24 }
25}
26
27impl std::error::Error for ScalewayError {
28 fn source(&self) -> Option<&(dyn std::error::Error + 'static)> {
29 None
30 }
31
32 fn cause(&self) -> Option<&dyn std::error::Error> {
33 self.source()
34 }
35}