acn_protocol/
error.rs

1use crate::vector::Vector;
2use core::{array::TryFromSliceError, fmt};
3
4#[derive(Clone, Debug)]
5#[non_exhaustive]
6pub enum AcnError {
7    InvalidBufferLength(usize),
8    InvalidVector(Vector),
9    InvalidPreamble,
10    InvalidPostamble,
11    InvalidData(String),
12    TryFromSliceError(TryFromSliceError),
13}
14
15impl From<TryFromSliceError> for AcnError {
16    fn from(err: TryFromSliceError) -> Self {
17        AcnError::TryFromSliceError(err)
18    }
19}
20
21impl fmt::Display for AcnError {
22    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
23        match self {
24            Self::InvalidBufferLength(length) => write!(f, "Invalid Buffer Length: {}", length),
25            Self::InvalidVector(vector) => write!(f, "Invalid Vector: {:?}", vector),
26            Self::InvalidPreamble => write!(f, "Invalid Preamble"),
27            Self::InvalidPostamble => write!(f, "Invalid Postamble"),
28            Self::InvalidData(data) => write!(f, "Invalid Data: {}", data),
29            Self::TryFromSliceError(err) => write!(f, "TryFromSliceError: {}", err),
30        }
31    }
32}
33
34impl core::error::Error for AcnError {}