1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
use thiserror::Error; pub type Result<T = ()> = std::result::Result<T, Error>; #[derive(Error, Debug)] pub enum Error { #[error("request error")] Request(#[from] reqwest::Error), #[error("unexpected value")] Value(serde_json::Value), #[error("invalid decimals in {0}, only 8 allowed")] Decimals(String), #[error("unexpected or invalid number {0}")] Number(String), } impl Error { pub fn value(value: serde_json::Value) -> Self { Self::Value(value) } pub fn decimals(value: &str) -> Self { Self::Decimals(value.to_string()) } pub fn number(value: &str) -> Self { Self::Number(value.to_string()) } }