Slightly optimize input parsing

This commit is contained in:
kageru 2021-12-06 13:46:34 +01:00
parent c073e2f906
commit fcab7acc74

View File

@ -4,16 +4,15 @@ pub fn read_file(day: usize) -> String {
std::fs::read_to_string(env::var("AOC_INPUT").unwrap_or_else(|_| format!("inputs/day{:0>2}", day))).unwrap() std::fs::read_to_string(env::var("AOC_INPUT").unwrap_or_else(|_| format!("inputs/day{:0>2}", day))).unwrap()
} }
#[inline]
pub fn parse_nums(l: &str) -> Vec<usize> { pub fn parse_nums(l: &str) -> Vec<usize> {
l.lines().map(parse_num).collect() l.lines().map(parse_num).collect()
} }
#[inline]
pub fn parse_nums_comma(l: &str) -> Vec<usize> { pub fn parse_nums_comma(l: &str) -> Vec<usize> {
l.split(',').map(parse_num).collect() l.trim().split(',').map(parse_num).collect()
} }
#[inline]
fn parse_num(s: &str) -> usize { fn parse_num(s: &str) -> usize {
s.trim().parse().unwrap_or_else(|e| panic!("Invalid number {s}: {e:?}")) s.parse().unwrap_or_else(|e| panic!("Invalid number {s}: {e:?}"))
} }