use std::fmt::Display;
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Eq, Display)]
pub enum ConversionError {
InvalidArgument,
InvalidLength,
InvalidJson,
InvalidFieldValue(String),
FieldIsEmpty(String),
UnsupportedValue(String),
UnsupportedVersion,
UnsupportedFormat,
InvalidHex,
InvalidBase58,
CSVError,
InvalidProtobuf,
IOError,
OtherError,
}
impl From<serde_json::Error> for ConversionError {
fn from(_: serde_json::Error) -> Self {
ConversionError::InvalidJson
}
}
impl From<hex::FromHexError> for ConversionError {
fn from(_: hex::FromHexError) -> Self {
ConversionError::InvalidHex
}
}
impl From<protobuf::ProtobufError> for ConversionError {
fn from(err: protobuf::ProtobufError) -> Self {
match err {
protobuf::ProtobufError::IoError(_) => ConversionError::IOError,
_ => ConversionError::InvalidProtobuf,
}
}
}
impl From<std::convert::Infallible> for ConversionError {
fn from(_: std::convert::Infallible) -> Self {
ConversionError::OtherError
}
}