enigma_node_registry/
error.rs1use enigma_node_types::EnigmaNodeTypesError;
2use thiserror::Error;
3
4pub type Result<T> = std::result::Result<T, EnigmaNodeRegistryError>;
5
6#[derive(Debug, Error, PartialEq, Eq)]
7pub enum EnigmaNodeRegistryError {
8 #[error("invalid input: {0}")]
9 InvalidInput(&'static str),
10 #[error("not found")]
11 NotFound,
12 #[error("conflict")]
13 Conflict,
14 #[error("json error")]
15 JsonError,
16 #[error("internal error")]
17 Internal,
18 #[error("transport error")]
19 Transport,
20}
21
22impl From<serde_json::Error> for EnigmaNodeRegistryError {
23 fn from(_: serde_json::Error) -> Self {
24 EnigmaNodeRegistryError::JsonError
25 }
26}
27
28impl From<EnigmaNodeTypesError> for EnigmaNodeRegistryError {
29 fn from(err: EnigmaNodeTypesError) -> Self {
30 match err {
31 EnigmaNodeTypesError::InvalidUsername => {
32 EnigmaNodeRegistryError::InvalidInput("username")
33 }
34 EnigmaNodeTypesError::InvalidHex => EnigmaNodeRegistryError::InvalidInput("user_id"),
35 EnigmaNodeTypesError::InvalidBase64 => EnigmaNodeRegistryError::InvalidInput("base64"),
36 EnigmaNodeTypesError::InvalidField(field) => {
37 EnigmaNodeRegistryError::InvalidInput(field)
38 }
39 EnigmaNodeTypesError::JsonError => EnigmaNodeRegistryError::JsonError,
40 EnigmaNodeTypesError::Utf8Error => EnigmaNodeRegistryError::InvalidInput("utf8"),
41 }
42 }
43}
44
45impl From<std::io::Error> for EnigmaNodeRegistryError {
46 fn from(_: std::io::Error) -> Self {
47 EnigmaNodeRegistryError::Transport
48 }
49}