Skip to content

Commit 346753b

Browse files
committed
Make starting fireworks more fun :)
1 parent 7c1d8eb commit 346753b

File tree

2 files changed

+14
-28
lines changed

2 files changed

+14
-28
lines changed

exercises/07_structs/structs3.rs

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,7 @@ fn add_rockets(fireworks: &mut Fireworks, rockets: usize) {
2222

2323
// TODO: Turn this function into a method on `Fireworks`.
2424
fn start(fireworks: Fireworks) -> String {
25-
if fireworks.rockets < 5 {
26-
String::from("small")
27-
} else if fireworks.rockets < 20 {
28-
String::from("medium")
29-
} else {
30-
String::from("big")
31-
}
25+
"🚀".repeat(fireworks.rockets)
3226
}
3327

3428
fn main() {
@@ -41,18 +35,17 @@ mod tests {
4135

4236
#[test]
4337
fn start_some_fireworks() {
44-
let mut f = Fireworks::new();
45-
f.add_rockets(3);
46-
assert_eq!(f.start(), "small");
38+
let f = Fireworks::new();
39+
assert_eq!(f.start(), "");
4740

4841
let mut f = Fireworks::new();
49-
f.add_rockets(15);
50-
assert_eq!(f.start(), "medium");
42+
f.add_rockets(3);
43+
assert_eq!(f.start(), "🚀🚀🚀");
5144

5245
let mut f = Fireworks::new();
53-
f.add_rockets(100);
46+
f.add_rockets(7);
5447
// We don't use method syntax in the last test to ensure the `start`
5548
// function takes ownership of the fireworks.
56-
assert_eq!(Fireworks::start(f), "big");
49+
assert_eq!(Fireworks::start(f), "🚀🚀🚀🚀🚀🚀🚀");
5750
}
5851
}

solutions/07_structs/structs3.rs

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,7 @@ impl Fireworks {
1515
}
1616

1717
fn start(self) -> String {
18-
if self.rockets < 5 {
19-
String::from("small")
20-
} else if self.rockets < 20 {
21-
String::from("medium")
22-
} else {
23-
String::from("big")
24-
}
18+
"🚀".repeat(self.rockets)
2519
}
2620
}
2721

@@ -35,18 +29,17 @@ mod tests {
3529

3630
#[test]
3731
fn start_some_fireworks() {
38-
let mut f = Fireworks::new();
39-
f.add_rockets(3);
40-
assert_eq!(f.start(), "small");
32+
let f = Fireworks::new();
33+
assert_eq!(f.start(), "");
4134

4235
let mut f = Fireworks::new();
43-
f.add_rockets(15);
44-
assert_eq!(f.start(), "medium");
36+
f.add_rockets(3);
37+
assert_eq!(f.start(), "🚀🚀🚀");
4538

4639
let mut f = Fireworks::new();
47-
f.add_rockets(100);
40+
f.add_rockets(7);
4841
// We don't use method syntax in the last test to ensure the `start`
4942
// function takes ownership of the fireworks.
50-
assert_eq!(Fireworks::start(f), "big");
43+
assert_eq!(Fireworks::start(f), "🚀🚀🚀🚀🚀🚀🚀");
5144
}
5245
}

0 commit comments

Comments
 (0)