pub unsafe fn size_of_val_raw<T>(val: *const T) -> usize where T: ?Sized,
Returns the size of the pointed-to value in bytes.
This is usually the same as size_of::<T>()
. However, when T
has no statically-known size, e.g., a slice [T]
or a trait object, then size_of_val_raw
can be used to get the dynamically-known size.
This function is only safe to call if the following conditions hold:
T
is Sized
, this function is always safe to call.T
is: isize
.isize
.size_of_val
on a reference to a type with an extern type tail.#![feature(layout_for_ptr)] use std::mem; assert_eq!(4, mem::size_of_val(&5i32)); let x: [u8; 13] = [0; 13]; let y: &[u8] = &x; assert_eq!(13, unsafe { mem::size_of_val_raw(y) });
© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/std/mem/fn.size_of_val_raw.html