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 Instant

source§

impl DataSize for i64

source§

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

source§

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

source§

impl DataSize for Box<str>

source§

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

source§

impl DataSize for i16

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, 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<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 i128

source§

impl DataSize for u128

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 DataSize for OsString

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<K, V> DataSize for BTreeMap<K, V>where K: DataSize, V: DataSize,

source§

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

source§

impl DataSize for SocketAddrV4

source§

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

source§

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

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 u32

source§

impl DataSize for ()

source§

impl<T> DataSize for Box<T>where T: 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<T> DataSize for Receiver<T>

source§

impl<'a, T> DataSize for Cow<'a, T>where T: 'a + ToOwned + ?Sized, <T as ToOwned>::Owned: 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 DataSize for i32

source§

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

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 &T

source§

impl<T> DataSize for JoinHandle<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> 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 DataSize for f32

source§

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

source§

impl DataSize for PathBuf

source§

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

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<T> DataSize for VecDeque<T>where T: DataSize,

source§

impl DataSize for Ipv6Addr

source§

impl<T> DataSize for Sender<T>

source§

impl DataSize for bool

source§

impl DataSize for Ipv4Addr

source§

impl DataSize for FakeClock

source§

impl<T> DataSize for &mut T

source§

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

source§

impl DataSize for u8

source§

impl DataSize for u64

source§

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

source§

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

source§

impl<T> DataSize for Sender<T>

source§

impl DataSize for isize

source§

impl DataSize for SocketAddr

source§

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

source§

impl DataSize for String

source§

impl DataSize for u16

source§

impl<T, S> DataSize for HashSet<T, S>where T: 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<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 IpAddr

source§

impl DataSize for Duration

source§

impl<T> DataSize for PhantomData<T>

source§

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

source§

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

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 DataSize for SystemTime

source§

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

source§

impl DataSize for usize

source§

impl DataSize for i8

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 DataSize for SocketAddrV6

source§

impl DataSize for f64

Implementors§