diff options
Diffstat (limited to 'rustlings/exercises/08_enums')
| -rw-r--r-- | rustlings/exercises/08_enums/enums1.rs | 6 | ||||
| -rw-r--r-- | rustlings/exercises/08_enums/enums2.rs | 9 | ||||
| -rw-r--r-- | rustlings/exercises/08_enums/enums3.rs | 9 |
3 files changed, 20 insertions, 4 deletions
diff --git a/rustlings/exercises/08_enums/enums1.rs b/rustlings/exercises/08_enums/enums1.rs index c0d0c30..97a5cc0 100644 --- a/rustlings/exercises/08_enums/enums1.rs +++ b/rustlings/exercises/08_enums/enums1.rs @@ -1,6 +1,10 @@ #[derive(Debug)] enum Message { - // TODO: Define a few types of messages as used below. + Resize, + Move, + Echo, + ChangeColor, + Quit, } fn main() { diff --git a/rustlings/exercises/08_enums/enums2.rs b/rustlings/exercises/08_enums/enums2.rs index d70f639..4a2d5ac 100644 --- a/rustlings/exercises/08_enums/enums2.rs +++ b/rustlings/exercises/08_enums/enums2.rs @@ -6,7 +6,14 @@ struct Point { #[derive(Debug)] enum Message { - // TODO: Define the different variants used below. + Resize { + width: u64, + height: u64, + }, + Move(Point), + Echo(String), + ChangeColor(u8, u8, u8), + Quit, } impl Message { diff --git a/rustlings/exercises/08_enums/enums3.rs b/rustlings/exercises/08_enums/enums3.rs index cb05f65..bf01af3 100644 --- a/rustlings/exercises/08_enums/enums3.rs +++ b/rustlings/exercises/08_enums/enums3.rs @@ -44,8 +44,13 @@ impl State { } fn process(&mut self, message: Message) { - // TODO: Create a match expression to process the different message - // variants using the methods defined above. + match message { + Message::Resize { width, height } => self.resize(width, height), + Message::Move(point) => self.move_position(point), + Message::Echo(s) => self.echo(s), + Message::ChangeColor(red, green, blue) => self.change_color(red, green, blue), + Message::Quit => self.quit(), + } } } |