/// Helper function for reading big endian u16 values from a ptr unchecked. /// /// # Safety /// /// It is in the responsibility of the caller to ensure there are at least 2 /// bytes accessable via the ptr. If this is not the case undefined behavior /// will be triggered. #[inline] pub(crate) unsafe fn get_unchecked_be_u16(ptr: *const u8) -> u16 { u16::from_be_bytes([*ptr, *ptr.add(1)]) } /// Helper function for reading big endian u32 values from a ptr unchecked. /// /// # Safety /// /// It is in the responsibility of the caller to ensure there are at least 4 /// bytes accessable via the ptr. If this is not the case undefined behavior /// will be triggered. #[inline] pub(crate) unsafe fn get_unchecked_be_u32(ptr: *const u8) -> u32 { u32::from_be_bytes([*ptr, *ptr.add(1), *ptr.add(2), *ptr.add(3)]) } /// Helper function for reading a 4 byte fixed-size array. /// /// # Safety /// /// It is in the responsibility of the caller to ensure there are at least 4 /// bytes accessable via the ptr. If this is not the case undefined behavior /// will be triggered. #[inline] pub(crate) unsafe fn get_unchecked_4_byte_array(ptr: *const u8) -> [u8; 4] { [*ptr, *ptr.add(1), *ptr.add(2), *ptr.add(3)] } /// Helper function for reading a 6 byte fixed-size array. /// /// # Safety /// /// It is in the responsibility of the caller to ensure there are at least 6 /// bytes accessable via the ptr. If this is not the case undefined behavior /// will be triggered. #[inline] pub(crate) unsafe fn get_unchecked_6_byte_array(ptr: *const u8) -> [u8; 6] { [ *ptr, *ptr.add(1), *ptr.add(2), *ptr.add(3), *ptr.add(4), *ptr.add(5), ] } /// Helper function for reading a 8 byte fixed-size array. /// /// # Safety /// /// It is in the responsibility of the caller to ensure there are at least 6 /// bytes accessable via the ptr. If this is not the case undefined behavior /// will be triggered. #[inline] pub(crate) unsafe fn get_unchecked_8_byte_array(ptr: *const u8) -> [u8; 8] { [ *ptr, *ptr.add(1), *ptr.add(2), *ptr.add(3), *ptr.add(4), *ptr.add(5), *ptr.add(6), *ptr.add(7), ] } /// Helper function for reading a 16 byte fixed-size array. /// /// # Safety /// /// It is in the responsibility of the caller to ensure there are at least 16 /// bytes accessable via the ptr. If this is not the case undefined behavior /// will be triggered. #[inline] pub(crate) unsafe fn get_unchecked_16_byte_array(ptr: *const u8) -> [u8; 16] { [ *ptr, *ptr.add(1), *ptr.add(2), *ptr.add(3), *ptr.add(4), *ptr.add(5), *ptr.add(6), *ptr.add(7), *ptr.add(8), *ptr.add(9), *ptr.add(10), *ptr.add(11), *ptr.add(12), *ptr.add(13), *ptr.add(14), *ptr.add(15), ] }