Кажется, он достаточно умен, чтобы использовать только один байт для A, но недостаточно умен, чтобы использовать один байт для B, даже если существует только 8 * 8 = 64 возможностей.Есть ли способ уговорить Руста разобраться с этим или мне нужно вручную реализовать более компактный макет?
Ссылка для игровой площадки.
#![allow(dead_code)]
enum A {
L,
UL,
U,
UR,
R,
DR,
D,
DL,
}
enum B {
C(A, A),
}
fn main() {
println!("{:?}", std::mem::size_of::<A>()); // prints 1
println!("{:?}", std::mem::size_of::<B>()); // prints 2
}