enum Event {
Click { x: i32, y: i32 },
Scroll(f64),
KeyPress(char),
Quit,
}
fn handle(event: Event) {
match event {
Event::Click { x, y } => println!("click at ({x}, {y})"),
Event::Scroll(delta) => println!("scrolled {delta:+.1}"),
Event::KeyPress(c) => println!("key: {c}"),
Event::Quit => println!("bye"),
// Adding a new variant later forces every match site to update.
}
}
fn main() {
handle(Event::Click { x: 10, y: 20 });
handle(Event::Scroll(-3.5));
handle(Event::KeyPress('q'));
handle(Event::Quit);
}
Create a free account and build your private vault. Share publicly whenever you want.