Trait GetSize

Source
pub trait GetSize: Sized {
    // Provided methods
    fn get_stack_size() -> usize { ... }
    fn get_heap_size(&self) -> usize { ... }
    fn get_size(&self) -> usize { ... }
}
Expand description

Determine the size in bytes an object occupies inside RAM.

Provided Methods§

Source

fn get_stack_size() -> usize

Determines how may bytes this object occupies inside the stack.

The default implementation uses std::mem::size_of and should work for almost all types.

Source

fn get_heap_size(&self) -> usize

Determines how many bytes this object occupies inside the heap.

The default implementation returns 0, assuming the object is fully allocated on the stack. It must be adjusted as appropriate for objects which hold data inside the heap.

Source

fn get_size(&self) -> usize

Determines the total size of the object.

The default implementation simply adds up the result of the other two methods and is not meant to be changed.

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.

Implementations on Foreign Types§

Source§

impl GetSize for &str

Source§

impl GetSize for &CStr

Source§

impl GetSize for &OsStr

Source§

impl GetSize for &Path

Source§

impl GetSize for Ordering

Source§

impl GetSize for Infallible

Source§

impl GetSize for Ordering

Source§

impl GetSize for bool

Source§

impl GetSize for char

Source§

impl GetSize for f32

Source§

impl GetSize for f64

Source§

impl GetSize for i8

Source§

impl GetSize for i16

Source§

impl GetSize for i32

Source§

impl GetSize for i64

Source§

impl GetSize for i128

Source§

impl GetSize for isize

Source§

impl GetSize for u8

Source§

impl GetSize for u16

Source§

impl GetSize for u32

Source§

impl GetSize for u64

Source§

impl GetSize for u128

Source§

impl GetSize for ()

Source§

impl GetSize for usize

Source§

impl GetSize for CString

Source§

impl GetSize for String

Source§

impl GetSize for PhantomPinned

Source§

impl GetSize for AtomicBool

Source§

impl GetSize for AtomicI8

Source§

impl GetSize for AtomicI16

Source§

impl GetSize for AtomicI32

Source§

impl GetSize for AtomicI64

Source§

impl GetSize for AtomicIsize

Source§

impl GetSize for AtomicU8

Source§

impl GetSize for AtomicU16

Source§

impl GetSize for AtomicU32

Source§

impl GetSize for AtomicU64

Source§

impl GetSize for AtomicUsize

Source§

impl GetSize for Duration

Source§

impl GetSize for OsString

Source§

impl GetSize for DirBuilder

Source§

impl GetSize for DirEntry

Source§

impl GetSize for File

Source§

impl GetSize for FileType

Source§

impl GetSize for Metadata

Source§

impl GetSize for OpenOptions

Source§

impl GetSize for Permissions

Source§

impl GetSize for ReadDir

Source§

impl GetSize for PathBuf

Source§

impl GetSize for Instant

Source§

impl GetSize for SystemTime

Source§

impl GetSize for NonZeroI8

Source§

impl GetSize for NonZeroI16

Source§

impl GetSize for NonZeroI32

Source§

impl GetSize for NonZeroI64

Source§

impl GetSize for NonZeroI128

Source§

impl GetSize for NonZeroIsize

Source§

impl GetSize for NonZeroU8

Source§

impl GetSize for NonZeroU16

Source§

impl GetSize for NonZeroU32

Source§

impl GetSize for NonZeroU64

Source§

impl GetSize for NonZeroU128

Source§

impl GetSize for NonZeroUsize

Source§

impl<'a, T> GetSize for Cow<'a, T>
where T: ToOwned, <T as ToOwned>::Owned: GetSize,

Source§

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

Source§

impl<K, V> GetSize for HashMap<K, V>
where K: GetSize, V: GetSize,

Source§

impl<T> GetSize for &[T]
where T: GetSize,

Source§

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

Source§

impl<T> GetSize for *const T

Source§

impl<T> GetSize for *mut T

Source§

impl<T> GetSize for &T

Source§

impl<T> GetSize for &mut T

Source§

impl<T> GetSize for Box<[T]>

Source§

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

Source§

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

Source§

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

Source§

impl<T> GetSize for LinkedList<T>
where T: GetSize,

Source§

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

Source§

impl<T> GetSize for Rc<T>
where T: GetSize,

Source§

impl<T> GetSize for Arc<T>
where T: GetSize,

Source§

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

Source§

impl<T> GetSize for PhantomData<T>

Source§

impl<T> GetSize for HashSet<T>
where T: GetSize,

Source§

impl<T> GetSize for BufReader<T>
where T: GetSize,

Source§

impl<T> GetSize for BufWriter<T>
where T: GetSize + Write,

Source§

impl<T> GetSize for Mutex<T>
where T: GetSize,

Source§

impl<T> GetSize for RwLock<T>
where T: GetSize,

Source§

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

Source§

impl<T, const SIZE: usize> GetSize for [T; SIZE]
where T: GetSize,

Source§

impl<V1> GetSize for (V1,)
where V1: GetSize,

Source§

impl<V1, V2> GetSize for (V1, V2)
where V1: GetSize, V2: GetSize,

Source§

impl<V1, V2, V3> GetSize for (V1, V2, V3)
where V1: GetSize, V2: GetSize, V3: GetSize,

Source§

impl<V1, V2, V3, V4> GetSize for (V1, V2, V3, V4)
where V1: GetSize, V2: GetSize, V3: GetSize, V4: GetSize,

Source§

impl<V1, V2, V3, V4, V5> GetSize for (V1, V2, V3, V4, V5)
where V1: GetSize, V2: GetSize, V3: GetSize, V4: GetSize, V5: GetSize,

Source§

impl<V1, V2, V3, V4, V5, V6> GetSize for (V1, V2, V3, V4, V5, V6)
where V1: GetSize, V2: GetSize, V3: GetSize, V4: GetSize, V5: GetSize, V6: GetSize,

Source§

impl<V1, V2, V3, V4, V5, V6, V7> GetSize for (V1, V2, V3, V4, V5, V6, V7)
where V1: GetSize, V2: GetSize, V3: GetSize, V4: GetSize, V5: GetSize, V6: GetSize, V7: GetSize,

Source§

impl<V1, V2, V3, V4, V5, V6, V7, V8> GetSize for (V1, V2, V3, V4, V5, V6, V7, V8)
where V1: GetSize, V2: GetSize, V3: GetSize, V4: GetSize, V5: GetSize, V6: GetSize, V7: GetSize, V8: GetSize,

Source§

impl<V1, V2, V3, V4, V5, V6, V7, V8, V9> GetSize for (V1, V2, V3, V4, V5, V6, V7, V8, V9)
where V1: GetSize, V2: GetSize, V3: GetSize, V4: GetSize, V5: GetSize, V6: GetSize, V7: GetSize, V8: GetSize, V9: GetSize,

Source§

impl<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10> GetSize for (V1, V2, V3, V4, V5, V6, V7, V8, V9, V10)
where V1: GetSize, V2: GetSize, V3: GetSize, V4: GetSize, V5: GetSize, V6: GetSize, V7: GetSize, V8: GetSize, V9: GetSize, V10: GetSize,

Source§

impl<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11> GetSize for (V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11)
where V1: GetSize, V2: GetSize, V3: GetSize, V4: GetSize, V5: GetSize, V6: GetSize, V7: GetSize, V8: GetSize, V9: GetSize, V10: GetSize, V11: GetSize,

Source§

impl<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12> GetSize for (V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12)
where V1: GetSize, V2: GetSize, V3: GetSize, V4: GetSize, V5: GetSize, V6: GetSize, V7: GetSize, V8: GetSize, V9: GetSize, V10: GetSize, V11: GetSize, V12: GetSize,

Source§

impl<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13> GetSize for (V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13)
where V1: GetSize, V2: GetSize, V3: GetSize, V4: GetSize, V5: GetSize, V6: GetSize, V7: GetSize, V8: GetSize, V9: GetSize, V10: GetSize, V11: GetSize, V12: GetSize, V13: GetSize,

Source§

impl<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14> GetSize for (V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14)
where V1: GetSize, V2: GetSize, V3: GetSize, V4: GetSize, V5: GetSize, V6: GetSize, V7: GetSize, V8: GetSize, V9: GetSize, V10: GetSize, V11: GetSize, V12: GetSize, V13: GetSize, V14: GetSize,

Source§

impl<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15> GetSize for (V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15)
where V1: GetSize, V2: GetSize, V3: GetSize, V4: GetSize, V5: GetSize, V6: GetSize, V7: GetSize, V8: GetSize, V9: GetSize, V10: GetSize, V11: GetSize, V12: GetSize, V13: GetSize, V14: GetSize, V15: GetSize,

Source§

impl<V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16> GetSize for (V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16)
where V1: GetSize, V2: GetSize, V3: GetSize, V4: GetSize, V5: GetSize, V6: GetSize, V7: GetSize, V8: GetSize, V9: GetSize, V10: GetSize, V11: GetSize, V12: GetSize, V13: GetSize, V14: GetSize, V15: GetSize, V16: GetSize,

Implementors§