From f9c32f0022f8b35b82025b713967b42a5e1db917 Mon Sep 17 00:00:00 2001 From: Jan-Bulthuis Date: Sat, 14 Dec 2024 01:24:41 +0100 Subject: [PATCH] Cleaner parsing for day13 --- aoc_2024/src/day13.rs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/aoc_2024/src/day13.rs b/aoc_2024/src/day13.rs index 20a5747..e1dfea9 100644 --- a/aoc_2024/src/day13.rs +++ b/aoc_2024/src/day13.rs @@ -1,7 +1,7 @@ use aoc_runner_derive::{aoc, aoc_generator}; use nom::bytes::complete::tag; -use nom::character::complete::{i64 as parse_u64, multispace0}; -use nom::multi::many0; +use nom::character::complete::i64 as parse_u64; +use nom::multi::separated_list0; use nom::IResult; #[derive(Debug, Clone, Copy)] @@ -15,7 +15,7 @@ type Input = Vec; #[aoc_generator(day13)] fn parse(input: &str) -> Input { - many0(parse_case)(input).unwrap().1 + separated_list0(tag("\n\n"), parse_case)(input).unwrap().1 } fn parse_case(input: &str) -> IResult<&str, Case> { @@ -31,7 +31,6 @@ fn parse_case(input: &str) -> IResult<&str, Case> { let (input, prize_x) = parse_u64(input)?; let (input, _) = tag(", Y=")(input)?; let (input, prize_y) = parse_u64(input)?; - let (input, _) = multispace0(input)?; Ok(( input,