mirror of
https://github.com/bertptrs/adventofcode.git
synced 2025-12-26 13:20:32 +01:00
Implement day 18 2021
This commit is contained in:
@@ -4,6 +4,9 @@ use std::io::Read;
|
||||
use std::marker::PhantomData;
|
||||
use std::str::FromStr;
|
||||
|
||||
use nom::Finish;
|
||||
use nom::IResult;
|
||||
|
||||
pub struct LineIter<'a> {
|
||||
reader: BufReader<&'a mut dyn Read>,
|
||||
buffer: String,
|
||||
@@ -78,3 +81,15 @@ pub fn ordered<O: PartialOrd>(a: O, b: O) -> (O, O) {
|
||||
(b, a)
|
||||
}
|
||||
}
|
||||
|
||||
pub fn read_input<P, O>(input: &mut dyn Read, parser: P) -> O
|
||||
where
|
||||
P: for<'a> FnOnce(&'a [u8]) -> IResult<&'a [u8], O>,
|
||||
{
|
||||
let mut buffer = Vec::new();
|
||||
input.read_to_end(&mut buffer).unwrap();
|
||||
|
||||
let (_, output) = parser(&buffer).finish().unwrap();
|
||||
|
||||
output
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user