xand_api_proto/
error.rs

1use crate::proto_models::{
2    public_key::PublicKeyParseError, CidrBlockParseErr, CorrelationIdError, TransactionIdError,
3};
4use xand_address::AddressError;
5
6#[derive(Debug, snafu::Snafu, Clone, Eq, PartialEq, serde::Serialize)]
7pub enum XandApiProtoErrs {
8    ConversionError { reason: String },
9}
10
11impl From<Box<bincode::ErrorKind>> for XandApiProtoErrs {
12    fn from(e: Box<bincode::ErrorKind>) -> Self {
13        XandApiProtoErrs::ConversionError {
14            reason: format!("Couldn't parse serialized hash: {:?}", e),
15        }
16    }
17}
18
19impl From<AddressError> for XandApiProtoErrs {
20    fn from(e: AddressError) -> Self {
21        XandApiProtoErrs::ConversionError {
22            reason: format!("Couldn't parse address: {:?}", e),
23        }
24    }
25}
26
27impl From<CorrelationIdError> for XandApiProtoErrs {
28    fn from(e: CorrelationIdError) -> Self {
29        XandApiProtoErrs::ConversionError {
30            reason: format!("Couldn't parse correlation id: {:?}", e),
31        }
32    }
33}
34
35impl From<TransactionIdError> for XandApiProtoErrs {
36    fn from(e: TransactionIdError) -> Self {
37        XandApiProtoErrs::ConversionError {
38            reason: format!("Couldn't parse transaction id: {:?}", e),
39        }
40    }
41}
42
43impl From<CidrBlockParseErr> for XandApiProtoErrs {
44    fn from(e: CidrBlockParseErr) -> Self {
45        XandApiProtoErrs::ConversionError {
46            reason: format!("Couldn't parse cidr block: {:?}", e),
47        }
48    }
49}
50
51impl From<PublicKeyParseError> for XandApiProtoErrs {
52    fn from(_e: PublicKeyParseError) -> Self {
53        XandApiProtoErrs::ConversionError {
54            reason: "Could not parse public key".to_string(),
55        }
56    }
57}