update itertools
This commit is contained in:
parent
3b12de4970
commit
556b85e532
3 changed files with 10 additions and 17 deletions
3
.vscode/settings.json
vendored
Normal file
3
.vscode/settings.json
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"editor.formatOnSave": true
|
||||||
|
}
|
||||||
|
|
@ -6,7 +6,7 @@ edition = "2021"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
anyhow = "1.0"
|
anyhow = "1.0"
|
||||||
itertools = "0.10"
|
itertools = "0.11"
|
||||||
lazy_static = "1.4"
|
lazy_static = "1.4"
|
||||||
num-traits = "0.2"
|
num-traits = "0.2"
|
||||||
regex = "1.7"
|
regex = "1.7"
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,17 @@
|
||||||
use itertools::Itertools;
|
use itertools::Itertools;
|
||||||
use std::{fs, io};
|
use std::{fs, io};
|
||||||
|
|
||||||
fn read_data(day_num: usize, file: &str) -> io::Result<String> {
|
fn format_path(day_num: usize, file: &str) -> String {
|
||||||
fs::read_to_string(format!("data/day{day_num:02}/{file}"))
|
format!("data/day{day_num:02}/{file}")
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn read_lines(day_num: usize, file: &str) -> io::Result<Vec<String>> {
|
pub fn read_lines(day_num: usize, file: &str) -> io::Result<Vec<String>> {
|
||||||
let lines = read_data(day_num, file)?;
|
Ok(fs::read_to_string(format_path(day_num, file))?
|
||||||
let x = lines
|
|
||||||
.split('\n')
|
.split('\n')
|
||||||
.with_position()
|
.with_position()
|
||||||
.filter_map(|line| match line {
|
.filter_map(|line| match line {
|
||||||
itertools::Position::First(line)
|
(itertools::Position::Last, line) if line.is_empty() => None,
|
||||||
| itertools::Position::Middle(line)
|
(_, line) => Some(line.to_string()),
|
||||||
| itertools::Position::Only(line) => Some(line.to_owned()),
|
|
||||||
itertools::Position::Last(line) => {
|
|
||||||
if line.is_empty() {
|
|
||||||
None
|
|
||||||
} else {
|
|
||||||
Some(line.to_owned())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
.collect();
|
.collect())
|
||||||
Ok(x)
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue