Skip to main content

PointerExt

Trait PointerExt 

Source
pub trait PointerExt<T: ?Sized>: Sized {
    // Required methods
    fn addr_logic(self) -> usize;
    fn is_aligned_logic(self) -> bool;

    // Provided methods
    fn is_null_logic(self) -> bool { ... }
    fn is_aligned_to_logic(self, align: usize) -> bool { ... }
}
Expand description

Extension trait for pointers

Required Methods§

Source

fn addr_logic(self) -> usize

logical address of the pointer

logic

Source

fn is_aligned_logic(self) -> bool

Logic counterpart to <*const T>::is_aligned

This is defined as is_aligned_logic (plus a noop coercion for *mut T).

logic

Provided Methods§

Source

fn is_null_logic(self) -> bool

true if the pointer is null.

logic(open, sealed)

self.addr_logic() == 0usize

Source

fn is_aligned_to_logic(self, align: usize) -> bool

Logic counterpart to <*const T>::is_aligned_to

logic(open, sealed)

self.addr_logic() & (align - 1usize) == 0usize

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

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

Source§

fn addr_logic(self) -> usize

logic

Source§

fn is_aligned_logic(self) -> bool

logic(open, inline)

is_aligned_logic(self)

Source§

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

Source§

fn addr_logic(self) -> usize

logic

Source§

fn is_aligned_logic(self) -> bool

logic(open, inline)

is_aligned_logic(self)

Source§

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

Source§

fn addr_logic(self) -> usize

logic(open, inline)

self.view().addr_logic()

Source§

fn is_aligned_logic(self) -> bool

logic(open, inline)

self.view().is_aligned_logic()

Implementors§