1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
use std::alloc::Layout; use std::intrinsics::transmute; use std::num::NonZeroUsize; /// Deliberately structured like Layout to provide access to fields. pub(crate) struct LayoutHack { pub(crate) size_: usize, pub(crate) align_: NonZeroUsize, } impl LayoutHack { #[inline(always)] pub(crate) fn access_private_fields(layout: Layout) -> Self { unsafe { transmute(layout) } } }