1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
#![no_std] use core::{mem, slice}; pub struct RawBytes; impl RawBytes { #[inline(always)] pub fn bytes_view<T: Sync + Unpin + ?Sized>(v: &T) -> &[u8] { unsafe { slice::from_raw_parts(v as *const _ as *const u8, mem::size_of_val(v)) } } #[inline(always)] pub fn bytes_view_mut<T: Sync + Unpin + ?Sized>(v: &mut T) -> &mut [u8] { unsafe { slice::from_raw_parts_mut(v as *mut _ as *mut u8, mem::size_of_val(v)) } } }