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.