advent-of-code/2020/day-02/common.rs

31 lines
826 B
Rust

use std::env;
use std::fs::File;
use std::io::Read;
pub type Result<T> = std::result::Result<T, Box<dyn std::error::Error>>;
pub fn read_file() -> Result<Vec<(usize, usize, char, String)>> {
let path = env::args().skip(1).next().unwrap();
let mut file = File::open(path)?;
let mut content = String::new();
file.read_to_string(&mut content)?;
let result = content
.lines()
.map(|line| {
let tokens = line
.split(&[' ', ':', '-'][..])
.filter(|&x| x != "")
.collect::<Vec<_>>();
(
tokens[0].parse().unwrap(),
tokens[1].parse().unwrap(),
tokens[2].chars().next().unwrap(),
tokens[3].into(),
)
})
.collect();
Ok(result)
}