use core::fmt::Debug;
use embedded_hal::can::Error as CanError;
use crate::{CanSpeed, McpSpeed};
pub type Result<T, SPI, HAL> = core::result::Result<T, Error<SPI, HAL>>;
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[cfg_attr(feature = "ufmt", derive(ufmt::derive::uDebug))]
pub enum Error<SPI: Debug, HAL: Debug> {
NewModeTimeout,
TxBusy,
TxFailed,
NoMessage,
InvalidFrameId,
InvalidDlc,
InvalidConfiguration(CanSpeed, McpSpeed),
Spi(SPI),
Hal(HAL),
}
impl<SPI: Debug, HAL: Debug> CanError for Error<SPI, HAL> {
fn kind(&self) -> embedded_hal::can::ErrorKind {
embedded_hal::can::ErrorKind::Other
}
}