pub struct Align<const N: usize>(/* private fields */)
where
Self: Alignment;
Expand description
A zero-sized-type aligned to N
. Compound types containing a
field Align<N>
with have an alignment of at least N
.
use elain::Align;
use core::mem::{align_of, align_of_val};
assert_eq!(align_of::<Align<1>>(), 1);
assert_eq!(align_of::<Align<2>>(), 2);
assert_eq!(align_of::<Align<4>>(), 4);
const FOO_ALIGN: usize = 8;
#[repr(C)]
struct Foo {
_align: Align<FOO_ALIGN>,
}
let foo: Foo = Foo { _align: Align::NEW };
assert_eq!(align_of_val(&foo), 8);
Implementations§
Trait Implementations§
Source§impl<const N: usize> Ord for Align<N>where
Self: Alignment,
impl<const N: usize> Ord for Align<N>where
Self: Alignment,
Source§impl<const N: usize> PartialOrd for Align<N>where
Self: Alignment,
impl<const N: usize> PartialOrd for Align<N>where
Self: Alignment,
impl Alignment for Align<1>
impl Alignment for Align<1024>
impl Alignment for Align<1048576>
impl Alignment for Align<128>
impl Alignment for Align<131072>
impl Alignment for Align<134217728>
impl Alignment for Align<16>
impl Alignment for Align<16384>
impl Alignment for Align<16777216>
impl Alignment for Align<2>
impl Alignment for Align<2048>
impl Alignment for Align<2097152>
impl Alignment for Align<256>
impl Alignment for Align<262144>
impl Alignment for Align<268435456>
impl Alignment for Align<32>
impl Alignment for Align<32768>
impl Alignment for Align<33554432>
impl Alignment for Align<4>
impl Alignment for Align<4096>
impl Alignment for Align<4194304>
impl Alignment for Align<512>
impl Alignment for Align<524288>
impl Alignment for Align<536870912>
impl Alignment for Align<64>
impl Alignment for Align<65536>
impl Alignment for Align<67108864>
impl Alignment for Align<8>
impl Alignment for Align<8192>
impl Alignment for Align<8388608>
impl<const N: usize> Copy for Align<N>where
Self: Alignment,
impl<const N: usize> Eq for Align<N>where
Self: Alignment,
impl<const N: usize> StructuralPartialEq for Align<N>where
Self: Alignment,
Auto Trait Implementations§
impl<const N: usize> !Freeze for Align<N>
impl<const N: usize> !RefUnwindSafe for Align<N>
impl<const N: usize> Send for Align<N>
impl<const N: usize> Sync for Align<N>
impl<const N: usize> Unpin for Align<N>
impl<const N: usize> !UnwindSafe for Align<N>
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