enum Message {↵
Quit,↵
Move { x: i32, y: i32 },↵
Write(String),↵
ChangeColor(i32, i32, i32),↵
}↵
↵
impl Message {↵
fn process(&self) {↵
match self {↵
Message::Quit => println!("Quit"),↵
Message::Move { x, y } => println!("Move to ({}, {})", x, y),↵
Message::Write(s) => println!("Write: {}", s),↵
Message::ChangeColor(r, g, b) => println!("Color: ({}, {}, {})", r, g, b),↵
}↵
}↵
}↵
↵
fn main() {↵
let msgs = vec![↵
Message::Move { x: 10, y: 20 },↵
Message::Write(String::from("Hello")),↵
Message::ChangeColor(255, 0, 0),↵
Message::Quit,↵
];↵
↵
for msg in msgs {↵
msg.process();↵
}↵
}