enigma_node_types/
error.rs

1use thiserror::Error;
2
3#[derive(Debug, Error)]
4pub enum EnigmaNodeTypesError {
5    #[error("invalid username")]
6    InvalidUsername,
7    #[error("invalid hex input")]
8    InvalidHex,
9    #[error("invalid base64 input")]
10    InvalidBase64,
11    #[error("invalid field: {0}")]
12    InvalidField(&'static str),
13    #[error("json error")]
14    JsonError,
15    #[error("utf8 error")]
16    Utf8Error,
17}
18
19pub type Result<T> = std::result::Result<T, EnigmaNodeTypesError>;
20
21impl From<serde_json::Error> for EnigmaNodeTypesError {
22    fn from(_: serde_json::Error) -> Self {
23        EnigmaNodeTypesError::JsonError
24    }
25}
26
27impl From<std::str::Utf8Error> for EnigmaNodeTypesError {
28    fn from(_: std::str::Utf8Error) -> Self {
29        EnigmaNodeTypesError::Utf8Error
30    }
31}
32
33impl From<base64::DecodeError> for EnigmaNodeTypesError {
34    fn from(_: base64::DecodeError) -> Self {
35        EnigmaNodeTypesError::InvalidBase64
36    }
37}
38
39impl From<hex::FromHexError> for EnigmaNodeTypesError {
40    fn from(_: hex::FromHexError) -> Self {
41        EnigmaNodeTypesError::InvalidHex
42    }
43}