From f09e4d4bee909ea28b0d1691703f5eee0ffb402f Mon Sep 17 00:00:00 2001 From: Daniel Barlow Date: Wed, 1 Nov 2023 00:23:58 +0000 Subject: [PATCH] use match instead of if/else Rotation is an enum so leverage the compiler to tell us we've considered all cases --- src/main.rs | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/main.rs b/src/main.rs index c816dac..0a2426c 100644 --- 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) + } } } }