diff options
author | Andinus <andinus@nand.sh> | 2021-09-28 23:38:47 +0530 |
---|---|---|
committer | Andinus <andinus@nand.sh> | 2021-09-28 23:38:47 +0530 |
commit | 45fab565a31a535324a335fa96df8f010d855b5c (patch) | |
tree | 639f48ea7d0108e6ae5b0775da0ffbfbb0df4c37 /rust/assembly-line | |
parent | 50bf972e9374c0f433b53ed80805ba5cbfb2a924 (diff) | |
download | exercism-45fab565a31a535324a335fa96df8f010d855b5c.tar.gz |
Rust: Assembly Line: Use a helper function for success rate
Diffstat (limited to 'rust/assembly-line')
-rw-r--r-- | rust/assembly-line/src/lib.rs | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/rust/assembly-line/src/lib.rs b/rust/assembly-line/src/lib.rs index 4d8d248..287172b 100644 --- a/rust/assembly-line/src/lib.rs +++ b/rust/assembly-line/src/lib.rs @@ -1,14 +1,16 @@ -const CARS_PER_HR: u32 = 221; - -pub fn production_rate_per_hour(speed: u8) -> f64 { - let mut cars: f64 = ((speed as u32) * CARS_PER_HR) as f64; +const CARS_PER_HR: f64 = 221.0; +fn success_rate(speed: u8) -> f64 { match speed { - 5..=8 => cars *= 0.90, - 9 | 10 => cars *= 0.77, - _ => {}, + 1..=4 => 1.0, + 5..=8 => 0.9, + 9|10 => 0.77, + _ => 0.0, } - cars +} + +pub fn production_rate_per_hour(speed: u8) -> f64 { + (speed as f64) * CARS_PER_HR * success_rate(speed) } pub fn working_items_per_minute(speed: u8) -> u32 { |