summaryrefslogtreecommitdiff
path: root/exercises/enums/enums3.rs
diff options
context:
space:
mode:
authorAdam Brewer <adamhb321@gmail.com>2023-10-16 07:37:12 -0400
committerAdam Brewer <adamhb321@gmail.com>2023-10-16 07:37:12 -0400
commit64d95837e9813541cf5b357de13865ce687ae98d (patch)
treef022c5d5ba01128811c0b77618a7adb843ee876b /exercises/enums/enums3.rs
parentc3941323e2c0b9ee286494327de92e00f23b9e3a (diff)
Update Exercises Directory Names to Reflect Order
Diffstat (limited to 'exercises/enums/enums3.rs')
-rw-r--r--exercises/enums/enums3.rs73
1 files changed, 0 insertions, 73 deletions
diff --git a/exercises/enums/enums3.rs b/exercises/enums/enums3.rs
deleted file mode 100644
index 92d18c4..0000000
--- a/exercises/enums/enums3.rs
+++ /dev/null
@@ -1,73 +0,0 @@
-// enums3.rs
-//
-// Address all the TODOs to make the tests pass!
-//
-// Execute `rustlings hint enums3` or use the `hint` watch subcommand for a
-// hint.
-
-// I AM NOT DONE
-
-enum Message {
- // TODO: implement the message variant types based on their usage below
-}
-
-struct Point {
- x: u8,
- y: u8,
-}
-
-struct State {
- color: (u8, u8, u8),
- position: Point,
- quit: bool,
- message: String,
-}
-
-impl State {
- fn change_color(&mut self, color: (u8, u8, u8)) {
- self.color = color;
- }
-
- fn quit(&mut self) {
- self.quit = true;
- }
-
- fn echo(&mut self, s: String) {
- self.message = s
- }
-
- fn move_position(&mut self, p: Point) {
- self.position = p;
- }
-
- 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:
- // fn function((t, u, p, l, e))
- }
-}
-
-#[cfg(test)]
-mod tests {
- use super::*;
-
- #[test]
- fn test_match_message_call() {
- let mut state = State {
- quit: false,
- position: Point { x: 0, y: 0 },
- color: (0, 0, 0),
- message: "hello world".to_string(),
- };
- state.process(Message::ChangeColor(255, 0, 255));
- state.process(Message::Echo(String::from("Hello world!")));
- state.process(Message::Move(Point { x: 10, y: 15 }));
- state.process(Message::Quit);
-
- assert_eq!(state.color, (255, 0, 255));
- assert_eq!(state.position.x, 10);
- assert_eq!(state.position.y, 15);
- assert_eq!(state.quit, true);
- assert_eq!(state.message, "Hello world!");
- }
-}