2022 rust minor improvements

This commit is contained in:
Maciej Jur 2022-12-06 14:13:57 +01:00
parent a81d2e2d71
commit bc2d3c9725
3 changed files with 10 additions and 13 deletions

View file

@ -95,7 +95,7 @@ impl MatchResult {
}
fn solve1(data: &Vec<(char, char)>) -> i32 {
fn solve1(data: &[(char, char)]) -> i32 {
data.iter()
.fold(0, |acc, (other, my)| {
let my = Shape::from(my);
@ -104,7 +104,7 @@ fn solve1(data: &Vec<(char, char)>) -> i32 {
})
}
fn solve2(data: &Vec<(char, char)>) -> i32 {
fn solve2(data: &[(char, char)]) -> i32 {
data.iter()
.fold(0, |acc, (other, result)| {
let result = MatchResult::from(result);

View file

@ -12,7 +12,7 @@ pub fn run() -> () {
}
fn solve1(data: &Vec<((i32, i32), (i32, i32))>) -> usize {
fn solve1(data: &[((i32, i32), (i32, i32))]) -> usize {
data.iter()
.filter(|((s1, e1), (s2, e2))|
s1 <= s2 && e2 <= e1 || s2 <= s1 && e1 <= e2
@ -20,7 +20,7 @@ fn solve1(data: &Vec<((i32, i32), (i32, i32))>) -> usize {
.count()
}
fn solve2(data: &Vec<((i32, i32), (i32, i32))>) -> usize {
fn solve2(data: &[((i32, i32), (i32, i32))]) -> usize {
data.iter()
.filter(|((s1, e1), (s2, e2))|
s1 <= e2 && s2 <= e1

View file

@ -11,15 +11,15 @@ pub fn run() -> () {
}
fn solve1(data: &Vec<char>) -> usize {
marker_for(&data, 4)
fn solve1(data: &[char]) -> usize {
marker_for(data, 4)
}
fn solve2(data: &Vec<char>) -> usize {
marker_for(&data, 14)
fn solve2(data: &[char]) -> usize {
marker_for(data, 14)
}
fn marker_for(data: &Vec<char>, window_len: usize) -> usize {
fn marker_for(data: &[char], window_len: usize) -> usize {
data.windows(window_len)
.enumerate()
.filter_map(|(idx, window)| window.iter()
@ -34,10 +34,7 @@ fn marker_for(data: &Vec<char>, window_len: usize) -> usize {
fn parse_data(data: Vec<String>) -> Vec<char> {
data.into_iter()
.next()
.map(|char| char
.chars()
.collect()
)
.map(|char| char.chars().collect())
.unwrap()
}