diff options
| author | Adam Brewer <adamhb321@gmail.com> | 2023-10-16 07:37:12 -0400 |
|---|---|---|
| committer | Adam Brewer <adamhb321@gmail.com> | 2023-10-16 07:37:12 -0400 |
| commit | 64d95837e9813541cf5b357de13865ce687ae98d (patch) | |
| tree | f022c5d5ba01128811c0b77618a7adb843ee876b /exercises/enums/enums3.rs | |
| parent | c3941323e2c0b9ee286494327de92e00f23b9e3a (diff) | |
Update Exercises Directory Names to Reflect Order
Diffstat (limited to 'exercises/enums/enums3.rs')
| -rw-r--r-- | exercises/enums/enums3.rs | 73 |
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!"); - } -} |
