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