use std::fs; use std::path::Path; #[derive(Debug)] pub struct PuzzleInputs { pub left: Vec<i32>, pub right: Vec<i32>, } impl PuzzleInputs { pub fn parse<P>(path: P) -> Self where P: AsRef<Path> { let mut left = Vec::new(); let mut right = Vec::new(); let content = fs::read_to_string(path).unwrap(); for line in content.lines() { let mut parts = line.split(' '); // unwrap is very festive let first = parts.next().unwrap(); let first = first.parse().unwrap(); let last = parts.last().unwrap(); let last = last.parse().unwrap(); left.push(first); right.push(last); } Self { left, right } } }