grid: improve ergonomics with more trait impls and other improvements

update puzzles to pass tests, some performance gains
This commit is contained in:
2024-12-12 02:14:29 -08:00
parent c213bbbc27
commit 447ff5c62c
5 changed files with 88 additions and 53 deletions

View File

@ -2,19 +2,19 @@ use aoc_runner_derive::{aoc, aoc_generator};
use grid::Grid;
use itertools::Itertools;
use std::collections::HashSet;
use std::io::{BufRead, Lines};
use std::io::BufRead;
#[aoc_generator(day8)]
pub fn get_input(input: &[u8]) -> AntennaMap {
AntennaMap::from(input.lines())
AntennaMap::from(input)
}
pub struct AntennaMap {
map: Grid<u8>,
}
impl<T: BufRead> From<Lines<T>> for AntennaMap {
fn from(input: Lines<T>) -> Self {
impl<T: BufRead> From<T> for AntennaMap {
fn from(input: T) -> Self {
Self { map: Grid::from(input) }
}
}