pub trait GetSize: Sized {
fn get_stack_size() -> usize { ... }
fn get_heap_size(&self) -> usize { ... }
fn get_size(&self) -> usize { ... }
}
Expand description
Determine the size in bytes an object occupies inside RAM.
Provided methods
fn get_stack_size() -> usize
fn get_stack_size() -> usize
Determines how may bytes this object occupies inside the stack.
The default implementation uses std::mem::size_of and should work for almost all types.
fn get_heap_size(&self) -> usize
fn get_heap_size(&self) -> usize
Determines how many bytes this object occupies inside the heap.
The default implementation returns 0, assuming the object is fully allocated on the stack. It must be adjusted as appropriate for objects which hold data inside the heap.
Implementations on Foreign Types
impl GetSize for ()
impl GetSize for bool
impl GetSize for u8
impl GetSize for u16
impl GetSize for u32
impl GetSize for u64
impl GetSize for u128
impl GetSize for usize
impl GetSize for NonZeroU8
impl GetSize for NonZeroU16
impl GetSize for NonZeroU32
impl GetSize for NonZeroU64
impl GetSize for NonZeroU128
impl GetSize for NonZeroUsize
impl GetSize for i8
impl GetSize for i16
impl GetSize for i32
impl GetSize for i64
impl GetSize for i128
impl GetSize for isize
impl GetSize for NonZeroI8
impl GetSize for NonZeroI16
impl GetSize for NonZeroI32
impl GetSize for NonZeroI64
impl GetSize for NonZeroI128
impl GetSize for NonZeroIsize
impl GetSize for f32
impl GetSize for f64
impl GetSize for char
impl GetSize for AtomicBool
impl GetSize for AtomicI8
impl GetSize for AtomicI16
impl GetSize for AtomicI32
impl GetSize for AtomicI64
impl GetSize for AtomicIsize
impl GetSize for AtomicU8
impl GetSize for AtomicU16
impl GetSize for AtomicU32
impl GetSize for AtomicU64
impl GetSize for AtomicUsize
impl GetSize for Ordering
impl GetSize for Ordering
impl GetSize for Infallible
impl<T> GetSize for PhantomData<T>
impl GetSize for PhantomPinned
impl GetSize for Instant
impl GetSize for Duration
impl GetSize for SystemTime
sourceimpl<'a, T> GetSize for Cow<'a, T> where
T: ToOwned + GetSize,
<T as ToOwned>::Owned: GetSize,
impl<'a, T> GetSize for Cow<'a, T> where
T: ToOwned + GetSize,
<T as ToOwned>::Owned: GetSize,
fn get_heap_size(&self) -> usize
sourceimpl<K, V> GetSize for BTreeMap<K, V> where
K: GetSize,
V: GetSize,
impl<K, V> GetSize for BTreeMap<K, V> where
K: GetSize,
V: GetSize,
fn get_heap_size(&self) -> usize
sourceimpl<T> GetSize for BinaryHeap<T> where
T: GetSize,
impl<T> GetSize for BinaryHeap<T> where
T: GetSize,
fn get_heap_size(&self) -> usize
sourceimpl<K, V> GetSize for HashMap<K, V> where
K: GetSize,
V: GetSize,
impl<K, V> GetSize for HashMap<K, V> where
K: GetSize,
V: GetSize,
fn get_heap_size(&self) -> usize
sourceimpl<T> GetSize for LinkedList<T> where
T: GetSize,
impl<T> GetSize for LinkedList<T> where
T: GetSize,
fn get_heap_size(&self) -> usize
sourceimpl<V1, V2> GetSize for (V1, V2) where
V1: GetSize,
V2: GetSize,
impl<V1, V2> GetSize for (V1, V2) where
V1: GetSize,
V2: GetSize,
fn get_heap_size(&self) -> usize
sourceimpl<V1, V2, V3> GetSize for (V1, V2, V3) where
V1: GetSize,
V2: GetSize,
V3: GetSize,
impl<V1, V2, V3> GetSize for (V1, V2, V3) where
V1: GetSize,
V2: GetSize,
V3: GetSize,
fn get_heap_size(&self) -> usize
sourceimpl<V1, V2, V3, V4> GetSize for (V1, V2, V3, V4) where
V1: GetSize,
V2: GetSize,
V3: GetSize,
V4: GetSize,
impl<V1, V2, V3, V4> GetSize for (V1, V2, V3, V4) where
V1: GetSize,
V2: GetSize,
V3: GetSize,
V4: GetSize,
fn get_heap_size(&self) -> usize
sourceimpl<V1, V2, V3, V4, V5> GetSize for (V1, V2, V3, V4, V5) where
V1: GetSize,
V2: GetSize,
V3: GetSize,
V4: GetSize,
V5: GetSize,
impl<V1, V2, V3, V4, V5> GetSize for (V1, V2, V3, V4, V5) where
V1: GetSize,
V2: GetSize,
V3: GetSize,
V4: GetSize,
V5: GetSize,
fn get_heap_size(&self) -> usize
sourceimpl<V1, V2, V3, V4, V5, V6> GetSize for (V1, V2, V3, V4, V5, V6) where
V1: GetSize,
V2: GetSize,
V3: GetSize,
V4: GetSize,
V5: GetSize,
V6: GetSize,
impl<V1, V2, V3, V4, V5, V6> GetSize for (V1, V2, V3, V4, V5, V6) where
V1: GetSize,
V2: GetSize,
V3: GetSize,
V4: GetSize,
V5: GetSize,
V6: GetSize,
fn get_heap_size(&self) -> usize
sourceimpl<V1, V2, V3, V4, V5, V6, V7> GetSize for (V1, V2, V3, V4, V5, V6, V7) where
V1: GetSize,
V2: GetSize,
V3: GetSize,
V4: GetSize,
V5: GetSize,
V6: GetSize,
V7: GetSize,
impl<V1, V2, V3, V4, V5, V6, V7> GetSize for (V1, V2, V3, V4, V5, V6, V7) where
V1: GetSize,
V2: GetSize,
V3: GetSize,
V4: GetSize,
V5: GetSize,
V6: GetSize,
V7: GetSize,
fn get_heap_size(&self) -> usize
sourceimpl<V1, V2, V3, V4, V5, V6, V7, V8> GetSize for (V1, V2, V3, V4, V5, V6, V7, V8) where
V1: GetSize,
V2: GetSize,
V3: GetSize,
V4: GetSize,
V5: GetSize,
V6: GetSize,
V7: GetSize,
V8: GetSize,
impl<V1, V2, V3, V4, V5, V6, V7, V8> GetSize for (V1, V2, V3, V4, V5, V6, V7, V8) where
V1: GetSize,
V2: GetSize,
V3: GetSize,
V4: GetSize,
V5: GetSize,
V6: GetSize,
V7: GetSize,
V8: GetSize,
fn get_heap_size(&self) -> usize
sourceimpl<V1, V2, V3, V4, V5, V6, V7, V8, V9> GetSize for (V1, V2, V3, V4, V5, V6, V7, V8, V9) where
V1: GetSize,
V2: GetSize,
V3: GetSize,
V4: GetSize,
V5: GetSize,
V6: GetSize,
V7: GetSize,
V8: GetSize,
V9: GetSize,
impl<V1, V2, V3, V4, V5, V6, V7, V8, V9> GetSize for (V1, V2, V3, V4, V5, V6, V7, V8, V9) where
V1: GetSize,
V2: GetSize,
V3: GetSize,
V4: GetSize,
V5: GetSize,
V6: GetSize,
V7: GetSize,
V8: GetSize,
V9: GetSize,
fn get_heap_size(&self) -> usize
sourceimpl<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10> GetSize for (V1, V2, V3, V4, V5, V6, V7, V8, V9, V10) where
V1: GetSize,
V2: GetSize,
V3: GetSize,
V4: GetSize,
V5: GetSize,
V6: GetSize,
V7: GetSize,
V8: GetSize,
V9: GetSize,
V10: GetSize,
impl<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10> GetSize for (V1, V2, V3, V4, V5, V6, V7, V8, V9, V10) where
V1: GetSize,
V2: GetSize,
V3: GetSize,
V4: GetSize,
V5: GetSize,
V6: GetSize,
V7: GetSize,
V8: GetSize,
V9: GetSize,
V10: GetSize,
fn get_heap_size(&self) -> usize
sourceimpl<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11> GetSize for (V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11) where
V1: GetSize,
V2: GetSize,
V3: GetSize,
V4: GetSize,
V5: GetSize,
V6: GetSize,
V7: GetSize,
V8: GetSize,
V9: GetSize,
V10: GetSize,
V11: GetSize,
impl<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11> GetSize for (V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11) where
V1: GetSize,
V2: GetSize,
V3: GetSize,
V4: GetSize,
V5: GetSize,
V6: GetSize,
V7: GetSize,
V8: GetSize,
V9: GetSize,
V10: GetSize,
V11: GetSize,
fn get_heap_size(&self) -> usize
sourceimpl<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12> GetSize for (V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12) where
V1: GetSize,
V2: GetSize,
V3: GetSize,
V4: GetSize,
V5: GetSize,
V6: GetSize,
V7: GetSize,
V8: GetSize,
V9: GetSize,
V10: GetSize,
V11: GetSize,
V12: GetSize,
impl<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12> GetSize for (V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12) where
V1: GetSize,
V2: GetSize,
V3: GetSize,
V4: GetSize,
V5: GetSize,
V6: GetSize,
V7: GetSize,
V8: GetSize,
V9: GetSize,
V10: GetSize,
V11: GetSize,
V12: GetSize,
fn get_heap_size(&self) -> usize
sourceimpl<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13> GetSize for (V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13) where
V1: GetSize,
V2: GetSize,
V3: GetSize,
V4: GetSize,
V5: GetSize,
V6: GetSize,
V7: GetSize,
V8: GetSize,
V9: GetSize,
V10: GetSize,
V11: GetSize,
V12: GetSize,
V13: GetSize,
impl<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13> GetSize for (V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13) where
V1: GetSize,
V2: GetSize,
V3: GetSize,
V4: GetSize,
V5: GetSize,
V6: GetSize,
V7: GetSize,
V8: GetSize,
V9: GetSize,
V10: GetSize,
V11: GetSize,
V12: GetSize,
V13: GetSize,
fn get_heap_size(&self) -> usize
sourceimpl<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14> GetSize for (V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14) where
V1: GetSize,
V2: GetSize,
V3: GetSize,
V4: GetSize,
V5: GetSize,
V6: GetSize,
V7: GetSize,
V8: GetSize,
V9: GetSize,
V10: GetSize,
V11: GetSize,
V12: GetSize,
V13: GetSize,
V14: GetSize,
impl<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14> GetSize for (V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14) where
V1: GetSize,
V2: GetSize,
V3: GetSize,
V4: GetSize,
V5: GetSize,
V6: GetSize,
V7: GetSize,
V8: GetSize,
V9: GetSize,
V10: GetSize,
V11: GetSize,
V12: GetSize,
V13: GetSize,
V14: GetSize,
fn get_heap_size(&self) -> usize
sourceimpl<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15> GetSize for (V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15) where
V1: GetSize,
V2: GetSize,
V3: GetSize,
V4: GetSize,
V5: GetSize,
V6: GetSize,
V7: GetSize,
V8: GetSize,
V9: GetSize,
V10: GetSize,
V11: GetSize,
V12: GetSize,
V13: GetSize,
V14: GetSize,
V15: GetSize,
impl<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15> GetSize for (V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15) where
V1: GetSize,
V2: GetSize,
V3: GetSize,
V4: GetSize,
V5: GetSize,
V6: GetSize,
V7: GetSize,
V8: GetSize,
V9: GetSize,
V10: GetSize,
V11: GetSize,
V12: GetSize,
V13: GetSize,
V14: GetSize,
V15: GetSize,
fn get_heap_size(&self) -> usize
sourceimpl<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16> GetSize for (V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16) where
V1: GetSize,
V2: GetSize,
V3: GetSize,
V4: GetSize,
V5: GetSize,
V6: GetSize,
V7: GetSize,
V8: GetSize,
V9: GetSize,
V10: GetSize,
V11: GetSize,
V12: GetSize,
V13: GetSize,
V14: GetSize,
V15: GetSize,
V16: GetSize,
impl<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16> GetSize for (V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16) where
V1: GetSize,
V2: GetSize,
V3: GetSize,
V4: GetSize,
V5: GetSize,
V6: GetSize,
V7: GetSize,
V8: GetSize,
V9: GetSize,
V10: GetSize,
V11: GetSize,
V12: GetSize,
V13: GetSize,
V14: GetSize,
V15: GetSize,
V16: GetSize,
fn get_heap_size(&self) -> usize
sourceimpl<T, const SIZE: usize> GetSize for [T; SIZE] where
T: GetSize,
impl<T, const SIZE: usize> GetSize for [T; SIZE] where
T: GetSize,
fn get_heap_size(&self) -> usize
impl<T> GetSize for &T
impl<T> GetSize for &mut T
impl<T> GetSize for *const T
impl<T> GetSize for *mut T
sourceimpl<T, E> GetSize for Result<T, E> where
T: GetSize,
E: GetSize,
impl<T, E> GetSize for Result<T, E> where
T: GetSize,
E: GetSize,
fn get_heap_size(&self) -> usize
sourceimpl GetSize for OsString
This is supported on Unix only.
impl GetSize for OsString
This is supported on Unix only.