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}