mars-rover-fe

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

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:
Msrc/main.rs | 19+++++++++++--------
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) + } } } }