[INFO] cloning repository https://github.com/chasefarmer2808/adventofcode_2023
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/chasefarmer2808/adventofcode_2023" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fchasefarmer2808%2Fadventofcode_2023", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fchasefarmer2808%2Fadventofcode_2023'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6b4aa69ad4282b191a14590535a299c8d0ff6160
[INFO] checking chasefarmer2808/adventofcode_2023 against master#3350c1eb3fd8fe1bee1ed4c76944d707bd256876 for pr-140558
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fchasefarmer2808%2Fadventofcode_2023" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/chasefarmer2808/adventofcode_2023 on toolchain 3350c1eb3fd8fe1bee1ed4c76944d707bd256876
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3350c1eb3fd8fe1bee1ed4c76944d707bd256876" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/chasefarmer2808/adventofcode_2023
[INFO] finished tweaking git repo https://github.com/chasefarmer2808/adventofcode_2023
[INFO] tweaked toml for git repo https://github.com/chasefarmer2808/adventofcode_2023 written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/chasefarmer2808/adventofcode_2023 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" "+3350c1eb3fd8fe1bee1ed4c76944d707bd256876" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+3350c1eb3fd8fe1bee1ed4c76944d707bd256876" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f0749f1a84b7dfe94e139ccaee5640669a98d895f34923b345cf4a8b05d4cae4
[INFO] running `Command { std: "docker" "start" "-a" "f0749f1a84b7dfe94e139ccaee5640669a98d895f34923b345cf4a8b05d4cae4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f0749f1a84b7dfe94e139ccaee5640669a98d895f34923b345cf4a8b05d4cae4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f0749f1a84b7dfe94e139ccaee5640669a98d895f34923b345cf4a8b05d4cae4", kill_on_drop: false }`
[INFO] [stdout] f0749f1a84b7dfe94e139ccaee5640669a98d895f34923b345cf4a8b05d4cae4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+3350c1eb3fd8fe1bee1ed4c76944d707bd256876" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1597c3d9ac250e15fea48bccb290382f0a4b865139a890b0857f14c262882a68
[INFO] running `Command { std: "docker" "start" "-a" "1597c3d9ac250e15fea48bccb290382f0a4b865139a890b0857f14c262882a68", kill_on_drop: false }`
[INFO] [stderr]     Checking memchr v2.6.4
[INFO] [stderr]     Checking regex-syntax v0.8.2
[INFO] [stderr]     Checking aho-corasick v1.1.2
[INFO] [stderr]     Checking regex-automata v0.4.3
[INFO] [stderr]     Checking regex v1.10.2
[INFO] [stderr]     Checking adventofcode_2023 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/day02/mod.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 |         if (max_red > red_config) {
[INFO] [stdout]    |            ^                    ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 39 -         if (max_red > red_config) {
[INFO] [stdout] 39 +         if max_red > red_config {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/day02/mod.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 |         if (max_green > green_config) {
[INFO] [stdout]    |            ^                        ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 47 -         if (max_green > green_config) {
[INFO] [stdout] 47 +         if max_green > green_config {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/day02/mod.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 55 |         if (max_blue > blue_config) {
[INFO] [stdout]    |            ^                      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 55 -         if (max_blue > blue_config) {
[INFO] [stdout] 55 +         if max_blue > blue_config {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `print_matrix`
[INFO] [stdout]  --> src/day03/mod.rs:1:20
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::utils::{print_matrix, read_lines};
[INFO] [stdout]   |                    ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::Cow::Owned`
[INFO] [stdout]  --> src/day04/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::Cow::Owned;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::min`
[INFO] [stdout]  --> src/day04/mod.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::min;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/day04/mod.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout] 101 |         if (num_matches == 0) {
[INFO] [stdout]     |            ^                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 101 -         if (num_matches == 0) {
[INFO] [stdout] 101 +         if num_matches == 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]  --> src/day05/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::hash::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::rename`
[INFO] [stdout]   --> src/day07/mod.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 51 | use std::fs::rename;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/day02/mod.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 |         if (max_red > red_config) {
[INFO] [stdout]    |            ^                    ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 39 -         if (max_red > red_config) {
[INFO] [stdout] 39 +         if max_red > red_config {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/day02/mod.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 |         if (max_green > green_config) {
[INFO] [stdout]    |            ^                        ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 47 -         if (max_green > green_config) {
[INFO] [stdout] 47 +         if max_green > green_config {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/day02/mod.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 55 |         if (max_blue > blue_config) {
[INFO] [stdout]    |            ^                      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 55 -         if (max_blue > blue_config) {
[INFO] [stdout] 55 +         if max_blue > blue_config {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `print_matrix`
[INFO] [stdout]  --> src/day03/mod.rs:1:20
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::utils::{print_matrix, read_lines};
[INFO] [stdout]   |                    ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::Cow::Owned`
[INFO] [stdout]  --> src/day04/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::Cow::Owned;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::min`
[INFO] [stdout]  --> src/day04/mod.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::min;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/day04/mod.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout] 101 |         if (num_matches == 0) {
[INFO] [stdout]     |            ^                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 101 -         if (num_matches == 0) {
[INFO] [stdout] 101 +         if num_matches == 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]  --> src/day05/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::hash::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::rename`
[INFO] [stdout]   --> src/day07/mod.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 51 | use std::fs::rename;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `values`
[INFO] [stdout]   --> src/day01/mod.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let mut values: Vec<u32> = Vec::new();
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_values`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day01/mod.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let mut values: Vec<u32> = Vec::new();
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day02/mod.rs:72:10
[INFO] [stdout]    |
[INFO] [stdout] 72 |     for (i, game) in games.iter().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/day03/mod.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 |     let mut engin_map = create_engin_map_matrix(read_lines(input_file));
[INFO] [stdout]   |         ----^^^^^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `engin_map`
[INFO] [stdout]   --> src/day03/mod.rs:43:13
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let mut engin_map = create_engin_map_matrix(read_lines(input_file));
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_engin_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `possible_gears`
[INFO] [stdout]   --> src/day03/mod.rs:44:13
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let mut possible_gears: Vec<Vec<u32>> = Vec::new();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_possible_gears`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day03/mod.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let mut engin_map = create_engin_map_matrix(read_lines(input_file));
[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/day03/mod.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let mut possible_gears: Vec<Vec<u32>> = Vec::new();
[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/day03/mod.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |     let mut sum: u32 = 0;
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day04/mod.rs:19:10
[INFO] [stdout]    |
[INFO] [stdout] 19 |     for (i, card) in cards.iter().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min`
[INFO] [stdout]    --> src/day05/mod.rs:112:13
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let mut min = i64::MAX;
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_min`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day05/mod.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let mut min = i64::MAX;
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `margin_of_error`
[INFO] [stdout]   --> src/day06/mod.rs:47:13
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let mut margin_of_error = 1;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_margin_of_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day06/mod.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let mut margin_of_error = 1;
[INFO] [stdout]    |         ----^^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `steps`
[INFO] [stdout]   --> src/day08/mod.rs:44:13
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let mut steps = 0;
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_steps`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `values`
[INFO] [stdout]   --> src/day01/mod.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let mut values: Vec<u32> = Vec::new();
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_values`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day08/mod.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let mut steps = 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/day01/mod.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let mut values: Vec<u32> = Vec::new();
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `soln` is never used
[INFO] [stdout]   --> src/day01/mod.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn soln(input_file: &str) -> u32 {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_two` is never used
[INFO] [stdout]   --> src/day01/mod.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn part_two(input_file: &str) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_lines` is never used
[INFO] [stdout]   --> src/day01/mod.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn read_lines(filename: &str) -> Vec<String> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_digits` is never used
[INFO] [stdout]   --> src/day01/mod.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn parse_digits(line: &str) -> Vec<u32> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `digit_str_to_int` is never used
[INFO] [stdout]   --> src/day01/mod.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn digit_str_to_int(digit: &str) -> u32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_two_digit_int` is never used
[INFO] [stdout]   --> src/day01/mod.rs:69:4
[INFO] [stdout]    |
[INFO] [stdout] 69 | fn to_two_digit_int(a: u32, b: u32) -> u32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_one` is never used
[INFO] [stdout]   --> src/day02/mod.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn part_one(input_file: &str, red_config: u32, green_config: u32, blue_config: u32) -> u32 {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_two` is never used
[INFO] [stdout]   --> src/day02/mod.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn part_two(input_file: &str) -> u32 {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_matrix` is never used
[INFO] [stdout]   --> src/utils/mod.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn print_matrix(matrix: Vec<Vec<char>>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_one` is never used
[INFO] [stdout]  --> src/day03/mod.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn part_one(input_file: &str) -> u32 {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_two` is never used
[INFO] [stdout]   --> src/day03/mod.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn part_two(input_file: &str) -> u32 {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_engin_map_matrix` is never used
[INFO] [stdout]   --> src/day03/mod.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn create_engin_map_matrix(map_lines: Vec<String>) -> Vec<Vec<char>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_symbol` is never used
[INFO] [stdout]   --> src/day03/mod.rs:66:4
[INFO] [stdout]    |
[INFO] [stdout] 66 | fn is_symbol(mat: &Vec<Vec<char>>, i: i32, j: i32) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_one` is never used
[INFO] [stdout]  --> src/day04/mod.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn part_one(input_file: &str) -> u32 {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_two` is never used
[INFO] [stdout]   --> src/day04/mod.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn part_two(input_file: &str) -> u32 {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Card` is never constructed
[INFO] [stdout]   --> src/day04/mod.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | struct Card {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_num_matches`, `get_point_value`, and `increment_count` are never used
[INFO] [stdout]    --> src/day04/mod.rs:81:8
[INFO] [stdout]     |
[INFO] [stdout] 80  | impl Card {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] 81  |     fn new(winning_nums: &str, player_nums: &str) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 94  |     fn get_num_matches(&self) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 98  |     fn get_point_value(&self) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn increment_count(&mut self, amount: u32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_one` is never used
[INFO] [stdout]  --> src/day05/mod.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn part_one(input_file: &str) -> i64 {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_two` is never used
[INFO] [stdout]    --> src/day05/mod.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub fn part_two(input_file: &str) -> i64 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_seeds` is never used
[INFO] [stdout]    --> src/day05/mod.rs:225:4
[INFO] [stdout]     |
[INFO] [stdout] 225 | fn parse_seeds(seed_line: &str) -> Vec<i64> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lines_to_num_strings` is never used
[INFO] [stdout]    --> src/day05/mod.rs:233:4
[INFO] [stdout]     |
[INFO] [stdout] 233 | fn lines_to_num_strings(num_lines: &[String]) -> Vec<&String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `num_strings_to_num_vecs` is never used
[INFO] [stdout]    --> src/day05/mod.rs:240:4
[INFO] [stdout]     |
[INFO] [stdout] 240 | fn num_strings_to_num_vecs(num_strings: Vec<&String>) -> Vec<Vec<i64>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_mapping` is never used
[INFO] [stdout]    --> src/day05/mod.rs:249:4
[INFO] [stdout]     |
[INFO] [stdout] 249 | fn create_mapping(dest: i64, src: i64, r: i64) -> SingleMap {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Mapping` is never constructed
[INFO] [stdout]    --> src/day05/mod.rs:254:8
[INFO] [stdout]     |
[INFO] [stdout] 254 | struct Mapping {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Mapping` has a derived impl for the trait `Default`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `apply_map` and `reverse_lookup` are never used
[INFO] [stdout]    --> src/day05/mod.rs:259:8
[INFO] [stdout]     |
[INFO] [stdout] 258 | impl Mapping {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] 259 |     fn apply_map(&self, val: i64) -> i64 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn reverse_lookup(&self, val: i64) -> i64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SingleMap` is never constructed
[INFO] [stdout]    --> src/day05/mod.rs:282:8
[INFO] [stdout]     |
[INFO] [stdout] 282 | struct SingleMap {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SingleMap` has a derived impl for the trait `Default`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_one` is never used
[INFO] [stdout]   --> src/day06/mod.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn part_one(input_file: &str) -> u64 {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_two` is never used
[INFO] [stdout]   --> src/day06/mod.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn part_two(input_file: &str) -> u64 {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Race` is never constructed
[INFO] [stdout]   --> src/day06/mod.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | struct Race {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `count_winning_scenarios` is never used
[INFO] [stdout]   --> src/day06/mod.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | impl Race {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 75 |     fn count_winning_scenarios(&self) -> u64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_one` is never used
[INFO] [stdout]   --> src/day07/mod.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub fn part_one(input_file: &str) -> u64 {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_two` is never used
[INFO] [stdout]   --> src/day07/mod.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub fn part_two(input_file: &str) -> u64 {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Hand` is never constructed
[INFO] [stdout]   --> src/day07/mod.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 96 | struct Hand {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `is_stronger` are never used
[INFO] [stdout]    --> src/day07/mod.rs:104:12
[INFO] [stdout]     |
[INFO] [stdout] 103 | impl Hand {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] 104 |     pub fn new(cards: String, bid: u64, enable_jokers: bool) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     fn is_stronger(&self, hand: &Hand) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_strength` is never used
[INFO] [stdout]    --> src/day07/mod.rs:135:4
[INFO] [stdout]     |
[INFO] [stdout] 135 | fn calculate_strength(cards: &str) -> u8 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_strength_with_jokers` is never used
[INFO] [stdout]    --> src/day07/mod.rs:179:4
[INFO] [stdout]     |
[INFO] [stdout] 179 | fn calculate_strength_with_jokers(cards: &str) -> u8 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `insert_sorted` is never used
[INFO] [stdout]    --> src/day07/mod.rs:251:4
[INFO] [stdout]     |
[INFO] [stdout] 251 | fn insert_sorted(list: &mut Vec<Hand>, new_item: Hand) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_card_value` is never used
[INFO] [stdout]    --> src/day07/mod.rs:271:4
[INFO] [stdout]     |
[INFO] [stdout] 271 | fn get_card_value(card: char, has_joker: bool) -> u8 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_one` is never used
[INFO] [stdout]  --> src/day08/mod.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn part_one(input_file: &str) -> u64 {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_two` is never used
[INFO] [stdout]   --> src/day08/mod.rs:39:8
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn part_two(input_file: &str) -> u64 {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_nodes` is never used
[INFO] [stdout]   --> src/day08/mod.rs:80:4
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn parse_nodes(nodes: &[String]) -> HashMap<String, (String, String)> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gcd` is never used
[INFO] [stdout]   --> src/day08/mod.rs:96:4
[INFO] [stdout]    |
[INFO] [stdout] 96 | fn gcd(a: u64, b: u64) -> u64 {
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lcm` is never used
[INFO] [stdout]    --> src/day08/mod.rs:104:4
[INFO] [stdout]     |
[INFO] [stdout] 104 | fn lcm(a: u64, b: u64) -> u64 {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lcm_of_list` is never used
[INFO] [stdout]    --> src/day08/mod.rs:108:4
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn lcm_of_list(numbers: &Vec<u64>) -> u64 {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_one` is never used
[INFO] [stdout]   --> src/day09/mod.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn part_one(input_file: &str) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_next_value` is never used
[INFO] [stdout]   --> src/day09/mod.rs:45:4
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn get_next_value(sequence: &Vec<i32>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day02/mod.rs:72:10
[INFO] [stdout]    |
[INFO] [stdout] 72 |     for (i, game) in games.iter().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/day03/mod.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 |     let mut engin_map = create_engin_map_matrix(read_lines(input_file));
[INFO] [stdout]   |         ----^^^^^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `engin_map`
[INFO] [stdout]   --> src/day03/mod.rs:43:13
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let mut engin_map = create_engin_map_matrix(read_lines(input_file));
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_engin_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `possible_gears`
[INFO] [stdout]   --> src/day03/mod.rs:44:13
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let mut possible_gears: Vec<Vec<u32>> = Vec::new();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_possible_gears`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day03/mod.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let mut engin_map = create_engin_map_matrix(read_lines(input_file));
[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/day03/mod.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let mut possible_gears: Vec<Vec<u32>> = Vec::new();
[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/day03/mod.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |     let mut sum: u32 = 0;
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day04/mod.rs:19:10
[INFO] [stdout]    |
[INFO] [stdout] 19 |     for (i, card) in cards.iter().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min`
[INFO] [stdout]    --> src/day05/mod.rs:112:13
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let mut min = i64::MAX;
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_min`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day05/mod.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let mut min = i64::MAX;
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `margin_of_error`
[INFO] [stdout]   --> src/day06/mod.rs:47:13
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let mut margin_of_error = 1;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_margin_of_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day06/mod.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let mut margin_of_error = 1;
[INFO] [stdout]    |         ----^^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `steps`
[INFO] [stdout]   --> src/day08/mod.rs:44:13
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let mut steps = 0;
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_steps`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day08/mod.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let mut steps = 0;
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `soln` is never used
[INFO] [stdout]   --> src/day01/mod.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn soln(input_file: &str) -> u32 {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_two` is never used
[INFO] [stdout]   --> src/day01/mod.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn part_two(input_file: &str) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_lines` is never used
[INFO] [stdout]   --> src/day01/mod.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn read_lines(filename: &str) -> Vec<String> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_digits` is never used
[INFO] [stdout]   --> src/day01/mod.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn parse_digits(line: &str) -> Vec<u32> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `digit_str_to_int` is never used
[INFO] [stdout]   --> src/day01/mod.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn digit_str_to_int(digit: &str) -> u32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_two_digit_int` is never used
[INFO] [stdout]   --> src/day01/mod.rs:69:4
[INFO] [stdout]    |
[INFO] [stdout] 69 | fn to_two_digit_int(a: u32, b: u32) -> u32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_one` is never used
[INFO] [stdout]   --> src/day02/mod.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn part_one(input_file: &str, red_config: u32, green_config: u32, blue_config: u32) -> u32 {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_two` is never used
[INFO] [stdout]   --> src/day02/mod.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn part_two(input_file: &str) -> u32 {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_matrix` is never used
[INFO] [stdout]   --> src/utils/mod.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn print_matrix(matrix: Vec<Vec<char>>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_one` is never used
[INFO] [stdout]  --> src/day03/mod.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn part_one(input_file: &str) -> u32 {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_two` is never used
[INFO] [stdout]   --> src/day03/mod.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn part_two(input_file: &str) -> u32 {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_engin_map_matrix` is never used
[INFO] [stdout]   --> src/day03/mod.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn create_engin_map_matrix(map_lines: Vec<String>) -> Vec<Vec<char>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_symbol` is never used
[INFO] [stdout]   --> src/day03/mod.rs:66:4
[INFO] [stdout]    |
[INFO] [stdout] 66 | fn is_symbol(mat: &Vec<Vec<char>>, i: i32, j: i32) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_one` is never used
[INFO] [stdout]  --> src/day04/mod.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn part_one(input_file: &str) -> u32 {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_two` is never used
[INFO] [stdout]   --> src/day04/mod.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn part_two(input_file: &str) -> u32 {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Card` is never constructed
[INFO] [stdout]   --> src/day04/mod.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | struct Card {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_num_matches`, `get_point_value`, and `increment_count` are never used
[INFO] [stdout]    --> src/day04/mod.rs:81:8
[INFO] [stdout]     |
[INFO] [stdout] 80  | impl Card {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] 81  |     fn new(winning_nums: &str, player_nums: &str) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 94  |     fn get_num_matches(&self) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 98  |     fn get_point_value(&self) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn increment_count(&mut self, amount: u32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_one` is never used
[INFO] [stdout]  --> src/day05/mod.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn part_one(input_file: &str) -> i64 {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_two` is never used
[INFO] [stdout]    --> src/day05/mod.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub fn part_two(input_file: &str) -> i64 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_seeds` is never used
[INFO] [stdout]    --> src/day05/mod.rs:225:4
[INFO] [stdout]     |
[INFO] [stdout] 225 | fn parse_seeds(seed_line: &str) -> Vec<i64> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lines_to_num_strings` is never used
[INFO] [stdout]    --> src/day05/mod.rs:233:4
[INFO] [stdout]     |
[INFO] [stdout] 233 | fn lines_to_num_strings(num_lines: &[String]) -> Vec<&String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `num_strings_to_num_vecs` is never used
[INFO] [stdout]    --> src/day05/mod.rs:240:4
[INFO] [stdout]     |
[INFO] [stdout] 240 | fn num_strings_to_num_vecs(num_strings: Vec<&String>) -> Vec<Vec<i64>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_mapping` is never used
[INFO] [stdout]    --> src/day05/mod.rs:249:4
[INFO] [stdout]     |
[INFO] [stdout] 249 | fn create_mapping(dest: i64, src: i64, r: i64) -> SingleMap {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Mapping` is never constructed
[INFO] [stdout]    --> src/day05/mod.rs:254:8
[INFO] [stdout]     |
[INFO] [stdout] 254 | struct Mapping {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Mapping` has a derived impl for the trait `Default`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `apply_map` and `reverse_lookup` are never used
[INFO] [stdout]    --> src/day05/mod.rs:259:8
[INFO] [stdout]     |
[INFO] [stdout] 258 | impl Mapping {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] 259 |     fn apply_map(&self, val: i64) -> i64 {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn reverse_lookup(&self, val: i64) -> i64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SingleMap` is never constructed
[INFO] [stdout]    --> src/day05/mod.rs:282:8
[INFO] [stdout]     |
[INFO] [stdout] 282 | struct SingleMap {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SingleMap` has a derived impl for the trait `Default`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_one` is never used
[INFO] [stdout]   --> src/day06/mod.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn part_one(input_file: &str) -> u64 {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_two` is never used
[INFO] [stdout]   --> src/day06/mod.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn part_two(input_file: &str) -> u64 {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Race` is never constructed
[INFO] [stdout]   --> src/day06/mod.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | struct Race {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `count_winning_scenarios` is never used
[INFO] [stdout]   --> src/day06/mod.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | impl Race {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 75 |     fn count_winning_scenarios(&self) -> u64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_one` is never used
[INFO] [stdout]   --> src/day07/mod.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub fn part_one(input_file: &str) -> u64 {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_two` is never used
[INFO] [stdout]   --> src/day07/mod.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub fn part_two(input_file: &str) -> u64 {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Hand` is never constructed
[INFO] [stdout]   --> src/day07/mod.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 96 | struct Hand {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `is_stronger` are never used
[INFO] [stdout]    --> src/day07/mod.rs:104:12
[INFO] [stdout]     |
[INFO] [stdout] 103 | impl Hand {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] 104 |     pub fn new(cards: String, bid: u64, enable_jokers: bool) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     fn is_stronger(&self, hand: &Hand) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_strength` is never used
[INFO] [stdout]    --> src/day07/mod.rs:135:4
[INFO] [stdout]     |
[INFO] [stdout] 135 | fn calculate_strength(cards: &str) -> u8 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_strength_with_jokers` is never used
[INFO] [stdout]    --> src/day07/mod.rs:179:4
[INFO] [stdout]     |
[INFO] [stdout] 179 | fn calculate_strength_with_jokers(cards: &str) -> u8 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `insert_sorted` is never used
[INFO] [stdout]    --> src/day07/mod.rs:251:4
[INFO] [stdout]     |
[INFO] [stdout] 251 | fn insert_sorted(list: &mut Vec<Hand>, new_item: Hand) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_card_value` is never used
[INFO] [stdout]    --> src/day07/mod.rs:271:4
[INFO] [stdout]     |
[INFO] [stdout] 271 | fn get_card_value(card: char, has_joker: bool) -> u8 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_one` is never used
[INFO] [stdout]  --> src/day08/mod.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn part_one(input_file: &str) -> u64 {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_two` is never used
[INFO] [stdout]   --> src/day08/mod.rs:39:8
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn part_two(input_file: &str) -> u64 {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_nodes` is never used
[INFO] [stdout]   --> src/day08/mod.rs:80:4
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn parse_nodes(nodes: &[String]) -> HashMap<String, (String, String)> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gcd` is never used
[INFO] [stdout]   --> src/day08/mod.rs:96:4
[INFO] [stdout]    |
[INFO] [stdout] 96 | fn gcd(a: u64, b: u64) -> u64 {
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lcm` is never used
[INFO] [stdout]    --> src/day08/mod.rs:104:4
[INFO] [stdout]     |
[INFO] [stdout] 104 | fn lcm(a: u64, b: u64) -> u64 {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lcm_of_list` is never used
[INFO] [stdout]    --> src/day08/mod.rs:108:4
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn lcm_of_list(numbers: &Vec<u64>) -> u64 {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_one` is never used
[INFO] [stdout]   --> src/day09/mod.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn part_one(input_file: &str) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_next_value` is never used
[INFO] [stdout]   --> src/day09/mod.rs:45:4
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn get_next_value(sequence: &Vec<i32>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.06s
[INFO] running `Command { std: "docker" "inspect" "1597c3d9ac250e15fea48bccb290382f0a4b865139a890b0857f14c262882a68", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1597c3d9ac250e15fea48bccb290382f0a4b865139a890b0857f14c262882a68", kill_on_drop: false }`
[INFO] [stdout] 1597c3d9ac250e15fea48bccb290382f0a4b865139a890b0857f14c262882a68
