1 2 3 4 5 6 7 8 9 10 11 12 13 14
use crate::slice::HeaderSlice; use core::ptr::{self, NonNull}; #[repr(C)] pub struct Pair<A, B: ?Sized>(pub A, pub B); pub fn pair_as_slice_ptr<H, T>( pair: NonNull<Pair<H, T>>, len: usize, ) -> NonNull<HeaderSlice<H, T>> { let slice_ptr = ptr::slice_from_raw_parts_mut(pair.as_ptr(), len); let hslice = slice_ptr as *mut HeaderSlice<H, T>; unsafe { NonNull::new_unchecked(hslice) } }