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