#[derive(Debug)]
pub enum CanError {
InvalidId,
InvalidDlc(u8),
BufferTooShort { expected: usize, actual: usize },
InvalidFlags,
Transport(ace_core::DiagError),
}
impl From<ace_core::DiagError> for CanError {
fn from(e: ace_core::DiagError) -> Self {
CanError::Transport(e)
}
}
#[derive(Debug)]
pub enum IsoTpError {
SequenceError { expected: u8, actual: u8 },
UnexpectedConsecutiveFrame,
UnknownFlowStatus(u8),
InvalidLength,
PayloadTooLarge,
EmptySingleFrame,
FrameTooShort { actual: usize },
SessionAborted,
Can(CanError),
UnknownFrameType(u8),
}
impl From<CanError> for IsoTpError {
fn from(e: CanError) -> Self {
IsoTpError::Can(e)
}
}
impl From<ace_core::DiagError> for IsoTpError {
fn from(e: ace_core::DiagError) -> Self {
IsoTpError::Can(CanError::Transport(e))
}
}