Skip to main content

MemoryCompaction

Trait MemoryCompaction 

Source
pub trait MemoryCompaction {
    // Provided methods
    fn memory_usage_compacted(&self) -> usize { ... }
    fn compact_memory(&mut self) -> usize { ... }
    fn memory_usage_compacted_ref(&self) -> usize { ... }
    fn compact_memory_ref(&self) -> usize { ... }
}

Provided Methods§

Source

fn memory_usage_compacted(&self) -> usize

Get expected memory usage saved after compaction

Compaction means to remove unnecessary memory usage. This would include, for example, removing the unused capacity of a [Vec], by calling shrink_to_fit().

Types like [Vec] that support memory compaction should reimplement this function.

Source

fn compact_memory(&mut self) -> usize

Perform memory compaction, saving as much memory as possible, returning the amount of bytes saved

Source

fn memory_usage_compacted_ref(&self) -> usize

Get expected memory usage saved after compaction behind a shared reference

This is useful for types with interior mutability. Types that have or could have (ie. with generics) should implement this method and compact_memory_ref(). For types that don’t, the default implementation is a no-op.

See [MemoryUsage::memory_usage_compacted] for more details.

Source

fn compact_memory_ref(&self) -> usize

Perform memory compaction behind a shared reference, saving as much memory as possible, returning the amount of bytes saved

This is useful for types with interior mutability. Types that have or could have (ie. with generics) should implement this method and memory_usage_compacted_ref(). For types that don’t, the default implementation is a no-op.

See [MemoryUsage::compact_memory] for more details.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl MemoryCompaction for ()

Source§

impl MemoryCompaction for AtomicBool

Source§

impl MemoryCompaction for AtomicI8

Source§

impl MemoryCompaction for AtomicI16

Source§

impl MemoryCompaction for AtomicI32

Source§

impl MemoryCompaction for AtomicI64

Source§

impl MemoryCompaction for AtomicIsize

Source§

impl MemoryCompaction for AtomicU8

Source§

impl MemoryCompaction for AtomicU16

Source§

impl MemoryCompaction for AtomicU32

Source§

impl MemoryCompaction for AtomicU64

Source§

impl MemoryCompaction for AtomicUsize

Source§

impl MemoryCompaction for NonZero<char>

Source§

impl MemoryCompaction for NonZero<i8>

Source§

impl MemoryCompaction for NonZero<i16>

Source§

impl MemoryCompaction for NonZero<i32>

Source§

impl MemoryCompaction for NonZero<i64>

Source§

impl MemoryCompaction for NonZero<i128>

Source§

impl MemoryCompaction for NonZero<isize>

Source§

impl MemoryCompaction for NonZero<u8>

Source§

impl MemoryCompaction for NonZero<u16>

Source§

impl MemoryCompaction for NonZero<u32>

Source§

impl MemoryCompaction for NonZero<u64>

Source§

impl MemoryCompaction for NonZero<u128>

Source§

impl MemoryCompaction for NonZero<usize>

Source§

impl MemoryCompaction for Ordering

Source§

impl MemoryCompaction for PhantomPinned

Source§

impl MemoryCompaction for RangeFull

Source§

impl MemoryCompaction for Saturating<i8>

Source§

impl MemoryCompaction for Saturating<i16>

Source§

impl MemoryCompaction for Saturating<i32>

Source§

impl MemoryCompaction for Saturating<i64>

Source§

impl MemoryCompaction for Saturating<i128>

Source§

impl MemoryCompaction for Saturating<isize>

Source§

impl MemoryCompaction for Saturating<u8>

Source§

impl MemoryCompaction for Saturating<u16>

Source§

impl MemoryCompaction for Saturating<u32>

Source§

impl MemoryCompaction for Saturating<u64>

Source§

impl MemoryCompaction for Saturating<u128>

Source§

impl MemoryCompaction for Saturating<usize>

Source§

impl MemoryCompaction for Wrapping<i8>

Source§

impl MemoryCompaction for Wrapping<i16>

Source§

impl MemoryCompaction for Wrapping<i32>

Source§

impl MemoryCompaction for Wrapping<i64>

Source§

impl MemoryCompaction for Wrapping<i128>

Source§

impl MemoryCompaction for Wrapping<isize>

Source§

impl MemoryCompaction for Wrapping<u8>

Source§

impl MemoryCompaction for Wrapping<u16>

Source§

impl MemoryCompaction for Wrapping<u32>

Source§

impl MemoryCompaction for Wrapping<u64>

Source§

impl MemoryCompaction for Wrapping<u128>

Source§

impl MemoryCompaction for Wrapping<usize>

Source§

impl MemoryCompaction for bool

Source§

impl MemoryCompaction for char

Source§

impl MemoryCompaction for f32

Source§

impl MemoryCompaction for f64

Source§

impl MemoryCompaction for i8

Source§

impl MemoryCompaction for i16

Source§

impl MemoryCompaction for i32

Source§

impl MemoryCompaction for i64

Source§

impl MemoryCompaction for i128

Source§

impl MemoryCompaction for isize

Source§

impl MemoryCompaction for str

Source§

impl MemoryCompaction for u8

Source§

impl MemoryCompaction for u16

Source§

impl MemoryCompaction for u32

Source§

impl MemoryCompaction for u64

Source§

impl MemoryCompaction for u128

Source§

impl MemoryCompaction for usize

Source§

impl<'h, T: MemoryUsage + ?Sized> MemoryCompaction for &'h T

Source§

impl<'h, T: MemoryUsage + ?Sized> MemoryCompaction for &'h mut T

Source§

impl<Idx: MemoryUsage> MemoryCompaction for Range<Idx>

Source§

impl<Idx: MemoryUsage> MemoryCompaction for RangeFrom<Idx>

Source§

impl<Idx: MemoryUsage> MemoryCompaction for RangeInclusive<Idx>

Source§

impl<Idx: MemoryUsage> MemoryCompaction for RangeTo<Idx>

Source§

impl<Idx: MemoryUsage> MemoryCompaction for RangeToInclusive<Idx>

Source§

impl<T: ?Sized> MemoryCompaction for *const T

Source§

impl<T: ?Sized> MemoryCompaction for *mut T

Source§

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

Source§

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

Source§

impl<T: MemoryUsage, E: MemoryUsage> MemoryCompaction for Result<T, E>

Source§

impl<T: MemoryUsage, const N: usize> MemoryCompaction for [T; N]

Source§

impl<T: MemoryUsage> MemoryCompaction for Option<T>

Source§

impl<T: MemoryUsage> MemoryCompaction for [T]

Source§

impl<T> MemoryCompaction for AtomicPtr<T>

Implementors§