Trait s2n_codec::zerocopy::Unaligned

source ·
pub unsafe trait Unaligned { }
Expand description

Types with no alignment requirement.

WARNING: Do not implement this trait yourself! Instead, use #[derive(Unaligned)] (requires the derive Cargo feature).

If T: Unaligned, then align_of::<T>() == 1.

§Safety

This section describes what is required in order for T: Unaligned, and what unsafe code may assume of such types. #[derive(Unaligned)] only permits types which satisfy these requirements. If you don’t plan on implementing Unaligned manually, and you don’t plan on writing unsafe code that operates on Unaligned types, then you don’t need to read this section.

If T: Unaligned, then unsafe code may assume that it is sound to produce a reference to T at any memory location regardless of alignment. If a type is marked as Unaligned which violates this contract, it may cause undefined behavior.

Implementations on Foreign Types§

source§

impl Unaligned for Option<NonZero<i8>>

source§

impl Unaligned for Option<NonZero<u8>>

source§

impl Unaligned for bool

source§

impl Unaligned for i8

source§

impl Unaligned for str

source§

impl Unaligned for u8

source§

impl Unaligned for ()

source§

impl Unaligned for NonZero<i8>

source§

impl Unaligned for NonZero<u8>

source§

impl<T> Unaligned for [T]
where T: Unaligned,

source§

impl<T> Unaligned for PhantomData<T>
where T: ?Sized,

source§

impl<T> Unaligned for ManuallyDrop<T>
where T: Unaligned + ?Sized,

source§

impl<T> Unaligned for Wrapping<T>
where T: Unaligned,

source§

impl<T> Unaligned for MaybeUninit<T>
where T: Unaligned,

source§

impl<const N: usize, T> Unaligned for [T; N]
where T: Unaligned,

Implementors§

source§

impl Unaligned for s2n_codec::zerocopy::I16

source§

impl Unaligned for s2n_codec::zerocopy::I32

source§

impl Unaligned for s2n_codec::zerocopy::I64

source§

impl Unaligned for s2n_codec::zerocopy::I128

source§

impl Unaligned for s2n_codec::zerocopy::U16

source§

impl Unaligned for s2n_codec::zerocopy::U32

source§

impl Unaligned for s2n_codec::zerocopy::U64

source§

impl Unaligned for s2n_codec::zerocopy::U128

source§

impl<O> Unaligned for s2n_codec::zerocopy::byteorder::I16<O>

source§

impl<O> Unaligned for s2n_codec::zerocopy::byteorder::I32<O>

source§

impl<O> Unaligned for s2n_codec::zerocopy::byteorder::I64<O>

source§

impl<O> Unaligned for s2n_codec::zerocopy::byteorder::I128<O>

source§

impl<O> Unaligned for s2n_codec::zerocopy::byteorder::U16<O>

source§

impl<O> Unaligned for s2n_codec::zerocopy::byteorder::U32<O>

source§

impl<O> Unaligned for s2n_codec::zerocopy::byteorder::U64<O>

source§

impl<O> Unaligned for s2n_codec::zerocopy::byteorder::U128<O>

source§

impl<O> Unaligned for F32<O>

source§

impl<O> Unaligned for F64<O>

source§

impl<T> Unaligned for Unalign<T>