Enums
IntermédiaireLes enums de Rust peuvent porter des données — ce sont des types somme, bien plus puissants que dans la plupart des langages.
enum Message {
Quitter,
Deplacer { x: i32, y: i32 },
Ecrire(String),
Couleur(u8, u8, u8),
}
fn traiter(m: Message) {
match m {
Message::Quitter => println!("bye"),
Message::Deplacer { x, y } => println!("vers {x},{y}"),
Message::Ecrire(texte) => println!("{texte}"),
Message::Couleur(r, g, b) => println!("#{r:02x}{g:02x}{b:02x}"),
}
}