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 the total size of self
on the heap, in bytes.
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)
.
Object Safety§
This trait is not object safe.
Implementations on Foreign Types§
source§impl SizeBytes for String
impl SizeBytes for String
source§fn heap_size_bytes(&self) -> u64
fn heap_size_bytes(&self) -> u64
Does not take capacity into account.
source§impl<T> SizeBytes for VecDeque<T>where
T: SizeBytes,
impl<T> SizeBytes for VecDeque<T>where
T: SizeBytes,
source§fn heap_size_bytes(&self) -> u64
fn heap_size_bytes(&self) -> u64
Does not take capacity into account.
source§impl<T> SizeBytes for Vec<T>where
T: SizeBytes,
impl<T> SizeBytes for Vec<T>where
T: SizeBytes,
source§fn heap_size_bytes(&self) -> u64
fn heap_size_bytes(&self) -> u64
Does not take capacity into account.
source§impl<T, U, V, W> SizeBytes for (T, U, V, W)
impl<T, U, V, W> SizeBytes for (T, U, V, W)
source§impl<T, const N: usize> SizeBytes for [T; N]where
T: SizeBytes,
impl<T, const N: usize> SizeBytes for [T; N]where
T: SizeBytes,
fn heap_size_bytes(&self) -> u64
source§impl<T, const N: usize> SizeBytes for SmallVec<[T; N]>where
T: SizeBytes,
impl<T, const N: usize> SizeBytes for SmallVec<[T; N]>where
T: SizeBytes,
source§fn heap_size_bytes(&self) -> u64
fn heap_size_bytes(&self) -> u64
Does not take capacity into account.