Skip to content

Commit d3ca115

Browse files
committed
A more readable bonus_valid
With the unreachable branch marked
1 parent d2d1d17 commit d3ca115

File tree

1 file changed

+13
-15
lines changed

1 file changed

+13
-15
lines changed

exercises/bowling/example.rs

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -30,24 +30,22 @@ impl Frame {
3030
}
3131

3232
fn bonus_valid(&self) -> bool {
33-
if self.bonus_done() {
34-
if self.is_spare() {
35-
self.bonus_score() <= 10
36-
} else if self.is_strike() {
37-
if let Some(first) = self.bonus.iter().rev().last() {
38-
if *first == 10 {
39-
self.bonus_score() <= 20
40-
} else {
41-
self.bonus_score() <= 10
42-
}
43-
} else {
44-
true
45-
}
33+
if self.is_open() || !self.bonus_done() {
34+
return true;
35+
}
36+
37+
if self.is_spare() {
38+
return self.bonus_score() <= 10;
39+
}
40+
41+
if let Some(first) = self.bonus.iter().next() {
42+
if *first == 10 {
43+
self.bonus_score() <= 20
4644
} else {
47-
true
45+
self.bonus_score() <= 10
4846
}
4947
} else {
50-
true
48+
unreachable!();
5149
}
5250
}
5351

0 commit comments

Comments
 (0)