summaryrefslogtreecommitdiff
path: root/rustlings/solutions/07_structs/structs2.rs
diff options
context:
space:
mode:
authorHunter Kvalevog <hunter@kvog.sh>2026-09-19 17:44:02 -0500
committerHunter Kvalevog <hunter@kvog.sh>2026-09-19 17:44:02 -0500
commit13c7b05a26b78cb63bed5d2afdf8eb927197286e (patch)
tree29ae22718398ef3c1d605ea8725ebbac9c8b4ac3 /rustlings/solutions/07_structs/structs2.rs
parent4791a7ab0400713568f8c9594d9ac2bac10cd8ae (diff)
rustlings: complete 07
Diffstat (limited to 'rustlings/solutions/07_structs/structs2.rs')
-rw-r--r--rustlings/solutions/07_structs/structs2.rs51
1 files changed, 49 insertions, 2 deletions
diff --git a/rustlings/solutions/07_structs/structs2.rs b/rustlings/solutions/07_structs/structs2.rs
index dcf2377..589dd93 100644
--- a/rustlings/solutions/07_structs/structs2.rs
+++ b/rustlings/solutions/07_structs/structs2.rs
@@ -1,4 +1,51 @@
+#[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() {
- // DON'T EDIT THIS SOLUTION FILE!
- // It will be automatically filled after you finish the exercise.
+ // 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,
+ // Struct update syntax
+ ..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);
+ }
}