From 3bdf1774da8f488a130dd081e463a49d459e60ed Mon Sep 17 00:00:00 2001 From: Jonathan Zernik Date: Tue, 7 Jun 2022 23:45:49 -0700 Subject: [PATCH] Solve enum3 --- exercises/enums/enums3.rs | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/exercises/enums/enums3.rs b/exercises/enums/enums3.rs index 178b40c4..ac096f5c 100644 --- a/exercises/enums/enums3.rs +++ b/exercises/enums/enums3.rs @@ -1,10 +1,12 @@ // enums3.rs // Address all the TODOs to make the tests pass! -// I AM NOT DONE - enum Message { // TODO: implement the message variant types based on their usage below + ChangeColor((u8, u8, u8)), + Echo(String), + Move(Point), + Quit, } struct Point { @@ -37,6 +39,20 @@ impl State { fn process(&mut self, message: Message) { // TODO: create a match expression to process the different message variants + match message { + Message::ChangeColor((r, g, b)) => { + self.change_color((r, g, b)); + } + Message::Move(p) => { + self.move_position(p); + } + Message::Quit => { + self.quit(); + } + Message::Echo(s) => { + self.echo(s); + } + } } }