worldline/
error.rs

1use serde::{Deserialize, Serialize};
2use std::fmt;
3
4#[derive(Serialize, Deserialize, Debug, Clone)]
5pub enum Error {
6    Unspecified(String),
7    ParseError(String),
8    SerializationError(String),
9    NetworkError(String),
10    ApiError(String, String, Option<String>, Option<String>, String),
11    Throttling,
12    ChecksumValidationError,
13    ConversionError(String),
14}
15
16impl std::error::Error for Error {}
17
18impl fmt::Display for Error {
19    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
20        let text = match self {
21            Error::Unspecified(g) => g,
22            Error::ParseError(g) => g,
23            Error::SerializationError(g) => g,
24            Error::NetworkError(g) => g,
25            Error::ApiError(_, _, _, _, g) => g,
26            Error::Throttling => "throttling",
27            Error::ChecksumValidationError => "failed checksum validation",
28            Error::ConversionError(g) => g,
29        };
30        write!(f, "{}", text)
31    }
32}