summaryrefslogtreecommitdiffstats
path: root/src/2022/1/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/2022/1/mod.rs')
-rw-r--r--src/2022/1/mod.rs15
1 files changed, 6 insertions, 9 deletions
diff --git a/src/2022/1/mod.rs b/src/2022/1/mod.rs
index 4f644d6..d3088b6 100644
--- a/src/2022/1/mod.rs
+++ b/src/2022/1/mod.rs
@@ -5,17 +5,14 @@ use crate::prelude::*;
pub fn parse(fh: File) -> Result<Vec<i64>> {
let mut elves = vec![];
- let mut cur = 0;
- for line in parse::lines(fh) {
- let line = line.trim();
- if line.is_empty() {
- elves.push(cur);
- cur = 0;
- } else {
- cur += line.parse::<i64>()?;
+ let mut lines = parse::lines(fh).peekable();
+ while lines.peek().is_some() {
+ let mut calories = 0;
+ for line in parse::chunk(&mut lines) {
+ calories += line.parse::<i64>()?;
}
+ elves.push(calories);
}
- elves.push(cur);
Ok(elves)
}