From 4dfc11d74ab02ac5765ae5d08fb750c91f4744b4 Mon Sep 17 00:00:00 2001 From: Hunter Kvalevog Date: Fri, 2 Oct 2026 21:53:51 -0500 Subject: rustlings: move to rust/ --- rustlings/exercises/08_enums/enums3.rs | 93 ---------------------------------- 1 file changed, 93 deletions(-) delete mode 100644 rustlings/exercises/08_enums/enums3.rs (limited to 'rustlings/exercises/08_enums/enums3.rs') diff --git a/rustlings/exercises/08_enums/enums3.rs b/rustlings/exercises/08_enums/enums3.rs deleted file mode 100644 index bf01af3..0000000 --- a/rustlings/exercises/08_enums/enums3.rs +++ /dev/null @@ -1,93 +0,0 @@ -struct Point { - x: u64, - y: u64, -} - -enum Message { - Resize { width: u64, height: u64 }, - Move(Point), - Echo(String), - ChangeColor(u8, u8, u8), - Quit, -} - -struct State { - width: u64, - height: u64, - position: Point, - message: String, - // RGB color composed of red, green and blue. - color: (u8, u8, u8), - quit: bool, -} - -impl State { - fn resize(&mut self, width: u64, height: u64) { - self.width = width; - self.height = height; - } - - fn move_position(&mut self, point: Point) { - self.position = point; - } - - fn echo(&mut self, s: String) { - self.message = s; - } - - fn change_color(&mut self, red: u8, green: u8, blue: u8) { - self.color = (red, green, blue); - } - - fn quit(&mut self) { - self.quit = true; - } - - fn process(&mut self, message: Message) { - match message { - Message::Resize { width, height } => self.resize(width, height), - Message::Move(point) => self.move_position(point), - Message::Echo(s) => self.echo(s), - Message::ChangeColor(red, green, blue) => self.change_color(red, green, blue), - Message::Quit => self.quit(), - } - } -} - -fn main() { - // You can optionally experiment here. -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn test_match_message_call() { - let mut state = State { - width: 0, - height: 0, - position: Point { x: 0, y: 0 }, - message: String::from("hello world"), - color: (0, 0, 0), - quit: false, - }; - - state.process(Message::Resize { - width: 10, - height: 30, - }); - state.process(Message::Move(Point { x: 10, y: 15 })); - state.process(Message::Echo(String::from("Hello world!"))); - state.process(Message::ChangeColor(255, 0, 255)); - state.process(Message::Quit); - - assert_eq!(state.width, 10); - assert_eq!(state.height, 30); - assert_eq!(state.position.x, 10); - assert_eq!(state.position.y, 15); - assert_eq!(state.message, "Hello world!"); - assert_eq!(state.color, (255, 0, 255)); - assert!(state.quit); - } -} -- cgit v1.2.3