enums2.rs (638B)
1 #[derive(Debug)] 2 struct Point { 3 x: u64, 4 y: u64, 5 } 6 7 #[derive(Debug)] 8 enum Message { 9 Resize { width: u64, height: u64 }, 10 Move(Point), 11 Echo(String), 12 ChangeColor(u8, u8, u8), 13 Quit, 14 } 15 16 impl Message { 17 fn call(&self) { 18 println!("{self:?}"); 19 } 20 } 21 22 fn main() { 23 let messages = [ 24 Message::Resize { 25 width: 10, 26 height: 30, 27 }, 28 Message::Move(Point { x: 10, y: 15 }), 29 Message::Echo(String::from("hello world")), 30 Message::ChangeColor(200, 255, 255), 31 Message::Quit, 32 ]; 33 34 for message in &messages { 35 message.call(); 36 } 37 }