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 {}