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