@@ -7,8 +7,8 @@ pub fn part_one(input: &str) -> Option<u32> {
77 let sum = regex
88 . captures_iter ( input)
99 . map ( |captures| {
10- let x = & captures[ "x" ] . parse :: < u32 > ( ) . unwrap ( ) ;
11- let y = & captures[ "y" ] . parse :: < u32 > ( ) . unwrap ( ) ;
10+ let x = captures[ "x" ] . parse :: < u32 > ( ) . unwrap ( ) ;
11+ let y = captures[ "y" ] . parse :: < u32 > ( ) . unwrap ( ) ;
1212 x * y
1313 } )
1414 . sum ( ) ;
@@ -20,18 +20,16 @@ pub fn part_two(input: &str) -> Option<u32> {
2020 Regex :: new ( r"((?P<op>do\(\)|don't\(\))|(mul\((?P<x>\d{1,3}),(?P<y>\d{1,3})\)))" ) . unwrap ( ) ;
2121 let ( _, sum) = regex
2222 . captures_iter ( input)
23- . fold ( ( true , 0 ) , |( on , sum) , captures| {
23+ . fold ( ( true , 0 ) , |( enabled , sum) , captures| {
2424 if let Some ( op) = captures. name ( "op" ) {
25- if op. as_str ( ) == "don't()" {
26- ( false , sum)
27- } else if op. as_str ( ) == "do()" {
28- ( true , sum)
29- } else {
30- panic ! ( "Unknown op: {}" , op. as_str( ) ) ;
25+ match op. as_str ( ) {
26+ "don't()" => ( false , sum) ,
27+ "do()" => ( true , sum) ,
28+ _ => panic ! ( "Unknown operation: {}" , op. as_str( ) ) ,
3129 }
32- } else if on {
33- let x = & captures[ "x" ] . parse :: < u32 > ( ) . unwrap ( ) ;
34- let y = & captures[ "y" ] . parse :: < u32 > ( ) . unwrap ( ) ;
30+ } else if enabled {
31+ let x = captures[ "x" ] . parse :: < u32 > ( ) . unwrap ( ) ;
32+ let y = captures[ "y" ] . parse :: < u32 > ( ) . unwrap ( ) ;
3533 ( true , sum + x * y)
3634 } else {
3735 ( false , sum)
0 commit comments