diff options
Diffstat (limited to 'src/2020/9/mod.rs')
-rw-r--r-- | src/2020/9/mod.rs | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/src/2020/9/mod.rs b/src/2020/9/mod.rs index c067ca0..0d2dd6f 100644 --- a/src/2020/9/mod.rs +++ b/src/2020/9/mod.rs @@ -1,10 +1,12 @@ +use crate::prelude::*; + const WINDOW: usize = 25; -pub fn parse(fh: std::fs::File) -> anyhow::Result<Vec<i64>> { - Ok(crate::util::parse::ints(crate::util::parse::lines(fh)).collect()) +pub fn parse(fh: File) -> Result<Vec<i64>> { + Ok(parse::ints(parse::lines(fh)).collect()) } -pub fn part1(list: Vec<i64>) -> anyhow::Result<i64> { +pub fn part1(list: Vec<i64>) -> Result<i64> { for i in 0..(list.len() - WINDOW) { let set = &list[i..i + WINDOW]; let n = list[i + WINDOW]; @@ -13,10 +15,10 @@ pub fn part1(list: Vec<i64>) -> anyhow::Result<i64> { } } - Err(anyhow::anyhow!("failed to find invalid number")) + Err(anyhow!("failed to find invalid number")) } -pub fn part2(list: Vec<i64>) -> anyhow::Result<i64> { +pub fn part2(list: Vec<i64>) -> Result<i64> { let mut invalid = None; for i in 0..(list.len() - WINDOW) { let set = &list[i..i + WINDOW]; @@ -26,7 +28,7 @@ pub fn part2(list: Vec<i64>) -> anyhow::Result<i64> { } } if invalid.is_none() { - return Err(anyhow::anyhow!("failed to find invalid number")); + return Err(anyhow!("failed to find invalid number")); } let invalid = invalid.unwrap(); @@ -40,9 +42,7 @@ pub fn part2(list: Vec<i64>) -> anyhow::Result<i64> { } } - Err(anyhow::anyhow!( - "failed to find sequence summing to invalid number" - )) + Err(anyhow!("failed to find sequence summing to invalid number")) } fn valid(set: &[i64], n: i64) -> bool { @@ -64,11 +64,11 @@ fn valid(set: &[i64], n: i64) -> bool { #[test] fn test() { assert_eq!( - part1(parse(crate::util::data(2020, 9).unwrap()).unwrap()).unwrap(), + part1(parse(parse::data(2020, 9).unwrap()).unwrap()).unwrap(), 373803594 ); assert_eq!( - part2(parse(crate::util::data(2020, 9).unwrap()).unwrap()).unwrap(), + part2(parse(parse::data(2020, 9).unwrap()).unwrap()).unwrap(), 51152360 ); } |