Skip to main content

binarytext/
error.rs

1use std::cmp::PartialEq;
2use std::error::Error;
3use std::fmt::{Display, Formatter, Result};
4
5/// The error types that may occur during enocding or decoding.
6#[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}