[rust][day_02] Simplification
change
commit ece6b3041d0ee70a79001184d3155d044b0cfca5
author Alpha Chen <alpha.chen@gmail.com>
date
parent d9c69654
diff --git a/rust/src/day_02.rs b/rust/src/day_02.rs
index c8f3824..bcacb32 100644
--- a/rust/src/day_02.rs
+++ b/rust/src/day_02.rs
@@ -1,7 +1,5 @@
 pub fn solve(input: &str) -> i32 {
-  let presents =
-    input.split('\n').map(|line| Present::new(line)).collect::<Vec<Present>>();
-  presents.iter().fold(0u32, |acc, present| acc + present.ribbon()) as i32
+  input.lines().map(|line| Present::new(line).ribbon()).sum::<u32>() as i32
 }
 
 struct Present {
@@ -15,7 +13,7 @@ impl Present {
   fn new(input: &str) -> Self {
     let dimensions = input.split('x')
       .map(|d| d.parse::<u32>().unwrap())
-      .collect::<Vec<u32>>();
+      .collect::<Vec<_>>();
     Present {
       length: dimensions[0],
       width: dimensions[1],
@@ -32,7 +30,7 @@ impl Present {
   }
 
   fn surface_area(&self) -> u32 {
-    self.side_areas().iter().fold(0, |acc, &area| acc + 2 * area)
+    self.side_areas().iter().map(|area| 2 * area).sum()
   }
 
   fn slack(&self) -> u32 {