Trait typesize::TypeSize

source ·
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§

source

fn extra_size(&self) -> usize

The number of bytes more than the core::mem::size_of that this value is using.

source

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.

source

fn get_collection_item_count(&self) -> Option<usize>

Returns information about the number of items this type is holding, if it is a collection.

source

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.

Implementations on Foreign Types§

source§

impl TypeSize for Value

source§

impl TypeSize for OwnedValue

source§

impl TypeSize for StaticNode

source§

impl TypeSize for bool

source§

impl TypeSize for f32

source§

impl TypeSize for f64

source§

impl TypeSize for i8

source§

impl TypeSize for i16

source§

impl TypeSize for i32

source§

impl TypeSize for i64

source§

impl TypeSize for i128

source§

impl TypeSize for isize

source§

impl TypeSize for u8

source§

impl TypeSize for u16

source§

impl TypeSize for u32

source§

impl TypeSize for u64

source§

impl TypeSize for u128

source§

impl TypeSize for ()

source§

impl TypeSize for usize

source§

impl TypeSize for Box<str>

source§

impl TypeSize for String

source§

impl TypeSize for Duration

source§

impl TypeSize for NonMaxI8

source§

impl TypeSize for NonMaxI16

source§

impl TypeSize for NonMaxI32

source§

impl TypeSize for NonMaxI64

source§

impl TypeSize for NonMaxI128

source§

impl TypeSize for NonMaxIsize

source§

impl TypeSize for NonMaxU8

source§

impl TypeSize for NonMaxU16

source§

impl TypeSize for NonMaxU32

source§

impl TypeSize for NonMaxU64

source§

impl TypeSize for NonMaxU128

source§

impl TypeSize for NonMaxUsize

source§

impl TypeSize for Map<String, Value>

source§

impl TypeSize for Number

source§

impl TypeSize for OffsetDateTime

source§

impl TypeSize for Url

source§

impl TypeSize for NonZeroI8

source§

impl TypeSize for NonZeroI16

source§

impl TypeSize for NonZeroI32

source§

impl TypeSize for NonZeroI64

source§

impl TypeSize for NonZeroI128

source§

impl TypeSize for NonZeroIsize

source§

impl TypeSize for NonZeroU8

source§

impl TypeSize for NonZeroU16

source§

impl TypeSize for NonZeroU32

source§

impl TypeSize for NonZeroU64

source§

impl TypeSize for NonZeroU128

source§

impl TypeSize for NonZeroUsize

source§

impl<K, V, S> TypeSize for ExtractMap<K, V, S>
where V: TypeSize,

source§

impl<K, V: TypeSize, S> TypeSize for DashMap<K, V, S>
where K: Eq + Hash + TypeSize, S: Default + BuildHasher + Clone,

source§

impl<K: TypeSize + Hash + Eq + PartialEq, V: TypeSize, S: BuildHasher + Clone> TypeSize for Cache<K, V, S>

source§

impl<K: TypeSize + Hash + Eq + PartialEq, V: TypeSize, S: BuildHasher + Clone> TypeSize for Cache<K, V, S>

source§

impl<K: TypeSize, V: TypeSize, S> TypeSize for HashMap<K, V, S>

source§

impl<K: TypeSize, V: TypeSize, S> TypeSize for HashMap<K, V, S>

source§

impl<K: TypeSize, V: TypeSize, S, const GROW_LIMIT: usize> TypeSize for SizedHashMap<K, V, S, GROW_LIMIT>

source§

impl<T1: TypeSize> TypeSize for (T1,)

source§

impl<T1: TypeSize, T2: TypeSize> TypeSize for (T1, T2)

source§

impl<T1: TypeSize, T2: TypeSize, T3: TypeSize> TypeSize for (T1, T2, T3)

source§

impl<T1: TypeSize, T2: TypeSize, T3: TypeSize, T4: TypeSize> TypeSize for (T1, T2, T3, T4)

source§

impl<T: Zeroize + TypeSize> TypeSize for Secret<T>

source§

impl<T: TypeSize> TypeSize for Option<T>

source§

impl<T: TypeSize> TypeSize for Box<[T]>

source§

impl<T: TypeSize> TypeSize for VecDeque<T>

source§

impl<T: TypeSize> TypeSize for Vec<T>

source§

impl<T: TypeSize> TypeSize for SharedValue<T>

source§

impl<T: TypeSize> TypeSize for RwLock<T>

source§

impl<T: TypeSize> TypeSize for Mutex<T>

source§

impl<T: TypeSize> TypeSize for RwLock<T>

source§

impl<T: TypeSize, S> TypeSize for HashSet<T, S>

source§

impl<T: TypeSize, S> TypeSize for HashSet<T, S>

source§

impl<T: TypeSize, const CAP: usize> TypeSize for ArrayVec<T, CAP>

source§

impl<T: ?Sized + TypeSize> TypeSize for Box<T>

source§

impl<Tz: TimeZone> TypeSize for DateTime<Tz>

source§

impl<const CAP: usize> TypeSize for ArrayString<CAP>

source§

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

Implementors§

source§

impl<'a, T: ?Sized> TypeSize for Ref<'a, T>

source§

impl<'a, T: ?Sized> TypeSize for RefMut<'a, T>

source§

impl<T> TypeSize for SizableArc<T, Borrowed>

source§

impl<T> TypeSize for SizableRc<T, Borrowed>

source§

impl<T: TypeSize> TypeSize for SizableArc<T, Owned>

source§

impl<T: TypeSize> TypeSize for SizableRc<T, Owned>

source§

impl<T: ?Sized> TypeSize for Ptr<T>

source§

impl<T: ?Sized> TypeSize for PtrMut<T>