Union mnemos_alloc::node::Node
source · #[repr(C)]
pub(crate) union Node<T> {
active: ManuallyDrop<Active<T>>,
active_arr: ManuallyDrop<ActiveArr<T>>,
active_unsized: ManuallyDrop<ActiveUnsized>,
recycle: ManuallyDrop<Recycle>,
}
Expand description
The heap allocation Node type
The Node type is never ACTUALLY created or used directly, but instead
is used as a “superset” of its children to ensure that the alignment
and necessary size are respected at the time of allocation. Allocation
is ALWAYS done as a Node<T>
, meaning that conversions from an active
type to a Recycle type are always sound.
Fields§
§active:ManuallyDrop<Active<T>>
§
active_arr:ManuallyDrop<ActiveArr<T>>
§
active_unsized:ManuallyDrop<ActiveUnsized>
§
recycle:ManuallyDrop<Recycle>
Trait Implementations§
Auto Trait Implementations§
impl<T> !RefUnwindSafe for Node<T>
impl<T> !Send for Node<T>
impl<T> !Sync for Node<T>
impl<T> !Unpin for Node<T>
impl<T> !UnwindSafe for Node<T>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more