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

Returns 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 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<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<T0: MemSize, T1: MemSize> MemSize for (T0, T1)

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

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§