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§
Sourcefn addr_logic(self) -> usize
fn addr_logic(self) -> usize
logical address of the pointer
logic ⚠
Sourcefn is_aligned_logic(self) -> bool
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§
Sourcefn is_null_logic(self) -> bool
fn is_null_logic(self) -> bool
true if the pointer is null.
logic(open, sealed)
self.addr_logic() == 0usizeSourcefn is_aligned_to_logic(self, align: usize) -> bool
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) == 0usizeDyn 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
impl<T: ?Sized> PointerExt<T> for *const T
Source§fn addr_logic(self) -> usize
fn addr_logic(self) -> usize
logic ⚠
Source§fn is_aligned_logic(self) -> bool
fn is_aligned_logic(self) -> bool
logic(open, inline)
is_aligned_logic(self)Source§impl<T: ?Sized> PointerExt<T> for *mut T
impl<T: ?Sized> PointerExt<T> for *mut T
Source§fn addr_logic(self) -> usize
fn addr_logic(self) -> usize
logic ⚠
Source§fn is_aligned_logic(self) -> bool
fn is_aligned_logic(self) -> bool
logic(open, inline)
is_aligned_logic(self)Source§impl<T: ?Sized> PointerExt<T> for NonNull<T>
impl<T: ?Sized> PointerExt<T> for NonNull<T>
Source§fn addr_logic(self) -> usize
fn addr_logic(self) -> usize
logic(open, inline)
self.view().addr_logic()Source§fn is_aligned_logic(self) -> bool
fn is_aligned_logic(self) -> bool
logic(open, inline)
self.view().is_aligned_logic()