[INFO] cloning repository https://github.com/CodingMentalModels/advent-of-code-2022
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/CodingMentalModels/advent-of-code-2022" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCodingMentalModels%2Fadvent-of-code-2022", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCodingMentalModels%2Fadvent-of-code-2022'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2fd2e383879d4339073fa81ec566f2026238dcee
[INFO] checking CodingMentalModels/advent-of-code-2022 against master#642c19bfc3a5c1de985bf5d0cc8207ac9d22708a for pr-148577
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCodingMentalModels%2Fadvent-of-code-2022" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/CodingMentalModels/advent-of-code-2022
[INFO] finished tweaking git repo https://github.com/CodingMentalModels/advent-of-code-2022
[INFO] tweaked toml for git repo https://github.com/CodingMentalModels/advent-of-code-2022 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/CodingMentalModels/advent-of-code-2022 on toolchain 642c19bfc3a5c1de985bf5d0cc8207ac9d22708a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/CodingMentalModels/advent-of-code-2022 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" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 429f4fb1cdf4d61c4a3241efc488397ae0b589c872f4a18ee81a2f39bfafe575
[INFO] running `Command { std: "docker" "start" "-a" "429f4fb1cdf4d61c4a3241efc488397ae0b589c872f4a18ee81a2f39bfafe575", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "429f4fb1cdf4d61c4a3241efc488397ae0b589c872f4a18ee81a2f39bfafe575", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "429f4fb1cdf4d61c4a3241efc488397ae0b589c872f4a18ee81a2f39bfafe575", kill_on_drop: false }`
[INFO] [stdout] 429f4fb1cdf4d61c4a3241efc488397ae0b589c872f4a18ee81a2f39bfafe575
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a8f73050acb86849b0c94b7626cb41894bb5905e610d6c0cfa1ac9e08156cb6f
[INFO] running `Command { std: "docker" "start" "-a" "a8f73050acb86849b0c94b7626cb41894bb5905e610d6c0cfa1ac9e08156cb6f", kill_on_drop: false }`
[INFO] [stderr]     Checking advent-of-code-2022 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/problems/problem_06.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 |         if (n > self.len()) {
[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] 46 -         if (n > self.len()) {
[INFO] [stdout] 46 +         if n > self.len()  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/problems/problem_07.rs:131:41
[INFO] [stdout]     |
[INFO] [stdout] 131 |             Self::File(_, size) => { if (*size >= limit) { *size } else { usize::MAX } },
[INFO] [stdout]     |                                         ^              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 131 -             Self::File(_, size) => { if (*size >= limit) { *size } else { usize::MAX } },
[INFO] [stdout] 131 +             Self::File(_, size) => { if *size >= limit  { *size } else { usize::MAX } },
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]   --> src/problems/problem_09.rs:47:18
[INFO] [stdout]    |
[INFO] [stdout] 47 |         for i in (1..self.links.len()) {
[INFO] [stdout]    |                  ^                   ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 47 -         for i in (1..self.links.len()) {
[INFO] [stdout] 47 +         for i in 1..self.links.len()  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]    --> src/problems/problem_11.rs:138:18
[INFO] [stdout]     |
[INFO] [stdout] 138 |         for i in (0..self.n_monkeys()) {
[INFO] [stdout]     |                  ^                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 138 -         for i in (0..self.n_monkeys()) {
[INFO] [stdout] 138 +         for i in 0..self.n_monkeys()  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thread::current`
[INFO] [stdout]  --> src/problems/problem_16.rs:1:44
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::{HashMap, HashSet}, thread::current};
[INFO] [stdout]   |                                            ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter::Repeat`
[INFO] [stdout]  --> src/problems/problem_17.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::iter::Repeat;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]    --> src/problems/problem_17.rs:136:19
[INFO] [stdout]     |
[INFO] [stdout] 136 |         for _i in (0..(n - 1)) {
[INFO] [stdout]     |                   ^          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 136 -         for _i in (0..(n - 1)) {
[INFO] [stdout] 136 +         for _i in 0..(n - 1)  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]   --> src/utility/direction.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     use super::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::input::InputParser`
[INFO] [stdout]  --> src/problems/problem_01.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::input::input::InputParser;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::input::InputParser`
[INFO] [stdout]  --> src/problems/problem_02.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::input::input::InputParser;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::input::InputParser`
[INFO] [stdout]  --> src/problems/problem_04.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::input::input::InputParser;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::input::InputParser`
[INFO] [stdout]  --> src/problems/problem_05.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::input::input::InputParser;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::input::InputParser`
[INFO] [stdout]  --> src/problems/problem_06.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::input::input::InputParser;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/problems/problem_06.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 |         if (n > self.len()) {
[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] 46 -         if (n > self.len()) {
[INFO] [stdout] 46 +         if n > self.len()  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::input::InputParser`
[INFO] [stdout]  --> src/problems/problem_07.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::input::input::InputParser;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/problems/problem_07.rs:131:41
[INFO] [stdout]     |
[INFO] [stdout] 131 |             Self::File(_, size) => { if (*size >= limit) { *size } else { usize::MAX } },
[INFO] [stdout]     |                                         ^              ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 131 -             Self::File(_, size) => { if (*size >= limit) { *size } else { usize::MAX } },
[INFO] [stdout] 131 +             Self::File(_, size) => { if *size >= limit  { *size } else { usize::MAX } },
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::input::InputParser`
[INFO] [stdout]  --> src/problems/problem_08.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::input::input::InputParser;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `input::input::InputParser`
[INFO] [stdout]  --> src/problems/problem_09.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{input::input::InputParser, utility::{vector::Vec2, direction::Direction}};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]   --> src/problems/problem_09.rs:47:18
[INFO] [stdout]    |
[INFO] [stdout] 47 |         for i in (1..self.links.len()) {
[INFO] [stdout]    |                  ^                   ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 47 -         for i in (1..self.links.len()) {
[INFO] [stdout] 47 +         for i in 1..self.links.len()  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::input::InputParser`
[INFO] [stdout]  --> src/problems/problem_10.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::input::input::InputParser;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::input::InputParser`
[INFO] [stdout]  --> src/problems/problem_11.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::input::input::InputParser;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]    --> src/problems/problem_11.rs:138:18
[INFO] [stdout]     |
[INFO] [stdout] 138 |         for i in (0..self.n_monkeys()) {
[INFO] [stdout]     |                  ^                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 138 -         for i in (0..self.n_monkeys()) {
[INFO] [stdout] 138 +         for i in 0..self.n_monkeys()  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `input::input::InputParser`
[INFO] [stdout]  --> src/problems/problem_12.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{input::input::InputParser, utility::vector::Vec2};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::input::InputParser`
[INFO] [stdout]  --> src/problems/problem_14.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::input::input::InputParser;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `input::input::InputParser`
[INFO] [stdout]  --> src/problems/problem_15.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{input::input::InputParser, utility::{vector::Vec2, parser::Parser}};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thread::current`
[INFO] [stdout]  --> src/problems/problem_16.rs:1:44
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::{HashMap, HashSet}, thread::current};
[INFO] [stdout]   |                                            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::input::InputParser`
[INFO] [stdout]  --> src/problems/problem_16.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::input::input::InputParser;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter::Repeat`
[INFO] [stdout]  --> src/problems/problem_17.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::iter::Repeat;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::input::InputParser`
[INFO] [stdout]  --> src/problems/problem_17.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::input::input::InputParser;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression
[INFO] [stdout]    --> src/problems/problem_17.rs:136:19
[INFO] [stdout]     |
[INFO] [stdout] 136 |         for _i in (0..(n - 1)) {
[INFO] [stdout]     |                   ^          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 136 -         for _i in (0..(n - 1)) {
[INFO] [stdout] 136 +         for _i in 0..(n - 1)  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::input::InputParser`
[INFO] [stdout]  --> src/problems/problem_18.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::input::input::InputParser;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::input::InputParser`
[INFO] [stdout]  --> src/problems/problem_19.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::input::input::InputParser;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::input::InputParser`
[INFO] [stdout]  --> src/problems/problem_20.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::input::input::InputParser;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::input::InputParser`
[INFO] [stdout]  --> src/problems/problem_21.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::input::input::InputParser;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::input::InputParser`
[INFO] [stdout]  --> src/problems/problem_22.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::input::input::InputParser;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::input::InputParser`
[INFO] [stdout]  --> src/problems/problem_23.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::input::input::InputParser;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::input::InputParser`
[INFO] [stdout]  --> src/problems/problem_24.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::input::input::InputParser;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::input::input::InputParser`
[INFO] [stdout]  --> src/problems/problem_25.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::input::input::InputParser;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maybe_right_bracket`
[INFO] [stdout]   --> src/problems/problem_05.rs:74:17
[INFO] [stdout]    |
[INFO] [stdout] 74 |             let maybe_right_bracket = chars.pop_front();
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_right_bracket`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maybe_space`
[INFO] [stdout]   --> src/problems/problem_05.rs:75:17
[INFO] [stdout]    |
[INFO] [stdout] 75 |             let maybe_space = chars.pop_front();
[INFO] [stdout]    |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/problems/problem_07.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let mut stream = CommandStream::from_string(input).unwrap();
[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/problems/problem_07.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let mut stream = CommandStream::from_string(input).unwrap();
[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/problems/problem_07.rs:29:32
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub fn from_command_stream(mut stream: CommandStream) -> Self {
[INFO] [stdout]    |                                ----^^^^^^
[INFO] [stdout]    |                                |
[INFO] [stdout]    |                                help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/problems/problem_07.rs:110:28
[INFO] [stdout]     |
[INFO] [stdout] 110 |         self.sum_sizes_if(|n| true)
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ls`
[INFO] [stdout]    --> src/problems/problem_07.rs:211:21
[INFO] [stdout]     |
[INFO] [stdout] 211 |                 let ls = self.expect("ls");
[INFO] [stdout]     |                     ^^ help: if this is intentional, prefix it with an underscore: `_ls`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cd`
[INFO] [stdout]    --> src/problems/problem_07.rs:217:21
[INFO] [stdout]     |
[INFO] [stdout] 217 |                 let cd = self.expect("cd ");
[INFO] [stdout]     |                     ^^ help: if this is intentional, prefix it with an underscore: `_cd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `shortened_input`
[INFO] [stdout]    --> src/input/input.rs:100:13
[INFO] [stdout]     |
[INFO] [stdout] 100 |         let shortened_input = input.iter().take(3).map(|s| *s).collect::<Vec<u32>>();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_shortened_input`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m`
[INFO] [stdout]    --> src/problems/problem_11.rs:303:26
[INFO] [stdout]     |
[INFO] [stdout] 303 |             Self::Moduli(m) => { panic!("Already modulized!") },
[INFO] [stdout]     |                          ^ help: if this is intentional, prefix it with an underscore: `_m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/problems/problem_11.rs:331:25
[INFO] [stdout]     |
[INFO] [stdout] 331 |                     Err(e) => panic!("Divisor wasn't found in moduli: {}", divisor)
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/problems/problem_13.rs:69:13
[INFO] [stdout]    |
[INFO] [stdout] 69 |         let mut parser = Parser::new(s);
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]    --> src/problems/problem_13.rs:142:37
[INFO] [stdout]     |
[INFO] [stdout] 142 |             (Self::N(l), Self::List(r)) => {
[INFO] [stdout]     |                                     ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `l`
[INFO] [stdout]    --> src/problems/problem_13.rs:145:25
[INFO] [stdout]     |
[INFO] [stdout] 145 |             (Self::List(l), Self::N(r)) => {
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maybe_right_bracket`
[INFO] [stdout]   --> src/problems/problem_05.rs:74:17
[INFO] [stdout]    |
[INFO] [stdout] 74 |             let maybe_right_bracket = chars.pop_front();
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_right_bracket`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maybe_space`
[INFO] [stdout]   --> src/problems/problem_05.rs:75:17
[INFO] [stdout]    |
[INFO] [stdout] 75 |             let maybe_space = chars.pop_front();
[INFO] [stdout]    |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maybe_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `below_left`
[INFO] [stdout]    --> src/problems/problem_14.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let below_left = below - Vec2::i();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_below_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `below_right`
[INFO] [stdout]    --> src/problems/problem_14.rs:116:13
[INFO] [stdout]     |
[INFO] [stdout] 116 |         let below_right = below + Vec2::i();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_below_right`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/problems/problem_07.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let mut stream = CommandStream::from_string(input).unwrap();
[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/problems/problem_07.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let mut stream = CommandStream::from_string(input).unwrap();
[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/problems/problem_07.rs:29:32
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub fn from_command_stream(mut stream: CommandStream) -> Self {
[INFO] [stdout]    |                                ----^^^^^^
[INFO] [stdout]    |                                |
[INFO] [stdout]    |                                help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/problems/problem_07.rs:110:28
[INFO] [stdout]     |
[INFO] [stdout] 110 |         self.sum_sizes_if(|n| true)
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ls`
[INFO] [stdout]    --> src/problems/problem_07.rs:211:21
[INFO] [stdout]     |
[INFO] [stdout] 211 |                 let ls = self.expect("ls");
[INFO] [stdout]     |                     ^^ help: if this is intentional, prefix it with an underscore: `_ls`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cd`
[INFO] [stdout]    --> src/problems/problem_07.rs:217:21
[INFO] [stdout]     |
[INFO] [stdout] 217 |                 let cd = self.expect("cd ");
[INFO] [stdout]     |                     ^^ help: if this is intentional, prefix it with an underscore: `_cd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/problems/problem_07.rs:397:13
[INFO] [stdout]     |
[INFO] [stdout] 397 |         let mut stream = CommandStream::from_string(input.join("\n")).unwrap();
[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/problems/problem_07.rs:431:13
[INFO] [stdout]     |
[INFO] [stdout] 431 |         let mut stream = CommandStream::from_string(input.join("\n")).unwrap();
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/problems/problem_18.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn solve_problem_18a(input: Vec<String>) -> usize {
[INFO] [stdout]   |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/problems/problem_18.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_problem_18b(input: Vec<String>) -> usize {
[INFO] [stdout]   |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/problems/problem_19.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn solve_problem_19a(input: Vec<String>) -> usize {
[INFO] [stdout]   |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/problems/problem_19.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_problem_19b(input: Vec<String>) -> usize {
[INFO] [stdout]   |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/problems/problem_20.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn solve_problem_20a(input: Vec<String>) -> usize {
[INFO] [stdout]   |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/problems/problem_20.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_problem_20b(input: Vec<String>) -> usize {
[INFO] [stdout]   |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/problems/problem_21.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn solve_problem_21a(input: Vec<String>) -> usize {
[INFO] [stdout]   |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/problems/problem_21.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_problem_21b(input: Vec<String>) -> usize {
[INFO] [stdout]   |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/problems/problem_22.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn solve_problem_22a(input: Vec<String>) -> usize {
[INFO] [stdout]   |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/problems/problem_22.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_problem_22b(input: Vec<String>) -> usize {
[INFO] [stdout]   |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/problems/problem_23.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn solve_problem_23a(input: Vec<String>) -> usize {
[INFO] [stdout]   |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/problems/problem_23.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_problem_23b(input: Vec<String>) -> usize {
[INFO] [stdout]   |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/problems/problem_24.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn solve_problem_24a(input: Vec<String>) -> usize {
[INFO] [stdout]   |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/problems/problem_24.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_problem_24b(input: Vec<String>) -> usize {
[INFO] [stdout]   |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/problems/problem_25.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn solve_problem_25a(input: Vec<String>) -> usize {
[INFO] [stdout]   |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/problems/problem_25.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_problem_25b(input: Vec<String>) -> usize {
[INFO] [stdout]   |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INPUT_PATH_HEAD` is never used
[INFO] [stdout]  --> src/input/input.rs:3:7
[INFO] [stdout]   |
[INFO] [stdout] 3 | const INPUT_PATH_HEAD: &str = "C:/Users/cmsdu/repos/advent-of-code-2022/input/";
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InputParser` is never constructed
[INFO] [stdout]  --> src/input/input.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct InputParser;
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/input/input.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl InputParser {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout]  8 |
[INFO] [stdout]  9 |     pub fn new() -> InputParser {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub fn parse_as_i32(&self, filepath: &str) -> Result<Vec<i32>, String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn parse_as_binary(&self, filepath: &str) -> Result<Vec<u32>, String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn parse_as_string(&self, filepath: &str) -> Result<Vec<String>, String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn parse_as_string_chunks(&self, filepath: &str, delimiter: &str) -> Result<Vec<Vec<String>>, String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn parse_to_single_string(&self, filepath: &str) -> Result<String, String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn chunk<T>(input: Vec<T>, chunk_size: usize) -> Result<Vec<Vec<T>>, String> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_01a` is never used
[INFO] [stdout]  --> src/problems/problem_01.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn solve_problem_01a(input: Vec<Vec<String>>) -> usize {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_01b` is never used
[INFO] [stdout]  --> src/problems/problem_01.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn solve_problem_01b(input: Vec<Vec<String>>) -> usize {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_02a` is never used
[INFO] [stdout]  --> src/problems/problem_02.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn solve_problem_02a(input: Vec<(String, String)>) -> u32 {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_02b` is never used
[INFO] [stdout]   --> src/problems/problem_02.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn solve_problem_02b(input: Vec<(String, String)>) -> u32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `HandShape` is never used
[INFO] [stdout]   --> src/problems/problem_02.rs:18:6
[INFO] [stdout]    |
[INFO] [stdout] 18 | enum HandShape {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_string`, `from_string_problem_02a`, `to_score`, `evaluate`, and `score_round` are never used
[INFO] [stdout]   --> src/problems/problem_02.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl HandShape {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 25 |
[INFO] [stdout] 26 |     pub fn from_string(s: String) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn from_string_problem_02a(s: String) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn to_score(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn evaluate(lhs: &HandShape, rhs: &HandShape) -> Outcome {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn score_round(lhs: &HandShape, rhs: &HandShape) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Outcome` is never used
[INFO] [stdout]   --> src/problems/problem_02.rs:73:6
[INFO] [stdout]    |
[INFO] [stdout] 73 | enum Outcome {
[INFO] [stdout]    |      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `score`, `from_string`, and `get_hand_shape_to_achieve` are never used
[INFO] [stdout]   --> src/problems/problem_02.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 79 | impl Outcome {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 80 |
[INFO] [stdout] 81 |     pub fn score(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub fn from_string(s: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 98 |     pub fn get_hand_shape_to_achieve(&self, opponent_shape: &HandShape) -> HandShape {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `AMOUNT_TO_SUBTRACT_FROM_LOWERCASE` is never used
[INFO] [stdout]  --> src/problems/problem_03.rs:5:7
[INFO] [stdout]   |
[INFO] [stdout] 5 | const AMOUNT_TO_SUBTRACT_FROM_LOWERCASE: u32 = 96;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `AMOUNT_TO_SUBTRACT_FROM_UPPERCASE` is never used
[INFO] [stdout]  --> src/problems/problem_03.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const AMOUNT_TO_SUBTRACT_FROM_UPPERCASE: u32 = 38;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_03a` is never used
[INFO] [stdout]  --> src/problems/problem_03.rs:8:4
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn solve_problem_03a(input: Vec<String>) -> u32 {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_03b` is never used
[INFO] [stdout]   --> src/problems/problem_03.rs:12:4
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn solve_problem_03b(input: Vec<String>) -> u32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_priority` is never used
[INFO] [stdout]   --> src/problems/problem_03.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn get_priority(c: char) -> u32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_common_element` is never used
[INFO] [stdout]   --> src/problems/problem_03.rs:27:4
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn get_common_element(rucksack: String) -> char {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_common_element_from_vec` is never used
[INFO] [stdout]   --> src/problems/problem_03.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn get_common_element_from_vec(strings: Vec<String>) -> char {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Range` is never used
[INFO] [stdout]  --> src/problems/problem_04.rs:3:6
[INFO] [stdout]   |
[INFO] [stdout] 3 | type Range = (u32, u32);
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Pair` is never used
[INFO] [stdout]  --> src/problems/problem_04.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | type Pair = (Range, Range);
[INFO] [stdout]   |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_04a` is never used
[INFO] [stdout]  --> src/problems/problem_04.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn solve_problem_04a(input: Vec<String>) -> u32 {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_04b` is never used
[INFO] [stdout]   --> src/problems/problem_04.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn solve_problem_04b(input: Vec<String>) -> u32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_cleaning_pair` is never used
[INFO] [stdout]   --> src/problems/problem_04.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn parse_cleaning_pair(s: String) -> Pair {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_range` is never used
[INFO] [stdout]   --> src/problems/problem_04.rs:26:4
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn parse_range(s: &str) -> (u32, u32) {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `overlaps` is never used
[INFO] [stdout]   --> src/problems/problem_04.rs:36:4
[INFO] [stdout]    |
[INFO] [stdout] 36 | fn overlaps(pair: Pair) -> bool {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `are_sequential` is never used
[INFO] [stdout]   --> src/problems/problem_04.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn are_sequential(pair: Pair) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `are_sequential_in_order` is never used
[INFO] [stdout]   --> src/problems/problem_04.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn are_sequential_in_order(pair: Pair) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `are_sequential_in_inverse_order` is never used
[INFO] [stdout]   --> src/problems/problem_04.rs:49:4
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn are_sequential_in_inverse_order(pair: Pair) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_completely_overlapping` is never used
[INFO] [stdout]   --> src/problems/problem_04.rs:53:4
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn has_completely_overlapping(pair: Pair) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_left_subset_of_right` is never used
[INFO] [stdout]   --> src/problems/problem_04.rs:57:4
[INFO] [stdout]    |
[INFO] [stdout] 57 | fn is_left_subset_of_right(pair: Pair) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_right_subset_of_left` is never used
[INFO] [stdout]   --> src/problems/problem_04.rs:63:4
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn is_right_subset_of_left(pair: Pair) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_05a` is never used
[INFO] [stdout]  --> src/problems/problem_05.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn solve_problem_05a(input: String) -> String {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_05b` is never used
[INFO] [stdout]   --> src/problems/problem_05.rs:12:4
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn solve_problem_05b(input: String) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/problems/problem_05.rs:19:4
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn parse_input(input: String) -> (Stacks, Vec<Instruction>) {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Stacks` is never constructed
[INFO] [stdout]   --> src/problems/problem_05.rs:39:8
[INFO] [stdout]    |
[INFO] [stdout] 39 | struct Stacks {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/problems/problem_05.rs:45:12
[INFO] [stdout]     |
[INFO] [stdout]  43 | impl Stacks {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout]  44 |
[INFO] [stdout]  45 |     pub fn new(stacks: Vec<Vec<char>>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  49 |     pub fn from_string(s: String) -> Result<Self, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     fn parse_row(s: String) -> Result<Vec<Option<char>>, String> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn get_stack(&self, n: usize) -> &Vec<char> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn get_n_boxes(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn get_top_boxes(&self) -> Vec<char> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn get_top_boxes_string(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn handle_instructions(&mut self, instructions: Vec<Instruction>, model: Model) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn handle_instruction(&mut self, instruction: Instruction, model: Model) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn move_box(&mut self, from_stack: usize, to_stack: usize) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn move_boxes_at_once(&mut self, number_to_move: usize, from_stack: usize, to_stack: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Instruction` is never constructed
[INFO] [stdout]    --> src/problems/problem_05.rs:141:8
[INFO] [stdout]     |
[INFO] [stdout] 141 | struct Instruction {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `from_string`, and `unpack` are never used
[INFO] [stdout]    --> src/problems/problem_05.rs:149:12
[INFO] [stdout]     |
[INFO] [stdout] 147 | impl Instruction {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 148 |
[INFO] [stdout] 149 |     pub fn new(number_to_move: usize, from_stack: usize, to_stack: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn from_string(s: String) -> Result<Self, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn unpack(&self) -> (usize, usize, usize) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Model` is never used
[INFO] [stdout]    --> src/problems/problem_05.rs:174:6
[INFO] [stdout]     |
[INFO] [stdout] 174 | enum Model {
[INFO] [stdout]     |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_06a` is never used
[INFO] [stdout]  --> src/problems/problem_06.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_problem_06a(input: String) -> usize {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_06b` is never used
[INFO] [stdout]   --> src/problems/problem_06.rs:16:4
[INFO] [stdout]    |
[INFO] [stdout] 16 | fn solve_problem_06b(input: String) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Subroutine` is never constructed
[INFO] [stdout]   --> src/problems/problem_06.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | struct Subroutine {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `consume`, `len`, and `last_n_were_different` are never used
[INFO] [stdout]   --> src/problems/problem_06.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl Subroutine {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 32 |
[INFO] [stdout] 33 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn consume(&mut self, c: char) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn last_n_were_different(&self, n: usize) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_07a` is never used
[INFO] [stdout]  --> src/problems/problem_07.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn solve_problem_07a(input: String) -> usize {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_07b` is never used
[INFO] [stdout]   --> src/problems/problem_07.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn solve_problem_07b(input: String) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FileTreeNode` is never used
[INFO] [stdout]   --> src/problems/problem_07.rs:22:6
[INFO] [stdout]    |
[INFO] [stdout] 22 | enum FileTreeNode {
[INFO] [stdout]    |      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/problems/problem_07.rs:29:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl FileTreeNode {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout]  28 |
[INFO] [stdout]  29 |     pub fn from_command_stream(mut stream: CommandStream) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  37 |     fn from_command_stream_recursive(mut stream: CommandStream) -> (Self, CommandStream) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn file(name: String, size: usize) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub fn directory(name: String, children: Vec<Self>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn depth(&self) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn sum_sizes_if(&self, f: fn(usize) -> bool) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn sum_sizes(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn redundant_sum_directory_sizes_if(&self, f: fn(usize) -> bool) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn redundant_sum_sizes_if(&self, f: fn(usize) -> bool) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn smallest_directory_bigger_than(&self, limit: usize) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CommandStream` is never constructed
[INFO] [stdout]    --> src/problems/problem_07.rs:146:8
[INFO] [stdout]     |
[INFO] [stdout] 146 | struct CommandStream {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `from_string`, `peek`, and `pop` are never used
[INFO] [stdout]    --> src/problems/problem_07.rs:152:12
[INFO] [stdout]     |
[INFO] [stdout] 150 | impl CommandStream {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 151 |
[INFO] [stdout] 152 |     pub fn new(commands: VecDeque<Command>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub fn from_string(commands: String) -> Result<Self, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn peek(&self) -> Option<Command> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn pop(&mut self) -> Option<Command> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CommandParser` is never constructed
[INFO] [stdout]    --> src/problems/problem_07.rs:175:8
[INFO] [stdout]     |
[INFO] [stdout] 175 | struct CommandParser {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/problems/problem_07.rs:182:12
[INFO] [stdout]     |
[INFO] [stdout] 180 | impl CommandParser {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 181 |
[INFO] [stdout] 182 |     pub fn new(commands: String) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub fn n_remaining_to_parse(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 190 |     pub fn increment_pointer(&mut self, n: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     pub fn parse(&mut self) -> Result<CommandStream, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     fn parse_command(&mut self) -> Result<Command, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     fn parse_command_result(s: String) -> Result<CommandResult, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     fn peek_char(&self) -> Option<char> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     fn consume_line(&mut self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 262 |     fn consume_until_next_command(&mut self) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     fn consume_until_whitespace(&mut self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     fn consume_remaining(&mut self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     fn consume_n(&mut self, n: usize) -> String {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 299 |     fn expect_end_of_line_or_file(&mut self) -> Result<String, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 306 |     fn expect_end_of_line(&mut self) -> Result<String, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 310 |     fn expect(&mut self, s: &str) -> Result<String, String> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Command` is never used
[INFO] [stdout]    --> src/problems/problem_07.rs:323:6
[INFO] [stdout]     |
[INFO] [stdout] 323 | enum Command {
[INFO] [stdout]     |      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CommandResult` is never used
[INFO] [stdout]    --> src/problems/problem_07.rs:333:6
[INFO] [stdout]     |
[INFO] [stdout] 333 | enum CommandResult {
[INFO] [stdout]     |      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_08a` is never used
[INFO] [stdout]  --> src/problems/problem_08.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn solve_problem_08a(input: Vec<String>) -> usize {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_08b` is never used
[INFO] [stdout]   --> src/problems/problem_08.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn solve_problem_08b(input: Vec<String>) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Forest` is never constructed
[INFO] [stdout]   --> src/problems/problem_08.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | struct Forest {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/problems/problem_08.rs:23:12
[INFO] [stdout]     |
[INFO] [stdout]  21 | impl Forest {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout]  22 |     
[INFO] [stdout]  23 |     pub fn new(trees: Vec<Vec<usize>>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  29 |     pub fn from_strings(strings: Vec<String>) -> Result<Self, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  38 |     pub fn n_rows(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  42 |     pub fn n_columns(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  47 |     pub fn get(&self, i: usize, j: usize) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn get_row(&self, i: usize) -> Vec<usize> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn get_column(&self, j: usize) -> Vec<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn get_max_scenic_score(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub fn get_scenic_score(&self, i: usize, j: usize) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn get_viewing_distance(&self, direction: Direction, i: usize, j: usize) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn get_view_line(&self, direction: Direction, i: usize, j: usize) -> Vec<(usize, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn count_visible(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn get_visible(&self) -> HashSet<(usize, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn get_boundary_coordinates(&self) -> HashSet<(usize, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn get_visible_in_row(&self, i: usize) -> HashSet<(usize, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn get_visible_in_column(&self, j: usize) -> HashSet<(usize, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     fn get_visible_from_list(trees: Vec<usize>) -> Vec<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     fn get_visible_from_front(trees: Vec<usize>) -> Vec<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_09a` is never used
[INFO] [stdout]  --> src/problems/problem_09.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn solve_problem_09a(input: Vec<String>) -> usize {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_09b` is never used
[INFO] [stdout]   --> src/problems/problem_09.rs:12:4
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn solve_problem_09b(input: Vec<String>) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Rope` is never constructed
[INFO] [stdout]   --> src/problems/problem_09.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | struct Rope {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `default`, `make_moves_and_get_tails`, `make_move_and_get_tails`, and `step_and_get_tail` are never used
[INFO] [stdout]   --> src/problems/problem_09.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl Rope {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 25 |
[INFO] [stdout] 26 |     pub fn new(links: Vec<RopeLink>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn default(n_links: usize) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn make_moves_and_get_tails(&mut self, moves: Vec<Move>) -> Vec<Vec2> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn make_move_and_get_tails(&mut self, m: Move) -> Vec<Vec2> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     fn step_and_get_tail(&mut self, direction: Direction) -> Vec2 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RopeLink` is never constructed
[INFO] [stdout]   --> src/problems/problem_09.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | struct RopeLink {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/problems/problem_09.rs:63:12
[INFO] [stdout]     |
[INFO] [stdout]  61 | impl RopeLink {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout]  62 |
[INFO] [stdout]  63 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub fn make_moves_and_get_tails(&mut self, moves: Vec<Move>) -> Vec<Vec2> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  73 |     pub fn make_move_and_get_tails(&mut self, m: Move) -> Vec<Vec2> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     fn move_in_direction_and_get_tail(&mut self, direction: Direction) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub fn update_head_and_follow(&mut self, new_head: Vec2) -> Vec2 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     fn update_tail(&mut self) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn get_l1_length(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn get_direction_vector(&self) -> Vec2 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn is_colinear(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Move` is never constructed
[INFO] [stdout]    --> src/problems/problem_09.rs:125:8
[INFO] [stdout]     |
[INFO] [stdout] 125 | struct Move {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `from_string`, and `unpack` are never used
[INFO] [stdout]    --> src/problems/problem_09.rs:132:12
[INFO] [stdout]     |
[INFO] [stdout] 130 | impl Move {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] 131 |     
[INFO] [stdout] 132 |     pub fn new(direction: Direction, repetitions: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn from_string(s: String) -> Result<Self, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     pub fn unpack(&self) -> (Direction, usize) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_10a` is never used
[INFO] [stdout]  --> src/problems/problem_10.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn solve_problem_10a(input: Vec<String>) -> i32 {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_10b` is never used
[INFO] [stdout]   --> src/problems/problem_10.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn solve_problem_10b(input: Vec<String>) -> Vec<String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Crt` is never constructed
[INFO] [stdout]   --> src/problems/problem_10.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | struct Crt {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `render`, `push`, `get_next_to_add`, and `get_symbol` are never used
[INFO] [stdout]   --> src/problems/problem_10.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl Crt {
[INFO] [stdout]    | -------- associated items in this implementation
[INFO] [stdout] 26 |
[INFO] [stdout] 27 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn render(&mut self, cpu: Cpu) -> Vec<String> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     fn push(&mut self, is_lit: bool) {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     fn get_next_to_add(&self) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     fn get_symbol(is_lit: bool) -> char {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cpu` is never constructed
[INFO] [stdout]   --> src/problems/problem_10.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | struct Cpu {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/problems/problem_10.rs:82:12
[INFO] [stdout]     |
[INFO] [stdout]  80 | impl Cpu {
[INFO] [stdout]     | -------- associated items in this implementation
[INFO] [stdout]  81 |
[INFO] [stdout]  82 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub fn get_cycles(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub fn get_register(&self) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn get_historical_register(&self, i: usize) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn get_signal_strength(&self) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn consume_all(&mut self, instructions: Vec<Instruction>) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn consume(&mut self, instruction: Instruction) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Instruction` is never used
[INFO] [stdout]    --> src/problems/problem_10.rs:131:6
[INFO] [stdout]     |
[INFO] [stdout] 131 | enum Instruction {
[INFO] [stdout]     |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_string` is never used
[INFO] [stdout]    --> src/problems/problem_10.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout] 136 | impl Instruction {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] 137 |
[INFO] [stdout] 138 |     pub fn from_string(s: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Destination` is never used
[INFO] [stdout]  --> src/problems/problem_11.rs:6:6
[INFO] [stdout]   |
[INFO] [stdout] 6 | type Destination = usize;
[INFO] [stdout]   |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_11a` is never used
[INFO] [stdout]  --> src/problems/problem_11.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn solve_problem_11a(input: String) -> usize {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_11b` is never used
[INFO] [stdout]   --> src/problems/problem_11.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn solve_problem_11b(input: String) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MonkeyPool` is never constructed
[INFO] [stdout]   --> src/problems/problem_11.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | struct MonkeyPool {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/problems/problem_11.rs:34:12
[INFO] [stdout]     |
[INFO] [stdout]  32 | impl MonkeyPool {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout]  33 |
[INFO] [stdout]  34 |     pub fn new(monkeys: Vec<Monkey>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  38 |     pub fn from_string(s: String, use_moduli: bool) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     pub fn modulize(self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  70 |     pub fn n_monkeys(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn get_monkeys(&self) -> &Vec<Monkey> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     fn consume_starting_items(parser: &mut Parser) -> Vec<ItemWorryLevel> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     fn consume_operation(parser: &mut Parser) -> Operation {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     fn consume_test(parser: &mut Parser) -> (u32, Destination, Destination) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     fn consume_destination(parser: &mut Parser, condition: bool) -> Destination {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn execute_rounds(&mut self, n: usize, with_relief: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn execute_round(&mut self, with_relief: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn get_inspection_counts(&self) -> Vec<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Monkey` is never constructed
[INFO] [stdout]    --> src/problems/problem_11.rs:152:8
[INFO] [stdout]     |
[INFO] [stdout] 152 | struct Monkey {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/problems/problem_11.rs:163:12
[INFO] [stdout]     |
[INFO] [stdout] 161 | impl Monkey {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] 162 |
[INFO] [stdout] 163 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub fn modulize(self, moduli: &Vec<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn get_items(&self) -> Vec<ItemWorryLevel> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 193 |     pub fn apply_operation(&self, n: ItemWorryLevel) -> ItemWorryLevel {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn get_test_divisor(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn test(&self, n: &ItemWorryLevel) -> bool {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn get_destination(&self, b: bool) -> Destination {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn get_inspection_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn execute_round(&mut self, with_relief: bool) -> Vec<(ItemWorryLevel, Destination)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     pub fn apply_relief(n: u32) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub fn push(&mut self, n: ItemWorryLevel) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ItemWorryLevel` is never used
[INFO] [stdout]    --> src/problems/problem_11.rs:249:6
[INFO] [stdout]     |
[INFO] [stdout] 249 | enum ItemWorryLevel {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `modulize`, `unwrap`, `from_n`, and `is_disible_by` are never used
[INFO] [stdout]    --> src/problems/problem_11.rs:300:12
[INFO] [stdout]     |
[INFO] [stdout] 298 | impl ItemWorryLevel {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 299 |
[INFO] [stdout] 300 |     pub fn modulize(self, moduli: &Vec<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 307 |     pub fn unwrap(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 314 |     pub fn from_n(n: u32, maybe_moduli: Option<Vec<u32>>) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 321 |     pub fn is_disible_by(&self, divisor: u32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ItemWorryLevelModuli` is never constructed
[INFO] [stdout]    --> src/problems/problem_11.rs:339:8
[INFO] [stdout]     |
[INFO] [stdout] 339 | struct ItemWorryLevelModuli {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `from_n` are never used
[INFO] [stdout]    --> src/problems/problem_11.rs:346:12
[INFO] [stdout]     |
[INFO] [stdout] 344 | impl ItemWorryLevelModuli {
[INFO] [stdout]     | ------------------------- associated functions in this implementation
[INFO] [stdout] 345 |
[INFO] [stdout] 346 |     pub fn new(levels: Vec<u32>, moduli: Vec<u32>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 355 |     pub fn from_n(n: u32, moduli: Vec<u32>) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Operation` is never used
[INFO] [stdout]    --> src/problems/problem_11.rs:363:6
[INFO] [stdout]     |
[INFO] [stdout] 363 | enum Operation {
[INFO] [stdout]     |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `apply` is never used
[INFO] [stdout]    --> src/problems/problem_11.rs:371:12
[INFO] [stdout]     |
[INFO] [stdout] 369 | impl Operation {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 370 |
[INFO] [stdout] 371 |     pub fn apply(&self, n: ItemWorryLevel) -> ItemWorryLevel {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_12a` is never used
[INFO] [stdout]  --> src/problems/problem_12.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn solve_problem_12a(input: Vec<String>) -> usize {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_12b` is never used
[INFO] [stdout]   --> src/problems/problem_12.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn solve_problem_12b(input: Vec<String>) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_height` is never used
[INFO] [stdout]   --> src/problems/problem_12.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn to_height(c: char) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Grid` is never constructed
[INFO] [stdout]   --> src/problems/problem_12.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | struct Grid {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/problems/problem_12.rs:40:12
[INFO] [stdout]     |
[INFO] [stdout]  38 | impl Grid {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout]  39 |
[INFO] [stdout]  40 |     pub fn new(starting_point: Vec2, ending_point: Vec2, grid: Vec<Vec<usize>>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn from_strings(strings: Vec<String>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  57 |     fn parse_starting_and_ending_points(strings: &Vec<String>) -> (Vec2, Vec2) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     fn parse_row(s: String) -> Vec<usize> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     fn parse_char(c: char) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub fn get(&self, v: Vec2) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub fn maybe_get(&self, v: Vec2) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn is_in_bounds(&self, v: Vec2) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn get_dimensions(&self) -> (usize, usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn get_starting_point(&self) -> Vec2 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn get_ending_point(&self) -> Vec2 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn get_coordinates(&self) -> Vec<Vec2> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn get_neighbors(&self, coordinates: Vec2) -> HashSet<Vec2> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn get_inverse_neighbors(&self, coordinates: Vec2) -> HashSet<Vec2> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn get_adjacent(&self, coordinates: Vec2) -> HashSet<Vec2> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn get_shortest_path_between(&self, use_inverse_neighbors: bool, start: Vec2, end: Vec2) -> Option<Vec<Vec2>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     pub fn get_shortest_path(&self, use_inverse_neighbors: bool, start: Vec2, end_condition: &dyn Fn(Vec2) -> bool) -> Option<Vec<Vec2>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     fn get_path_from_parent_map(parent_map: HashMap<Vec2, Option<Vec2>>, node: Vec2) -> Vec<Vec2> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_13a` is never used
[INFO] [stdout]  --> src/problems/problem_13.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn solve_problem_13a(input: Vec<String>) -> usize {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_13b` is never used
[INFO] [stdout]   --> src/problems/problem_13.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn solve_problem_13b(input: Vec<String>) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PacketPart` is never used
[INFO] [stdout]   --> src/problems/problem_13.rs:31:6
[INFO] [stdout]    |
[INFO] [stdout] 31 | enum PacketPart {
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]    --> src/problems/problem_13.rs:54:12
[INFO] [stdout]     |
[INFO] [stdout]  52 | impl PacketPart {
[INFO] [stdout]     | --------------- associated functions in this implementation
[INFO] [stdout]  53 |
[INFO] [stdout]  54 |     pub fn parse_packet_pairs(strings: Vec<String>) -> Vec<(Self, Self)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn from_strings(strings: Vec<String>) -> Vec<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     pub fn from_string(s: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  74 |     fn tokenize(mut parser: Parser) -> VecDeque<Token> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     fn get_next_token(parser: &mut Parser) -> Option<Token> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     fn tokenize_number(parser: &mut Parser) -> Token {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     fn from_tokens(mut tokens: VecDeque<Token>) -> (Self, VecDeque<Token>) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn is_ordered(left: &Self, right: &Self) -> Option<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Token` is never used
[INFO] [stdout]    --> src/problems/problem_13.rs:166:6
[INFO] [stdout]     |
[INFO] [stdout] 166 | enum Token {
[INFO] [stdout]     |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_14a` is never used
[INFO] [stdout]  --> src/problems/problem_14.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn solve_problem_14a(input: Vec<String>) -> usize {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_14b` is never used
[INFO] [stdout]   --> src/problems/problem_14.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn solve_problem_14b(input: Vec<String>) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cave` is never constructed
[INFO] [stdout]   --> src/problems/problem_14.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | struct Cave {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/problems/problem_14.rs:36:12
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl Cave {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout]  35 |
[INFO] [stdout]  36 |     pub fn new(material_map: HashMap<Vec2, Material>, lowest_points: HashMap<i32, i32>, floor_y: Option<i32>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  40 |     pub fn from_strings(strings: Vec<String>, floor_delta_y: Option<i32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  58 |     fn lines_to_points(lines: String) -> HashSet<Vec2> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     pub fn get(&self, v: &Vec2) -> Material {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     pub fn drop_sand_until_abyss(&mut self, starting_position: &Vec2) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn drop_sand(&mut self, starting_position: &Vec2) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     fn get_next_sand_position(&self, v: Vec2) -> Option<Vec2> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     fn is_in_abyss(&self, v: &Vec2) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     fn has_sand_in_abyss(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     pub fn count_non_abyss_sand(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Material` is never used
[INFO] [stdout]    --> src/problems/problem_14.rs:164:6
[INFO] [stdout]     |
[INFO] [stdout] 164 | enum Material {
[INFO] [stdout]     |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_15a` is never used
[INFO] [stdout]  --> src/problems/problem_15.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn solve_problem_15a(input: Vec<String>, row_y: i32) -> usize {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_15b` is never used
[INFO] [stdout]   --> src/problems/problem_15.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn solve_problem_15b(input: Vec<String>, search_space_size: usize) -> u64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Sensor` is never constructed
[INFO] [stdout]   --> src/problems/problem_15.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | struct Sensor {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/problems/problem_15.rs:56:12
[INFO] [stdout]     |
[INFO] [stdout]  54 | impl Sensor {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout]  55 |
[INFO] [stdout]  56 |     pub fn new(position: Vec2, beacon_position: Vec2) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub fn from_strings(strings: Vec<String>) -> Vec<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub fn from_string(s: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     fn parse_vec2(parser: &mut Parser) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub fn beacon_is_possible(&self, position: Vec2) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn get_x_bounds(&self) -> (i32, i32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn get_y_bounds(&self) -> (i32, i32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn get_surface_such_that(&self, constraint: &dyn Fn(Vec2) -> bool) -> HashSet<Vec2> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Time` is never used
[INFO] [stdout]  --> src/problems/problem_16.rs:6:6
[INFO] [stdout]   |
[INFO] [stdout] 6 | type Time = usize;
[INFO] [stdout]   |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INITIAL_MINUTES_UNTIL_ERUPTION` is never used
[INFO] [stdout]  --> src/problems/problem_16.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const INITIAL_MINUTES_UNTIL_ERUPTION: Time = 30;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MINUTES_SPENT_TEACHING_ELEPHANT` is never used
[INFO] [stdout]  --> src/problems/problem_16.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const MINUTES_SPENT_TEACHING_ELEPHANT: Time = 4;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DISTANCE_BIGGER_THAN_MAX` is never used
[INFO] [stdout]   --> src/problems/problem_16.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const DISTANCE_BIGGER_THAN_MAX: usize = 1000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_16a` is never used
[INFO] [stdout]   --> src/problems/problem_16.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn solve_problem_16a(input: Vec<String>) -> u32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_16b` is never used
[INFO] [stdout]   --> src/problems/problem_16.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn solve_problem_16b(input: Vec<String>) -> u32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_minutes_until_eruption` is never used
[INFO] [stdout]   --> src/problems/problem_16.rs:38:4
[INFO] [stdout]    |
[INFO] [stdout] 38 | fn get_minutes_until_eruption(t: usize) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_causal_radius` is never used
[INFO] [stdout]   --> src/problems/problem_16.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn get_causal_radius(t: usize) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ValveGraph` is never constructed
[INFO] [stdout]   --> src/problems/problem_16.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 51 | struct ValveGraph {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/problems/problem_16.rs:59:12
[INFO] [stdout]     |
[INFO] [stdout]  57 | impl ValveGraph {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout]  58 |
[INFO] [stdout]  59 |     pub fn new(valves: Vec<Valve>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     pub fn get_valve(&self, label: &str) -> Option<Valve> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  69 |     pub fn get_index(&self, label: &str) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  73 |     pub fn index_to_label(&self, i: usize) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |     pub fn get_labels(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn get_neighbors(&self, label: &str) -> Option<Vec<String>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn get_distance(&self, i_label: &str, j_label: &str) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn compute_distances(valves: Vec<Valve>) -> HashMap<(usize, usize), usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn get_maximum_flow(&self, unvisited: &HashSet<usize>, time_remaining: Time, current_position: usize, max_so_far: u32) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn get_maximum_flow_with_elephant(&self, unvisited: &HashSet<usize>, time_remaining: Time, player_plan: Plan, elephant_plan: Plan...
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     fn visit_with_elephant(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn get_open_indices_within(&self, distance: usize, player_position: &str) -> HashSet<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 233 |     pub fn get_open_indices(&self) -> HashSet<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 237 |     pub fn get_indices_within(&self, distance: usize, player_position: &str) -> HashSet<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn is_open(&self, label: &str) -> Option<bool> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 260 |     pub fn is_closed(&self, label: &str) -> Option<bool> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 264 |     pub fn open_all(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     pub fn open_valves(&mut self, labels: Vec<&str>) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 273 |     pub fn open(&mut self, label: &str) -> Option<()> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 284 |     pub fn close_all(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 288 |     pub fn close(&mut self, label: &str) -> Option<()> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 299 |     pub fn get_flow_rate(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 303 |     pub fn get_cumulative_pressure_from(&self, t: usize) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Plan` is never used
[INFO] [stdout]    --> src/problems/problem_16.rs:311:6
[INFO] [stdout]     |
[INFO] [stdout] 311 | enum Plan {
[INFO] [stdout]     |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_target`, `get_ticked`, and `arrived` are never used
[INFO] [stdout]    --> src/problems/problem_16.rs:318:12
[INFO] [stdout]     |
[INFO] [stdout] 316 | impl Plan {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] 317 |
[INFO] [stdout] 318 |     pub fn new(target: usize, time_remaining: Time) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 322 |     pub fn get_target(&self) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 329 |     pub fn get_ticked(&self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 341 |     pub fn arrived(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Valve` is never constructed
[INFO] [stdout]    --> src/problems/problem_16.rs:352:8
[INFO] [stdout]     |
[INFO] [stdout] 352 | struct Valve {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/problems/problem_16.rs:361:12
[INFO] [stdout]     |
[INFO] [stdout] 359 | impl Valve {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 360 |
[INFO] [stdout] 361 |     pub fn new(label: String, flow_rate: u32, neighbors: Vec<String>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 365 |     pub fn linear(flows: Vec<u32>) -> Vec<Self> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 382 |     pub fn from_strings(strings: Vec<String>) -> Vec<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 |     pub fn from_string(s: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 410 |     pub fn get_label(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 414 |     pub fn get_flow_rate(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 418 |     pub fn get_neighbors(&self) -> &Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 422 |     pub fn get_cumulative_pressure_from(&self, t: Time) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 428 |     pub fn get_cumulative_pressure_if_opened_over(&self, time_remaining: Time) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 432 |     pub fn open(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 436 |     pub fn is_open(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 440 |     pub fn close(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 444 |     pub fn is_closed(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_17a` is never used
[INFO] [stdout]   --> src/problems/problem_17.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn solve_problem_17a(input: String) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_17b` is never used
[INFO] [stdout]   --> src/problems/problem_17.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn solve_problem_17b(input: String) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Time` is never used
[INFO] [stdout]   --> src/problems/problem_17.rs:34:6
[INFO] [stdout]    |
[INFO] [stdout] 34 | type Time = usize;
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WIDTH` is never used
[INFO] [stdout]   --> src/problems/problem_17.rs:36:7
[INFO] [stdout]    |
[INFO] [stdout] 36 | const WIDTH: usize = 7;
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_PERIOD` is never used
[INFO] [stdout]   --> src/problems/problem_17.rs:37:7
[INFO] [stdout]    |
[INFO] [stdout] 37 | const MAX_PERIOD: usize = 50455;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Simulation` is never constructed
[INFO] [stdout]   --> src/problems/problem_17.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | struct Simulation {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/problems/problem_17.rs:52:12
[INFO] [stdout]     |
[INFO] [stdout]  50 | impl Simulation {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout]  51 |
[INFO] [stdout]  52 |     pub fn new(jet_patterns: Vec<Direction>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     pub fn from_string(jet_patterns: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |     pub fn get_time_elapsed(&self) -> Time {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn get_n_rocks_fallen(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn get_falling_rock_position(&self) -> Option<Vec2> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub fn get_falling_rock_type(&self) -> Option<Rock> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  98 |     pub fn get_occupied_squares_on_surface(&self) -> &OccupiedSquares {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn get_period_start_period_and_height_difference(&mut self) -> Option<(Time, Time, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn is_flat(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn get_height(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn step_until_before_the_nth_rock(&mut self, n: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn step_until_rock_lands(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn step(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub fn falling_rock_has_landed(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     fn get_movement_effect(&self, direction: Direction) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     fn get_falling_rock_initial_position(&self) -> Vec2 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SimulationPhase` is never used
[INFO] [stdout]    --> src/problems/problem_17.rs:224:6
[INFO] [stdout]     |
[INFO] [stdout] 224 | enum SimulationPhase {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_rock_position` is never used
[INFO] [stdout]    --> src/problems/problem_17.rs:232:12
[INFO] [stdout]     |
[INFO] [stdout] 230 | impl SimulationPhase {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] 231 |
[INFO] [stdout] 232 |     pub fn get_rock_position(&self) -> Option<Vec2> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Rock` is never used
[INFO] [stdout]    --> src/problems/problem_17.rs:242:6
[INFO] [stdout]     |
[INFO] [stdout] 242 | enum Rock {
[INFO] [stdout]     |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/problems/problem_17.rs:252:12
[INFO] [stdout]     |
[INFO] [stdout] 250 | impl Rock {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] 251 |
[INFO] [stdout] 252 |     pub fn all() -> Vec<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 262 |     pub fn get_next(&self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 272 |     pub fn get_width(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 282 |     pub fn rock_would_collide_with_wall(&self, rock_position: Vec2) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 286 |     pub fn get_stone_positions_at_surface(&self, rock_position: Vec2) -> OccupiedSquares {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     pub fn get_stone_positions_unchecked(&self, rock_position: Vec2) -> OccupiedSquares {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 295 |     pub fn get_relative_stone_positions(&self) -> OccupiedSquares {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 299 |     fn get_relative_stone_positions_as_vecs(&self) -> HashSet<Vec2> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OccupiedSquares` is never constructed
[INFO] [stdout]    --> src/problems/problem_17.rs:340:8
[INFO] [stdout]     |
[INFO] [stdout] 340 | struct OccupiedSquares(HashSet<Vec2>);
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/problems/problem_17.rs:344:12
[INFO] [stdout]     |
[INFO] [stdout] 342 | impl OccupiedSquares {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] 343 |
[INFO] [stdout] 344 |     pub fn new_unchecked(vecs: HashSet<Vec2>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 348 |     pub fn new(vecs: HashSet<Vec2>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 352 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 356 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 360 |     pub fn is_disjoint(&self, other: &Self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 364 |     pub fn intersects(&self, other: &Self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 368 |     pub fn contains(&self, v: Vec2) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 372 |     pub fn intersect(&self, other: &Self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 376 |     pub fn union(&self, other: &Self) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 380 |     pub fn get_max_y(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 384 |     pub fn shift(&self, delta_v: Vec2) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     fn get_signature(&self) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 397 |     fn get_surface(&self) -> Self {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_18a` is never used
[INFO] [stdout]  --> src/problems/problem_18.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn solve_problem_18a(input: Vec<String>) -> usize {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_18b` is never used
[INFO] [stdout]  --> src/problems/problem_18.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_problem_18b(input: Vec<String>) -> usize {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_19a` is never used
[INFO] [stdout]  --> src/problems/problem_19.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn solve_problem_19a(input: Vec<String>) -> usize {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_19b` is never used
[INFO] [stdout]  --> src/problems/problem_19.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_problem_19b(input: Vec<String>) -> usize {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_20a` is never used
[INFO] [stdout]  --> src/problems/problem_20.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn solve_problem_20a(input: Vec<String>) -> usize {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_20b` is never used
[INFO] [stdout]  --> src/problems/problem_20.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_problem_20b(input: Vec<String>) -> usize {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_21a` is never used
[INFO] [stdout]  --> src/problems/problem_21.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn solve_problem_21a(input: Vec<String>) -> usize {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_21b` is never used
[INFO] [stdout]  --> src/problems/problem_21.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_problem_21b(input: Vec<String>) -> usize {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_22a` is never used
[INFO] [stdout]  --> src/problems/problem_22.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn solve_problem_22a(input: Vec<String>) -> usize {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_22b` is never used
[INFO] [stdout]  --> src/problems/problem_22.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_problem_22b(input: Vec<String>) -> usize {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_23a` is never used
[INFO] [stdout]  --> src/problems/problem_23.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn solve_problem_23a(input: Vec<String>) -> usize {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_23b` is never used
[INFO] [stdout]  --> src/problems/problem_23.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_problem_23b(input: Vec<String>) -> usize {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_24a` is never used
[INFO] [stdout]  --> src/problems/problem_24.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn solve_problem_24a(input: Vec<String>) -> usize {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_24b` is never used
[INFO] [stdout]  --> src/problems/problem_24.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_problem_24b(input: Vec<String>) -> usize {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_25a` is never used
[INFO] [stdout]  --> src/problems/problem_25.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn solve_problem_25a(input: Vec<String>) -> usize {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_problem_25b` is never used
[INFO] [stdout]  --> src/problems/problem_25.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_problem_25b(input: Vec<String>) -> usize {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Direction` is never used
[INFO] [stdout]  --> src/utility/direction.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub enum Direction {
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_string` and `get_delta` are never used
[INFO] [stdout]   --> src/utility/direction.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Direction {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 14 |
[INFO] [stdout] 15 |     pub fn from_string(s: &str) -> Result<Self, String> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn get_delta(&self) -> Vec2 {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vec2` is never constructed
[INFO] [stdout]  --> src/utility/vector.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Vec2 {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/utility/vector.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | impl Vec2 {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 51 |
[INFO] [stdout] 52 |     pub fn new(x: i32, y: i32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn x(&self) -> i32 {
[INFO] [stdout]    |            ^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn y(&self) -> i32 {
[INFO] [stdout]    |            ^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn i() -> Self {
[INFO] [stdout]    |            ^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn j() -> Self {
[INFO] [stdout]    |            ^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn get_l1_norm(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn signum(&self) -> Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn get_points_between(left: Self, right: Self) -> Vec<Self> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Parser` is never constructed
[INFO] [stdout]  --> src/utility/parser.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Parser {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/utility/parser.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Parser {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 10 |
[INFO] [stdout] 11 |     pub fn new(commands: String) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub fn n_remaining_to_parse(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn increment_pointer(&mut self, n: usize) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn peek_char(&self) -> Option<char> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn consume_line(&mut self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn consume_until(&mut self, condition: &dyn Fn(char) -> bool) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn consume_whitespace(&mut self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn consume_until_whitespace(&mut self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     fn whitespace_chars() -> HashSet<char> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn consume_remaining(&mut self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn consume_n(&mut self, n: usize) -> String {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn expect_end_of_line_or_file(&mut self) -> Result<String, String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn expect_end_of_line(&mut self) -> Result<String, String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub fn expect(&mut self, s: &str) -> Result<String, String> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m`
[INFO] [stdout]    --> src/problems/problem_11.rs:303:26
[INFO] [stdout]     |
[INFO] [stdout] 303 |             Self::Moduli(m) => { panic!("Already modulized!") },
[INFO] [stdout]     |                          ^ help: if this is intentional, prefix it with an underscore: `_m`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/problems/problem_11.rs:331:25
[INFO] [stdout]     |
[INFO] [stdout] 331 |                     Err(e) => panic!("Divisor wasn't found in moduli: {}", divisor)
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/problems/problem_13.rs:69:13
[INFO] [stdout]    |
[INFO] [stdout] 69 |         let mut parser = Parser::new(s);
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]    --> src/problems/problem_13.rs:142:37
[INFO] [stdout]     |
[INFO] [stdout] 142 |             (Self::N(l), Self::List(r)) => {
[INFO] [stdout]     |                                     ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `l`
[INFO] [stdout]    --> src/problems/problem_13.rs:145:25
[INFO] [stdout]     |
[INFO] [stdout] 145 |             (Self::List(l), Self::N(r)) => {
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `below_left`
[INFO] [stdout]    --> src/problems/problem_14.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let below_left = below - Vec2::i();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_below_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `below_right`
[INFO] [stdout]    --> src/problems/problem_14.rs:116:13
[INFO] [stdout]     |
[INFO] [stdout] 116 |         let below_right = below + Vec2::i();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_below_right`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/problems/problem_18.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn solve_problem_18a(input: Vec<String>) -> usize {
[INFO] [stdout]   |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/problems/problem_18.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_problem_18b(input: Vec<String>) -> usize {
[INFO] [stdout]   |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/problems/problem_19.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn solve_problem_19a(input: Vec<String>) -> usize {
[INFO] [stdout]   |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/problems/problem_19.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_problem_19b(input: Vec<String>) -> usize {
[INFO] [stdout]   |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/problems/problem_20.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn solve_problem_20a(input: Vec<String>) -> usize {
[INFO] [stdout]   |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/problems/problem_20.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_problem_20b(input: Vec<String>) -> usize {
[INFO] [stdout]   |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/problems/problem_21.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn solve_problem_21a(input: Vec<String>) -> usize {
[INFO] [stdout]   |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/problems/problem_21.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_problem_21b(input: Vec<String>) -> usize {
[INFO] [stdout]   |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/problems/problem_22.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn solve_problem_22a(input: Vec<String>) -> usize {
[INFO] [stdout]   |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/problems/problem_22.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_problem_22b(input: Vec<String>) -> usize {
[INFO] [stdout]   |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/problems/problem_23.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn solve_problem_23a(input: Vec<String>) -> usize {
[INFO] [stdout]   |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/problems/problem_23.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_problem_23b(input: Vec<String>) -> usize {
[INFO] [stdout]   |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/problems/problem_24.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn solve_problem_24a(input: Vec<String>) -> usize {
[INFO] [stdout]   |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/problems/problem_24.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_problem_24b(input: Vec<String>) -> usize {
[INFO] [stdout]   |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/problems/problem_25.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn solve_problem_25a(input: Vec<String>) -> usize {
[INFO] [stdout]   |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/problems/problem_25.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_problem_25b(input: Vec<String>) -> usize {
[INFO] [stdout]   |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/problems/problem_07.rs:23:10
[INFO] [stdout]    |
[INFO] [stdout] 23 |     File(String, usize),
[INFO] [stdout]    |     ---- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 23 -     File(String, usize),
[INFO] [stdout] 23 +     File((), usize),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/problems/problem_07.rs:24:15
[INFO] [stdout]    |
[INFO] [stdout] 24 |     Directory(String, Vec<FileTreeNode>),
[INFO] [stdout]    |     --------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 24 -     Directory(String, Vec<FileTreeNode>),
[INFO] [stdout] 24 +     Directory((), Vec<FileTreeNode>),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_n` is never used
[INFO] [stdout]    --> src/problems/problem_11.rs:314:12
[INFO] [stdout]     |
[INFO] [stdout] 298 | impl ItemWorryLevel {
[INFO] [stdout]     | ------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 314 |     pub fn from_n(n: u32, maybe_moduli: Option<Vec<u32>>) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `maybe_get` is never used
[INFO] [stdout]   --> src/problems/problem_12.rs:93:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl Grid {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 93 |     pub fn maybe_get(&self, v: Vec2) -> Option<usize> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_y_bounds` is never used
[INFO] [stdout]    --> src/problems/problem_15.rs:100:12
[INFO] [stdout]     |
[INFO] [stdout]  54 | impl Sensor {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn get_y_bounds(&self) -> (i32, i32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_minutes_until_eruption` is never used
[INFO] [stdout]   --> src/problems/problem_16.rs:38:4
[INFO] [stdout]    |
[INFO] [stdout] 38 | fn get_minutes_until_eruption(t: usize) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_causal_radius` is never used
[INFO] [stdout]   --> src/problems/problem_16.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn get_causal_radius(t: usize) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/problems/problem_16.rs:73:12
[INFO] [stdout]     |
[INFO] [stdout]  57 | impl ValveGraph {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  73 |     pub fn index_to_label(&self, i: usize) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |     pub fn get_labels(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn get_open_indices_within(&self, distance: usize, player_position: &str) -> HashSet<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 233 |     pub fn get_open_indices(&self) -> HashSet<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 237 |     pub fn get_indices_within(&self, distance: usize, player_position: &str) -> HashSet<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 264 |     pub fn open_all(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 284 |     pub fn close_all(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 288 |     pub fn close(&mut self, label: &str) -> Option<()> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 299 |     pub fn get_flow_rate(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 303 |     pub fn get_cumulative_pressure_from(&self, t: usize) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `close` is never used
[INFO] [stdout]    --> src/problems/problem_16.rs:440:12
[INFO] [stdout]     |
[INFO] [stdout] 359 | impl Valve {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 440 |     pub fn close(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_flat` is never used
[INFO] [stdout]    --> src/problems/problem_17.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout]  50 | impl Simulation {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn is_flat(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `all` is never used
[INFO] [stdout]    --> src/problems/problem_17.rs:252:12
[INFO] [stdout]     |
[INFO] [stdout] 250 | impl Rock {
[INFO] [stdout]     | --------- associated function in this implementation
[INFO] [stdout] 251 |
[INFO] [stdout] 252 |     pub fn all() -> Vec<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/problems/problem_16.rs:718:9
[INFO] [stdout]     |
[INFO] [stdout] 718 |         graph.open_valves(vec!["BB", "CC", "DD"]);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 718 |         let _ = graph.open_valves(vec!["BB", "CC", "DD"]);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.24s
[INFO] running `Command { std: "docker" "inspect" "a8f73050acb86849b0c94b7626cb41894bb5905e610d6c0cfa1ac9e08156cb6f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a8f73050acb86849b0c94b7626cb41894bb5905e610d6c0cfa1ac9e08156cb6f", kill_on_drop: false }`
[INFO] [stdout] a8f73050acb86849b0c94b7626cb41894bb5905e610d6c0cfa1ac9e08156cb6f
