25 lines
566 B
Rust
25 lines
566 B
Rust
// Exhaustiveness: der Compiler prüft, ob ALLE Varianten abgedeckt sind. Vergisst man eine → Compilerfehler.
|
|
|
|
enum Ampel {
|
|
Rot,
|
|
Gruen,
|
|
// Gelb, // ← einkommentieren und neu kompilieren!
|
|
}
|
|
|
|
fn aktion(a: &Ampel) -> &str {
|
|
match a {
|
|
Ampel::Rot => "Stehen bleiben",
|
|
Ampel::Gruen => "Gehen",
|
|
// Ohne Arm für Gelb → Compilerfehler:
|
|
// "non-exhaustive patterns: `Gelb` not covered"
|
|
}
|
|
}
|
|
|
|
fn main() {
|
|
let ampeln = [Ampel::Rot, Ampel::Gruen];
|
|
|
|
for a in &eln {
|
|
println!("{}", aktion(a));
|
|
}
|
|
}
|