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); }