fix clippy lints
This commit is contained in:
parent
c57507f579
commit
ef64f62b28
|
@ -32,7 +32,7 @@ pub trait State {
|
|||
}
|
||||
fn movements(&mut self, moves: &[Movement]) -> isize {
|
||||
for movement in moves {
|
||||
self.movement(&movement);
|
||||
self.movement(movement);
|
||||
}
|
||||
self.result()
|
||||
}
|
||||
|
@ -96,15 +96,17 @@ pub enum Movement {
|
|||
Up(isize),
|
||||
}
|
||||
|
||||
#[allow(clippy::unnecessary_mut_passed)]
|
||||
impl FromStr for Movement {
|
||||
type Err = ();
|
||||
fn from_str(s: &str) -> Result<Self, Self::Err> {
|
||||
let mut tokens = s.into_tokens();
|
||||
yap::one_of!(ts from &mut tokens;
|
||||
ts.tokens("forward ".chars()).then(|| parse_number(ts).map(|num| Movement::Forward(num))).flatten(),
|
||||
ts.tokens("down ".chars()).then(|| parse_number(ts).map(|num| Movement::Down(num))).flatten(),
|
||||
ts.tokens("up ".chars()).then(|| parse_number(ts).map(|num| Movement::Up(num))).flatten(),
|
||||
).ok_or(())
|
||||
ts.tokens("forward ".chars()).then(|| parse_number(ts).map(Movement::Forward)).flatten(),
|
||||
ts.tokens("down ".chars()).then(|| parse_number(ts).map(Movement::Down)).flatten(),
|
||||
ts.tokens("up ".chars()).then(|| parse_number(ts).map(Movement::Up)).flatten(),
|
||||
)
|
||||
.ok_or(())
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ pub struct Game {
|
|||
|
||||
impl Board {
|
||||
pub fn mark(&mut self, num: usize) -> Option<usize> {
|
||||
if self.finished == true {
|
||||
if self.finished {
|
||||
return None;
|
||||
}
|
||||
for lines in self.fields.iter_mut() {
|
||||
|
|
|
@ -19,15 +19,13 @@ pub fn part1(input: &[Line]) -> usize {
|
|||
|
||||
#[aoc(day5, part2)]
|
||||
pub fn part2(input: &[Line]) -> usize {
|
||||
solve(input, &|line| line.is_horizontal() || line.is_vertical() || line.is_diagonal())
|
||||
solve(input, &|line| {
|
||||
line.is_horizontal() || line.is_vertical() || line.is_diagonal()
|
||||
})
|
||||
}
|
||||
|
||||
pub fn solve(input: &[Line], filter: &impl Fn(&&Line) -> bool) -> usize {
|
||||
let lines: Vec<Line> = input
|
||||
.iter()
|
||||
.filter(filter)
|
||||
.copied()
|
||||
.collect();
|
||||
let lines: Vec<Line> = input.iter().filter(filter).copied().collect();
|
||||
let grid = Grid::from(&lines[..]);
|
||||
grid.count()
|
||||
}
|
||||
|
|
|
@ -12,10 +12,13 @@ pub fn parse_number<T: Num>(tokens: &mut impl Tokens<Item = char>) -> Option<T>
|
|||
parse_number_with_radix(tokens, 10)
|
||||
}
|
||||
|
||||
pub fn parse_number_with_radix<T: Num>(tokens: &mut impl Tokens<Item = char>, base: u32) -> Option<T> {
|
||||
pub fn parse_number_with_radix<T: Num>(
|
||||
tokens: &mut impl Tokens<Item = char>,
|
||||
base: u32,
|
||||
) -> Option<T> {
|
||||
tokens.skip_tokens_while(|t| *t == ' ');
|
||||
let digits: String = tokens.tokens_while(|c| c.is_digit(base)).collect();
|
||||
if digits.len() > 0 {
|
||||
if !digits.is_empty() {
|
||||
T::from_str_radix(&digits, base).ok()
|
||||
} else {
|
||||
None
|
||||
|
|
Loading…
Reference in a new issue