diff --git a/2018/rust/src/bin/day_03.rs b/2018/rust/src/bin/day_03.rs index 23fda72..b6fbd01 100644 --- a/2018/rust/src/bin/day_03.rs +++ b/2018/rust/src/bin/day_03.rs @@ -21,15 +21,18 @@ fn solve(input: &str) -> Result> { .map(str::trim) .map(Claim::from_str) .collect::>()?; - let fabric = claims.iter().fold(HashMap::new(), |mut fabric: HashMap<(usize, usize), Vec>, claim| { - for square_inch in claim.square_inches() { + let fabric = claims.iter().fold( + HashMap::new(), + |mut fabric: HashMap<(usize, usize), Vec>, claim| { + for square_inch in claim.square_inches() { + fabric + .entry(square_inch) + .and_modify(|ids| ids.push(claim.id)) + .or_insert(vec![claim.id]); + } fabric - .entry(square_inch) - .and_modify(|ids| ids.push(claim.id)) - .or_insert(vec![claim.id]); - } - fabric - }); + }, + ); let values: Vec<_> = fabric.values().collect(); let output = values .iter()