A type with packed
representation hint has a field with align
representation hint.
Erroneous code example:
#[repr(align(16))] struct Aligned(i32); #[repr(packed)] // error! struct Packed(Aligned);
Just like you cannot have both align
and packed
representation hints on a same type, a packed
type cannot contain another type with the align
representation hint. However, you can do the opposite:
#[repr(packed)] struct Packed(i32); #[repr(align(16))] // ok! struct Aligned(Packed);