summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--exercises/08_enums/enums3.rs10
-rw-r--r--solutions/08_enums/enums3.rs6
2 files changed, 8 insertions, 8 deletions
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(),
}
}