pub trait TypeSize: Sized {
// Provided methods
fn extra_size(&self) -> usize { ... }
fn get_size(&self) -> usize { ... }
fn get_collection_item_count(&self) -> Option<usize> { ... }
fn get_size_details(&self) -> Vec<Field> { ... }
}
Expand description
A trait to fetch an accurate estimate of the total memory usage of a value.
Unless you are writing a data structure, you should derive this trait using derive::TypeSize
.
Note: Implementations cannot be relied on for any form of unsafe
bound,
as this is entirely safe to implement incorrectly.
Provided Methods§
sourcefn extra_size(&self) -> usize
fn extra_size(&self) -> usize
The number of bytes more than the core::mem::size_of
that this value is using.
sourcefn get_size(&self) -> usize
fn get_size(&self) -> usize
The total number of bytes that this type is using, both direct
(core::mem::size_of
) and indirect (behind allocations)
There’s no reason to ever override this method.
sourcefn get_collection_item_count(&self) -> Option<usize>
fn get_collection_item_count(&self) -> Option<usize>
Returns information about the number of items this type is holding, if it is a collection.
sourcefn get_size_details(&self) -> Vec<Field>
fn get_size_details(&self) -> Vec<Field>
Returns detailed information about the current value’s field sizes.
This should generally be implemented by derive::TypeSize
Object Safety§
This trait is not object safe.