pub(crate) const CHECKSUM_LEN: usize = core::mem::size_of::<u16>();
pub(crate) const PACKET_TYPE_LEN: usize = core::mem::size_of::<u8>();
pub(crate) const PACKET_FLAGS_LEN: usize = core::mem::size_of::<u8>();
pub(crate) const PACKET_NUMBER_LEN: usize = core::mem::size_of::<u32>();
pub(crate) const PACKET_HEADER_LEN: usize = PACKET_TYPE_LEN + PACKET_FLAGS_LEN + PACKET_NUMBER_LEN;
pub(crate) const FRAME_TYPE_LEN: usize = core::mem::size_of::<u8>();
pub(crate) const CHANNEL_ID_LEN: usize = core::mem::size_of::<u8>();
pub(crate) const MESSAGE_ID_LEN: usize = core::mem::size_of::<u32>();
pub(crate) const MESSAGE_LEN_LEN: usize = core::mem::size_of::<u16>();
pub(crate) const FRAGMENT_OFFSET_LEN: usize = core::mem::size_of::<u16>();
pub(crate) const FRAGMENT_FLAGS_LEN: usize = core::mem::size_of::<u8>();
pub(crate) const MESSAGE_FRAME_HEADER_LEN: usize = FRAME_TYPE_LEN
+ CHANNEL_ID_LEN
+ MESSAGE_ID_LEN
+ MESSAGE_LEN_LEN
+ FRAGMENT_OFFSET_LEN
+ FRAGMENT_FLAGS_LEN;
pub(crate) const ACK_FRAME_LEN: usize = FRAME_TYPE_LEN
+ PACKET_NUMBER_LEN
+ core::mem::size_of::<u8>()
+ crate::core::MAX_ACK_RANGES * 2 * PACKET_NUMBER_LEN;
pub(crate) const ACK_PACKET_LEN: usize = PACKET_HEADER_LEN + ACK_FRAME_LEN;