Skip to main content

binarytext/
error.rs

1//! Defines different error types when encoding / decoding or reading from or writing to files.
2
3use std::cmp::PartialEq;
4use std::error::Error;
5use std::fmt::{Display, Formatter, Result};
6
7/// The error types that may occur during enocding or decoding.
8#[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}