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> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out
indicating that a T
is niched.