Trait datasize::DataSize

source ·
pub trait DataSize {
    const IS_DYNAMIC: bool;
    const STATIC_HEAP_SIZE: usize;

    // Required method
    fn estimate_heap_size(&self) -> usize;

    // Provided method
    fn estimate_detailed_heap_size(&self) -> MemUsageNode { ... }
}
Expand description

Indicates that a type knows how to approximate its memory usage.

Required Associated Constants§

source

const IS_DYNAMIC: bool

If true, the type has a heap size that can vary at runtime, depending on the actual value.

source

const STATIC_HEAP_SIZE: usize

The amount of space a value of the type always occupies. If IS_DYNAMIC is false, this is the total amount of heap memory occupied by the value. Otherwise this is a lower bound.

Required Methods§

source

fn estimate_heap_size(&self) -> usize

Estimates the size of heap memory taken up by this value.

Does not include data on the stack, which is usually determined using mem::size_of.

Provided Methods§

source

fn estimate_detailed_heap_size(&self) -> MemUsageNode

Create a tree of memory estimations.

Similar to estimate_heap_size, but the returned value is a tree that typically reports memory used by structs individually.

Requires the detailed feature to be enabled.

Implementations on Foreign Types§

source§

impl DataSize for u8

source§

impl DataSize for String

source§

impl<T> DataSize for VecDeque<T>where T: DataSize,

source§

impl DataSize for Ipv6Addr

source§

impl DataSize for ()

source§

impl<K, V, S> DataSize for HashMap<K, V, S>where K: DataSize, V: DataSize,

source§

impl<T> DataSize for BTreeSet<T>where T: DataSize,

source§

impl<T: ?Sized> DataSize for Weak<T>

source§

impl<T> DataSize for Box<[T]>where T: DataSize,

source§

impl<T> DataSize for JoinHandle<T>

source§

impl DataSize for SystemTime

source§

impl<T> DataSize for &mut T

source§

impl<A> DataSize for SmallVec<A>where A: Array, A::Item: DataSize,

source§

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

source§

impl DataSize for Box<str>

source§

impl DataSize for SocketAddr

source§

impl<T> DataSize for BinaryHeap<T>where T: DataSize,

source§

impl DataSize for Instant

source§

impl<T> DataSize for Receiver<T>

source§

impl DataSize for Ipv4Addr

source§

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

source§

impl DataSize for SocketAddrV6

source§

impl<T> DataSize for PhantomData<T>

source§

impl<T, const N: usize> DataSize for [T; N]where T: DataSize,

source§

impl DataSize for i16

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> DataSize for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)where T0: DataSize, T1: DataSize, T2: DataSize, T3: DataSize, T4: DataSize, T5: DataSize, T6: DataSize, T7: DataSize, T8: DataSize, T9: DataSize, T10: DataSize, T11: DataSize, T12: DataSize, T13: DataSize,

source§

impl<T> DataSize for AssertUnwindSafe<T>where T: DataSize,

source§

const IS_DYNAMIC: bool = <T as DataSize>::IS_DYNAMIC

source§

const STATIC_HEAP_SIZE: usize = <T as DataSize>::STATIC_HEAP_SIZE

source§

fn estimate_heap_size(&self) -> usize

source§

impl DataSize for bool

source§

impl<K, V> DataSize for BTreeMap<K, V>where K: DataSize, V: DataSize,

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> DataSize for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)where T0: DataSize, T1: DataSize, T2: DataSize, T3: DataSize, T4: DataSize, T5: DataSize, T6: DataSize, T7: DataSize, T8: DataSize, T9: DataSize, T10: DataSize, T11: DataSize, T12: DataSize, T13: DataSize, T14: DataSize,

source§

impl DataSize for FakeClock

source§

impl<T> DataSize for Vec<T>where T: DataSize,

source§

impl DataSize for SocketAddrV4

source§

impl<T: ?Sized> DataSize for Arc<T>

source§

impl DataSize for PathBuf

source§

impl DataSize for Duration

source§

impl DataSize for u16

source§

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

source§

impl DataSize for u64

source§

impl<T: ?Sized> DataSize for Weak<T>

source§

impl<T0, T1, T2> DataSize for (T0, T1, T2)where T0: DataSize, T1: DataSize, T2: DataSize,

source§

impl<T> DataSize for Box<T>where T: DataSize,

source§

impl<T> DataSize for Receiver<T>

source§

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

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> DataSize for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)where T0: DataSize, T1: DataSize, T2: DataSize, T3: DataSize, T4: DataSize, T5: DataSize, T6: DataSize, T7: DataSize, T8: DataSize, T9: DataSize, T10: DataSize, T11: DataSize, T12: DataSize, T13: DataSize, T14: DataSize, T15: DataSize,

source§

impl DataSize for usize

source§

impl DataSize for i32

source§

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

source§

impl DataSize for f32

source§

impl<T> DataSize for &T

source§

impl<T, E> DataSize for Result<T, E>where T: DataSize, E: DataSize,

source§

impl DataSize for i8

source§

impl DataSize for u128

source§

impl<T> DataSize for Sender<T>

source§

impl DataSize for IpAddr

source§

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

source§

impl<T> DataSize for Option<T>where T: DataSize,

source§

impl DataSize for i128

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> DataSize for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)where T0: DataSize, T1: DataSize, T2: DataSize, T3: DataSize, T4: DataSize, T5: DataSize, T6: DataSize, T7: DataSize, T8: DataSize, T9: DataSize, T10: DataSize, T11: DataSize,

source§

impl DataSize for isize

source§

impl<'a, T> DataSize for Cow<'a, T>where T: 'a + ToOwned + ?Sized, <T as ToOwned>::Owned: DataSize,

source§

impl DataSize for OsString

source§

impl<T: DataSize> DataSize for Range<T>

source§

impl<T: ?Sized> DataSize for Rc<T>

source§

impl DataSize for u32

source§

impl<T> DataSize for Reverse<T>where T: DataSize,

source§

const IS_DYNAMIC: bool = <T as DataSize>::IS_DYNAMIC

source§

const STATIC_HEAP_SIZE: usize = <T as DataSize>::STATIC_HEAP_SIZE

source§

fn estimate_heap_size(&self) -> usize

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> DataSize for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)where T0: DataSize, T1: DataSize, T2: DataSize, T3: DataSize, T4: DataSize, T5: DataSize, T6: DataSize, T7: DataSize, T8: DataSize, T9: DataSize, T10: DataSize, T11: DataSize, T12: DataSize,

source§

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

source§

impl<T0> DataSize for (T0,)where T0: DataSize,

source§

const IS_DYNAMIC: bool = T0::IS_DYNAMIC

source§

const STATIC_HEAP_SIZE: usize = T0::STATIC_HEAP_SIZE

source§

fn estimate_heap_size(&self) -> usize

source§

impl<T0, T1> DataSize for (T0, T1)where T0: DataSize, T1: DataSize,

source§

impl DataSize for i64

source§

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

source§

impl DataSize for char

source§

impl<T> DataSize for Sender<T>

source§

impl<T, S> DataSize for HashSet<T, S>where T: DataSize,

source§

impl DataSize for f64

Implementors§