// Created on savesnippets.com ยท https://savesnippets.com/HMudjhdSNxHZIn 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); }