pub struct Alignment(/* private fields */);
Expand description
The alignment of a buffer.
This type is a wrapper around usize
that ensures the alignment is a power of 2 and fits into
a u16
.
Implementations§
Source§impl Alignment
impl Alignment
Sourcepub const fn of<T>() -> Self
pub const fn of<T>() -> Self
Create an alignment from the alignment of a type T
.
§Example
use vortex_buffer::Alignment;
assert_eq!(Alignment::new(4), Alignment::of::<i32>());
assert_eq!(Alignment::new(8), Alignment::of::<i64>());
assert_eq!(Alignment::new(16), Alignment::of::<u128>());
Sourcepub fn is_aligned_to(&self, other: Alignment) -> bool
pub fn is_aligned_to(&self, other: Alignment) -> bool
Check if this alignment is a “larger” than another alignment.
§Example
use vortex_buffer::Alignment;
let a = Alignment::new(4);
let b = Alignment::new(2);
assert!(a.is_aligned_to(b));
assert!(!b.is_aligned_to(a));
Sourcepub const fn from_exponent(exponent: u8) -> Self
pub const fn from_exponent(exponent: u8) -> Self
Create from the log2 exponent of the alignment.
§Panics
Panics if alignment
is not a power of 2, or is greater than u16::MAX
.
Trait Implementations§
Source§impl Ord for Alignment
impl Ord for Alignment
Source§impl PartialOrd for Alignment
impl PartialOrd for Alignment
impl Copy for Alignment
impl Eq for Alignment
impl StructuralPartialEq for Alignment
Auto Trait Implementations§
impl Freeze for Alignment
impl RefUnwindSafe for Alignment
impl Send for Alignment
impl Sync for Alignment
impl Unpin for Alignment
impl UnwindSafe for Alignment
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more