From 67cdcc2e12118becb823e20a40cc2687f2b8425a Mon Sep 17 00:00:00 2001 From: Adam Carpenter <53hornet@gmail.com> Date: Wed, 27 Mar 2019 15:32:37 -0400 Subject: Started Rust in Action MEAP. --- oop/Cargo.lock | 4 ---- oop/Cargo.toml | 7 ------- oop/src/lib.rs | 41 ----------------------------------------- oop/src/main.rs | 56 -------------------------------------------------------- 4 files changed, 108 deletions(-) delete mode 100644 oop/Cargo.lock delete mode 100644 oop/Cargo.toml delete mode 100644 oop/src/lib.rs delete mode 100644 oop/src/main.rs (limited to 'oop') diff --git a/oop/Cargo.lock b/oop/Cargo.lock deleted file mode 100644 index fd3ef4a..0000000 --- a/oop/Cargo.lock +++ /dev/null @@ -1,4 +0,0 @@ -[[package]] -name = "oop" -version = "0.1.0" - diff --git a/oop/Cargo.toml b/oop/Cargo.toml deleted file mode 100644 index 28311ff..0000000 --- a/oop/Cargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "oop" -version = "0.1.0" -authors = ["Adam Carpenter <53hornet@gmail.com>"] -edition = "2018" - -[dependencies] diff --git a/oop/src/lib.rs b/oop/src/lib.rs deleted file mode 100644 index 91ef2e8..0000000 --- a/oop/src/lib.rs +++ /dev/null @@ -1,41 +0,0 @@ -pub trait Draw { - fn draw(&self); -} - -pub struct Screen { - pub components: Vec>, -} - -impl Screen { - pub fn run(&self) { - for component in self.components.iter() { - component.draw(); - } - } -} - -pub struct Button { - pub width: u32, - pub height: u32, - pub label: String, -} - -impl Draw for Button { - fn draw(&self) { - dbg!("drew button"); - } -} - -pub struct SelectBox { - pub width: u32, - pub height: u32, - pub options: Vec, -} - -impl Draw for SelectBox { - fn draw(&self) { - dbg!("drew select box"); - } -} - - diff --git a/oop/src/main.rs b/oop/src/main.rs deleted file mode 100644 index e92c07c..0000000 --- a/oop/src/main.rs +++ /dev/null @@ -1,56 +0,0 @@ -use oop::{Screen, Button, SelectBox}; - -pub struct AveragedCollection { - list: Vec, - average: f64, -} - -impl AveragedCollection { - pub fn add(&mut self, value: i32) { - self.list.push(value); - self.update_average(); - } - - pub fn remove(&mut self) -> Option { - let result = self.list.pop(); - match result { - Some(value) => { - self.update_average(); - Some(value) - }, - None => None, - } - } - - pub fn average(&self) -> f64 { - self.average - } - - fn update_average(&mut self) { - let total: i32 = self.list.iter().sum(); - self.average = total as f64 / self.list.len() as f64; - } -} - -fn main() { - let screen = Screen { - components: vec![ - Box::new(SelectBox { - width: 75, - height: 10, - options: vec![ - String::from("Yes"), - String::from("Maybe"), - String::from("No") - ], - }), - Box::new(Button { - width: 50, - height: 10, - label: String::from("OK"), - }), - ], - }; - - screen.run(); -} -- cgit v1.2.3