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);
}
© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/error_codes/E0588.html