#[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: T
Trait 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