From eec886b5e2dcceb710106b84cbf8158661bf8eda Mon Sep 17 00:00:00 2001 From: Bert Peters Date: Wed, 7 Dec 2022 16:01:09 +0100 Subject: [PATCH] Slightly cleaner parser --- 2022/src/day07.rs | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/2022/src/day07.rs b/2022/src/day07.rs index c9139aa..4642d27 100644 --- a/2022/src/day07.rs +++ b/2022/src/day07.rs @@ -9,7 +9,6 @@ use nom::combinator::opt; use nom::multi::fold_many0; use nom::sequence::delimited; use nom::sequence::preceded; -use nom::sequence::separated_pair; use nom::sequence::terminated; use nom::sequence::tuple; use nom::IResult; @@ -37,14 +36,9 @@ fn parse_dir<'a>( // of either alt(( // A size followed by a name - map( - separated_pair(u32, tag(" "), take_until("\n")), - |(size, _)| Entry::File(size), - ), + map(terminated(u32, take_until("\n")), Entry::File), // Or the word "dir" followed by a name - map(preceded(tag("dir "), take_until("\n")), |name| { - Entry::Dir(name) - }), + map(preceded(tag("dir "), take_until("\n")), Entry::Dir), )), newline, ), @@ -72,6 +66,7 @@ fn parse_dir<'a>( } dirs.push(size); + dir_stack.truncate(initial_len); Ok((input, size)) }