use core::marker::PhantomData;
#[cfg(feature = "async")]
mod asynch;
#[cfg(feature = "async")]
pub use asynch::SbusParser;
#[cfg(feature = "blocking")]
pub mod blocking;
#[cfg(feature = "blocking")]
pub use blocking::SbusParser;
pub struct Parser<R, M: Mode> {
#[allow(dead_code)]
reader: R,
_mode: PhantomData<M>,
}
#[allow(private_bounds)]
pub trait Mode: Sealed {}
trait Sealed {}
pub const SBUS_HEADER: u8 = 0x0F;
pub const SBUS_FOOTER: u8 = 0x00;
pub const SBUS_FOOTER_2: u8 = 0x04;
pub const SBUS_FRAME_LENGTH: usize = 25;
pub const CHANNEL_COUNT: usize = 16;
pub const CHANNEL_MAX: u16 = 0x07FF;