pub trait Align<A = Self>: Copy + PartialEq {
// Required methods
fn align_down(self, align: A) -> Self;
fn checked_align_up(self, align: A) -> Option<Self>;
// Provided methods
fn align_up(self, align: A) -> Self { ... }
fn is_aligned_to(self, align: A) -> bool { ... }
}Expand description
An adress that can be aligned.
Required Methods§
Sourcefn align_down(self, align: A) -> Self
fn align_down(self, align: A) -> Self
Align address downwards.
Returns the greatest x with alignment align so that x <= addr.
Panics if the alignment is not a power of two.
Sourcefn checked_align_up(self, align: A) -> Option<Self>
fn checked_align_up(self, align: A) -> Option<Self>
Checked align address upwards.
Returns the smallest x with alignment align so that x >= addr.
Returns None if an overflow occurs.
Panics if the alignment is not a power of two.
Provided Methods§
Sourcefn align_up(self, align: A) -> Self
fn align_up(self, align: A) -> Self
Align address upwards.
Returns the smallest x with alignment align so that x >= addr.
Panics if the alignment is not a power of two or if an overflow occurs.
Sourcefn is_aligned_to(self, align: A) -> bool
fn is_aligned_to(self, align: A) -> bool
Checks whether the address has the demanded alignment.
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.