From 49cfe7a7cbede072327633e4ed7a356842333e44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Christian=20Gr=C3=BCnhage?= Date: Sun, 12 Dec 2021 12:58:01 +0100 Subject: [PATCH] fix bug in `parse_n` I initially wrote this for 10 elements in the octopi flashing grid puzzle, which is why I had a 10 in there, even though I did have the const N already. Here I rewrote it slightly, because with `try_into` already doing a length check, mine was redundant anyway. --- src/parsing.rs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/parsing.rs b/src/parsing.rs index 6ddd29c..a125354 100644 --- a/src/parsing.rs +++ b/src/parsing.rs @@ -42,12 +42,11 @@ pub fn parse_n, const N: usize>( parser: &dyn Fn(&mut P) -> Option, separator: &dyn Fn(&mut P) -> bool, ) -> Option<[T; N]> { - let elements: Vec = tokens.sep_by(parser, separator).collect(); - if elements.len() != 10 { - None - } else { - Some(elements.try_into().unwrap()) - } + tokens + .sep_by(parser, separator) + .collect::>() + .try_into() + .ok() } #[cfg(test)]