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}