use core::mem;
use core::slice;
#[allow(clippy::missing_safety_doc)]
pub(crate) unsafe trait Safe {}
pub(crate) trait AsBytes {
fn as_bytes(&self) -> &[u8];
}
impl<T: Safe> AsBytes for [T] {
#[inline]
fn as_bytes(&self) -> &[u8] {
unsafe { slice::from_raw_parts(self.as_ptr() as *const u8, mem::size_of_val(self)) }
}
}
unsafe impl Safe for u8 {}
unsafe impl Safe for u16 {}
unsafe impl Safe for u32 {}
unsafe impl Safe for u64 {}
unsafe impl Safe for i8 {}
unsafe impl Safe for i16 {}
unsafe impl Safe for i32 {}
unsafe impl Safe for i64 {}