use crate::readwrite::{BufferOverflow, ReadExactError};
use crate::StrError;
use arrayvec::CapacityError;
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Debug, PartialEq)]
pub enum Error {
Failed,
BufferError,
VectorCapacityError,
ProtocolByteError(&'static str, usize, u8, u8),
ReadError,
WriteError,
BufferReadError,
UnexpectedAddressFamily, Str(StrError),
BootRomStart,
FirmwareStart,
HifSendFailed,
}
impl From<core::convert::Infallible> for Error {
fn from(_: core::convert::Infallible) -> Self {
unreachable!("Infallible error")
}
}
impl From<StrError> for Error {
fn from(v: StrError) -> Self {
Self::Str(v)
}
}
impl From<core::str::Utf8Error> for Error {
fn from(v: core::str::Utf8Error) -> Self {
Self::Str(StrError::Utf8Error(v))
}
}
impl From<BufferOverflow> for Error {
fn from(_: BufferOverflow) -> Self {
Error::BufferError
}
}
impl From<CapacityError> for Error {
fn from(_: CapacityError) -> Self {
Error::VectorCapacityError
}
}
impl<T> From<ReadExactError<T>> for Error {
fn from(_: ReadExactError<T>) -> Self {
Error::BufferReadError
}
}