commit f09e4d4bee909ea28b0d1691703f5eee0ffb402f
parent c812b79363f9f85901d76f7d25ae201323baff7e
Author: Daniel Barlow <dan@telent.net>
Date: Wed, 1 Nov 2023 00:23:58 +0000
use match instead of if/else
Rotation is an enum so leverage the compiler to tell us
we've considered all cases
Diffstat:
1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/src/main.rs b/src/main.rs
@@ -39,14 +39,17 @@ mod rover {
}
pub fn rotate((lon, lat, direction) : &Rover, rotation: Rotation) -> Rover {
- if rotation == Rotation::Left {
- let new_d = next_direction(*direction);
- (*lon, *lat, new_d)
- } else {
- let new_d = next_direction(*direction);
- let new_d = next_direction(new_d);
- let new_d = next_direction(new_d);
- (*lon, *lat, new_d)
+ match rotation {
+ Rotation::Left => {
+ let new_d = next_direction(*direction);
+ (*lon, *lat, new_d)
+ },
+ Rotation::Right => {
+ let new_d = next_direction(*direction);
+ let new_d = next_direction(new_d);
+ let new_d = next_direction(new_d);
+ (*lon, *lat, new_d)
+ }
}
}
}