uf_crsf/
error.rs

1#[cfg(any(feature = "embedded_io_async", feature = "embedded_io"))]
2use embedded_io::ErrorKind;
3
4#[derive(Debug, Clone, Copy, PartialEq, Eq)]
5#[cfg_attr(feature = "defmt", derive(defmt::Format))]
6pub enum CrsfParsingError {
7    UnexpectedPacketType(u8),
8    PacketNotImlemented(u8),
9    InvalidPayloadLength,
10    InvalidPayload,
11    BufferOverflow,
12}
13
14#[derive(Debug, Clone, Copy, PartialEq, Eq)]
15#[cfg_attr(feature = "defmt", derive(defmt::Format))]
16pub enum CrsfStreamError {
17    InvalidPacketLength(u8),
18    InvalidSync(u8),
19    InvalidCrc {
20        calculated_crc: u8,
21        packet_crc: u8,
22    },
23    UnexpectedPacketType(u8),
24    ParsingError(CrsfParsingError),
25    InputBufferTooSmall,
26    #[cfg(any(feature = "embedded_io_async", feature = "embedded_io"))]
27    Io(ErrorKind),
28    #[cfg(any(feature = "embedded_io_async", feature = "embedded_io"))]
29    UnexpectedEof,
30}
31
32impl From<CrsfParsingError> for CrsfStreamError {
33    fn from(e: CrsfParsingError) -> Self {
34        CrsfStreamError::ParsingError(e)
35    }
36}