pub trait SizeBytes {
// Required method
fn heap_size_bytes(&self) -> u64;
// Provided methods
fn total_size_bytes(&self) -> u64 { ... }
fn stack_size_bytes(&self) -> u64 { ... }
fn is_pod() -> bool { ... }
}Expand description
Approximations of stack and heap size for both internal and external types.
Motly used for statistics and triggering events such as garbage collection.
Required Methods§
Sourcefn heap_size_bytes(&self) -> u64
fn heap_size_bytes(&self) -> u64
Returns how many bytes self uses on the heap.
In some cases self may be just a slice of a larger buffer.
This will in that case only return the memory used by that smaller slice.
If we however are the sole owner of the memory (e.g. a Vec), then we return
the heap size of all children plus the capacity of the buffer.
Provided Methods§
Sourcefn total_size_bytes(&self) -> u64
fn total_size_bytes(&self) -> u64
Returns the total size of self in bytes, accounting for both stack and heap space.
Sourcefn stack_size_bytes(&self) -> u64
fn stack_size_bytes(&self) -> u64
Returns the total size of self on the stack, in bytes.
Defaults to std::mem::size_of_val(self).
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.