Wie speichert Rust Enum-Werte in Arrays?

Das folgende ist gültig Rust:

enum Foo {
    One(i32, i32, i32),
    Two { x: i32, y: i32 },
}

fn main() {
    let x: [Foo; 2] = [Foo::One(1, 2, 3), Foo::Two { x: 1, y: 2 }];
}

Wie speichert Rust das? Das erste Element ist 12 Bytes, während das zweite 8 ist (plus ein Tag-Byte am Anfang, denke ich). Speichert es nur Verweise auf die Elemente im Array?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage