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