1use std::cmp::PartialEq;
2use std::error::Error;
3use std::fmt::{Display, Formatter, Result};
4
5#[derive(Clone, Debug, PartialEq)]
7pub enum BinTxtError {
8 EncodingErr(String),
9 DecodingErr(String),
10 UnknownEncoding(String),
11 IOError(String),
12 InvalidArg(String),
13 MissingArg(String),
14}
15
16impl Error for BinTxtError {}
17
18impl Display for BinTxtError {
19 fn fmt(&self, f: &mut Formatter<'_>) -> Result {
20 match self {
21 BinTxtError::EncodingErr(err) => write!(f, "Encoding error: {}", err),
22 BinTxtError::DecodingErr(err) => write!(f, "Decoding error: {}", err),
23 BinTxtError::UnknownEncoding(err) => write!(f, "Unknown encoding: {}", err),
24 BinTxtError::IOError(err) => write!(f, "I/O error: {}", err),
25 BinTxtError::InvalidArg(arg) => write!(f, "Invalid argument: {}", arg),
26 BinTxtError::MissingArg(arg_prev) => write!(f, "Missing argument after {}", arg_prev),
27 }
28 }
29}