Trait PtrProps

Source
pub trait PtrProps<T: ?Sized> {
    // Required methods
    unsafe fn size(&self) -> usize;
    unsafe fn align(&self) -> usize;
    unsafe fn layout(&self) -> Layout;
    unsafe fn metadata(&self) -> <T as Pointee>::Metadata;

    // Provided methods
    unsafe fn is_zst(&self) -> bool { ... }
    unsafe fn max_slice_len(&self) -> usize { ... }
}
Expand description

A trait providing methods for pointers to provide the properties of their pointees.

Required Methods§

Source

unsafe fn size(&self) -> usize

Gets the size of the value.

§Safety

The pointer must be valid.

Source

unsafe fn align(&self) -> usize

Gets the alignment of the value.

§Safety

The pointer must be valid.

Source

unsafe fn layout(&self) -> Layout

Gets the memory layout for the value.

§Safety

The pointer must be valid.

Source

unsafe fn metadata(&self) -> <T as Pointee>::Metadata

Gets the metadata of the value.

§Safety

The pointer must be valid.

Provided Methods§

Source

unsafe fn is_zst(&self) -> bool

Checks whether the value is zero-sized.

§Safety

The pointer must be valid.

Source

unsafe fn max_slice_len(&self) -> usize

Gets the largest safe length for a slice containing copies of self.

§Safety

The pointer must be valid.

Implementations on Foreign Types§

Source§

impl<T: ?Sized> PtrProps<T> for *const T

Source§

unsafe fn size(&self) -> usize

Source§

unsafe fn align(&self) -> usize

Source§

unsafe fn layout(&self) -> Layout

Source§

unsafe fn metadata(&self) -> <T as Pointee>::Metadata

Source§

impl<T: ?Sized> PtrProps<T> for *mut T

Source§

unsafe fn size(&self) -> usize

Source§

unsafe fn align(&self) -> usize

Source§

unsafe fn layout(&self) -> Layout

Source§

unsafe fn metadata(&self) -> <T as Pointee>::Metadata

Source§

impl<T: ?Sized> PtrProps<T> for &T

Source§

unsafe fn size(&self) -> usize

Source§

unsafe fn align(&self) -> usize

Source§

unsafe fn layout(&self) -> Layout

Source§

unsafe fn metadata(&self) -> <T as Pointee>::Metadata

Source§

impl<T: ?Sized> PtrProps<T> for &mut T

Source§

unsafe fn size(&self) -> usize

Source§

unsafe fn align(&self) -> usize

Source§

unsafe fn layout(&self) -> Layout

Source§

unsafe fn metadata(&self) -> <T as Pointee>::Metadata

Source§

impl<T: ?Sized> PtrProps<T> for Box<T>

Source§

unsafe fn size(&self) -> usize

Source§

unsafe fn align(&self) -> usize

Source§

unsafe fn layout(&self) -> Layout

Source§

unsafe fn metadata(&self) -> <T as Pointee>::Metadata

Source§

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

Source§

unsafe fn size(&self) -> usize

Source§

unsafe fn align(&self) -> usize

Source§

unsafe fn layout(&self) -> Layout

Source§

unsafe fn metadata(&self) -> <T as Pointee>::Metadata

Source§

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

Source§

unsafe fn size(&self) -> usize

Source§

unsafe fn align(&self) -> usize

Source§

unsafe fn layout(&self) -> Layout

Source§

unsafe fn metadata(&self) -> <T as Pointee>::Metadata

Source§

impl<T: ?Sized> PtrProps<T> for NonNull<T>

Source§

unsafe fn size(&self) -> usize

Source§

unsafe fn align(&self) -> usize

Source§

unsafe fn layout(&self) -> Layout

Source§

unsafe fn metadata(&self) -> <T as Pointee>::Metadata

Implementors§