From 85c47fe53db880418b3270e716728f0333546eb1 Mon Sep 17 00:00:00 2001 From: alex <> Date: Tue, 10 Dec 2024 10:47:51 +0100 Subject: [PATCH] Follow clippy advice --- src/day01.rs | 4 ++-- src/day02.rs | 4 ++-- src/day03.rs | 4 ++-- src/day04.rs | 6 +++--- src/day05.rs | 14 ++++++-------- src/day06.rs | 8 ++++---- src/day07.rs | 4 ++-- src/day08.rs | 6 +++--- src/day09.rs | 35 ++++++++++++++++------------------- src/day10.rs | 10 +++++----- src/template.rs | 4 ++-- 11 files changed, 47 insertions(+), 52 deletions(-) diff --git a/src/day01.rs b/src/day01.rs index cc16389..826d40e 100644 --- a/src/day01.rs +++ b/src/day01.rs @@ -4,10 +4,10 @@ use std::iter::zip; use std::collections::HashMap; pub fn run(input: &str) -> Result<(), Box> { - let res = run_part1(&input)?; + let res = run_part1(input)?; println!("{res}"); - let res = run_part2(&input)?; + let res = run_part2(input)?; println!("{res}"); Ok(()) diff --git a/src/day02.rs b/src/day02.rs index 6037683..1aec8c3 100644 --- a/src/day02.rs +++ b/src/day02.rs @@ -2,10 +2,10 @@ use std::error::Error; use std::path::Path; pub fn run(input: &str) -> Result<(), Box> { - let res = run_part1(&input)?; + let res = run_part1(input)?; println!("{res}"); - let res = run_part2(&input)?; + let res = run_part2(input)?; println!("{res}"); Ok(()) diff --git a/src/day03.rs b/src/day03.rs index 51bf91d..3beb841 100644 --- a/src/day03.rs +++ b/src/day03.rs @@ -3,10 +3,10 @@ use std::path::Path; use regex::Regex; pub fn run(input: &str) -> Result<(), Box> { - let res = run_part1(&input)?; + let res = run_part1(input)?; println!("{res}"); - let res = run_part2(&input)?; + let res = run_part2(input)?; println!("{res}"); Ok(()) diff --git a/src/day04.rs b/src/day04.rs index f68472f..887fc00 100644 --- a/src/day04.rs +++ b/src/day04.rs @@ -2,10 +2,10 @@ use std::error::Error; use std::path::Path; pub fn run(input: &str) -> Result<(), Box> { - let res = run_part1(&input)?; + let res = run_part1(input)?; println!("{res}"); - let res = run_part2(&input)?; + let res = run_part2(input)?; println!("{res}"); Ok(()) @@ -86,7 +86,7 @@ fn run_part1(input: &str) -> Result> { fn run_part2(input: &str) -> Result> { println!("Running {} - part 2", get_day()); - fn is_mas(coord: (i32, i32), dir: ((i32, i32), (i32, i32)), map: &Vec>) -> bool { + fn is_mas(coord: (i32, i32), dir: ((i32, i32), (i32, i32)), map: &[Vec]) -> bool { let (r, c) = coord; ( map[(r + dir.0.0) as usize][(c + dir.0.1) as usize] == 'M' && diff --git a/src/day05.rs b/src/day05.rs index 0133eb0..cbb0ebc 100644 --- a/src/day05.rs +++ b/src/day05.rs @@ -34,11 +34,11 @@ impl Puzzle { } } - pub fn is_ordered(self: &Self, line: &[u32]) -> bool { + pub fn is_ordered(&self, line: &[u32]) -> bool { for i in 1..line.len() { let v = &line[i]; for before in &line[0..i] { - if self.order.get(v).is_some() && self.order.get(v).unwrap().contains(before) { + if self.order.contains_key(v) && self.order.get(v).unwrap().contains(before) { return false } } @@ -73,10 +73,8 @@ fn run_part2(input: &str) -> Result> { for i in 1..pages.len() { let v = pages[i]; for j in 0..i { - if puzzle.order.get(&v).is_some() && puzzle.order.get(&v).unwrap().contains(&pages[j]) { - let tmp = pages[j]; - pages[j] = pages[i]; - pages[i] = tmp; + if puzzle.order.contains_key(&v) && puzzle.order.get(&v).unwrap().contains(&pages[j]) { + pages.swap(i, j); } } } @@ -89,10 +87,10 @@ fn run_part2(input: &str) -> Result> { } pub fn run(input: &str) -> Result<(), Box> { - let res = run_part1(&input)?; + let res = run_part1(input)?; println!("{res}"); - let res = run_part2(&input)?; + let res = run_part2(input)?; println!("{res}"); Ok(()) diff --git a/src/day06.rs b/src/day06.rs index f6431f6..53a49f2 100644 --- a/src/day06.rs +++ b/src/day06.rs @@ -32,7 +32,7 @@ impl Puzzle { } } - fn guard_path(self: &mut Self) { + fn guard_path(&mut self) { let mut turn_right: HashMap<(isize, isize), (isize, isize)> = HashMap::new(); turn_right.insert((-1,0), (0,1)); turn_right.insert((0,1), (1,0)); @@ -54,7 +54,7 @@ impl Puzzle { } } - fn is_guard_loop(self: &Self) -> bool { + fn is_guard_loop(&self) -> bool { let mut turn_right: HashMap<(isize, isize), (isize, isize)> = HashMap::new(); turn_right.insert((-1,0), (0,1)); turn_right.insert((0,1), (1,0)); @@ -89,10 +89,10 @@ impl Puzzle { } pub fn run(input: &str) -> Result<(), Box> { - let res = run_part1(&input)?; + let res = run_part1(input)?; println!("{res}"); - let res = run_part2(&input)?; + let res = run_part2(input)?; println!("{res}"); Ok(()) diff --git a/src/day07.rs b/src/day07.rs index ae83c26..c8d32d5 100644 --- a/src/day07.rs +++ b/src/day07.rs @@ -57,10 +57,10 @@ fn run_part2(input: &str) -> Result> { } pub fn run(input: &str) -> Result<(), Box> { - let res = run_part1(&input)?; + let res = run_part1(input)?; println!("{res}"); - let res = run_part2(&input)?; + let res = run_part2(input)?; println!("{res}"); Ok(()) diff --git a/src/day08.rs b/src/day08.rs index d9f976e..efa68e4 100644 --- a/src/day08.rs +++ b/src/day08.rs @@ -34,7 +34,7 @@ fn solve(puzzle: &Puzzle, depth: &[isize]) -> u32 { puzzle.map.iter() .filter(|(k, v)| *v == value && *k != key) - .for_each(|(k, v)| { + .for_each(|(k, _)| { let (x1, x2) = if k <= key { (k, key) } else { (key, k) }; let d = (x1.0 - x2.0, x1.1 - x2.1); for i in depth { @@ -68,10 +68,10 @@ fn run_part2(input: &str) -> Result> { } pub fn run(input: &str) -> Result<(), Box> { - let res = run_part1(&input)?; + let res = run_part1(input)?; println!("{res}"); - let res = run_part2(&input)?; + let res = run_part2(input)?; println!("{res}"); Ok(()) diff --git a/src/day09.rs b/src/day09.rs index ac087a3..6b04866 100644 --- a/src/day09.rs +++ b/src/day09.rs @@ -29,7 +29,7 @@ impl Puzzle { Self { blocks, free } } - fn fill_free(self: &mut Self, free_idx: usize, last_block: usize) -> usize { + fn fill_free(&mut self, free_idx: usize, last_block: usize) -> usize { let (free_start, free_length) = self.free[free_idx]; if free_length == 0 { return last_block; @@ -49,14 +49,14 @@ impl Puzzle { block_idx } - fn first_free_idx(self: &Self, size: u64) -> Option { + fn first_free_idx(&self, size: u64) -> Option { self.free.iter().enumerate() .filter(|(_, (_, length))| *length >= size) .map(|(i, _)| i) .nth(0) } - fn can_compact(self: &Self) -> bool { + fn can_compact(&self) -> bool { let last_block = self.blocks.last().unwrap(); let last_block_end = last_block.0 + last_block.1 - 1; self.free.iter() @@ -64,7 +64,7 @@ impl Puzzle { .any(|(start, _)| *start < last_block_end) } - fn compact(self: &mut Self) { + fn compact(&mut self) { let mut block_idx = 0; while self.can_compact() { let first_free = self.first_free_idx(1); @@ -78,24 +78,21 @@ impl Puzzle { } } - fn compact_by_size(self: &mut Self) { + fn compact_by_size(&mut self) { for i in (0..self.blocks.len()).rev() { - match self.first_free_idx(self.blocks[i].1) { - Some(first_free_idx) => { - let first_free = self.free.get_mut(first_free_idx).unwrap(); - let block = self.blocks.get_mut(i).unwrap(); - if block.0 > first_free.0 { - block.0 = first_free.0; - first_free.0 += block.1; - first_free.1 -= block.1; - } - }, - _ => {} + if let Some(first_free_idx) = self.first_free_idx(self.blocks[i].1) { + let first_free = self.free.get_mut(first_free_idx).unwrap(); + let block = self.blocks.get_mut(i).unwrap(); + if block.0 > first_free.0 { + block.0 = first_free.0; + first_free.0 += block.1; + first_free.1 -= block.1; + } } } } - fn checksum(self: &Self) -> u64 { + fn checksum(&self) -> u64 { self.blocks.iter() .map(|&(start, length, value)| { (start..(start+length)).map(|i| i*value).sum::() @@ -121,10 +118,10 @@ fn run_part2(input: &str) -> Result> { } pub fn run(input: &str) -> Result<(), Box> { - let res = run_part1(&input)?; + let res = run_part1(input)?; println!("{res}"); - let res = run_part2(&input)?; + let res = run_part2(input)?; println!("{res}"); Ok(()) diff --git a/src/day10.rs b/src/day10.rs index 2780f42..f334866 100644 --- a/src/day10.rs +++ b/src/day10.rs @@ -13,7 +13,7 @@ impl Puzzle { let mut start_pos = Vec::new(); input.lines().enumerate() .for_each(|(r, l)| { - l.as_bytes().into_iter().enumerate() + l.as_bytes().iter().enumerate() .for_each(|(c, b)| { if *b != b'.' { map.insert((r as isize, c as isize), *b); @@ -26,7 +26,7 @@ impl Puzzle { Self { map, start_pos } } - fn score(self: &Self, + fn score(&self, pos: (isize, isize), value: u8, visited: &mut Option> @@ -65,7 +65,7 @@ impl Puzzle { .sum() } - fn solve(self: &Self, with_rating: bool) -> u32 { + fn solve(&self, with_rating: bool) -> u32 { self.start_pos.iter() .map(|pos| { match with_rating { @@ -95,10 +95,10 @@ fn run_part2(input: &str) -> Result> { } pub fn run(input: &str) -> Result<(), Box> { - let res = run_part1(&input)?; + let res = run_part1(input)?; println!("{res}"); - let res = run_part2(&input)?; + let res = run_part2(input)?; println!("{res}"); Ok(()) diff --git a/src/template.rs b/src/template.rs index 9bf5f24..8dee1e5 100644 --- a/src/template.rs +++ b/src/template.rs @@ -14,10 +14,10 @@ fn run_part2(input: &str) -> Result> { } pub fn run(input: &str) -> Result<(), Box> { - let res = run_part1(&input)?; + let res = run_part1(input)?; println!("{res}"); - let res = run_part2(&input)?; + let res = run_part2(input)?; println!("{res}"); Ok(()) -- 2.39.5