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}