rustlings

solving rustlings ft. dracuxan
git clone [email protected]:dracuxan/rustlings.git
Log | Files | Refs

structs2.rs (1267B)


      1 #[derive(Debug)]
      2 struct Order {
      3     name: String,
      4     year: u32,
      5     made_by_phone: bool,
      6     made_by_mobile: bool,
      7     made_by_email: bool,
      8     item_number: u32,
      9     count: u32,
     10 }
     11 
     12 fn create_order_template() -> Order {
     13     Order {
     14         name: String::from("Bob"),
     15         year: 2019,
     16         made_by_phone: false,
     17         made_by_mobile: false,
     18         made_by_email: true,
     19         item_number: 123,
     20         count: 0,
     21     }
     22 }
     23 
     24 fn main() {
     25     // You can optionally experiment here.
     26 }
     27 
     28 #[cfg(test)]
     29 mod tests {
     30     use super::*;
     31 
     32     #[test]
     33     fn your_order() {
     34         let order_template = create_order_template();
     35 
     36         let your_order = Order {
     37             name: String::from("Hacker in Rust"),
     38             count: 1,
     39             // Struct update syntax
     40             ..order_template
     41         };
     42 
     43         assert_eq!(your_order.name, "Hacker in Rust");
     44         assert_eq!(your_order.year, order_template.year);
     45         assert_eq!(your_order.made_by_phone, order_template.made_by_phone);
     46         assert_eq!(your_order.made_by_mobile, order_template.made_by_mobile);
     47         assert_eq!(your_order.made_by_email, order_template.made_by_email);
     48         assert_eq!(your_order.item_number, order_template.item_number);
     49         assert_eq!(your_order.count, 1);
     50     }
     51 }