Trait mem_dbg::MemSize

source ·
pub trait MemSize {
    // Required method
    fn mem_size(&self, flags: SizeFlags) -> usize;
}
Expand description

A trait to compute recursively the overall size or capacity of a structure, as opposed to the stack size returned by core::mem::size_of().

You can derive this trait with #[derive(MemSize)] if all the fields of your type implement MemSize.

Required Methods§

source

fn mem_size(&self, flags: SizeFlags) -> usize

Return the (recursively computed) overall memory size of the structure in bytes.

Implementations on Foreign Types§

source§

impl MemSize for bool

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for char

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for f32

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for f64

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for i8

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for i16

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for i32

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for i64

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for i128

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for isize

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for str

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for u8

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for u16

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for u32

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for u64

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for u128

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for ()

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for usize

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for String

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl MemSize for Layout

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for PhantomPinned

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for AtomicBool

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for AtomicI8

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for AtomicI16

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for AtomicI32

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for AtomicI64

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for AtomicIsize

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for AtomicU8

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for AtomicU16

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for AtomicU32

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for AtomicU64

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for AtomicUsize

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for OsStr

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl MemSize for OsString

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl MemSize for File

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for FileTimes

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for FileType

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for Metadata

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for OpenOptions

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for Permissions

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for RandomState

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for Path

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl MemSize for PathBuf

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl MemSize for A2

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl MemSize for A4

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl MemSize for A8

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl MemSize for A16

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl MemSize for A32

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl MemSize for A64

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl MemSize for A128

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl MemSize for A256

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl MemSize for A512

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl MemSize for Mmap

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl MemSize for MmapMut

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl MemSize for SmallRng

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for NonZeroI8

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for NonZeroI16

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for NonZeroI32

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for NonZeroI64

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for NonZeroI128

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for NonZeroIsize

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for NonZeroU8

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for NonZeroU16

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for NonZeroU32

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for NonZeroU64

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for NonZeroU128

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl MemSize for NonZeroUsize

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl<A, B, C, D, R> MemSize for fn(_: A, _: B, _: C, _: D) -> R

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl<A, B, C, R> MemSize for fn(_: A, _: B, _: C) -> R

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl<A, B, R> MemSize for fn(_: A, _: B) -> R

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl<A, R> MemSize for fn(_: A) -> R

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl<A: Alignment, T: MemSize> MemSize for Aligned<A, T>

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<H> MemSize for BuildHasherDefault<H>

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl<Idx: MemSize> MemSize for Range<Idx>

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<Idx: MemSize> MemSize for RangeFrom<Idx>

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<Idx: MemSize> MemSize for RangeInclusive<Idx>

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<Idx: MemSize> MemSize for RangeTo<Idx>

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<Idx: MemSize> MemSize for RangeToInclusive<Idx>

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<K: CopyType, V: CopyType> MemSize for HashMap<K, V>
where HashMap<K, V>: MemSizeHelper2<<K as CopyType>::Copy, <V as CopyType>::Copy>,

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<R> MemSize for fn() -> R

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl<T0: MemSize> MemSize for (T0,)

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<T1: MemSize, T0: MemSize> MemSize for (T1, T0)

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<T2: MemSize, T1: MemSize, T0: MemSize> MemSize for (T2, T1, T0)

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<T3: MemSize, T2: MemSize, T1: MemSize, T0: MemSize> MemSize for (T3, T2, T1, T0)

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<T4: MemSize, T3: MemSize, T2: MemSize, T1: MemSize, T0: MemSize> MemSize for (T4, T3, T2, T1, T0)

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<T5: MemSize, T4: MemSize, T3: MemSize, T2: MemSize, T1: MemSize, T0: MemSize> MemSize for (T5, T4, T3, T2, T1, T0)

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<T6: MemSize, T5: MemSize, T4: MemSize, T3: MemSize, T2: MemSize, T1: MemSize, T0: MemSize> MemSize for (T6, T5, T4, T3, T2, T1, T0)

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<T7: MemSize, T6: MemSize, T5: MemSize, T4: MemSize, T3: MemSize, T2: MemSize, T1: MemSize, T0: MemSize> MemSize for (T7, T6, T5, T4, T3, T2, T1, T0)

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<T8: MemSize, T7: MemSize, T6: MemSize, T5: MemSize, T4: MemSize, T3: MemSize, T2: MemSize, T1: MemSize, T0: MemSize> MemSize for (T8, T7, T6, T5, T4, T3, T2, T1, T0)

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<T9: MemSize, T8: MemSize, T7: MemSize, T6: MemSize, T5: MemSize, T4: MemSize, T3: MemSize, T2: MemSize, T1: MemSize, T0: MemSize> MemSize for (T9, T8, T7, T6, T5, T4, T3, T2, T1, T0)

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<T: CopyType> MemSize for [T]
where [T]: MemSizeHelper<<T as CopyType>::Copy>,

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<T: CopyType> MemSize for Vec<T>
where Vec<T>: MemSizeHelper<<T as CopyType>::Copy>,

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<T: CopyType> MemSize for HashSet<T>
where HashSet<T>: MemSizeHelper<<T as CopyType>::Copy>,

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<T: CopyType, const N: usize> MemSize for [T; N]
where [T; N]: MemSizeHelper<<T as CopyType>::Copy>,

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<T: MemSize + Read> MemSize for BufReader<T>

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<T: MemSize + Write> MemSize for BufWriter<T>

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<T: MemSize> MemSize for Option<T>

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<T: MemSize> MemSize for Arc<T>

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<T: MemSize> MemSize for OnceCell<T>

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<T: MemSize> MemSize for Cell<T>

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<T: MemSize> MemSize for RefCell<T>

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<T: MemSize> MemSize for UnsafeCell<T>

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<T: MemSize> MemSize for Cursor<T>

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<T: MemSize> MemSize for Mutex<T>

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<T: MemSize> MemSize for MutexGuard<'_, T>

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<T: MemSize> MemSize for RwLock<T>

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<T: MemSize> MemSize for RwLockReadGuard<'_, T>

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<T: MemSize> MemSize for RwLockWriteGuard<'_, T>

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<T: ?Sized + MemSize> MemSize for &T

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<T: ?Sized + MemSize> MemSize for &mut T

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<T: ?Sized + MemSize> MemSize for Box<T>

source§

fn mem_size(&self, flags: SizeFlags) -> usize

source§

impl<T: ?Sized> MemSize for PhantomData<T>

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

source§

impl<T: ?Sized> MemSize for NonNull<T>

source§

fn mem_size(&self, _flags: SizeFlags) -> usize

Implementors§