#[repr(transparent)]pub struct SimpleSizedAllocativeWrapper<T>(T);Expand description
A wrapper that guarantees to be the same size as T and implements the
Allocative trait.
This uses allocative::Visitor::visit_simple_sized on T for sizing,
meaning that T will only be recorded with the size of the object itself,
not with its size in the heap.
The idea is that you can transmute any object of type T or any object that
contains T into one that is (or contains) SimpleSizedAllocativeWrapper<T>.
For example if you want the size of HashMap<Unsupported, usize> you can
std::mem::transmute it to
HashMap<SimpleSizedAllocativeWrapper<Unsupported>, usize> and then simply
ask for the size. However if there is attached heap data, liek in
HashMap<UnsuportedString, usize>, then the size reported will be incorrect.
Tuple Fields§
§0: TTrait Implementations§
Source§impl<T> Allocative for SimpleSizedAllocativeWrapper<T>
impl<T> Allocative for SimpleSizedAllocativeWrapper<T>
Auto Trait Implementations§
impl<T> Freeze for SimpleSizedAllocativeWrapper<T>where
T: Freeze,
impl<T> RefUnwindSafe for SimpleSizedAllocativeWrapper<T>where
T: RefUnwindSafe,
impl<T> Send for SimpleSizedAllocativeWrapper<T>where
T: Send,
impl<T> Sync for SimpleSizedAllocativeWrapper<T>where
T: Sync,
impl<T> Unpin for SimpleSizedAllocativeWrapper<T>where
T: Unpin,
impl<T> UnwindSafe for SimpleSizedAllocativeWrapper<T>where
T: UnwindSafe,
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