[INFO] cloning repository https://github.com/kojilin/advent_of_code
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kojilin/advent_of_code" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkojilin%2Fadvent_of_code", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkojilin%2Fadvent_of_code'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a668e88767bcfdac836f97eda322329033a7a238
[INFO] testing kojilin/advent_of_code/a668e88767bcfdac836f97eda322329033a7a238 against master#2fd6efc32704647e64d3d646d21c4c68eae100e4 for pr-149852-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkojilin%2Fadvent_of_code" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/kojilin/advent_of_code
[INFO] finished tweaking git repo https://github.com/kojilin/advent_of_code
[INFO] tweaked toml for git repo https://github.com/kojilin/advent_of_code written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/kojilin/advent_of_code on toolchain 2fd6efc32704647e64d3d646d21c4c68eae100e4
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/kojilin/advent_of_code already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded regex v1.4.2
[INFO] [stderr]   Downloaded regex-syntax v0.6.21
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 8049da1435aedf8f33fb6b10e250929615164b90b7edf4352bb0b5f780c18363
[INFO] running `Command { std: "docker" "start" "-a" "8049da1435aedf8f33fb6b10e250929615164b90b7edf4352bb0b5f780c18363", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8049da1435aedf8f33fb6b10e250929615164b90b7edf4352bb0b5f780c18363", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8049da1435aedf8f33fb6b10e250929615164b90b7edf4352bb0b5f780c18363", kill_on_drop: false }`
[INFO] [stdout] 8049da1435aedf8f33fb6b10e250929615164b90b7edf4352bb0b5f780c18363
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 308c9ea0828a18359c75668ea22937d018317c188f200820e93eab14bae58355
[INFO] running `Command { std: "docker" "start" "-a" "308c9ea0828a18359c75668ea22937d018317c188f200820e93eab14bae58355", kill_on_drop: false }`
[INFO] [stderr]    Compiling thread_local v1.0.1
[INFO] [stderr]    Compiling regex-syntax v0.6.21
[INFO] [stderr]    Compiling regex v1.4.2
[INFO] [stderr]    Compiling advent_of_code v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]  --> src/solutions/year_2021/day17.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::error::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day2.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 |         if (counts(&re_green, line, 13) && counts(&re_red, line, 12) && counts(&re_blue, line, 14)) {
[INFO] [stdout]    |            ^                                                                                      ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 18 -         if (counts(&re_green, line, 13) && counts(&re_red, line, 12) && counts(&re_blue, line, 14)) {
[INFO] [stdout] 18 +         if counts(&re_green, line, 13) && counts(&re_red, line, 12) && counts(&re_blue, line, 14)  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day2.rs:32:16
[INFO] [stdout]    |
[INFO] [stdout] 32 |             if (digit_match.as_str().parse::<i32>().unwrap() > max) {
[INFO] [stdout]    |                ^                                                  ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 32 -             if (digit_match.as_str().parse::<i32>().unwrap() > max) {
[INFO] [stdout] 32 +             if digit_match.as_str().parse::<i32>().unwrap() > max  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 |         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stdout]    |            ^                                                           ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 54 -         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stdout] 54 +         if new_y < height && new_y >= 0 && new_x >= 0 && new_x < width  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:55:16
[INFO] [stdout]    |
[INFO] [stdout] 55 |             if (!map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stdout]    |                ^
[INFO] [stdout] 56 |                 && map[new_y as usize][new_x as usize] != '.') {
[INFO] [stdout]    |                                                              ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 55 ~             if !map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stdout] 56 ~                 && map[new_y as usize][new_x as usize] != '.'  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 |     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stdout]    |        ^                                         ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 66 -     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stdout] 66 +     if x >= width || !map[y][x].is_ascii_digit()  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 |     if (map[y][x].is_ascii_digit()) {
[INFO] [stdout]    |        ^                          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 70 -     if (map[y][x].is_ascii_digit()) {
[INFO] [stdout] 70 +     if map[y][x].is_ascii_digit()  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/solutions/year_2023/day3.rs:128:12
[INFO] [stdout]     |
[INFO] [stdout] 128 |         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stdout]     |            ^                                                           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 128 -         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stdout] 128 +         if new_y < height && new_y >= 0 && new_x >= 0 && new_x < width  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/solutions/year_2023/day3.rs:129:16
[INFO] [stdout]     |
[INFO] [stdout] 129 |             if (!map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stdout]     |                ^
[INFO] [stdout] 130 |                 && map[new_y as usize][new_x as usize] == '*') {
[INFO] [stdout]     |                                                              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 129 ~             if !map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stdout] 130 ~                 && map[new_y as usize][new_x as usize] == '*'  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/solutions/year_2023/day3.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 |     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stdout]     |        ^                                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 142 -     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stdout] 142 +     if x >= width || !map[y][x].is_ascii_digit()  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/solutions/year_2023/day3.rs:155:8
[INFO] [stdout]     |
[INFO] [stdout] 155 |     if (map[y][x].is_ascii_digit()) {
[INFO] [stdout]     |        ^                          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 155 -     if (map[y][x].is_ascii_digit()) {
[INFO] [stdout] 155 +     if map[y][x].is_ascii_digit()  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Not`
[INFO] [stdout]  --> src/solutions/year_2023/day10.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::Not;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/solutions/year_2023/day11.rs:110:36
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 let expand_count = ((r2 - r1).abs() );
[INFO] [stdout]     |                                    ^               ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 110 -                 let expand_count = ((r2 - r1).abs() );
[INFO] [stdout] 110 +                 let expand_count = (r2 - r1).abs() ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/solutions/year_2023/day11.rs:127:36
[INFO] [stdout]     |
[INFO] [stdout] 127 |                 let expand_count = ((c2 - c1).abs() );
[INFO] [stdout]     |                                    ^               ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 127 -                 let expand_count = ((c2 - c1).abs() );
[INFO] [stdout] 127 +                 let expand_count = (c2 - c1).abs() ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mul` and `Sub`
[INFO] [stdout]  --> src/solutions/year_2024/day2.rs:3:16
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::ops::{Mul, Sub};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mul` and `Sub`
[INFO] [stdout]  --> src/solutions/year_2024/day3.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::{Mul, Sub};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mul` and `Sub`
[INFO] [stdout]  --> src/solutions/year_2024/day4.rs:3:16
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::ops::{Mul, Sub};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/solutions/year_2024/day13.rs:114:21
[INFO] [stdout]     |
[INFO] [stdout] 114 |         let right = (target.0 * b.1 - target.1 * b.0);
[INFO] [stdout]     |                     ^                               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 114 -         let right = (target.0 * b.1 - target.1 * b.0);
[INFO] [stdout] 114 +         let right = target.0 * b.1 - target.1 * b.0 ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Index`
[INFO] [stdout]  --> src/solutions/year_2024/day15.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::ops::Index;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/solutions/year_2024/day15.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thread`
[INFO] [stdout]  --> src/solutions/year_2024/day15.rs:5:15
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::{fs, thread};
[INFO] [stdout]   |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/solutions/year_2024/day16.rs:299:25
[INFO] [stdout]     |
[INFO] [stdout] 299 |                         (ScoreWithPrev::new(
[INFO] [stdout]     |                         ^
[INFO] [stdout] ...
[INFO] [stdout] 302 |                         )),
[INFO] [stdout]     |                          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 299 ~                         ScoreWithPrev::new(
[INFO] [stdout] 300 |                             Score::new(pop.score.y, pop.score.x, Facing::Up, pop.score.cost + 1000),
[INFO] [stdout] 301 |                             Some(pop.score.clone()),
[INFO] [stdout] 302 ~                         ) ,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/solutions/year_2024/day16.rs:314:25
[INFO] [stdout]     |
[INFO] [stdout] 314 |                         (ScoreWithPrev::new(
[INFO] [stdout]     |                         ^
[INFO] [stdout] ...
[INFO] [stdout] 322 |                         )),
[INFO] [stdout]     |                          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 314 ~                         ScoreWithPrev::new(
[INFO] [stdout] 315 |                             Score::new(
[INFO] [stdout] ...
[INFO] [stdout] 321 |                             Some(pop.score.clone()),
[INFO] [stdout] 322 ~                         ) ,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/solutions/year_2024/day16.rs:334:25
[INFO] [stdout]     |
[INFO] [stdout] 334 |                         (ScoreWithPrev::new(
[INFO] [stdout]     |                         ^
[INFO] [stdout] ...
[INFO] [stdout] 342 |                         )),
[INFO] [stdout]     |                          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 334 ~                         ScoreWithPrev::new(
[INFO] [stdout] 335 |                             Score::new(
[INFO] [stdout] ...
[INFO] [stdout] 341 |                             Some(pop.score.clone()),
[INFO] [stdout] 342 ~                         ) ,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/solutions/year_2024/day16.rs:354:25
[INFO] [stdout]     |
[INFO] [stdout] 354 |                         (ScoreWithPrev::new(
[INFO] [stdout]     |                         ^
[INFO] [stdout] ...
[INFO] [stdout] 362 |                         )),
[INFO] [stdout]     |                          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 354 ~                         ScoreWithPrev::new(
[INFO] [stdout] 355 |                             Score::new(
[INFO] [stdout] ...
[INFO] [stdout] 361 |                             Some(pop.score.clone()),
[INFO] [stdout] 362 ~                         ) ,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mul` and `Sub`
[INFO] [stdout]  --> src/solutions/year_2024/day18.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::{Mul, Sub};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `max`
[INFO] [stdout]  --> src/solutions/year_2024/day19.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cmp::{max, min};
[INFO] [stdout]   |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mul` and `Sub`
[INFO] [stdout]  --> src/solutions/year_2024/day19.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ops::{Mul, Sub};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mul` and `Sub`
[INFO] [stdout]  --> src/solutions/year_2024/day20.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::{Mul, Sub};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/solutions/year_2024/day20.rs:147:28
[INFO] [stdout]     |
[INFO] [stdout] 147 |                 let diff = (*path_counter.get(&current).unwrap()
[INFO] [stdout]     |                            ^
[INFO] [stdout] 148 |                     - *path_counter.get(&(next_y, next_x)).unwrap());
[INFO] [stdout]     |                                                                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 147 ~                 let diff = *path_counter.get(&current).unwrap()
[INFO] [stdout] 148 ~                     - *path_counter.get(&(next_y, next_x)).unwrap() ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mul` and `Sub`
[INFO] [stdout]  --> src/solutions/year_2024/day21.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::{Mul, Sub};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mul` and `Sub`
[INFO] [stdout]  --> src/solutions/year_2024/day22.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::{Mul, Sub};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mul` and `Sub`
[INFO] [stdout]  --> src/solutions/year_2024/day23.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ops::{Mul, Sub};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mul` and `Sub`
[INFO] [stdout]  --> src/solutions/year_2024/day24.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ops::{Mul, Sub};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mul` and `Sub`
[INFO] [stdout]  --> src/solutions/year_2024/day25.rs:3:16
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::ops::{Mul, Sub};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::BufRead`
[INFO] [stdout]  --> src/solutions/year_2024/day5.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::BufRead;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]  --> src/solutions/year_2024/day16.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:64:17
[INFO] [stdout]    |
[INFO] [stdout] 64 | fn trace_number(mut current: String, y: usize, x: usize, map: &Vec<Vec<char>>, visited: &mut Vec<Vec<bool>>, is_near_symbol: bool) -...
[INFO] [stdout]    |                 ----^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/year_2023/day3.rs:138:18
[INFO] [stdout]     |
[INFO] [stdout] 138 | fn trace_number2(mut current: String, y: usize, x: usize, map: &Vec<Vec<char>>, visited: &mut Vec<Vec<bool>>,
[INFO] [stdout]     |                  ----^^^^^^^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]   --> src/solutions/year_2023/day7.rs:27:18
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn eq(&self, other: &Self) -> bool {
[INFO] [stdout]    |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/year_2023/day7.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 142 |     let mut lines = content.lines();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/solutions/year_2023/day7.rs:163:18
[INFO] [stdout]     |
[INFO] [stdout] 163 |     fn eq(&self, other: &Self) -> bool {
[INFO] [stdout]     |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/year_2023/day7.rs:291:9
[INFO] [stdout]     |
[INFO] [stdout] 291 |     let mut lines = content.lines();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2023/day8.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let mut iter = lines.skip(1);
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2023/day8.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let mut iter = lines.skip(1);
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/solutions/year_2023/day9.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let mut lines = content.lines();
[INFO] [stdout]   |         ----^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2023/day9.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let mut lines = content.lines();
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/solutions/year_2023/day10.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let mut lines = content.lines();
[INFO] [stdout]   |         ----^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/year_2023/day10.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |     let mut lines = content.lines();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/solutions/year_2023/day11.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let mut lines = content.lines();
[INFO] [stdout]   |         ----^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2023/day11.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let mut lines = content.lines();
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `success`
[INFO] [stdout]   --> src/solutions/year_2024/day2.rs:11:13
[INFO] [stdout]    |
[INFO] [stdout] 11 |         let success = match pass_the_test(nums) {
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_success`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/solutions/year_2024/day2.rs:12:18
[INFO] [stdout]    |
[INFO] [stdout] 12 |             Some(value) => total += 1,
[INFO] [stdout]    |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/solutions/year_2024/day6.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let mut total = 0i64;
[INFO] [stdout]   |         ----^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `total`
[INFO] [stdout]  --> src/solutions/year_2024/day6.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let mut total = 0i64;
[INFO] [stdout]   |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]   --> src/solutions/year_2024/day8.rs:29:22
[INFO] [stdout]    |
[INFO] [stdout] 29 |         .flat_map(|(&c, positions)| {
[INFO] [stdout]    |                      ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]   --> src/solutions/year_2024/day8.rs:91:22
[INFO] [stdout]    |
[INFO] [stdout] 91 |         .flat_map(|(&c, positions)| {
[INFO] [stdout]    |                      ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `block_index`
[INFO] [stdout]   --> src/solutions/year_2024/day9.rs:60:10
[INFO] [stdout]    |
[INFO] [stdout] 60 |     for (block_index, c) in input.chars().enumerate() {
[INFO] [stdout]    |          ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_block_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target_count`
[INFO] [stdout]   --> src/solutions/year_2024/day9.rs:87:19
[INFO] [stdout]    |
[INFO] [stdout] 87 |             Some((target_count, target_index)) => {
[INFO] [stdout]    |                   ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_target_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/solutions/year_2024/day10.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 |     for (i, &line) in lines.iter().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]   --> src/solutions/year_2024/day10.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 |         for (j, c) in line.chars().enumerate() {
[INFO] [stdout]    |              ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/solutions/year_2024/day10.rs:84:10
[INFO] [stdout]    |
[INFO] [stdout] 84 |     for (i, &line) in lines.iter().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]   --> src/solutions/year_2024/day10.rs:86:14
[INFO] [stdout]    |
[INFO] [stdout] 86 |         for (j, c) in line.chars().enumerate() {
[INFO] [stdout]    |              ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/year_2024/day15.rs:199:9
[INFO] [stdout]     |
[INFO] [stdout] 199 |     let mut next = (robot.0 + direction.0, robot.1 + direction.1);
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/year_2024/day15.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 209 |     let mut boxes_at_next = is_box(next, boxes, direction);
[INFO] [stdout]     |         ----^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/solutions/year_2024/day16.rs:370:9
[INFO] [stdout]     |
[INFO] [stdout] 370 |     let target = Score::new(start_point.0, start_point.1, Right, 0);
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2024/day17.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let mut a_value = re
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2024/day17.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let mut b_value = re
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2024/day17.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let mut c_value = re
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2024/day18.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let mut current = (0, 0);
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2024/day18.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 82 |     let mut current = (0, 0);
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `count` is assigned to, but never used
[INFO] [stdout]   --> src/solutions/year_2024/day18.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 85 |     let mut count = 0;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count` is never read
[INFO] [stdout]    --> src/solutions/year_2024/day18.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout] 113 |         count += 1;
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `debug_current`
[INFO] [stdout]    --> src/solutions/year_2024/day21.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout] 102 |     debug_current: char,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_debug_current`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2024/day23.rs:11:13
[INFO] [stdout]    |
[INFO] [stdout] 11 |         let mut link: Vec<&str> = line.split("-").collect();
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2024/day23.rs:74:25
[INFO] [stdout]    |
[INFO] [stdout] 74 |             if let Some(mut founds) = dfs(from, to, links, hop - 1, visited) {
[INFO] [stdout]    |                         ----^^^^^^
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2024/day23.rs:91:13
[INFO] [stdout]    |
[INFO] [stdout] 91 |         let mut link: Vec<&str> = line.split("-").collect();
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/year_2024/day23.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 122 |     let mut link_to = links.get(from).unwrap();
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/year_2024/day25.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let input = fs::read_to_string("src/solutions/year_2024/day25.txt")?;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day1` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day1.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day1() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day1_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day1.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn solve_day1_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day1.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn solution(numbers: Vec<i64>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day1.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn solution2(numbers: Vec<i64>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Input` is never constructed
[INFO] [stdout]  --> src/solutions/year_2020/day2.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Input {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_valid_by_count` and `is_valid_by_position` are never used
[INFO] [stdout]   --> src/solutions/year_2020/day2.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Input {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] 14 |     fn is_valid_by_count(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     fn is_valid_by_position(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day2.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn solve_day2(valid_function: fn(&Input) -> bool) -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day2.rs:59:4
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn solution(inputs: &Vec<Input>, is_valid: fn(&Input) -> bool) -> usize {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day3` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day3.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day3(x_pattern: usize, y_pattern: usize) -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day4` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day4.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day4(rules: &Vec<Rule>) -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Rule` is never constructed
[INFO] [stdout]   --> src/solutions/year_2020/day4.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | struct Rule {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_valid` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day4.rs:36:4
[INFO] [stdout]    |
[INFO] [stdout] 36 | fn is_valid(passport: &HashMap<String, String>, rules: &Vec<Rule>) -> bool {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day5` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day5.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day5() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day5_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day5.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn solve_day5_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution1` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day5.rs:36:4
[INFO] [stdout]    |
[INFO] [stdout] 36 | fn solution1(seat: &str) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_value` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day5.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn find_value(min: i64, max: i64, input: &str, small_half: char) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day6` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day6.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day6() -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Edge` is never constructed
[INFO] [stdout]  --> src/solutions/year_2020/day7.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | struct Edge {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day7_1` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day7.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn solve_day7_1() -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dfs` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day7.rs:36:4
[INFO] [stdout]    |
[INFO] [stdout] 36 | fn dfs(current: &str, edges: &HashMap<String, Vec<Edge>>, dp: &mut HashSet<String>) {
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day7_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day7.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn solve_day7_2() -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dfs2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day7.rs:70:4
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn dfs2(current: &str, edges: &HashMap<String, Vec<Edge>>, dp: &mut HashMap<String, usize>) -> usize {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Context` is never constructed
[INFO] [stdout]  --> src/solutions/year_2020/day8.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Context {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `create` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day8.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl Context {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 12 |     fn create() -> Context {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Instruction` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day8.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | trait Instruction {
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day8.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn parse(raw_operation: &str, argument: i64) -> Box<dyn Instruction> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Accumulator` is never constructed
[INFO] [stdout]   --> src/solutions/year_2020/day8.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | struct Accumulator {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NoOp` is never constructed
[INFO] [stdout]   --> src/solutions/year_2020/day8.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | struct NoOp {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Jump` is never constructed
[INFO] [stdout]   --> src/solutions/year_2020/day8.rs:64:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | struct Jump {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day8_1` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day8.rs:80:4
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn solve_day8_1() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution1` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day8.rs:91:4
[INFO] [stdout]    |
[INFO] [stdout] 91 | fn solution1(instructions: &mut Vec<Box<dyn Instruction>>) -> Context {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day8_2` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day8.rs:102:4
[INFO] [stdout]     |
[INFO] [stdout] 102 | fn solve_day8_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution2` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day8.rs:113:4
[INFO] [stdout]     |
[INFO] [stdout] 113 | fn solution2(instructions: &mut Vec<Box<dyn Instruction>>) -> Context {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day9_1` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day9.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day9_1() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day9_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day9.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn solve_day9_2(target: i64) -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day10` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day10.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day10() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day10_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day10.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn solve_day10_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day11` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day11.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day11() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `increase_adjacent` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day11.rs:49:4
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn increase_adjacent(count: &mut Vec<Vec<i32>>, next_c: &mut Vec<Vec<i32>>, y: usize, x: usize, diff: i32) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day11_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day11.rs:68:4
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn solve_day11_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `increase_adjacent2` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day11.rs:146:4
[INFO] [stdout]     |
[INFO] [stdout] 146 | fn increase_adjacent2(next_c: &mut Vec<Vec<i32>>, relations: &HashMap<(usize, usize), HashSet<(i64, i64)>>, y: usize, x: usize, dif...
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day12` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day12.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day12() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day12_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day12.rs:92:4
[INFO] [stdout]    |
[INFO] [stdout] 92 | fn solve_day12_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day13` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day13.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day13() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day13_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day13.rs:26:4
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn solve_day13_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day14` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day14.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_day14() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mask_value` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day14.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn mask_value(mask: &Vec<char>, value: i64) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day14_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day14.rs:38:4
[INFO] [stdout]    |
[INFO] [stdout] 38 | fn solve_day14_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mask_value_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day14.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn mask_value_2(mask: &Vec<char>, address: i64) -> Vec<i64> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day15` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day15.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day15(input: Vec<usize>, turn: usize) -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day16` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day16.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_day16() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day16_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day16.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn solve_day16_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day17` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day17.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day17() -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_neighbor` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day17.rs:103:4
[INFO] [stdout]     |
[INFO] [stdout] 103 | fn count_neighbor(areas: &Vec<Vec<Vec<bool>>>, center_z: i64, center_y: i64, center_x: i64) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `neighbors` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day17.rs:119:4
[INFO] [stdout]     |
[INFO] [stdout] 119 | fn neighbors(upper: i64, center: i64) -> Vec<i64> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_empty` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day17.rs:126:4
[INFO] [stdout]     |
[INFO] [stdout] 126 | fn is_empty(area: &Vec<Vec<bool>>) -> bool {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_active` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day17.rs:130:4
[INFO] [stdout]     |
[INFO] [stdout] 130 | fn count_active(area: &Vec<Vec<bool>>) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day17_2` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day17.rs:137:4
[INFO] [stdout]     |
[INFO] [stdout] 137 | fn solve_day17_2() -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day18` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day18.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day18() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Operator` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day18.rs:16:6
[INFO] [stdout]    |
[INFO] [stdout] 16 | enum Operator {
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day18.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn calculate(cursor: &mut usize, chars: &Vec<char>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `skip_space` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day18.rs:59:4
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn skip_space(cursor: &mut usize, chars: &Vec<char>) {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_digit` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day18.rs:65:4
[INFO] [stdout]    |
[INFO] [stdout] 65 | fn read_digit(cursor: &mut usize, chars: &Vec<char>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day18_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day18.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn solve_day18_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day18.rs:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | fn calculate_2(cursor: &mut usize, chars: &Vec<char>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day19` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day19.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_day19() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day19_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day19.rs:22:4
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn solve_day19_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_input` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day19.rs:60:4
[INFO] [stdout]    |
[INFO] [stdout] 60 | fn read_input() -> Result<(Vec<String>, HashMap<i64, String>), Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_rule_pattern` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day19.rs:100:4
[INFO] [stdout]     |
[INFO] [stdout] 100 | fn make_rule_pattern(id: i64, rules: &HashMap<i64, Vec<Vec<&str>>>, end_rules: &HashMap<i64, &str>, dp: &mut HashMap<i64, String>) ...
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_sub_rule` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day19.rs:130:4
[INFO] [stdout]     |
[INFO] [stdout] 130 | fn build_sub_rule(rules: &&HashMap<i64, Vec<Vec<&str>>>, end_rules: &&HashMap<i64, &str>, dp: &mut HashMap<i64, String>, rule: &Vec...
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Image` is never constructed
[INFO] [stdout]  --> src/solutions/year_2020/day20.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct Image {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/solutions/year_2020/day20.rs:15:8
[INFO] [stdout]     |
[INFO] [stdout]  14 | impl Image {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout]  15 |     fn add_row(&mut self, row: Vec<char>) {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  20 |     fn flip_vertically(&self) -> Image {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  28 |     fn flip_horizontally(&self) -> Image {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  35 |     fn rotate_clockwise(&self) -> Image {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  43 |     fn compute_behavior(&self, target_number: i64, target_border: usize) -> Image {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     fn calculate_unified_row_pattern(&self, row_index: usize) -> i64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     fn calculate_row_pattern(&self, row_index: usize, reverse: bool) -> i64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     fn calculate_unified_col_pattern(&self, col_index: usize) -> i64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     fn calculate_col_pattern(&self, col_index: usize, reverse: bool) -> i64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     fn list_unified_border_numbers(&self) -> Vec<i64> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     fn list_border_numbers(&self) -> Vec<i64> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     fn list_flipped_border_numbers(&self) -> Vec<i64> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day20` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day20.rs:189:4
[INFO] [stdout]     |
[INFO] [stdout] 189 | fn solve_day20() -> Result<(usize, usize), Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flip_vertically` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day20.rs:310:4
[INFO] [stdout]     |
[INFO] [stdout] 310 | fn flip_vertically(from: &Vec<Vec<char>>) -> Vec<Vec<char>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flip_horizontally` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day20.rs:324:4
[INFO] [stdout]     |
[INFO] [stdout] 324 | fn flip_horizontally(from: &Vec<Vec<char>>) -> Vec<Vec<char>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rotate_clockwise` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day20.rs:330:4
[INFO] [stdout]     |
[INFO] [stdout] 330 | fn rotate_clockwise(from: &Vec<Vec<char>>) -> Vec<Vec<char>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_monster` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day20.rs:342:4
[INFO] [stdout]     |
[INFO] [stdout] 342 | fn count_monster(map: &Vec<Vec<char>>) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_pattern` is never used
[INFO] [stdout]    --> src/solutions/year_2020/day20.rs:363:4
[INFO] [stdout]     |
[INFO] [stdout] 363 | fn count_pattern(map: &Vec<Vec<char>>, rotated: &Vec<Vec<char>>) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day21` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day21.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day21() -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day21_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day21.rs:57:4
[INFO] [stdout]    |
[INFO] [stdout] 57 | fn solve_day21_2() -> Result<String, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day22` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day22.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day22() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day22_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day22.rs:45:4
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn solve_day22_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `score` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day22.rs:63:4
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn score(result: &Vec<i64>) -> i64 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `play_round` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day22.rs:72:4
[INFO] [stdout]    |
[INFO] [stdout] 72 | fn play_round(mut p1: Vec<i64>, mut p2: Vec<i64>, game: usize) -> (bool, i64) {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day23` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day23.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn solve_day23(input: i64) -> Vec<u32> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day23_2` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day23.rs:41:4
[INFO] [stdout]    |
[INFO] [stdout] 41 | fn solve_day23_2() -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day24` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day24.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day24() -> Result<(i64, i64), Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day25` is never used
[INFO] [stdout]  --> src/solutions/year_2020/day25.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn day25(key1: i64, key2: i64) -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_value` is never used
[INFO] [stdout]   --> src/solutions/year_2020/day25.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn find_value(key: i64) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day1.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day1() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day1_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day1.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn solve_day1_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day1.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn solution(numbers: Vec<i64>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day1.rs:29:4
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn solution2(numbers: Vec<i64>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day2` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day2.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day2_2` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day2.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn solve_day2_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day2.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn solution(commands: Vec<&str>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day2.rs:33:4
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn solution2(commands: Vec<&str>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day3_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day3.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day3_1() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day3_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day3.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn solve_day3_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day3.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn solution(lines: Vec<&str>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `grouping` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day3.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn grouping<'a>(index: usize, lines: &Vec<&'a str>) -> (Vec<&'a str>, Vec<&'a str>) {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `oxygen` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day3.rs:60:4
[INFO] [stdout]    |
[INFO] [stdout] 60 | fn oxygen<'a>(index: usize, lines: &Vec<&'a str>) -> Vec<&'a str> {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_oxygen` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day3.rs:71:4
[INFO] [stdout]    |
[INFO] [stdout] 71 | fn find_oxygen(lines: &Vec<&str>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `co2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day3.rs:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | fn co2<'a>(index: usize, lines: &Vec<&'a str>) -> Vec<&'a str> {
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_co2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day3.rs:94:4
[INFO] [stdout]    |
[INFO] [stdout] 94 | fn find_co2(lines: &Vec<&str>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solution2` is never used
[INFO] [stdout]    --> src/solutions/year_2021/day3.rs:106:4
[INFO] [stdout]     |
[INFO] [stdout] 106 | fn solution2(lines: Vec<&str>) -> i64 {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Board` is never constructed
[INFO] [stdout]  --> src/solutions/year_2021/day4.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct Board {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_number`, and `score` are never used
[INFO] [stdout]   --> src/solutions/year_2021/day4.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Board {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 13 |     pub fn new(slot: Vec<Vec<i32>>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     fn add_number(&mut self, number: i32) -> Option<i32> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     fn score(&self, number: i32) -> i32 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day4.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn parse_input() -> Result<(Vec<i32>, Vec<Board>), Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day4_1` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day4.rs:65:4
[INFO] [stdout]    |
[INFO] [stdout] 65 | fn solve_day4_1() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_first` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day4.rs:70:4
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn solve_first(instructions: Vec<i32>, mut boards: Vec<Board>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day4_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day4.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn solve_day4_2() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_second` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day4.rs:86:4
[INFO] [stdout]    |
[INFO] [stdout] 86 | fn solve_second(instructions: Vec<i32>, mut boards: Vec<Board>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day5_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day5.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day5_1() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day5.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn parse_input() -> Result<Vec<((i32, i32), (i32, i32))>, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_first` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day5.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn solve_first(lines: Vec<((i32, i32), (i32, i32))>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day5_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day5.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn solve_day5_2() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_second` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day5.rs:65:4
[INFO] [stdout]    |
[INFO] [stdout] 65 | fn solve_second(lines: Vec<((i32, i32), (i32, i32))>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day6` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day6.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day6(n: i32) -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day6.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn solve(fish: Vec<i32>, n: i32) -> i64 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `do_solve` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day6.rs:26:4
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn do_solve(day: i32, dp: &mut HashMap<i32, i64>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day7_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day7.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day7_1() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day7_2` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day7.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn solve_day7_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day7.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn parse_input() -> Result<Vec<i32>, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_1` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day7.rs:24:4
[INFO] [stdout]    |
[INFO] [stdout] 24 | fn solve_1(crabs: Vec<i32>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day7.rs:49:4
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn solve_2(crabs: Vec<i32>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day8_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day8.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day8_1() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day8_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day8.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn solve_day8_2() -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day8.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn parse_input() -> Result<Vec<(Vec<String>, Vec<String>)>, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_1` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day8.rs:31:4
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn solve_1(input: Vec<(Vec<String>, Vec<String>)>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day8.rs:37:4
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn solve_2(inputs: Vec<(Vec<String>, Vec<String>)>) -> usize {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `permutation` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day8.rs:89:4
[INFO] [stdout]    |
[INFO] [stdout] 89 | fn permutation(current_index: usize, current: &mut Vec<usize>, used: i32) -> Vec<Vec<usize>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day9_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day9.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day9_1() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day9_2` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day9.rs:8:4
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn solve_day9_2() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day9.rs:12:4
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn parse_input() -> Result<Vec<Vec<i32>>, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_1` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day9.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn solve_1(map: Vec<Vec<i32>>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day9.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn solve_2(map: Vec<Vec<i32>>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day10_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day10.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day10_1() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day10_2` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day10.rs:8:4
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn solve_day10_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day10.rs:12:4
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn parse_input() -> Result<Vec<Vec<char>>, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_1` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day10.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn solve_1(inputs: Vec<Vec<char>>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day10.rs:78:4
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn solve_2(inputs: Vec<Vec<char>>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day11_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day11.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day11_1() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day11_2` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day11.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn solve_day11_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day11.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn parse_input() -> Result<Vec<Vec<u32>>, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_1` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day11.rs:27:4
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn solve_1(mut map: Vec<Vec<u32>>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day11.rs:67:4
[INFO] [stdout]    |
[INFO] [stdout] 67 | fn solve_2(mut map: Vec<Vec<u32>>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day12_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day12.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day12_1() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day12_2` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day12.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn solve_day12_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day12.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn parse_input() -> Result<HashMap<String, Vec<String>>, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_1` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day12.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn solve_1(path: HashMap<String, Vec<String>>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dfs` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day12.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn dfs(current: &str, path: &HashMap<String, Vec<String>>, visited: &mut HashMap<String, bool>, debug_path: &mut Vec<String>) -> i64 {
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day12.rs:80:4
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn solve_2(path: HashMap<String, Vec<String>>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dfs2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day12.rs:89:4
[INFO] [stdout]    |
[INFO] [stdout] 89 | fn dfs2(current: &str, path: &HashMap<String, Vec<String>>, visited: &mut HashMap<String, bool>,
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day13_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day13.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_day13_1() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_1` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day13.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn solve_1(input: Input) -> i64 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day13_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day13.rs:38:4
[INFO] [stdout]    |
[INFO] [stdout] 38 | fn solve_day13_2() -> Result<HashSet<(i32, i32)>, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day13.rs:43:4
[INFO] [stdout]    |
[INFO] [stdout] 43 | fn solve_2(input: Input) -> HashSet<(i32, i32)> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Input` is never constructed
[INFO] [stdout]   --> src/solutions/year_2021/day13.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | struct Input {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day13.rs:75:4
[INFO] [stdout]    |
[INFO] [stdout] 75 | fn parse_input() -> Result<Input, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day14_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day14.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day14_1() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day14_2` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day14.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn solve_day14_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day14.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn parse_input() -> Result<(String, HashMap<String, String>), Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_1` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day14.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn solve_1(input: (String, HashMap<String, String>)) -> i32 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day14.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn solve_2(input: (String, HashMap<String, String>)) -> i64 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `do_solve` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day14.rs:78:4
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn do_solve(c1: char, c2: char, round: i32, dp: &mut HashMap<String, HashMap<char, i64>>, dict: &HashMap<String, String>) -> HashMap...
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `merge` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day14.rs:98:4
[INFO] [stdout]    |
[INFO] [stdout] 98 | fn merge(left: HashMap<char, i64>, right: HashMap<char, i64>) -> HashMap<char, i64> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day15_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day15.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day15_1() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day15_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day15.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn solve_day15_2() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day15.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn parse_input() -> Result<Vec<Vec<u32>>, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]   --> src/solutions/year_2021/day15.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | struct Point {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_1` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day15.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn solve_1(map: Vec<Vec<u32>>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day15.rs:79:4
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn solve_2(map: Vec<Vec<u32>>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_cost` is never used
[INFO] [stdout]    --> src/solutions/year_2021/day15.rs:111:4
[INFO] [stdout]     |
[INFO] [stdout] 111 | fn find_cost(y: usize, x: usize, map: &Vec<Vec<u32>>) -> u32 {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day16_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day16.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day16_1() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day16_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day16.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn solve_day16_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day16.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn parse_input() -> Result<Vec<char>, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_1` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day16.rs:22:4
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn solve_1(chars: Vec<char>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day16.rs:35:4
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn solve_2(chars: Vec<char>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Packet` is never constructed
[INFO] [stdout]   --> src/solutions/year_2021/day16.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 51 | struct Packet {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `sum_version` and `calculate` are never used
[INFO] [stdout]   --> src/solutions/year_2021/day16.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | impl Packet {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] 59 |     pub fn sum_version(&self) -> i32 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn calculate(&self) -> i64 {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_packet` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day16.rs:96:4
[INFO] [stdout]    |
[INFO] [stdout] 96 | fn read_packet(index: i32, chars: &Vec<char>) -> (i32, Option<Packet>) {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day17_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day17.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day17_1() -> i32 {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_1` is never used
[INFO] [stdout]  --> src/solutions/year_2021/day17.rs:8:4
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn solve_1(_x1: i32, _x2: i32, y1: i32, _y2: i32) -> i32 {
[INFO] [stdout]   |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day17_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day17.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn solve_day17_2() -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_2` is never used
[INFO] [stdout]   --> src/solutions/year_2021/day17.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn solve_2(x1: i32, x2: i32, y1: i32, y2: i32) -> i32 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day1` is never used
[INFO] [stdout]  --> src/solutions/year_2023/day1.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day1() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day1_2` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day1.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn solve_day1_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day2` is never used
[INFO] [stdout]  --> src/solutions/year_2023/day2.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_day2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `counts` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day2.rs:29:4
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn counts(re_green: &Regex, line: &str, max: i32) -> bool {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day2_2` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day2.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn solve_day2_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `min_counts` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day2.rs:55:4
[INFO] [stdout]    |
[INFO] [stdout] 55 | fn min_counts(re_green: &Regex, line: &str) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day3` is never used
[INFO] [stdout]  --> src/solutions/year_2023/day3.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day3() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn calculate(y: usize, x: usize, map: &Vec<Vec<char>>, visited: &mut Vec<Vec<bool>>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `near_symbol` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:45:4
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn near_symbol(y: usize, x: usize, map: &Vec<Vec<char>>) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trace_number` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:64:4
[INFO] [stdout]    |
[INFO] [stdout] 64 | fn trace_number(mut current: String, y: usize, x: usize, map: &Vec<Vec<char>>, visited: &mut Vec<Vec<bool>>, is_near_symbol: bool) -...
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day3_2` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:77:4
[INFO] [stdout]    |
[INFO] [stdout] 77 | fn solve_day3_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate2` is never used
[INFO] [stdout]    --> src/solutions/year_2023/day3.rs:101:4
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn calculate2(y: usize, x: usize, map: &Vec<Vec<char>>, visited: &mut Vec<Vec<bool>>,
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `near_symbol2` is never used
[INFO] [stdout]    --> src/solutions/year_2023/day3.rs:119:4
[INFO] [stdout]     |
[INFO] [stdout] 119 | fn near_symbol2(y: usize, x: usize, map: &Vec<Vec<char>>) -> Option<(usize, usize)> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trace_number2` is never used
[INFO] [stdout]    --> src/solutions/year_2023/day3.rs:138:4
[INFO] [stdout]     |
[INFO] [stdout] 138 | fn trace_number2(mut current: String, y: usize, x: usize, map: &Vec<Vec<char>>, visited: &mut Vec<Vec<bool>>,
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day4` is never used
[INFO] [stdout]  --> src/solutions/year_2023/day4.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day4() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day4_2` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day4.rs:37:4
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn solve_day4_2() -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day5` is never used
[INFO] [stdout]  --> src/solutions/year_2023/day5.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day5() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day5_2` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day5.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn solve_day5_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day6` is never used
[INFO] [stdout]  --> src/solutions/year_2023/day6.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day6() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day6_2` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day6.rs:29:4
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn solve_day6_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CardType` is never used
[INFO] [stdout]  --> src/solutions/year_2023/day7.rs:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | enum CardType {
[INFO] [stdout]   |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Card` is never constructed
[INFO] [stdout]   --> src/solutions/year_2023/day7.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | struct Card {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `create` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day7.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | impl Card {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 57 |     fn create(raw: &str, bet: i64) -> Card {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day7` is never used
[INFO] [stdout]    --> src/solutions/year_2023/day7.rs:140:4
[INFO] [stdout]     |
[INFO] [stdout] 140 | fn solve_day7() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Card2` is never constructed
[INFO] [stdout]    --> src/solutions/year_2023/day7.rs:156:8
[INFO] [stdout]     |
[INFO] [stdout] 156 | struct Card2 {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `create` is never used
[INFO] [stdout]    --> src/solutions/year_2023/day7.rs:192:8
[INFO] [stdout]     |
[INFO] [stdout] 191 | impl Card2 {
[INFO] [stdout]     | ---------- associated function in this implementation
[INFO] [stdout] 192 |     fn create(raw: &str, bet: i64) -> Card2 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day7_2` is never used
[INFO] [stdout]    --> src/solutions/year_2023/day7.rs:289:4
[INFO] [stdout]     |
[INFO] [stdout] 289 | fn solve_day7_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day8` is never used
[INFO] [stdout]  --> src/solutions/year_2023/day8.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day8() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day8_2` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day8.rs:37:4
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn solve_day8_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gcd` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day8.rs:92:4
[INFO] [stdout]    |
[INFO] [stdout] 92 | fn gcd(a: i64, b: i64) -> i64 {
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day9` is never used
[INFO] [stdout]  --> src/solutions/year_2023/day9.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day9() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day9_2` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day9.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn solve_day9_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day10` is never used
[INFO] [stdout]  --> src/solutions/year_2023/day10.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day10() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `next_of` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day10.rs:71:4
[INFO] [stdout]    |
[INFO] [stdout] 71 | fn next_of(point: (usize, usize), map: &Vec<Vec<char>>) -> Vec<(usize, usize)> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day10_2` is never used
[INFO] [stdout]    --> src/solutions/year_2023/day10.rs:145:4
[INFO] [stdout]     |
[INFO] [stdout] 145 | fn solve_day10_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw` is never used
[INFO] [stdout]    --> src/solutions/year_2023/day10.rs:261:4
[INFO] [stdout]     |
[INFO] [stdout] 261 | fn draw(visited: &mut HashSet<(usize, usize)>, from: (usize, usize), map: &Vec<Vec<char>>, is_line: &Vec<Vec<bool>>) -> i64 {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day11` is never used
[INFO] [stdout]  --> src/solutions/year_2023/day11.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day11() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day11_2` is never used
[INFO] [stdout]   --> src/solutions/year_2023/day11.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn solve_day11_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day1` is never used
[INFO] [stdout]  --> src/solutions/year_2024/day1.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day1() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day1_2` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day1.rs:29:4
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn solve_day1_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day2` is never used
[INFO] [stdout]  --> src/solutions/year_2024/day2.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pass_the_test` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day2.rs:19:4
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn pass_the_test(nums: Vec<i64>) -> Option<bool> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day2_2` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day2.rs:60:4
[INFO] [stdout]    |
[INFO] [stdout] 60 | fn solve_day2_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day3` is never used
[INFO] [stdout]  --> src/solutions/year_2024/day3.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day3() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day3_2` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day3.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn solve_day3_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day4` is never used
[INFO] [stdout]  --> src/solutions/year_2024/day4.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day4() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WORDS` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day4.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 | const WORDS: [char; 4] = ['X', 'M', 'A', 'S'];
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dfs` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day4.rs:29:4
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn dfs(map: &Vec<Vec<char>>, x: i64, y: i64, c_index: usize, direction: usize) -> i64 {
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day4_2` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day4.rs:55:4
[INFO] [stdout]    |
[INFO] [stdout] 55 | fn solve_day4_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_x_mas` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day4.rs:78:4
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn find_x_mas(map: &Vec<Vec<char>>, x: i64, y: i64) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day5` is never used
[INFO] [stdout]  --> src/solutions/year_2024/day5.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day5() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day5_2` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day5.rs:53:4
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn solve_day5_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day6` is never used
[INFO] [stdout]  --> src/solutions/year_2024/day6.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day6() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scan_map` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day6.rs:26:4
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn scan_map(
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day6_2` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day6.rs:55:4
[INFO] [stdout]    |
[INFO] [stdout] 55 | fn solve_day6_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_loop` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day6.rs:86:4
[INFO] [stdout]    |
[INFO] [stdout] 86 | fn check_loop(
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day7` is never used
[INFO] [stdout]  --> src/solutions/year_2024/day7.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_day7() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dfs` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day7.rs:24:4
[INFO] [stdout]    |
[INFO] [stdout] 24 | fn dfs(nums: &Vec<i64>, next_index: usize, current_value: i64, target: i64) -> bool {
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day7_2` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day7.rs:49:4
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn solve_day7_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dfs_2` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day7.rs:69:4
[INFO] [stdout]    |
[INFO] [stdout] 69 | fn dfs_2(nums: &Vec<i64>, next_index: usize, current_value: i64, target: i64) -> bool {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day8` is never used
[INFO] [stdout]  --> src/solutions/year_2024/day8.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day8() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day8_2` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day8.rs:67:4
[INFO] [stdout]    |
[INFO] [stdout] 67 | fn solve_day8_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day9` is never used
[INFO] [stdout]  --> src/solutions/year_2024/day9.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day9() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day9_2` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day9.rs:49:4
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn solve_day9_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_smallest_index` is never used
[INFO] [stdout]    --> src/solutions/year_2024/day9.rs:110:4
[INFO] [stdout]     |
[INFO] [stdout] 110 | fn find_smallest_index(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day10` is never used
[INFO] [stdout]  --> src/solutions/year_2024/day10.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day10() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dfs` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day10.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn dfs(
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day10_2` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day10.rs:79:4
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn solve_day10_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dfs_2` is never used
[INFO] [stdout]    --> src/solutions/year_2024/day10.rs:104:4
[INFO] [stdout]     |
[INFO] [stdout] 104 | fn dfs_2(
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day11` is never used
[INFO] [stdout]  --> src/solutions/year_2024/day11.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day11() -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day11_2` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day11.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn solve_day11_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dp` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day11.rs:43:4
[INFO] [stdout]    |
[INFO] [stdout] 43 | fn dp(num: i64, round: i32, cache: &mut HashMap<(i64, i32), i64>) -> i64 {
[INFO] [stdout]    |    ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day12` is never used
[INFO] [stdout]  --> src/solutions/year_2024/day12.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day12() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day12.rs:22:4
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn solve(position: (usize, usize), map: &Vec<Vec<char>>, visited: &mut Vec<Vec<bool>>) -> i64 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day12_2` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day12.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn solve_day12_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_2` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day12.rs:78:4
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn solve_2(position: (usize, usize), map: &Vec<Vec<char>>, visited: &mut Vec<Vec<bool>>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day13` is never used
[INFO] [stdout]  --> src/solutions/year_2024/day13.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day13() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day13_2` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day13.rs:70:4
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn solve_day13_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day14` is never used
[INFO] [stdout]  --> src/solutions/year_2024/day14.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day14() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day14_2` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day14.rs:52:4
[INFO] [stdout]    |
[INFO] [stdout] 52 | fn solve_day14_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day15` is never used
[INFO] [stdout]  --> src/solutions/year_2024/day15.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_day15() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `try_move` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day15.rs:65:4
[INFO] [stdout]    |
[INFO] [stdout] 65 | fn try_move(map: &mut Vec<Vec<char>>, robot: &mut (i64, i64), direction: (i64, i64)) {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day15_2` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day15.rs:99:4
[INFO] [stdout]    |
[INFO] [stdout] 99 | fn solve_day15_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `debug_map` is never used
[INFO] [stdout]    --> src/solutions/year_2024/day15.rs:164:4
[INFO] [stdout]     |
[INFO] [stdout] 164 | fn debug_map(
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `try_move_2` is never used
[INFO] [stdout]    --> src/solutions/year_2024/day15.rs:193:4
[INFO] [stdout]     |
[INFO] [stdout] 193 | fn try_move_2(
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_empty` is never used
[INFO] [stdout]    --> src/solutions/year_2024/day15.rs:267:4
[INFO] [stdout]     |
[INFO] [stdout] 267 | fn is_empty(
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_box` is never used
[INFO] [stdout]    --> src/solutions/year_2024/day15.rs:283:4
[INFO] [stdout]     |
[INFO] [stdout] 283 | fn is_box(
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_block` is never used
[INFO] [stdout]    --> src/solutions/year_2024/day15.rs:323:4
[INFO] [stdout]     |
[INFO] [stdout] 323 | fn is_block(target: (i64, i64), blocks: &HashSet<(usize, usize)>) -> bool {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Facing` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day16.rs:10:6
[INFO] [stdout]    |
[INFO] [stdout] 10 | enum Facing {
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day16` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day16.rs:36:4
[INFO] [stdout]    |
[INFO] [stdout] 36 | fn solve_day16() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Score` is never constructed
[INFO] [stdout]   --> src/solutions/year_2024/day16.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | struct Score {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day16.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | impl Score {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] 63 |     pub fn new(y: i64, x: i64, facing: Facing, cost: i64) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bfs` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day16.rs:95:4
[INFO] [stdout]    |
[INFO] [stdout] 95 | fn bfs(current: (i64, i64), map: &Vec<Vec<char>>) -> i64 {
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScoreWithPrev` is never constructed
[INFO] [stdout]    --> src/solutions/year_2024/day16.rs:173:8
[INFO] [stdout]     |
[INFO] [stdout] 173 | struct ScoreWithPrev {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/solutions/year_2024/day16.rs:179:12
[INFO] [stdout]     |
[INFO] [stdout] 178 | impl ScoreWithPrev {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] 179 |     pub fn new(score: Score, prev: Option<Score>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day16_2` is never used
[INFO] [stdout]    --> src/solutions/year_2024/day16.rs:206:4
[INFO] [stdout]     |
[INFO] [stdout] 206 | fn solve_day16_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bfs_2` is never used
[INFO] [stdout]    --> src/solutions/year_2024/day16.rs:225:4
[INFO] [stdout]     |
[INFO] [stdout] 225 | fn bfs_2(start_point: (i64, i64), map: &Vec<Vec<char>>) -> i64 {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Register` is never constructed
[INFO] [stdout]  --> src/solutions/year_2024/day17.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Register {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day17.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Register {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 13 |     pub fn new(a: i64, b: i64, c: i64) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day17` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day17.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn solve_day17() -> Result<String, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `out` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day17.rs:96:4
[INFO] [stdout]    |
[INFO] [stdout] 96 | fn out(operand: i64, register: &Register, result: &mut Vec<i64>) {
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bst` is never used
[INFO] [stdout]    --> src/solutions/year_2024/day17.rs:101:4
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn bst(operand: i64, register: &mut Register) {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bxc` is never used
[INFO] [stdout]    --> src/solutions/year_2024/day17.rs:106:4
[INFO] [stdout]     |
[INFO] [stdout] 106 | fn bxc(register: &mut Register) {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bxl` is never used
[INFO] [stdout]    --> src/solutions/year_2024/day17.rs:110:4
[INFO] [stdout]     |
[INFO] [stdout] 110 | fn bxl(operand: i64, register: &mut Register) {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `adv` is never used
[INFO] [stdout]    --> src/solutions/year_2024/day17.rs:114:4
[INFO] [stdout]     |
[INFO] [stdout] 114 | fn adv(operand: i64, register: &mut Register) {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bdv` is never used
[INFO] [stdout]    --> src/solutions/year_2024/day17.rs:119:4
[INFO] [stdout]     |
[INFO] [stdout] 119 | fn bdv(operand: i64, register: &mut Register) {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cdv` is never used
[INFO] [stdout]    --> src/solutions/year_2024/day17.rs:123:4
[INFO] [stdout]     |
[INFO] [stdout] 123 | fn cdv(operand: i64, register: &mut Register) {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `combo` is never used
[INFO] [stdout]    --> src/solutions/year_2024/day17.rs:128:4
[INFO] [stdout]     |
[INFO] [stdout] 128 | fn combo(operand: i64, register: &Register) -> i64 {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day17_2` is never used
[INFO] [stdout]    --> src/solutions/year_2024/day17.rs:142:4
[INFO] [stdout]     |
[INFO] [stdout] 142 | fn solve_day17_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]    --> src/solutions/year_2024/day17.rs:170:4
[INFO] [stdout]     |
[INFO] [stdout] 170 | fn solve(possible_input: Vec<i64>, program: &Vec<i64>, target_value: i64) -> Vec<i64> {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day18` is never used
[INFO] [stdout]  --> src/solutions/year_2024/day18.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day18() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day18_2` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day18.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn solve_day18_2() -> Result<(i64, i64), Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bfs` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day18.rs:78:4
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn bfs(using_falls: &HashSet<&(i64, i64)>) -> bool {
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day19` is never used
[INFO] [stdout]  --> src/solutions/year_2024/day19.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_day19() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day19.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn solve(target: &str, max_len: usize, colors: &HashSet<&str>, dp: &mut HashSet<usize>) -> bool {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day19_2` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day19.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn solve_day19_2() -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_2` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day19.rs:58:4
[INFO] [stdout]    |
[INFO] [stdout] 58 | fn solve_2(
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DIRECTION` is never used
[INFO] [stdout]  --> src/solutions/year_2024/day20.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const DIRECTION: [i64; 5] = [-1, 0, 1, 0, -1];
[INFO] [stdout]   |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day20` is never used
[INFO] [stdout]  --> src/solutions/year_2024/day20.rs:8:4
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn solve_day20() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prepare_map` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day20.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn prepare_map() -> Result<(Vec<Vec<char>>, HashMap<(i64, i64), i32>), Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_shortcut` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day20.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn calculate_shortcut(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day20_2` is never used
[INFO] [stdout]    --> src/solutions/year_2024/day20.rs:114:4
[INFO] [stdout]     |
[INFO] [stdout] 114 | fn solve_day20_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_shortcut_2` is never used
[INFO] [stdout]    --> src/solutions/year_2024/day20.rs:127:4
[INFO] [stdout]     |
[INFO] [stdout] 127 | fn calculate_shortcut_2(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_first_robot` is never used
[INFO] [stdout]  --> src/solutions/year_2024/day21.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_first_robot(line: &str, robot_count: i64) -> i64 {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_other_robots` is never used
[INFO] [stdout]    --> src/solutions/year_2024/day21.rs:101:4
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn solve_other_robots(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day21` is never used
[INFO] [stdout]    --> src/solutions/year_2024/day21.rs:208:4
[INFO] [stdout]     |
[INFO] [stdout] 208 | fn solve_day21() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day21_2` is never used
[INFO] [stdout]    --> src/solutions/year_2024/day21.rs:223:4
[INFO] [stdout]     |
[INFO] [stdout] 223 | fn solve_day21_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day22` is never used
[INFO] [stdout]  --> src/solutions/year_2024/day22.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_day22() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day22_2` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day22.rs:19:4
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn solve_day22_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day22.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn calculate(secret_number: i64) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day23` is never used
[INFO] [stdout]  --> src/solutions/year_2024/day23.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_day23() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dfs` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day23.rs:51:4
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn dfs<'b>(
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day23_2` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day23.rs:87:4
[INFO] [stdout]    |
[INFO] [stdout] 87 | fn solve_day23_2() -> Result<String, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check` is never used
[INFO] [stdout]    --> src/solutions/year_2024/day23.rs:115:4
[INFO] [stdout]     |
[INFO] [stdout] 115 | fn check<'b>(
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day24` is never used
[INFO] [stdout]  --> src/solutions/year_2024/day24.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_day24() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day24.rs:48:4
[INFO] [stdout]    |
[INFO] [stdout] 48 | fn solve<'a>(
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day24_2` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day24.rs:78:4
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn solve_day24_2() -> Result<String, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `try_fix` is never used
[INFO] [stdout]    --> src/solutions/year_2024/day24.rs:105:4
[INFO] [stdout]     |
[INFO] [stdout] 105 | fn try_fix<'a>(
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `diff` is never used
[INFO] [stdout]    --> src/solutions/year_2024/day24.rs:156:4
[INFO] [stdout]     |
[INFO] [stdout] 156 | fn diff<'a>(actual: &'a Node, expected: &'a Node) -> Option<(&'a Node, &'a str)> {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_terms` is never used
[INFO] [stdout]    --> src/solutions/year_2024/day24.rs:184:4
[INFO] [stdout]     |
[INFO] [stdout] 184 | fn build_terms<'a>(
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `score` is never used
[INFO] [stdout]    --> src/solutions/year_2024/day24.rs:204:4
[INFO] [stdout]     |
[INFO] [stdout] 204 | fn score<'a>(name: &'a str, froms: &HashMap<&'a str, (&'a str, &'a str, &'a str)>) -> i32 {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sort_inputs` is never used
[INFO] [stdout]    --> src/solutions/year_2024/day24.rs:217:4
[INFO] [stdout]     |
[INFO] [stdout] 217 | fn sort_inputs<'a>(froms: &mut HashMap<&'a str, (&'a str, &'a str, &'a str)>) {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]    --> src/solutions/year_2024/day24.rs:231:8
[INFO] [stdout]     |
[INFO] [stdout] 231 | struct Node {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/solutions/year_2024/day24.rs:239:12
[INFO] [stdout]     |
[INFO] [stdout] 238 | impl Node {
[INFO] [stdout]     | --------- associated function in this implementation
[INFO] [stdout] 239 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `expected_term` is never used
[INFO] [stdout]    --> src/solutions/year_2024/day24.rs:255:4
[INFO] [stdout]     |
[INFO] [stdout] 255 | fn expected_term(bit: i32, max_bit: i32) -> Node {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `expected_term_from_lower_bit` is never used
[INFO] [stdout]    --> src/solutions/year_2024/day24.rs:302:4
[INFO] [stdout]     |
[INFO] [stdout] 302 | fn expected_term_from_lower_bit(bit: i32) -> Node {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day25` is never used
[INFO] [stdout]  --> src/solutions/year_2024/day25.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_day25() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_day25_2` is never used
[INFO] [stdout]   --> src/solutions/year_2024/day25.rs:52:4
[INFO] [stdout]    |
[INFO] [stdout] 52 | fn solve_day25_2() -> Result<i64, Box<dyn Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.deref()` on a double reference, which returns `&year_2020::day2::Input` instead of dereferencing the inner type
[INFO] [stdout]   --> src/solutions/year_2020/day2.rs:60:40
[INFO] [stdout]    |
[INFO] [stdout] 60 |     inputs.iter().filter(|x| is_valid(x.deref())).count()
[INFO] [stdout]    |                                        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]   --> src/solutions/year_2021/day12.rs:58:17
[INFO] [stdout]    |
[INFO] [stdout] 58 |     for adjs in path.get(current) {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]    |
[INFO] [stdout] 58 -     for adjs in path.get(current) {
[INFO] [stdout] 58 +     while let Some(adjs) = path.get(current) {
[INFO] [stdout]    |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]    |
[INFO] [stdout] 58 -     for adjs in path.get(current) {
[INFO] [stdout] 58 +     if let Some(adjs) = path.get(current) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]   --> src/solutions/year_2021/day12.rs:99:17
[INFO] [stdout]    |
[INFO] [stdout] 99 |     for adjs in path.get(current) {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]    |
[INFO] [stdout] 99 -     for adjs in path.get(current) {
[INFO] [stdout] 99 +     while let Some(adjs) = path.get(current) {
[INFO] [stdout]    |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]    |
[INFO] [stdout] 99 -     for adjs in path.get(current) {
[INFO] [stdout] 99 +     if let Some(adjs) = path.get(current) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/solutions/year_2021/day16.rs:141:26
[INFO] [stdout]     |
[INFO] [stdout] 141 |                 for p in packet.1 {
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 141 -                 for p in packet.1 {
[INFO] [stdout] 141 +                 while let Some(p) = packet.1 {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 141 -                 for p in packet.1 {
[INFO] [stdout] 141 +                 if let Some(p) = packet.1 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/solutions/year_2021/day16.rs:153:26
[INFO] [stdout]     |
[INFO] [stdout] 153 |                 for p in packet.1 {
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 153 -                 for p in packet.1 {
[INFO] [stdout] 153 +                 while let Some(p) = packet.1 {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 153 -                 for p in packet.1 {
[INFO] [stdout] 153 +                 if let Some(p) = packet.1 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.21s
[INFO] running `Command { std: "docker" "inspect" "308c9ea0828a18359c75668ea22937d018317c188f200820e93eab14bae58355", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "308c9ea0828a18359c75668ea22937d018317c188f200820e93eab14bae58355", kill_on_drop: false }`
[INFO] [stdout] 308c9ea0828a18359c75668ea22937d018317c188f200820e93eab14bae58355
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ce602de524a5024d4ea53a2f8c058b7917e90ed15f7d134c18646d92f236249d
[INFO] running `Command { std: "docker" "start" "-a" "ce602de524a5024d4ea53a2f8c058b7917e90ed15f7d134c18646d92f236249d", kill_on_drop: false }`
[INFO] [stderr]    Compiling advent_of_code v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day2.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 |         if (counts(&re_green, line, 13) && counts(&re_red, line, 12) && counts(&re_blue, line, 14)) {
[INFO] [stdout]    |            ^                                                                                      ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 18 -         if (counts(&re_green, line, 13) && counts(&re_red, line, 12) && counts(&re_blue, line, 14)) {
[INFO] [stdout] 18 +         if counts(&re_green, line, 13) && counts(&re_red, line, 12) && counts(&re_blue, line, 14)  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day2.rs:32:16
[INFO] [stdout]    |
[INFO] [stdout] 32 |             if (digit_match.as_str().parse::<i32>().unwrap() > max) {
[INFO] [stdout]    |                ^                                                  ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 32 -             if (digit_match.as_str().parse::<i32>().unwrap() > max) {
[INFO] [stdout] 32 +             if digit_match.as_str().parse::<i32>().unwrap() > max  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 |         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stdout]    |            ^                                                           ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 54 -         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stdout] 54 +         if new_y < height && new_y >= 0 && new_x >= 0 && new_x < width  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:55:16
[INFO] [stdout]    |
[INFO] [stdout] 55 |             if (!map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stdout]    |                ^
[INFO] [stdout] 56 |                 && map[new_y as usize][new_x as usize] != '.') {
[INFO] [stdout]    |                                                              ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 55 ~             if !map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stdout] 56 ~                 && map[new_y as usize][new_x as usize] != '.'  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 |     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stdout]    |        ^                                         ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 66 -     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stdout] 66 +     if x >= width || !map[y][x].is_ascii_digit()  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 |     if (map[y][x].is_ascii_digit()) {
[INFO] [stdout]    |        ^                          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 70 -     if (map[y][x].is_ascii_digit()) {
[INFO] [stdout] 70 +     if map[y][x].is_ascii_digit()  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/solutions/year_2023/day3.rs:128:12
[INFO] [stdout]     |
[INFO] [stdout] 128 |         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stdout]     |            ^                                                           ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 128 -         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stdout] 128 +         if new_y < height && new_y >= 0 && new_x >= 0 && new_x < width  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/solutions/year_2023/day3.rs:129:16
[INFO] [stdout]     |
[INFO] [stdout] 129 |             if (!map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stdout]     |                ^
[INFO] [stdout] 130 |                 && map[new_y as usize][new_x as usize] == '*') {
[INFO] [stdout]     |                                                              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 129 ~             if !map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stdout] 130 ~                 && map[new_y as usize][new_x as usize] == '*'  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/solutions/year_2023/day3.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 |     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stdout]     |        ^                                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 142 -     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stdout] 142 +     if x >= width || !map[y][x].is_ascii_digit()  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/solutions/year_2023/day3.rs:155:8
[INFO] [stdout]     |
[INFO] [stdout] 155 |     if (map[y][x].is_ascii_digit()) {
[INFO] [stdout]     |        ^                          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 155 -     if (map[y][x].is_ascii_digit()) {
[INFO] [stdout] 155 +     if map[y][x].is_ascii_digit()  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Not`
[INFO] [stdout]  --> src/solutions/year_2023/day10.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::Not;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/solutions/year_2023/day11.rs:110:36
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 let expand_count = ((r2 - r1).abs() );
[INFO] [stdout]     |                                    ^               ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 110 -                 let expand_count = ((r2 - r1).abs() );
[INFO] [stdout] 110 +                 let expand_count = (r2 - r1).abs() ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/solutions/year_2023/day11.rs:127:36
[INFO] [stdout]     |
[INFO] [stdout] 127 |                 let expand_count = ((c2 - c1).abs() );
[INFO] [stdout]     |                                    ^               ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 127 -                 let expand_count = ((c2 - c1).abs() );
[INFO] [stdout] 127 +                 let expand_count = (c2 - c1).abs() ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mul` and `Sub`
[INFO] [stdout]  --> src/solutions/year_2024/day2.rs:3:16
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::ops::{Mul, Sub};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mul` and `Sub`
[INFO] [stdout]  --> src/solutions/year_2024/day3.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::{Mul, Sub};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mul` and `Sub`
[INFO] [stdout]  --> src/solutions/year_2024/day4.rs:3:16
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::ops::{Mul, Sub};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/solutions/year_2024/day13.rs:114:21
[INFO] [stdout]     |
[INFO] [stdout] 114 |         let right = (target.0 * b.1 - target.1 * b.0);
[INFO] [stdout]     |                     ^                               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 114 -         let right = (target.0 * b.1 - target.1 * b.0);
[INFO] [stdout] 114 +         let right = target.0 * b.1 - target.1 * b.0 ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Index`
[INFO] [stdout]  --> src/solutions/year_2024/day15.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::ops::Index;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/solutions/year_2024/day15.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thread`
[INFO] [stdout]  --> src/solutions/year_2024/day15.rs:5:15
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::{fs, thread};
[INFO] [stdout]   |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/solutions/year_2024/day16.rs:299:25
[INFO] [stdout]     |
[INFO] [stdout] 299 |                         (ScoreWithPrev::new(
[INFO] [stdout]     |                         ^
[INFO] [stdout] ...
[INFO] [stdout] 302 |                         )),
[INFO] [stdout]     |                          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 299 ~                         ScoreWithPrev::new(
[INFO] [stdout] 300 |                             Score::new(pop.score.y, pop.score.x, Facing::Up, pop.score.cost + 1000),
[INFO] [stdout] 301 |                             Some(pop.score.clone()),
[INFO] [stdout] 302 ~                         ) ,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/solutions/year_2024/day16.rs:314:25
[INFO] [stdout]     |
[INFO] [stdout] 314 |                         (ScoreWithPrev::new(
[INFO] [stdout]     |                         ^
[INFO] [stdout] ...
[INFO] [stdout] 322 |                         )),
[INFO] [stdout]     |                          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 314 ~                         ScoreWithPrev::new(
[INFO] [stdout] 315 |                             Score::new(
[INFO] [stdout] ...
[INFO] [stdout] 321 |                             Some(pop.score.clone()),
[INFO] [stdout] 322 ~                         ) ,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/solutions/year_2024/day16.rs:334:25
[INFO] [stdout]     |
[INFO] [stdout] 334 |                         (ScoreWithPrev::new(
[INFO] [stdout]     |                         ^
[INFO] [stdout] ...
[INFO] [stdout] 342 |                         )),
[INFO] [stdout]     |                          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 334 ~                         ScoreWithPrev::new(
[INFO] [stdout] 335 |                             Score::new(
[INFO] [stdout] ...
[INFO] [stdout] 341 |                             Some(pop.score.clone()),
[INFO] [stdout] 342 ~                         ) ,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/solutions/year_2024/day16.rs:354:25
[INFO] [stdout]     |
[INFO] [stdout] 354 |                         (ScoreWithPrev::new(
[INFO] [stdout]     |                         ^
[INFO] [stdout] ...
[INFO] [stdout] 362 |                         )),
[INFO] [stdout]     |                          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 354 ~                         ScoreWithPrev::new(
[INFO] [stdout] 355 |                             Score::new(
[INFO] [stdout] ...
[INFO] [stdout] 361 |                             Some(pop.score.clone()),
[INFO] [stdout] 362 ~                         ) ,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mul` and `Sub`
[INFO] [stdout]  --> src/solutions/year_2024/day18.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::{Mul, Sub};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `max`
[INFO] [stdout]  --> src/solutions/year_2024/day19.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cmp::{max, min};
[INFO] [stdout]   |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mul` and `Sub`
[INFO] [stdout]  --> src/solutions/year_2024/day19.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ops::{Mul, Sub};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mul` and `Sub`
[INFO] [stdout]  --> src/solutions/year_2024/day20.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::{Mul, Sub};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/solutions/year_2024/day20.rs:147:28
[INFO] [stdout]     |
[INFO] [stdout] 147 |                 let diff = (*path_counter.get(&current).unwrap()
[INFO] [stdout]     |                            ^
[INFO] [stdout] 148 |                     - *path_counter.get(&(next_y, next_x)).unwrap());
[INFO] [stdout]     |                                                                    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 147 ~                 let diff = *path_counter.get(&current).unwrap()
[INFO] [stdout] 148 ~                     - *path_counter.get(&(next_y, next_x)).unwrap() ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mul` and `Sub`
[INFO] [stdout]  --> src/solutions/year_2024/day21.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::{Mul, Sub};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mul` and `Sub`
[INFO] [stdout]  --> src/solutions/year_2024/day22.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::{Mul, Sub};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mul` and `Sub`
[INFO] [stdout]  --> src/solutions/year_2024/day23.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ops::{Mul, Sub};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mul` and `Sub`
[INFO] [stdout]  --> src/solutions/year_2024/day24.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ops::{Mul, Sub};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mul` and `Sub`
[INFO] [stdout]  --> src/solutions/year_2024/day25.rs:3:16
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::ops::{Mul, Sub};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::BufRead`
[INFO] [stdout]  --> src/solutions/year_2024/day5.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::BufRead;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]  --> src/solutions/year_2024/day16.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2023/day3.rs:64:17
[INFO] [stdout]    |
[INFO] [stdout] 64 | fn trace_number(mut current: String, y: usize, x: usize, map: &Vec<Vec<char>>, visited: &mut Vec<Vec<bool>>, is_near_symbol: bool) -...
[INFO] [stdout]    |                 ----^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/year_2023/day3.rs:138:18
[INFO] [stdout]     |
[INFO] [stdout] 138 | fn trace_number2(mut current: String, y: usize, x: usize, map: &Vec<Vec<char>>, visited: &mut Vec<Vec<bool>>,
[INFO] [stdout]     |                  ----^^^^^^^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]   --> src/solutions/year_2023/day7.rs:27:18
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn eq(&self, other: &Self) -> bool {
[INFO] [stdout]    |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/year_2023/day7.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 142 |     let mut lines = content.lines();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/solutions/year_2023/day7.rs:163:18
[INFO] [stdout]     |
[INFO] [stdout] 163 |     fn eq(&self, other: &Self) -> bool {
[INFO] [stdout]     |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/year_2023/day7.rs:291:9
[INFO] [stdout]     |
[INFO] [stdout] 291 |     let mut lines = content.lines();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2023/day8.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let mut iter = lines.skip(1);
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2023/day8.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let mut iter = lines.skip(1);
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/solutions/year_2023/day9.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let mut lines = content.lines();
[INFO] [stdout]   |         ----^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2023/day9.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let mut lines = content.lines();
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/solutions/year_2023/day10.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let mut lines = content.lines();
[INFO] [stdout]   |         ----^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/year_2023/day10.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |     let mut lines = content.lines();
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/solutions/year_2023/day11.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let mut lines = content.lines();
[INFO] [stdout]   |         ----^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2023/day11.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let mut lines = content.lines();
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `success`
[INFO] [stdout]   --> src/solutions/year_2024/day2.rs:11:13
[INFO] [stdout]    |
[INFO] [stdout] 11 |         let success = match pass_the_test(nums) {
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_success`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/solutions/year_2024/day2.rs:12:18
[INFO] [stdout]    |
[INFO] [stdout] 12 |             Some(value) => total += 1,
[INFO] [stdout]    |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/solutions/year_2024/day6.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let mut total = 0i64;
[INFO] [stdout]   |         ----^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `total`
[INFO] [stdout]  --> src/solutions/year_2024/day6.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let mut total = 0i64;
[INFO] [stdout]   |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]   --> src/solutions/year_2024/day8.rs:29:22
[INFO] [stdout]    |
[INFO] [stdout] 29 |         .flat_map(|(&c, positions)| {
[INFO] [stdout]    |                      ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]   --> src/solutions/year_2024/day8.rs:91:22
[INFO] [stdout]    |
[INFO] [stdout] 91 |         .flat_map(|(&c, positions)| {
[INFO] [stdout]    |                      ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `block_index`
[INFO] [stdout]   --> src/solutions/year_2024/day9.rs:60:10
[INFO] [stdout]    |
[INFO] [stdout] 60 |     for (block_index, c) in input.chars().enumerate() {
[INFO] [stdout]    |          ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_block_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target_count`
[INFO] [stdout]   --> src/solutions/year_2024/day9.rs:87:19
[INFO] [stdout]    |
[INFO] [stdout] 87 |             Some((target_count, target_index)) => {
[INFO] [stdout]    |                   ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_target_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/solutions/year_2024/day10.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 |     for (i, &line) in lines.iter().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]   --> src/solutions/year_2024/day10.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 |         for (j, c) in line.chars().enumerate() {
[INFO] [stdout]    |              ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/solutions/year_2024/day10.rs:84:10
[INFO] [stdout]    |
[INFO] [stdout] 84 |     for (i, &line) in lines.iter().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]   --> src/solutions/year_2024/day10.rs:86:14
[INFO] [stdout]    |
[INFO] [stdout] 86 |         for (j, c) in line.chars().enumerate() {
[INFO] [stdout]    |              ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/year_2024/day15.rs:199:9
[INFO] [stdout]     |
[INFO] [stdout] 199 |     let mut next = (robot.0 + direction.0, robot.1 + direction.1);
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/year_2024/day15.rs:209:9
[INFO] [stdout]     |
[INFO] [stdout] 209 |     let mut boxes_at_next = is_box(next, boxes, direction);
[INFO] [stdout]     |         ----^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]    --> src/solutions/year_2024/day16.rs:370:9
[INFO] [stdout]     |
[INFO] [stdout] 370 |     let target = Score::new(start_point.0, start_point.1, Right, 0);
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2024/day17.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let mut a_value = re
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2024/day17.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let mut b_value = re
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2024/day17.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let mut c_value = re
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2024/day18.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let mut current = (0, 0);
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2024/day18.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 82 |     let mut current = (0, 0);
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `count` is assigned to, but never used
[INFO] [stdout]   --> src/solutions/year_2024/day18.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 85 |     let mut count = 0;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_count` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count` is never read
[INFO] [stdout]    --> src/solutions/year_2024/day18.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout] 113 |         count += 1;
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `debug_current`
[INFO] [stdout]    --> src/solutions/year_2024/day21.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout] 102 |     debug_current: char,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_debug_current`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2024/day23.rs:11:13
[INFO] [stdout]    |
[INFO] [stdout] 11 |         let mut link: Vec<&str> = line.split("-").collect();
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2024/day23.rs:74:25
[INFO] [stdout]    |
[INFO] [stdout] 74 |             if let Some(mut founds) = dfs(from, to, links, hop - 1, visited) {
[INFO] [stdout]    |                         ----^^^^^^
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solutions/year_2024/day23.rs:91:13
[INFO] [stdout]    |
[INFO] [stdout] 91 |         let mut link: Vec<&str> = line.split("-").collect();
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/solutions/year_2024/day23.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 122 |     let mut link_to = links.get(from).unwrap();
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/solutions/year_2024/day25.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let input = fs::read_to_string("src/solutions/year_2024/day25.txt")?;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.deref()` on a double reference, which returns `&year_2020::day2::Input` instead of dereferencing the inner type
[INFO] [stdout]   --> src/solutions/year_2020/day2.rs:60:40
[INFO] [stdout]    |
[INFO] [stdout] 60 |     inputs.iter().filter(|x| is_valid(x.deref())).count()
[INFO] [stdout]    |                                        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]   --> src/solutions/year_2021/day12.rs:58:17
[INFO] [stdout]    |
[INFO] [stdout] 58 |     for adjs in path.get(current) {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]    |
[INFO] [stdout] 58 -     for adjs in path.get(current) {
[INFO] [stdout] 58 +     while let Some(adjs) = path.get(current) {
[INFO] [stdout]    |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]    |
[INFO] [stdout] 58 -     for adjs in path.get(current) {
[INFO] [stdout] 58 +     if let Some(adjs) = path.get(current) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]   --> src/solutions/year_2021/day12.rs:99:17
[INFO] [stdout]    |
[INFO] [stdout] 99 |     for adjs in path.get(current) {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]    |
[INFO] [stdout] 99 -     for adjs in path.get(current) {
[INFO] [stdout] 99 +     while let Some(adjs) = path.get(current) {
[INFO] [stdout]    |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]    |
[INFO] [stdout] 99 -     for adjs in path.get(current) {
[INFO] [stdout] 99 +     if let Some(adjs) = path.get(current) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/solutions/year_2021/day16.rs:141:26
[INFO] [stdout]     |
[INFO] [stdout] 141 |                 for p in packet.1 {
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 141 -                 for p in packet.1 {
[INFO] [stdout] 141 +                 while let Some(p) = packet.1 {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 141 -                 for p in packet.1 {
[INFO] [stdout] 141 +                 if let Some(p) = packet.1 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/solutions/year_2021/day16.rs:153:26
[INFO] [stdout]     |
[INFO] [stdout] 153 |                 for p in packet.1 {
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 153 -                 for p in packet.1 {
[INFO] [stdout] 153 +                 while let Some(p) = packet.1 {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 153 -                 for p in packet.1 {
[INFO] [stdout] 153 +                 if let Some(p) = packet.1 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 5.46s
[INFO] running `Command { std: "docker" "inspect" "ce602de524a5024d4ea53a2f8c058b7917e90ed15f7d134c18646d92f236249d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ce602de524a5024d4ea53a2f8c058b7917e90ed15f7d134c18646d92f236249d", kill_on_drop: false }`
[INFO] [stdout] ce602de524a5024d4ea53a2f8c058b7917e90ed15f7d134c18646d92f236249d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 800704324fa8c77f78ab60fd5fdbdd8cf71c88a8d78d729a6a4791b6256865fe
[INFO] running `Command { std: "docker" "start" "-a" "800704324fa8c77f78ab60fd5fdbdd8cf71c88a8d78d729a6a4791b6256865fe", kill_on_drop: false }`
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/solutions/year_2023/day2.rs:18:12
[INFO] [stderr]    |
[INFO] [stderr] 18 |         if (counts(&re_green, line, 13) && counts(&re_red, line, 12) && counts(&re_blue, line, 14)) {
[INFO] [stderr]    |            ^                                                                                      ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 18 -         if (counts(&re_green, line, 13) && counts(&re_red, line, 12) && counts(&re_blue, line, 14)) {
[INFO] [stderr] 18 +         if counts(&re_green, line, 13) && counts(&re_red, line, 12) && counts(&re_blue, line, 14)  {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/solutions/year_2023/day2.rs:32:16
[INFO] [stderr]    |
[INFO] [stderr] 32 |             if (digit_match.as_str().parse::<i32>().unwrap() > max) {
[INFO] [stderr]    |                ^                                                  ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 32 -             if (digit_match.as_str().parse::<i32>().unwrap() > max) {
[INFO] [stderr] 32 +             if digit_match.as_str().parse::<i32>().unwrap() > max  {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/solutions/year_2023/day3.rs:54:12
[INFO] [stderr]    |
[INFO] [stderr] 54 |         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stderr]    |            ^                                                           ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 54 -         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stderr] 54 +         if new_y < height && new_y >= 0 && new_x >= 0 && new_x < width  {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/solutions/year_2023/day3.rs:55:16
[INFO] [stderr]    |
[INFO] [stderr] 55 |             if (!map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stderr]    |                ^
[INFO] [stderr] 56 |                 && map[new_y as usize][new_x as usize] != '.') {
[INFO] [stderr]    |                                                              ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 55 ~             if !map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stderr] 56 ~                 && map[new_y as usize][new_x as usize] != '.'  {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/solutions/year_2023/day3.rs:66:8
[INFO] [stderr]    |
[INFO] [stderr] 66 |     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stderr]    |        ^                                         ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 66 -     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stderr] 66 +     if x >= width || !map[y][x].is_ascii_digit()  {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/solutions/year_2023/day3.rs:70:8
[INFO] [stderr]    |
[INFO] [stderr] 70 |     if (map[y][x].is_ascii_digit()) {
[INFO] [stderr]    |        ^                          ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 70 -     if (map[y][x].is_ascii_digit()) {
[INFO] [stderr] 70 +     if map[y][x].is_ascii_digit()  {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/solutions/year_2023/day3.rs:128:12
[INFO] [stderr]     |
[INFO] [stderr] 128 |         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stderr]     |            ^                                                           ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 128 -         if (new_y < height && new_y >= 0 && new_x >= 0 && new_x < width) {
[INFO] [stderr] 128 +         if new_y < height && new_y >= 0 && new_x >= 0 && new_x < width  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/solutions/year_2023/day3.rs:129:16
[INFO] [stderr]     |
[INFO] [stderr] 129 |             if (!map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stderr]     |                ^
[INFO] [stderr] 130 |                 && map[new_y as usize][new_x as usize] == '*') {
[INFO] [stderr]     |                                                              ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 129 ~             if !map[new_y as usize][new_x as usize].is_ascii_digit()
[INFO] [stderr] 130 ~                 && map[new_y as usize][new_x as usize] == '*'  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/solutions/year_2023/day3.rs:142:8
[INFO] [stderr]     |
[INFO] [stderr] 142 |     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stderr]     |        ^                                         ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 142 -     if (x >= width || !map[y][x].is_ascii_digit()) {
[INFO] [stderr] 142 +     if x >= width || !map[y][x].is_ascii_digit()  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/solutions/year_2023/day3.rs:155:8
[INFO] [stderr]     |
[INFO] [stderr] 155 |     if (map[y][x].is_ascii_digit()) {
[INFO] [stderr]     |        ^                          ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 155 -     if (map[y][x].is_ascii_digit()) {
[INFO] [stderr] 155 +     if map[y][x].is_ascii_digit()  {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::ops::Not`
[INFO] [stderr]  --> src/solutions/year_2023/day10.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::ops::Not;
[INFO] [stderr]   |     ^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/solutions/year_2023/day11.rs:110:36
[INFO] [stderr]     |
[INFO] [stderr] 110 |                 let expand_count = ((r2 - r1).abs() );
[INFO] [stderr]     |                                    ^               ^^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 110 -                 let expand_count = ((r2 - r1).abs() );
[INFO] [stderr] 110 +                 let expand_count = (r2 - r1).abs() ;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/solutions/year_2023/day11.rs:127:36
[INFO] [stderr]     |
[INFO] [stderr] 127 |                 let expand_count = ((c2 - c1).abs() );
[INFO] [stderr]     |                                    ^               ^^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 127 -                 let expand_count = ((c2 - c1).abs() );
[INFO] [stderr] 127 +                 let expand_count = (c2 - c1).abs() ;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Mul` and `Sub`
[INFO] [stderr]  --> src/solutions/year_2024/day2.rs:3:16
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::ops::{Mul, Sub};
[INFO] [stderr]   |                ^^^  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Mul` and `Sub`
[INFO] [stderr]  --> src/solutions/year_2024/day3.rs:4:16
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::ops::{Mul, Sub};
[INFO] [stderr]   |                ^^^  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Mul` and `Sub`
[INFO] [stderr]  --> src/solutions/year_2024/day4.rs:3:16
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::ops::{Mul, Sub};
[INFO] [stderr]   |                ^^^  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/solutions/year_2024/day13.rs:114:21
[INFO] [stderr]     |
[INFO] [stderr] 114 |         let right = (target.0 * b.1 - target.1 * b.0);
[INFO] [stderr]     |                     ^                               ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 114 -         let right = (target.0 * b.1 - target.1 * b.0);
[INFO] [stderr] 114 +         let right = target.0 * b.1 - target.1 * b.0 ;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::ops::Index`
[INFO] [stderr]  --> src/solutions/year_2024/day15.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::ops::Index;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::time::Duration`
[INFO] [stderr]  --> src/solutions/year_2024/day15.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::time::Duration;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `thread`
[INFO] [stderr]  --> src/solutions/year_2024/day15.rs:5:15
[INFO] [stderr]   |
[INFO] [stderr] 5 | use std::{fs, thread};
[INFO] [stderr]   |               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around method argument
[INFO] [stderr]    --> src/solutions/year_2024/day16.rs:299:25
[INFO] [stderr]     |
[INFO] [stderr] 299 |                         (ScoreWithPrev::new(
[INFO] [stderr]     |                         ^
[INFO] [stderr] ...
[INFO] [stderr] 302 |                         )),
[INFO] [stderr]     |                          ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 299 ~                         ScoreWithPrev::new(
[INFO] [stderr] 300 |                             Score::new(pop.score.y, pop.score.x, Facing::Up, pop.score.cost + 1000),
[INFO] [stderr] 301 |                             Some(pop.score.clone()),
[INFO] [stderr] 302 ~                         ) ,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around method argument
[INFO] [stderr]    --> src/solutions/year_2024/day16.rs:314:25
[INFO] [stderr]     |
[INFO] [stderr] 314 |                         (ScoreWithPrev::new(
[INFO] [stderr]     |                         ^
[INFO] [stderr] ...
[INFO] [stderr] 322 |                         )),
[INFO] [stderr]     |                          ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 314 ~                         ScoreWithPrev::new(
[INFO] [stderr] 315 |                             Score::new(
[INFO] [stderr] ...
[INFO] [stderr] 321 |                             Some(pop.score.clone()),
[INFO] [stderr] 322 ~                         ) ,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around method argument
[INFO] [stderr]    --> src/solutions/year_2024/day16.rs:334:25
[INFO] [stderr]     |
[INFO] [stderr] 334 |                         (ScoreWithPrev::new(
[INFO] [stderr]     |                         ^
[INFO] [stderr] ...
[INFO] [stderr] 342 |                         )),
[INFO] [stderr]     |                          ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 334 ~                         ScoreWithPrev::new(
[INFO] [stderr] 335 |                             Score::new(
[INFO] [stderr] ...
[INFO] [stderr] 341 |                             Some(pop.score.clone()),
[INFO] [stderr] 342 ~                         ) ,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around method argument
[INFO] [stderr]    --> src/solutions/year_2024/day16.rs:354:25
[INFO] [stderr]     |
[INFO] [stderr] 354 |                         (ScoreWithPrev::new(
[INFO] [stderr]     |                         ^
[INFO] [stderr] ...
[INFO] [stderr] 362 |                         )),
[INFO] [stderr]     |                          ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 354 ~                         ScoreWithPrev::new(
[INFO] [stderr] 355 |                             Score::new(
[INFO] [stderr] ...
[INFO] [stderr] 361 |                             Some(pop.score.clone()),
[INFO] [stderr] 362 ~                         ) ,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Mul` and `Sub`
[INFO] [stderr]  --> src/solutions/year_2024/day18.rs:4:16
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::ops::{Mul, Sub};
[INFO] [stderr]   |                ^^^  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `max`
[INFO] [stderr]  --> src/solutions/year_2024/day19.rs:1:16
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::cmp::{max, min};
[INFO] [stderr]   |                ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Mul` and `Sub`
[INFO] [stderr]  --> src/solutions/year_2024/day19.rs:5:16
[INFO] [stderr]   |
[INFO] [stderr] 5 | use std::ops::{Mul, Sub};
[INFO] [stderr]   |                ^^^  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Mul` and `Sub`
[INFO] [stderr]  --> src/solutions/year_2024/day20.rs:4:16
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::ops::{Mul, Sub};
[INFO] [stderr]   |                ^^^  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around assigned value
[INFO] [stderr]    --> src/solutions/year_2024/day20.rs:147:28
[INFO] [stderr]     |
[INFO] [stderr] 147 |                 let diff = (*path_counter.get(&current).unwrap()
[INFO] [stderr]     |                            ^
[INFO] [stderr] 148 |                     - *path_counter.get(&(next_y, next_x)).unwrap());
[INFO] [stderr]     |                                                                    ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 147 ~                 let diff = *path_counter.get(&current).unwrap()
[INFO] [stderr] 148 ~                     - *path_counter.get(&(next_y, next_x)).unwrap() ;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Mul` and `Sub`
[INFO] [stderr]  --> src/solutions/year_2024/day21.rs:4:16
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::ops::{Mul, Sub};
[INFO] [stderr]   |                ^^^  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Mul` and `Sub`
[INFO] [stderr]  --> src/solutions/year_2024/day22.rs:4:16
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::ops::{Mul, Sub};
[INFO] [stderr]   |                ^^^  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Mul` and `Sub`
[INFO] [stderr]  --> src/solutions/year_2024/day23.rs:5:16
[INFO] [stderr]   |
[INFO] [stderr] 5 | use std::ops::{Mul, Sub};
[INFO] [stderr]   |                ^^^  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Mul` and `Sub`
[INFO] [stderr]  --> src/solutions/year_2024/day24.rs:5:16
[INFO] [stderr]   |
[INFO] [stderr] 5 | use std::ops::{Mul, Sub};
[INFO] [stderr]   |                ^^^  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Mul` and `Sub`
[INFO] [stderr]  --> src/solutions/year_2024/day25.rs:3:16
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::ops::{Mul, Sub};
[INFO] [stderr]   |                ^^^  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::io::BufRead`
[INFO] [stderr]  --> src/solutions/year_2024/day5.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::io::BufRead;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::io::Write`
[INFO] [stderr]  --> src/solutions/year_2024/day16.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use std::io::Write;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/solutions/year_2023/day3.rs:64:17
[INFO] [stderr]    |
[INFO] [stderr] 64 | fn trace_number(mut current: String, y: usize, x: usize, map: &Vec<Vec<char>>, visited: &mut Vec<Vec<bool>>, is_near_symbol: bool) -...
[INFO] [stderr]    |                 ----^^^^^^^
[INFO] [stderr]    |                 |
[INFO] [stderr]    |                 help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/solutions/year_2023/day3.rs:138:18
[INFO] [stderr]     |
[INFO] [stderr] 138 | fn trace_number2(mut current: String, y: usize, x: usize, map: &Vec<Vec<char>>, visited: &mut Vec<Vec<bool>>,
[INFO] [stderr]     |                  ----^^^^^^^
[INFO] [stderr]     |                  |
[INFO] [stderr]     |                  help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `other`
[INFO] [stderr]   --> src/solutions/year_2023/day7.rs:27:18
[INFO] [stderr]    |
[INFO] [stderr] 27 |     fn eq(&self, other: &Self) -> bool {
[INFO] [stderr]    |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/solutions/year_2023/day7.rs:142:9
[INFO] [stderr]     |
[INFO] [stderr] 142 |     let mut lines = content.lines();
[INFO] [stderr]     |         ----^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `other`
[INFO] [stderr]    --> src/solutions/year_2023/day7.rs:163:18
[INFO] [stderr]     |
[INFO] [stderr] 163 |     fn eq(&self, other: &Self) -> bool {
[INFO] [stderr]     |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/solutions/year_2023/day7.rs:291:9
[INFO] [stderr]     |
[INFO] [stderr] 291 |     let mut lines = content.lines();
[INFO] [stderr]     |         ----^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/solutions/year_2023/day8.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr] 10 |     let mut iter = lines.skip(1);
[INFO] [stderr]    |         ----^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/solutions/year_2023/day8.rs:41:9
[INFO] [stderr]    |
[INFO] [stderr] 41 |     let mut iter = lines.skip(1);
[INFO] [stderr]    |         ----^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]  --> src/solutions/year_2023/day9.rs:6:9
[INFO] [stderr]   |
[INFO] [stderr] 6 |     let mut lines = content.lines();
[INFO] [stderr]   |         ----^^^^^
[INFO] [stderr]   |         |
[INFO] [stderr]   |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/solutions/year_2023/day9.rs:42:9
[INFO] [stderr]    |
[INFO] [stderr] 42 |     let mut lines = content.lines();
[INFO] [stderr]    |         ----^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]  --> src/solutions/year_2023/day10.rs:8:9
[INFO] [stderr]   |
[INFO] [stderr] 8 |     let mut lines = content.lines();
[INFO] [stderr]   |         ----^^^^^
[INFO] [stderr]   |         |
[INFO] [stderr]   |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/solutions/year_2023/day10.rs:147:9
[INFO] [stderr]     |
[INFO] [stderr] 147 |     let mut lines = content.lines();
[INFO] [stderr]     |         ----^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]  --> src/solutions/year_2023/day11.rs:6:9
[INFO] [stderr]   |
[INFO] [stderr] 6 |     let mut lines = content.lines();
[INFO] [stderr]   |         ----^^^^^
[INFO] [stderr]   |         |
[INFO] [stderr]   |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/solutions/year_2023/day11.rs:64:9
[INFO] [stderr]    |
[INFO] [stderr] 64 |     let mut lines = content.lines();
[INFO] [stderr]    |         ----^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `success`
[INFO] [stderr]   --> src/solutions/year_2024/day2.rs:11:13
[INFO] [stderr]    |
[INFO] [stderr] 11 |         let success = match pass_the_test(nums) {
[INFO] [stderr]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_success`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `value`
[INFO] [stderr]   --> src/solutions/year_2024/day2.rs:12:18
[INFO] [stderr]    |
[INFO] [stderr] 12 |             Some(value) => total += 1,
[INFO] [stderr]    |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]  --> src/solutions/year_2024/day6.rs:8:9
[INFO] [stderr]   |
[INFO] [stderr] 8 |     let mut total = 0i64;
[INFO] [stderr]   |         ----^^^^^
[INFO] [stderr]   |         |
[INFO] [stderr]   |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `total`
[INFO] [stderr]  --> src/solutions/year_2024/day6.rs:8:9
[INFO] [stderr]   |
[INFO] [stderr] 8 |     let mut total = 0i64;
[INFO] [stderr]   |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `c`
[INFO] [stderr]   --> src/solutions/year_2024/day8.rs:29:22
[INFO] [stderr]    |
[INFO] [stderr] 29 |         .flat_map(|(&c, positions)| {
[INFO] [stderr]    |                      ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `c`
[INFO] [stderr]   --> src/solutions/year_2024/day8.rs:91:22
[INFO] [stderr]    |
[INFO] [stderr] 91 |         .flat_map(|(&c, positions)| {
[INFO] [stderr]    |                      ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `block_index`
[INFO] [stderr]   --> src/solutions/year_2024/day9.rs:60:10
[INFO] [stderr]    |
[INFO] [stderr] 60 |     for (block_index, c) in input.chars().enumerate() {
[INFO] [stderr]    |          ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_block_index`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `target_count`
[INFO] [stderr]   --> src/solutions/year_2024/day9.rs:87:19
[INFO] [stderr]    |
[INFO] [stderr] 87 |             Some((target_count, target_index)) => {
[INFO] [stderr]    |                   ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_target_count`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]   --> src/solutions/year_2024/day10.rs:10:10
[INFO] [stderr]    |
[INFO] [stderr] 10 |     for (i, &line) in lines.iter().enumerate() {
[INFO] [stderr]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `j`
[INFO] [stderr]   --> src/solutions/year_2024/day10.rs:12:14
[INFO] [stderr]    |
[INFO] [stderr] 12 |         for (j, c) in line.chars().enumerate() {
[INFO] [stderr]    |              ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]   --> src/solutions/year_2024/day10.rs:84:10
[INFO] [stderr]    |
[INFO] [stderr] 84 |     for (i, &line) in lines.iter().enumerate() {
[INFO] [stderr]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `j`
[INFO] [stderr]   --> src/solutions/year_2024/day10.rs:86:14
[INFO] [stderr]    |
[INFO] [stderr] 86 |         for (j, c) in line.chars().enumerate() {
[INFO] [stderr]    |              ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/solutions/year_2024/day15.rs:199:9
[INFO] [stderr]     |
[INFO] [stderr] 199 |     let mut next = (robot.0 + direction.0, robot.1 + direction.1);
[INFO] [stderr]     |         ----^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/solutions/year_2024/day15.rs:209:9
[INFO] [stderr]     |
[INFO] [stderr] 209 |     let mut boxes_at_next = is_box(next, boxes, direction);
[INFO] [stderr]     |         ----^^^^^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `target`
[INFO] [stderr]    --> src/solutions/year_2024/day16.rs:370:9
[INFO] [stderr]     |
[INFO] [stderr] 370 |     let target = Score::new(start_point.0, start_point.1, Right, 0);
[INFO] [stderr]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/solutions/year_2024/day17.rs:22:9
[INFO] [stderr]    |
[INFO] [stderr] 22 |     let mut a_value = re
[INFO] [stderr]    |         ----^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/solutions/year_2024/day17.rs:28:9
[INFO] [stderr]    |
[INFO] [stderr] 28 |     let mut b_value = re
[INFO] [stderr]    |         ----^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/solutions/year_2024/day17.rs:34:9
[INFO] [stderr]    |
[INFO] [stderr] 34 |     let mut c_value = re
[INFO] [stderr]    |         ----^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/solutions/year_2024/day18.rs:21:9
[INFO] [stderr]    |
[INFO] [stderr] 21 |     let mut current = (0, 0);
[INFO] [stderr]    |         ----^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/solutions/year_2024/day18.rs:82:9
[INFO] [stderr]    |
[INFO] [stderr] 82 |     let mut current = (0, 0);
[INFO] [stderr]    |         ----^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `count` is assigned to, but never used
[INFO] [stderr]   --> src/solutions/year_2024/day18.rs:85:9
[INFO] [stderr]    |
[INFO] [stderr] 85 |     let mut count = 0;
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: consider using `_count` instead
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `count` is never read
[INFO] [stderr]    --> src/solutions/year_2024/day18.rs:113:9
[INFO] [stderr]     |
[INFO] [stderr] 113 |         count += 1;
[INFO] [stderr]     |         ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `debug_current`
[INFO] [stderr]    --> src/solutions/year_2024/day21.rs:102:5
[INFO] [stderr]     |
[INFO] [stderr] 102 |     debug_current: char,
[INFO] [stderr]     |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_debug_current`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/solutions/year_2024/day23.rs:11:13
[INFO] [stderr]    |
[INFO] [stderr] 11 |         let mut link: Vec<&str> = line.split("-").collect();
[INFO] [stderr]    |             ----^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/solutions/year_2024/day23.rs:74:25
[INFO] [stderr]    |
[INFO] [stderr] 74 |             if let Some(mut founds) = dfs(from, to, links, hop - 1, visited) {
[INFO] [stderr]    |                         ----^^^^^^
[INFO] [stderr]    |                         |
[INFO] [stderr]    |                         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/solutions/year_2024/day23.rs:91:13
[INFO] [stderr]    |
[INFO] [stderr] 91 |         let mut link: Vec<&str> = line.split("-").collect();
[INFO] [stderr]    |             ----^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/solutions/year_2024/day23.rs:122:9
[INFO] [stderr]     |
[INFO] [stderr] 122 |     let mut link_to = links.get(from).unwrap();
[INFO] [stderr]     |         ----^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `input`
[INFO] [stderr]   --> src/solutions/year_2024/day25.rs:53:9
[INFO] [stderr]    |
[INFO] [stderr] 53 |     let input = fs::read_to_string("src/solutions/year_2024/day25.txt")?;
[INFO] [stderr]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stderr] 
[INFO] [stderr] warning: using `.deref()` on a double reference, which returns `&year_2020::day2::Input` instead of dereferencing the inner type
[INFO] [stderr]   --> src/solutions/year_2020/day2.rs:60:40
[INFO] [stderr]    |
[INFO] [stderr] 60 |     inputs.iter().filter(|x| is_valid(x.deref())).count()
[INFO] [stderr]    |                                        ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stderr]   --> src/solutions/year_2021/day12.rs:58:17
[INFO] [stderr]    |
[INFO] [stderr] 58 |     for adjs in path.get(current) {
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]    |
[INFO] [stderr] 58 -     for adjs in path.get(current) {
[INFO] [stderr] 58 +     while let Some(adjs) = path.get(current) {
[INFO] [stderr]    |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]    |
[INFO] [stderr] 58 -     for adjs in path.get(current) {
[INFO] [stderr] 58 +     if let Some(adjs) = path.get(current) {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stderr]   --> src/solutions/year_2021/day12.rs:99:17
[INFO] [stderr]    |
[INFO] [stderr] 99 |     for adjs in path.get(current) {
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]    |
[INFO] [stderr] 99 -     for adjs in path.get(current) {
[INFO] [stderr] 99 +     while let Some(adjs) = path.get(current) {
[INFO] [stderr]    |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]    |
[INFO] [stderr] 99 -     for adjs in path.get(current) {
[INFO] [stderr] 99 +     if let Some(adjs) = path.get(current) {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stderr]    --> src/solutions/year_2021/day16.rs:141:26
[INFO] [stderr]     |
[INFO] [stderr] 141 |                 for p in packet.1 {
[INFO] [stderr]     |                          ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]     |
[INFO] [stderr] 141 -                 for p in packet.1 {
[INFO] [stderr] 141 +                 while let Some(p) = packet.1 {
[INFO] [stderr]     |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]     |
[INFO] [stderr] 141 -                 for p in packet.1 {
[INFO] [stderr] 141 +                 if let Some(p) = packet.1 {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stderr]    --> src/solutions/year_2021/day16.rs:153:26
[INFO] [stderr]     |
[INFO] [stderr] 153 |                 for p in packet.1 {
[INFO] [stderr]     |                          ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]     |
[INFO] [stderr] 153 -                 for p in packet.1 {
[INFO] [stderr] 153 +                 while let Some(p) = packet.1 {
[INFO] [stderr]     |
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]     |
[INFO] [stderr] 153 -                 for p in packet.1 {
[INFO] [stderr] 153 +                 if let Some(p) = packet.1 {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: `advent_of_code` (bin "advent_of_code" test) generated 83 warnings (run `cargo fix --bin "advent_of_code" -p advent_of_code --tests` to apply 74 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.08s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/advent_of_code-5c36a2ed6f1dbfd4)
[INFO] [stdout] 
[INFO] [stdout] running 152 tests
[INFO] [stdout] test solutions::year_2020::day10::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day13::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2020::day10::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2020::day13::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day15::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day12::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2020::day1::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2020::day14::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day18::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2020::day16::tests::test ... ok
[INFO] [stdout] test solutions::year_2020::day22::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day18::tests::test ... ok
[INFO] [stdout] test solutions::year_2020::day1::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2020::day23::tests::test ... ok
[INFO] [stdout] test solutions::year_2020::day21::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day16::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2020::day21::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2020::day2::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2020::day19::tests::test ... ok
[INFO] [stdout] test solutions::year_2020::day3::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2020::day12::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day2::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2020::day3::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2020::day5::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day17::tests::test ... ok
[INFO] [stdout] test solutions::year_2020::day5::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2020::day6::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day8::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day7::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day7::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2020::day9::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2020::day9::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2021::day10::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day11::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2020::day8::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2021::day11::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day10::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2020::day19::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2021::day13::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day13::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day12::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day14::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2020::day20::tests::test ... ok
[INFO] [stdout] test solutions::year_2021::day15::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day16::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day17::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day17::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day1::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day16::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2020::day11::tests::test1 ... ok
[INFO] [stdout] test solutions::year_2021::day2::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day1::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day2::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day3::test::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day3::test::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day4::test::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day4::test::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day6::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day6::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day7::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day7::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day8::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day14::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day9::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day9::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2020::day14::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2023::day10::test::test_day10 ... ok
[INFO] [stdout] test solutions::year_2023::day11::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2020::day25::tests::test ... ok
[INFO] [stdout] test solutions::year_2023::day1::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2023::day1::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2023::day2::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2023::day2::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2023::day11::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2020::day4::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2023::day3::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2023::day3::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2023::day5::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2023::day4::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2023::day6::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2021::day5::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2023::day7::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2020::day4::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2023::day8::tests::test_day8 ... ok
[INFO] [stdout] test solutions::year_2023::day7::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2023::day9::test::test_day9 ... ok
[INFO] [stdout] test solutions::year_2023::day9::test::test_day9_2 ... ok
[INFO] [stdout] test solutions::year_2024::day10::tests::test_day10_1 ... ok
[INFO] [stdout] test solutions::year_2024::day10::tests::test_day10_2 ... ok
[INFO] [stdout] test solutions::year_2023::day4::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2023::day8::tests::test_day8_2 ... ok
[INFO] [stdout] test solutions::year_2020::day17::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2024::day12::tests::test_day12_1 ... ok
[INFO] [stdout] test solutions::year_2021::day5::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2020::day11::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2024::day14::tests::test_day14_1 ... ok
[INFO] [stdout] test solutions::year_2024::day12::tests::test_day12_2 ... ok
[INFO] [stdout] test solutions::year_2024::day15::tests::test_day15_1 ... ok
[INFO] [stdout] test solutions::year_2024::day15::tests::test_day15_2 ... ok
[INFO] [stdout] test solutions::year_2021::day15::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2024::day11::tests::test_day11_1 ... ok
[INFO] [stdout] test solutions::year_2024::day17::tests::test_day17_1 ... ok
[INFO] [stdout] test solutions::year_2024::day17::tests::test_day17_2 ... ok
[INFO] [stdout] test solutions::year_2024::day18::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2024::day16::tests::test_day16_1 ... ok
[INFO] [stdout] test solutions::year_2024::day19::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2024::day11::tests::test_day11_2 ... ok
[INFO] [stdout] test solutions::year_2024::day1::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2024::day1::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2024::day16::tests::test_day16_2 ... ok
[INFO] [stdout] test solutions::year_2024::day20::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2024::day21::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2024::day19::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2024::day21::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2021::day12::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2023::day6::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2024::day22::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2024::day24::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2023::day10::test::test_day10_2 ... ok
[INFO] [stdout] test solutions::year_2024::day25::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2024::day25::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2024::day2::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2024::day2::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2024::day3::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2024::day3::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2024::day4::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2024::day4::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2024::day5::test::test_day5_1 ... ok
[INFO] [stdout] test solutions::year_2024::day5::test::test_day5_2 ... ok
[INFO] [stdout] test solutions::year_2024::day6::tests::test_day6 ... ok
[INFO] [stdout] test solutions::year_2024::day13::tests::test_day13_1 ... ok
[INFO] [stdout] test solutions::year_2024::day7::tests::test_day7_1 ... ok
[INFO] [stdout] test solutions::year_2024::day13::tests::test_day13_2 ... ok
[INFO] [stdout] test solutions::year_2024::day8::tests::test_day8_1 ... ok
[INFO] [stdout] test solutions::year_2024::day8::tests::test_day8_2 ... ok
[INFO] [stdout] test solutions::year_2020::day24::tests::test ... ok
[INFO] [stdout] test solutions::year_2024::day9::tests::test_day9_1 ... ok
[INFO] [stdout] test solutions::year_2024::day24::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2024::day9::tests::test_day9_2 ... ok
[INFO] [stdout] test solutions::year_2024::day23::tests::test_first ... ok
[INFO] [stdout] test solutions::year_2024::day7::tests::test_day7_2 ... ok
[INFO] [stdout] test solutions::year_2020::day23::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2020::day22::tests::test2 ... ok
[INFO] [stdout] test solutions::year_2024::day20::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2020::day15::tests::test2 has been running for over 60 seconds
[INFO] [stdout] test solutions::year_2021::day8::tests::test_second has been running for over 60 seconds
[INFO] [stdout] test solutions::year_2023::day5::tests::test_second has been running for over 60 seconds
[INFO] [stdout] test solutions::year_2024::day14::tests::test_day14_2 has been running for over 60 seconds
[INFO] [stdout] test solutions::year_2024::day18::tests::test_second has been running for over 60 seconds
[INFO] [stdout] test solutions::year_2024::day22::tests::test_second has been running for over 60 seconds
[INFO] [stdout] test solutions::year_2024::day23::tests::test_second has been running for over 60 seconds
[INFO] [stdout] test solutions::year_2024::day22::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2024::day6::tests::test_day6_2 has been running for over 60 seconds
[INFO] [stdout] test solutions::year_2024::day14::tests::test_day14_2 ... ok
[INFO] [stdout] test solutions::year_2024::day23::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2024::day18::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2024::day6::tests::test_day6_2 ... ok
[INFO] [stdout] test solutions::year_2021::day8::tests::test_second ... ok
[INFO] [stdout] test solutions::year_2020::day15::tests::test2 ... ok
[ERROR] error running command: no output for 300 seconds
[INFO] running `Command { std: "docker" "inspect" "800704324fa8c77f78ab60fd5fdbdd8cf71c88a8d78d729a6a4791b6256865fe", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "800704324fa8c77f78ab60fd5fdbdd8cf71c88a8d78d729a6a4791b6256865fe", kill_on_drop: false }`
[INFO] [stdout] 800704324fa8c77f78ab60fd5fdbdd8cf71c88a8d78d729a6a4791b6256865fe
