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    TryFromSliceError(TryFromSliceError),
12}
13
14impl From<TryFromSliceError> for AcnError {
15    fn from(err: TryFromSliceError) -> Self {
16        AcnError::TryFromSliceError(err)
17    }
18}
19
20impl fmt::Display for AcnError {
21    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
22        match self {
23            Self::InvalidBufferLength(length) => write!(f, "Invalid Buffer Length: {length}"),
24            Self::InvalidVector(vector) => write!(f, "Invalid Vector: {vector:?}"),
25            Self::InvalidPreamble => write!(f, "Invalid Preamble"),
26            Self::InvalidPostamble => write!(f, "Invalid Postamble"),
27            Self::TryFromSliceError(err) => write!(f, "TryFromSliceError: {err}"),
28        }
29    }
30}
31
32impl core::error::Error for AcnError {}