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/structs | |
| parent | c3941323e2c0b9ee286494327de92e00f23b9e3a (diff) | |
Update Exercises Directory Names to Reflect Order
Diffstat (limited to 'exercises/structs')
| -rw-r--r-- | exercises/structs/README.md | 8 | ||||
| -rw-r--r-- | exercises/structs/structs1.rs | 51 | ||||
| -rw-r--r-- | exercises/structs/structs2.rs | 50 | ||||
| -rw-r--r-- | exercises/structs/structs3.rs | 88 |
4 files changed, 0 insertions, 197 deletions
diff --git a/exercises/structs/README.md b/exercises/structs/README.md deleted file mode 100644 index 3fc1fdc..0000000 --- a/exercises/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/exercises/structs/structs1.rs b/exercises/structs/structs1.rs deleted file mode 100644 index 5fa5821..0000000 --- a/exercises/structs/structs1.rs +++ /dev/null @@ -1,51 +0,0 @@ -// structs1.rs -// -// Address all the TODOs to make the tests pass! -// -// Execute `rustlings hint structs1` or use the `hint` watch subcommand for a -// hint. - -// I AM NOT DONE - -struct ColorClassicStruct { - // TODO: Something goes here -} - -struct ColorTupleStruct(/* TODO: Something goes here */); - -#[derive(Debug)] -struct UnitLikeStruct; - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn classic_c_structs() { - // TODO: Instantiate a classic c struct! - // let green = - - assert_eq!(green.red, 0); - assert_eq!(green.green, 255); - assert_eq!(green.blue, 0); - } - - #[test] - fn tuple_structs() { - // TODO: Instantiate a tuple struct! - // let green = - - assert_eq!(green.0, 0); - assert_eq!(green.1, 255); - assert_eq!(green.2, 0); - } - - #[test] - fn unit_structs() { - // TODO: Instantiate a unit-like struct! - // let unit_like_struct = - let message = format!("{:?}s are fun!", unit_like_struct); - - assert_eq!(message, "UnitLikeStructs are fun!"); - } -} diff --git a/exercises/structs/structs2.rs b/exercises/structs/structs2.rs deleted file mode 100644 index 328567f..0000000 --- a/exercises/structs/structs2.rs +++ /dev/null @@ -1,50 +0,0 @@ -// structs2.rs -// -// Address all the TODOs to make the tests pass! -// -// Execute `rustlings hint structs2` or use the `hint` watch subcommand for a -// hint. - -// I AM NOT DONE - -#[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, - } -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn your_order() { - let order_template = create_order_template(); - // TODO: Create your own order using the update syntax and template above! - // let your_order = - 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/exercises/structs/structs3.rs b/exercises/structs/structs3.rs deleted file mode 100644 index 7cda5af..0000000 --- a/exercises/structs/structs3.rs +++ /dev/null @@ -1,88 +0,0 @@ -// structs3.rs -// -// 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. -// Make the code compile and the tests pass! -// -// Execute `rustlings hint structs3` or use the `hint` watch subcommand for a -// hint. - -// I AM NOT DONE - -#[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) -> Package { - if weight_in_grams < 10 { - // This is not how you should handle errors in Rust, - // but we will learn about error handling later. - panic!("Can not ship a package with weight below 10 grams.") - } else { - Package { - sender_country, - recipient_country, - weight_in_grams, - } - } - } - - fn is_international(&self) -> ??? { - // Something goes here... - } - - fn get_fees(&self, cents_per_gram: u32) -> ??? { - // Something goes 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); - } -} |
