1#[derive(Debug)]
2struct 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
12fn 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
24fn main() {
25 // You can optionally experiment here.
26}
27
28#[cfg(test)]
29mod tests {
30 use super::*;
31
32 #[test]
33 fn your_order() {
34 let order_template = create_order_template();
35
36 // TODO: Create your own order using the update syntax and template above!
37 // let your_order =
38 let your_order = Order {
39 name: String::from("Hacker in Rust"),
40 count: 1,
41 ..order_template
42 };
43
44 assert_eq!(your_order.name, "Hacker in Rust");
45 assert_eq!(your_order.year, order_template.year);
46 assert_eq!(your_order.made_by_phone, order_template.made_by_phone);
47 assert_eq!(your_order.made_by_mobile, order_template.made_by_mobile);
48 assert_eq!(your_order.made_by_email, order_template.made_by_email);
49 assert_eq!(your_order.item_number, order_template.item_number);
50 assert_eq!(your_order.count, 1);
51 }
52}