diff --git a/exercises/08_enums/enums3.rs b/exercises/08_enums/enums3.rs index f49707c..66c4675 100644 --- a/exercises/08_enums/enums3.rs +++ b/exercises/08_enums/enums3.rs @@ -12,6 +12,7 @@ struct State { height: u64, position: Point, message: String, + // RGB color composed of red, green and blue. color: (u8, u8, u8), quit: bool, } @@ -30,8 +31,8 @@ impl State { self.message = s; } - fn change_color(&mut self, color: (u8, u8, u8)) { - self.color = color; + fn change_color(&mut self, red: u8, green: u8, blue: u8) { + self.color = (red, green, blue); } fn quit(&mut self) { @@ -39,9 +40,8 @@ impl State { } fn process(&mut self, message: Message) { - // TODO: Create a match expression to process the different message variants. - // Remember: When passing a tuple as a function argument, you'll need extra parentheses: - // e.g. `foo((t, u, p, l, e))` + // TODO: Create a match expression to process the different message + // variants using the methods defined above. } } diff --git a/solutions/08_enums/enums3.rs b/solutions/08_enums/enums3.rs index 8641fbd..4bc26b7 100644 --- a/solutions/08_enums/enums3.rs +++ b/solutions/08_enums/enums3.rs @@ -34,8 +34,8 @@ impl State { self.message = s; } - fn change_color(&mut self, color: (u8, u8, u8)) { - self.color = color; + fn change_color(&mut self, red: u8, green: u8, blue: u8) { + self.color = (red, green, blue); } fn quit(&mut self) { @@ -47,7 +47,7 @@ impl State { Message::Resize { width, height } => self.resize(width, height), Message::Move(point) => self.move_position(point), Message::Echo(s) => self.echo(s), - Message::ChangeColor(r, g, b) => self.change_color((r, g, b)), + Message::ChangeColor(r, g, b) => self.change_color(r, g, b), Message::Quit => self.quit(), } }