// Jede Variante kann unterschiedliche Daten tragen. enum Tier { Hund(String), // Tupel-Variante: Name Fisch { art: String, liter: u32 }, // Struct-Variante: benannte Felder Stein, // Keine Daten } fn main() { let haustiere = vec![ Tier::Hund("Bello".into()), Tier::Fisch { art: "Goldfisch".into(), liter: 60, }, Tier::Stein, ]; for tier in &haustiere { match tier { Tier::Hund(name) => println!("{name} will Gassi gehen"), Tier::Fisch { art, liter } => println!("{art} braucht {liter}L Aquarium"), Tier::Stein => println!("...braucht nichts."), } } }