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/07_structs/README.md | 8 --- rustlings/exercises/07_structs/structs1.rs | 50 ------------------ rustlings/exercises/07_structs/structs2.rs | 50 ------------------ rustlings/exercises/07_structs/structs3.rs | 84 ------------------------------ 4 files changed, 192 deletions(-) delete mode 100644 rustlings/exercises/07_structs/README.md delete mode 100644 rustlings/exercises/07_structs/structs1.rs delete mode 100644 rustlings/exercises/07_structs/structs2.rs delete mode 100644 rustlings/exercises/07_structs/structs3.rs (limited to 'rustlings/exercises/07_structs') diff --git a/rustlings/exercises/07_structs/README.md b/rustlings/exercises/07_structs/README.md deleted file mode 100644 index 3fc1fdc..0000000 --- a/rustlings/exercises/07_structs/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# Structs - -Rust has three struct types: a classic C struct, a tuple struct, and a unit struct. - -## Further information - -- [Structures](https://doc.rust-lang.org/book/ch05-01-defining-structs.html) -- [Method Syntax](https://doc.rust-lang.org/book/ch05-03-method-syntax.html) diff --git a/rustlings/exercises/07_structs/structs1.rs b/rustlings/exercises/07_structs/structs1.rs deleted file mode 100644 index 8376a98..0000000 --- a/rustlings/exercises/07_structs/structs1.rs +++ /dev/null @@ -1,50 +0,0 @@ -struct ColorRegularStruct { - red: u8, - green: u8, - blue: u8, -} - -struct ColorTupleStruct(u8, u8, u8); - -#[derive(Debug)] -struct UnitStruct; - -fn main() { - // You can optionally experiment here. -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn regular_structs() { - let green = ColorRegularStruct { - red: 0, - green: 255, - blue: 0, - }; - - assert_eq!(green.red, 0); - assert_eq!(green.green, 255); - assert_eq!(green.blue, 0); - } - - #[test] - fn tuple_structs() { - let green = ColorTupleStruct(0, 255, 0 ); - - assert_eq!(green.0, 0); - assert_eq!(green.1, 255); - assert_eq!(green.2, 0); - } - - #[test] - fn unit_structs() { - let unit_struct = UnitStruct; - - let message = format!("{unit_struct:?}s are fun!"); - - assert_eq!(message, "UnitStructs are fun!"); - } -} diff --git a/rustlings/exercises/07_structs/structs2.rs b/rustlings/exercises/07_structs/structs2.rs deleted file mode 100644 index 2539e31..0000000 --- a/rustlings/exercises/07_structs/structs2.rs +++ /dev/null @@ -1,50 +0,0 @@ -#[derive(Debug)] -struct Order { - name: String, - year: u32, - made_by_phone: bool, - made_by_mobile: bool, - made_by_email: bool, - item_number: u32, - count: u32, -} - -fn create_order_template() -> Order { - Order { - name: String::from("Bob"), - year: 2019, - made_by_phone: false, - made_by_mobile: false, - made_by_email: true, - item_number: 123, - count: 0, - } -} - -fn main() { - // You can optionally experiment here. -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn your_order() { - let order_template = create_order_template(); - - let your_order = Order { - name: String::from("Hacker in Rust"), - count: 1, - ..order_template - }; - - assert_eq!(your_order.name, "Hacker in Rust"); - assert_eq!(your_order.year, order_template.year); - assert_eq!(your_order.made_by_phone, order_template.made_by_phone); - assert_eq!(your_order.made_by_mobile, order_template.made_by_mobile); - assert_eq!(your_order.made_by_email, order_template.made_by_email); - assert_eq!(your_order.item_number, order_template.item_number); - assert_eq!(your_order.count, 1); - } -} diff --git a/rustlings/exercises/07_structs/structs3.rs b/rustlings/exercises/07_structs/structs3.rs deleted file mode 100644 index d24da27..0000000 --- a/rustlings/exercises/07_structs/structs3.rs +++ /dev/null @@ -1,84 +0,0 @@ -// Structs contain data, but can also have logic. In this exercise, we have -// defined the `Package` struct, and we want to test some logic attached to it. - -#[derive(Debug)] -struct Package { - sender_country: String, - recipient_country: String, - weight_in_grams: u32, -} - -impl Package { - fn new(sender_country: String, recipient_country: String, weight_in_grams: u32) -> Self { - if weight_in_grams < 10 { - // This isn't how you should handle errors in Rust, but we will - // learn about error handling later. - panic!("Can't ship a package with weight below 10 grams"); - } - - Self { - sender_country, - recipient_country, - weight_in_grams, - } - } - - fn is_international(&self) -> bool { - self.sender_country != self.recipient_country - } - - fn get_fees(&self, cents_per_gram: u32) -> u32 { - self.weight_in_grams * cents_per_gram - } -} - -fn main() { - // You can optionally experiment here. -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - #[should_panic] - fn fail_creating_weightless_package() { - let sender_country = String::from("Spain"); - let recipient_country = String::from("Austria"); - - Package::new(sender_country, recipient_country, 5); - } - - #[test] - fn create_international_package() { - let sender_country = String::from("Spain"); - let recipient_country = String::from("Russia"); - - let package = Package::new(sender_country, recipient_country, 1200); - - assert!(package.is_international()); - } - - #[test] - fn create_local_package() { - let sender_country = String::from("Canada"); - let recipient_country = sender_country.clone(); - - let package = Package::new(sender_country, recipient_country, 1200); - - assert!(!package.is_international()); - } - - #[test] - fn calculate_transport_fees() { - let sender_country = String::from("Spain"); - let recipient_country = String::from("Spain"); - - let cents_per_gram = 3; - - let package = Package::new(sender_country, recipient_country, 1500); - - assert_eq!(package.get_fees(cents_per_gram), 4500); - assert_eq!(package.get_fees(cents_per_gram * 2), 9000); - } -} -- cgit v1.2.3