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