use std::cmp::PartialEq;
use std::error::Error;
use std::fmt::{Display, Formatter, Result};
#[derive(Clone, Debug, PartialEq)]
pub enum BinTxtError {
EncodingErr(String),
DecodingErr(String),
UnknownEncoding(String),
IOError(String),
InvalidArg(String),
MissingArg(String),
}
impl Error for BinTxtError {}
impl Display for BinTxtError {
fn fmt(&self, f: &mut Formatter<'_>) -> Result {
match self {
BinTxtError::EncodingErr(err) => write!(f, "Encoding error: {}", err),
BinTxtError::DecodingErr(err) => write!(f, "Decoding error: {}", err),
BinTxtError::UnknownEncoding(err) => write!(f, "Unknown encoding: {}", err),
BinTxtError::IOError(err) => write!(f, "I/O error: {}", err),
BinTxtError::InvalidArg(arg) => write!(f, "Invalid argument: {}", arg),
BinTxtError::MissingArg(arg_prev) => write!(f, "Missing argument after {}", arg_prev),
}
}
}