update itertools
This commit is contained in:
parent
3b12de4970
commit
556b85e532
3 changed files with 10 additions and 17 deletions
|
|
@ -1,27 +1,17 @@
|
|||
use itertools::Itertools;
|
||||
use std::{fs, io};
|
||||
|
||||
fn read_data(day_num: usize, file: &str) -> io::Result<String> {
|
||||
fs::read_to_string(format!("data/day{day_num:02}/{file}"))
|
||||
fn format_path(day_num: usize, file: &str) -> String {
|
||||
format!("data/day{day_num:02}/{file}")
|
||||
}
|
||||
|
||||
pub fn read_lines(day_num: usize, file: &str) -> io::Result<Vec<String>> {
|
||||
let lines = read_data(day_num, file)?;
|
||||
let x = lines
|
||||
Ok(fs::read_to_string(format_path(day_num, file))?
|
||||
.split('\n')
|
||||
.with_position()
|
||||
.filter_map(|line| match line {
|
||||
itertools::Position::First(line)
|
||||
| itertools::Position::Middle(line)
|
||||
| itertools::Position::Only(line) => Some(line.to_owned()),
|
||||
itertools::Position::Last(line) => {
|
||||
if line.is_empty() {
|
||||
None
|
||||
} else {
|
||||
Some(line.to_owned())
|
||||
}
|
||||
}
|
||||
(itertools::Position::Last, line) if line.is_empty() => None,
|
||||
(_, line) => Some(line.to_string()),
|
||||
})
|
||||
.collect();
|
||||
Ok(x)
|
||||
.collect())
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue