mirror of
https://github.com/google/comprehensive-rust.git
synced 2024-12-15 22:37:28 +02:00
25 lines
654 B
Rust
25 lines
654 B
Rust
enum WebEvent {
|
|
PageLoad, // Variant without payload
|
|
KeyPress(char), // Tuple struct variant
|
|
Click { x: i64, y: i64 }, // Full struct variant
|
|
}
|
|
|
|
#[rustfmt::skip]
|
|
fn inspect(event: WebEvent) {
|
|
match event {
|
|
WebEvent::PageLoad => println!("page loaded"),
|
|
WebEvent::KeyPress(c) => println!("pressed '{c}'"),
|
|
WebEvent::Click { x, y } => println!("clicked at x={x}, y={y}"),
|
|
}
|
|
}
|
|
|
|
fn main() {
|
|
let load = WebEvent::PageLoad;
|
|
let press = WebEvent::KeyPress('x');
|
|
let click = WebEvent::Click { x: 20, y: 80 };
|
|
|
|
inspect(load);
|
|
inspect(press);
|
|
inspect(click);
|
|
}
|