Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 2752bab

Browse files
committedDec 22, 2020
Fix clippy warning
1 parent eb81343 commit 2752bab

File tree

4 files changed

+23
-25
lines changed

4 files changed

+23
-25
lines changed
 

‎src/days/day20.rs

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,16 @@ impl Tile {
3434
adj.swap(0, 2);
3535
}
3636
adj.rotate_right(self.rotation);
37-
adj[side].get(0).and_then(|x| Some(x.id))
37+
adj[side].get(0).map(|x|x.id)
3838
}
3939

4040
/// applies flips and rotation until side side == id
4141
fn set_transform(&mut self, side: usize, id: usize, side2: usize, id2: usize) {
4242
let mut adj = self.adjacency.to_vec();
4343
for i in 0..4 {
44-
if ((id == 0 && adj[side].len() == 0) || (adj[side].len() > 0 && adj[side][0].id == id))
45-
&& ((id2 == 0 && adj[side2].len() == 0)
46-
|| (adj[side2].len() > 0 && adj[side2][0].id == id2))
44+
if ((id == 0 && adj[side].is_empty()) || (!adj[side].is_empty() && adj[side][0].id == id))
45+
&& ((id2 == 0 && adj[side2].is_empty())
46+
|| (!adj[side2].is_empty() && adj[side2][0].id == id2))
4747
{
4848
self.rotation = i;
4949
return;
@@ -53,9 +53,9 @@ impl Tile {
5353
adj.swap(0, 2);
5454
self.flip = true;
5555
for i in 0..4 {
56-
if ((id == 0 && adj[side].len() == 0) || (adj[side].len() > 0 && adj[side][0].id == id))
57-
&& ((id2 == 0 && adj[side2].len() == 0)
58-
|| (adj[side2].len() > 0 && adj[side2][0].id == id2))
56+
if ((id == 0 && adj[side].is_empty()) || (!adj[side].is_empty() && adj[side][0].id == id))
57+
&& ((id2 == 0 && adj[side2].is_empty())
58+
|| (!adj[side2].is_empty() && adj[side2][0].id == id2))
5959
{
6060
self.rotation = i;
6161
return;
@@ -201,8 +201,7 @@ pub fn solve(timer: &mut Timer, input: &str) -> Result<AocResult> {
201201
// first cell
202202
image[0][0] = adjacency_sums
203203
.iter()
204-
.filter(|(_, v)| *v == 2)
205-
.next()
204+
.find(|(_, v)| *v == 2)
206205
.unwrap()
207206
.0;
208207
input[&image[0][0]].borrow_mut().set_transform(0, 0, 3, 0);
@@ -242,9 +241,9 @@ pub fn solve(timer: &mut Timer, input: &str) -> Result<AocResult> {
242241

243242
for _ in 0..tile.rotation {
244243
let mut new = vec![vec![]; 8];
245-
for col in 0..8 {
244+
for (col, n) in new.iter_mut().enumerate() {
246245
for row in (0..8).rev() {
247-
new[col].push(tile.data[row][col]);
246+
n.push(tile.data[row][col]);
248247
}
249248
}
250249
tile.data = new;
@@ -306,16 +305,16 @@ pub fn solve(timer: &mut Timer, input: &str) -> Result<AocResult> {
306305
count
307306
}
308307

309-
'out: loop {
308+
'out: {
310309
for _ in 0..4 {
311310
if check_monster(&i, true, &mut HashSet::new()) > 0 {
312311
break 'out;
313312
}
314313

315314
let mut new = vec![vec![]; i.len()];
316-
for col in 0..i.len() {
315+
for (col, n) in new.iter_mut().enumerate() {
317316
for row in (0..i.len()).rev() {
318-
new[col].push(i[row][col]);
317+
n.push(i[row][col]);
319318
}
320319
}
321320
i = new;
@@ -327,9 +326,9 @@ pub fn solve(timer: &mut Timer, input: &str) -> Result<AocResult> {
327326
}
328327

329328
let mut new = vec![vec![]; i.len()];
330-
for col in 0..i.len() {
329+
for (col, n) in new.iter_mut().enumerate() {
331330
for row in (0..i.len()).rev() {
332-
new[col].push(i[row][col]);
331+
n.push(i[row][col]);
333332
}
334333
}
335334
i = new;

‎src/days/day21.rs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ use anyhow::Result;
22
use hashbrown::{HashMap, HashSet};
33
use libaoc::{aoc, AocResult, Timer};
44
use std::collections::BTreeMap;
5-
use std::iter::FromIterator;
65

76
#[derive(Debug)]
87
struct Line<'a> {
@@ -29,15 +28,15 @@ pub fn solve(timer: &mut Timer, input: &str) -> Result<AocResult> {
2928
for line in input.iter() {
3029
for allergen in &line.allergens {
3130
if let Some(current) = ingredients.get(allergen) {
32-
let int = HashSet::from_iter(line.ingredients.iter().copied())
31+
let int = line.ingredients.iter().copied().collect::<HashSet<_>>()
3332
.intersection(current)
3433
.copied()
3534
.collect();
3635
ingredients.insert(allergen, int);
3736
} else {
3837
ingredients.insert(
3938
allergen,
40-
HashSet::from_iter(line.ingredients.iter().copied()),
39+
line.ingredients.iter().copied().collect(),
4140
);
4241
}
4342
}
@@ -66,12 +65,11 @@ pub fn solve(timer: &mut Timer, input: &str) -> Result<AocResult> {
6665
for _ in 0..ingredients.len() {
6766
let (name, ones) = ingredients
6867
.iter()
69-
.filter(|&(_, x)| x.len() == 1)
70-
.next()
68+
.find(|&(_, x)| x.len() == 1)
7169
.unwrap();
7270
let value = *ones.iter().next().unwrap();
7371

74-
mappings.insert(name.clone(), value);
72+
mappings.insert(*name, value);
7573

7674
for (_, list) in ingredients.iter_mut() {
7775
list.retain(|x| *x != value);
@@ -80,7 +78,7 @@ pub fn solve(timer: &mut Timer, input: &str) -> Result<AocResult> {
8078

8179
let part2: Vec<_> = mappings.values().collect();
8280
let part2 = part2.iter().fold(String::new(), |s, c| {
83-
if s.len() > 0 {
81+
if !s.is_empty() {
8482
s + "," + c
8583
} else {
8684
c.to_string()

‎src/days/day22.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@ fn recurse_combat(players: &[VecDeque<usize>], recurse: bool) -> (usize, VecDequ
3131
players[1].push_back(play1);
3232
}
3333

34-
if players[0].len() == 0 {
34+
if players[0].is_empty() {
3535
break (1, players[1].clone());
36-
} else if players[1].len() == 0 {
36+
} else if players[1].is_empty() {
3737
break (0, players[0].clone());
3838
}
3939

‎src/main.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#![feature(or_patterns)]
22
#![feature(deque_range)]
33
#![feature(str_split_once)]
4+
#![feature(label_break_value)]
45
#![feature(min_const_generics)]
56
#![feature(destructuring_assignment)]
67

0 commit comments

Comments
 (0)
Please sign in to comment.