main
1/*
2// Regular struct
3struct User {
4 active: bool,
5 username: String,
6 email: String,
7 sign_in_count: u64,
8}
9
10// Tuple Struct
11struct Color(i32, i32, i32);
12struct Point(i32, i32, i32);
13
14// Unit-Like Structs
15struct AlwaysEqual;
16
17fn main() {
18 let user1 = build_user(String::from("root"), String::from("root@example.com"));
19 println!("{}", user1.username);
20
21 let user2 = User {
22 email: String::from("another@example.com"),
23 ..user1
24 };
25 println!("{}", user2.username);
26
27 let black = Color(0, 0, 0);
28 let origin = Point(0, 0, 0);
29 println!("{} {}", black.0, origin.1);
30
31 let subject = AlwaysEqual;
32}
33
34fn build_user(email: String, username: String) -> User {
35 User {
36 active: true,
37 username,
38 email,
39 sign_in_count: 1,
40 }
41}
42*/
43
44/*
45fn main() {
46 let width1 = 30;
47 let height1 = 50;
48
49 println!(
50 "The area of the rectangle is {} square pixels.",
51 area(width1, height1)
52 );
53}
54
55fn area(width: u32, height: u32) -> u32 {
56 width * height
57}
58*/
59
60/*
61fn main() {
62 let rect1 = (30, 50);
63
64 println!(
65 "The area of the rectangle is {} square pixels.",
66 area(rect1)
67 );
68}
69
70fn area(dimensions: (u32, u32)) -> u32 {
71 dimensions.0 * dimensions.1
72}
73*/
74
75#[derive(Debug)]
76struct Rectangle {
77 width: u32,
78 height: u32,
79}
80
81fn main() {
82 let scale = 2;
83 let rect1 = Rectangle {
84 width: dbg!(30 * scale),
85 height: 50,
86 };
87 println!("rect1 is {rect1:?}");
88 println!("rect1 is {rect1:#?}");
89 dbg!(&rect1);
90 println!(
91 "The area of the rectangle is {} square pixels.",
92 area(&rect1)
93 );
94}
95
96fn area(rectangle: &Rectangle) -> u32 {
97 rectangle.width * rectangle.height
98}