[INFO] cloning repository https://github.com/benj2468/aoc-23
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/benj2468/aoc-23" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbenj2468%2Faoc-23", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbenj2468%2Faoc-23'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] d0d471d9810b3290f7f8252615d522f8fa2ccbf0
[INFO] testing benj2468/aoc-23 against 1.98.0-beta.1 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbenj2468%2Faoc-23" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/benj2468/aoc-23
[INFO] finished tweaking git repo https://github.com/benj2468/aoc-23
[INFO] tweaked toml for git repo https://github.com/benj2468/aoc-23 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/benj2468/aoc-23 on toolchain 1.98.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/benj2468/aoc-23 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" "+1.98.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded deprecate-until v0.1.1
[INFO] [stderr]   Downloaded pathfinding v4.4.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] cf3560ab2cb71e2975cde17a2de8f6301487d1abdb355fb25eafe067de51b838
[INFO] running `Command { std: "docker" "start" "cf3560ab2cb71e2975cde17a2de8f6301487d1abdb355fb25eafe067de51b838", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "cf3560ab2cb71e2975cde17a2de8f6301487d1abdb355fb25eafe067de51b838", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "cf3560ab2cb71e2975cde17a2de8f6301487d1abdb355fb25eafe067de51b838" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "cf3560ab2cb71e2975cde17a2de8f6301487d1abdb355fb25eafe067de51b838", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "cf3560ab2cb71e2975cde17a2de8f6301487d1abdb355fb25eafe067de51b838" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v1.1.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.70
[INFO] [stderr]    Compiling semver v1.0.20
[INFO] [stderr]    Compiling thiserror v1.0.50
[INFO] [stderr]    Compiling memchr v2.6.4
[INFO] [stderr]    Compiling regex-syntax v0.8.2
[INFO] [stderr]    Compiling fixedbitset v0.4.2
[INFO] [stderr]    Compiling either v1.9.0
[INFO] [stderr]    Compiling indexmap v2.1.0
[INFO] [stderr]    Compiling itertools v0.12.0
[INFO] [stderr]    Compiling num-traits v0.2.17
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]    Compiling num-bigint v0.4.4
[INFO] [stderr]    Compiling num-iter v0.1.43
[INFO] [stderr]    Compiling num-rational v0.4.1
[INFO] [stderr]    Compiling aho-corasick v1.1.2
[INFO] [stderr]    Compiling quote v1.0.33
[INFO] [stderr]    Compiling syn v2.0.39
[INFO] [stderr]    Compiling integer-sqrt v0.1.5
[INFO] [stderr]    Compiling num-complex v0.4.4
[INFO] [stderr]    Compiling regex-automata v0.4.3
[INFO] [stderr]    Compiling thiserror-impl v1.0.50
[INFO] [stderr]    Compiling deprecate-until v0.1.1
[INFO] [stderr]    Compiling num v0.4.1
[INFO] [stderr]    Compiling pathfinding v4.4.0
[INFO] [stderr]    Compiling regex v1.10.2
[INFO] [stderr]    Compiling aoc-23 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Day2`, `GamePart`, and `Game`
[INFO] [stdout]  --> src/day2/mod.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::day2::part1::{Day2, Game, GamePart};
[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::cmp`
[INFO] [stdout]  --> src/day2/mod.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 |     use std::cmp;
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:58:49
[INFO] [stdout]    |
[INFO] [stdout] 58 | ...                   if let Some(i) = s.find("one") {
[INFO] [stdout]    |                                   ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:60:56
[INFO] [stdout]    |
[INFO] [stdout] 60 | ...                   } else if let Some(i) = s.find("two") {
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:62:56
[INFO] [stdout]    |
[INFO] [stdout] 62 | ...                   } else if let Some(i) = s.find("three") {
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:64:56
[INFO] [stdout]    |
[INFO] [stdout] 64 | ...                   } else if let Some(i) = s.find("four") {
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:66:56
[INFO] [stdout]    |
[INFO] [stdout] 66 | ...                   } else if let Some(i) = s.find("five") {
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:68:56
[INFO] [stdout]    |
[INFO] [stdout] 68 | ...                   } else if let Some(i) = s.find("six") {
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:70:56
[INFO] [stdout]    |
[INFO] [stdout] 70 | ...                   } else if let Some(i) = s.find("seven") {
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:72:56
[INFO] [stdout]    |
[INFO] [stdout] 72 | ...                   } else if let Some(i) = s.find("eight") {
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:74:56
[INFO] [stdout]    |
[INFO] [stdout] 74 | ...                   } else if let Some(i) = s.find("nine") {
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:25:49
[INFO] [stdout]    |
[INFO] [stdout] 25 | ...                   if let Some(i) = s.find("one") {
[INFO] [stdout]    |                                   ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:27:56
[INFO] [stdout]    |
[INFO] [stdout] 27 | ...                   } else if let Some(i) = s.find("two") {
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:29:56
[INFO] [stdout]    |
[INFO] [stdout] 29 | ...                   } else if let Some(i) = s.find("three") {
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:31:56
[INFO] [stdout]    |
[INFO] [stdout] 31 | ...                   } else if let Some(i) = s.find("four") {
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:33:56
[INFO] [stdout]    |
[INFO] [stdout] 33 | ...                   } else if let Some(i) = s.find("five") {
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:35:56
[INFO] [stdout]    |
[INFO] [stdout] 35 | ...                   } else if let Some(i) = s.find("six") {
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:37:56
[INFO] [stdout]    |
[INFO] [stdout] 37 | ...                   } else if let Some(i) = s.find("seven") {
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:39:56
[INFO] [stdout]    |
[INFO] [stdout] 39 | ...                   } else if let Some(i) = s.find("eight") {
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:41:56
[INFO] [stdout]    |
[INFO] [stdout] 41 | ...                   } else if let Some(i) = s.find("nine") {
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max`
[INFO] [stdout]   --> src/day2/mod.rs:85:17
[INFO] [stdout]    |
[INFO] [stdout] 85 |             let max = GamePart {
[INFO] [stdout]    |                 ^^^ help: if this is intentional, prefix it with an underscore: `_max`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Day1` is never constructed
[INFO] [stdout]  --> src/day1/mod.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct Day1(u32);
[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 `GamePart` is never constructed
[INFO] [stdout]  --> src/day2/mod.rs:9:16
[INFO] [stdout]   |
[INFO] [stdout] 9 |     pub struct GamePart {
[INFO] [stdout]   |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Game` is never constructed
[INFO] [stdout]   --> src/day2/mod.rs:50:16
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub struct Game {
[INFO] [stdout]    |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `power` is never used
[INFO] [stdout]   --> src/day2/mod.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 55 |     impl Game {
[INFO] [stdout]    |     --------- method in this implementation
[INFO] [stdout] 56 |         fn power(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Day2` is never constructed
[INFO] [stdout]   --> src/day2/mod.rs:81:16
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub struct Day2(u32);
[INFO] [stdout]    |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Day3` is never constructed
[INFO] [stdout]  --> src/day3/mod.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Day3 {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `surrounding_values` is never used
[INFO] [stdout]   --> src/day3/mod.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn surrounding_values((x, y): (usize, usize), l: usize) -> HashSet<(usize, usize)> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `part1` and `part2` are never used
[INFO] [stdout]   --> src/day3/mod.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl Day3 {
[INFO] [stdout]    | --------- methods in this implementation
[INFO] [stdout] 37 |     fn part1(self) -> u32 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     fn part2(self) -> u32 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Day3_2` is never constructed
[INFO] [stdout]    --> src/day3/mod.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | struct Day3_2(u32);
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Part1` is never constructed
[INFO] [stdout]  --> src/day4/mod.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | struct Part1(u32);
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Part2` is never constructed
[INFO] [stdout]   --> src/day4/mod.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | struct Part2(u32);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Part1` is never constructed
[INFO] [stdout]  --> src/day5/mod.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Part1(u32);
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Part2` is never constructed
[INFO] [stdout]   --> src/day5/mod.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | struct Part2(u32);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Ranges` is never used
[INFO] [stdout]   --> src/day5/mod.rs:57:6
[INFO] [stdout]    |
[INFO] [stdout] 57 | type Ranges = HashMap<u32, (u32, u32)>;
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `merge` is never used
[INFO] [stdout]   --> src/day5/mod.rs:59:4
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn merge(
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `merge_ranges` is never used
[INFO] [stdout]    --> src/day5/mod.rs:109:4
[INFO] [stdout]     |
[INFO] [stdout] 109 | fn merge_ranges(old: Ranges, new: Ranges) -> Ranges {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Part1` is never constructed
[INFO] [stdout]  --> src/day6/mod.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Part1(u32);
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ways_to_win` is never used
[INFO] [stdout]  --> src/day6/mod.rs:8:4
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn ways_to_win(time: usize, record: usize) -> usize {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Part2` is never constructed
[INFO] [stdout]   --> src/day6/mod.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | struct Part2(usize);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Hand` is never constructed
[INFO] [stdout]  --> src/day7/mod.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Hand {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `HandType` is never used
[INFO] [stdout]   --> src/day7/mod.rs:15:10
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum HandType {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CHARS` is never used
[INFO] [stdout]   --> src/day7/mod.rs:25:7
[INFO] [stdout]    |
[INFO] [stdout] 25 | const CHARS: [char; 13] = [
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Part1` is never constructed
[INFO] [stdout]    --> src/day7/mod.rs:113:8
[INFO] [stdout]     |
[INFO] [stdout] 113 | struct Part1(u32);
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Part2` is never constructed
[INFO] [stdout]    --> src/day7/mod.rs:140:8
[INFO] [stdout]     |
[INFO] [stdout] 140 | struct Part2(u32);
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Part1` is never constructed
[INFO] [stdout]  --> src/day8/mod.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct Part1(u32);
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Part2` is never constructed
[INFO] [stdout]   --> src/day8/mod.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | struct Part2(usize);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_history_one` is never used
[INFO] [stdout]  --> src/day9/mod.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn solve_history_one(history: Vec<isize>) -> isize {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Part1` is never constructed
[INFO] [stdout]   --> src/day9/mod.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct Part1(isize);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_history_two` is never used
[INFO] [stdout]   --> src/day9/mod.rs:33:4
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn solve_history_two(history: Vec<isize>) -> isize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Part2` is never constructed
[INFO] [stdout]   --> src/day9/mod.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | struct Part2(isize);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.37s
[INFO] running `Command { std: "docker" "inspect" "cf3560ab2cb71e2975cde17a2de8f6301487d1abdb355fb25eafe067de51b838", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "cf3560ab2cb71e2975cde17a2de8f6301487d1abdb355fb25eafe067de51b838" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling aoc-23 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Game`
[INFO] [stdout]  --> src/day2/mod.rs:1:32
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::day2::part1::{Day2, Game, GamePart};
[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::cmp`
[INFO] [stdout]  --> src/day2/mod.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 |     use std::cmp;
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::AOCInput`
[INFO] [stdout]    --> src/day2/mod.rs:129:9
[INFO] [stdout]     |
[INFO] [stdout] 129 |     use crate::AOCInput;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:58:49
[INFO] [stdout]    |
[INFO] [stdout] 58 | ...                   if let Some(i) = s.find("one") {
[INFO] [stdout]    |                                   ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:60:56
[INFO] [stdout]    |
[INFO] [stdout] 60 | ...                   } else if let Some(i) = s.find("two") {
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:62:56
[INFO] [stdout]    |
[INFO] [stdout] 62 | ...                   } else if let Some(i) = s.find("three") {
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:64:56
[INFO] [stdout]    |
[INFO] [stdout] 64 | ...                   } else if let Some(i) = s.find("four") {
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:66:56
[INFO] [stdout]    |
[INFO] [stdout] 66 | ...                   } else if let Some(i) = s.find("five") {
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:68:56
[INFO] [stdout]    |
[INFO] [stdout] 68 | ...                   } else if let Some(i) = s.find("six") {
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:70:56
[INFO] [stdout]    |
[INFO] [stdout] 70 | ...                   } else if let Some(i) = s.find("seven") {
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:72:56
[INFO] [stdout]    |
[INFO] [stdout] 72 | ...                   } else if let Some(i) = s.find("eight") {
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:74:56
[INFO] [stdout]    |
[INFO] [stdout] 74 | ...                   } else if let Some(i) = s.find("nine") {
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:25:49
[INFO] [stdout]    |
[INFO] [stdout] 25 | ...                   if let Some(i) = s.find("one") {
[INFO] [stdout]    |                                   ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:27:56
[INFO] [stdout]    |
[INFO] [stdout] 27 | ...                   } else if let Some(i) = s.find("two") {
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:29:56
[INFO] [stdout]    |
[INFO] [stdout] 29 | ...                   } else if let Some(i) = s.find("three") {
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:31:56
[INFO] [stdout]    |
[INFO] [stdout] 31 | ...                   } else if let Some(i) = s.find("four") {
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:33:56
[INFO] [stdout]    |
[INFO] [stdout] 33 | ...                   } else if let Some(i) = s.find("five") {
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:35:56
[INFO] [stdout]    |
[INFO] [stdout] 35 | ...                   } else if let Some(i) = s.find("six") {
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:37:56
[INFO] [stdout]    |
[INFO] [stdout] 37 | ...                   } else if let Some(i) = s.find("seven") {
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:39:56
[INFO] [stdout]    |
[INFO] [stdout] 39 | ...                   } else if let Some(i) = s.find("eight") {
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day1/mod.rs:41:56
[INFO] [stdout]    |
[INFO] [stdout] 41 | ...                   } else if let Some(i) = s.find("nine") {
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max`
[INFO] [stdout]   --> src/day2/mod.rs:85:17
[INFO] [stdout]    |
[INFO] [stdout] 85 |             let max = GamePart {
[INFO] [stdout]    |                 ^^^ help: if this is intentional, prefix it with an underscore: `_max`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/day1/mod.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct Day1(u32);
[INFO] [stdout]   |            ---- ^^^
[INFO] [stdout]   |            |
[INFO] [stdout]   |            field in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider removing this field
[INFO] [stdout]   = note: `Day1` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]   --> src/day2/mod.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub struct Game {
[INFO] [stdout]    |                ---- field in this struct
[INFO] [stdout] 51 |         id: u32,
[INFO] [stdout]    |         ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/day2/mod.rs:81:21
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub struct Day2(u32);
[INFO] [stdout]    |                ---- ^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout]    = note: `Day2` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/day3/mod.rs:111:15
[INFO] [stdout]     |
[INFO] [stdout] 111 | struct Day3_2(u32);
[INFO] [stdout]     |        ------ ^^^
[INFO] [stdout]     |        |
[INFO] [stdout]     |        field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout]     = note: `Day3_2` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/day4/mod.rs:8:14
[INFO] [stdout]   |
[INFO] [stdout] 8 | struct Part1(u32);
[INFO] [stdout]   |        ----- ^^^
[INFO] [stdout]   |        |
[INFO] [stdout]   |        field in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider removing this field
[INFO] [stdout]   = note: `Part1` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/day4/mod.rs:41:14
[INFO] [stdout]    |
[INFO] [stdout] 41 | struct Part2(u32);
[INFO] [stdout]    |        ----- ^^^
[INFO] [stdout]    |        |
[INFO] [stdout]    |        field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout]    = note: `Part2` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/day5/mod.rs:6:14
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Part1(u32);
[INFO] [stdout]   |        ----- ^^^
[INFO] [stdout]   |        |
[INFO] [stdout]   |        field in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider removing this field
[INFO] [stdout]   = note: `Part1` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/day5/mod.rs:54:14
[INFO] [stdout]    |
[INFO] [stdout] 54 | struct Part2(u32);
[INFO] [stdout]    |        ----- ^^^
[INFO] [stdout]    |        |
[INFO] [stdout]    |        field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout]    = note: `Part2` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/day6/mod.rs:6:14
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Part1(u32);
[INFO] [stdout]   |        ----- ^^^
[INFO] [stdout]   |        |
[INFO] [stdout]   |        field in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider removing this field
[INFO] [stdout]   = note: `Part1` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/day6/mod.rs:54:14
[INFO] [stdout]    |
[INFO] [stdout] 54 | struct Part2(usize);
[INFO] [stdout]    |        ----- ^^^^^
[INFO] [stdout]    |        |
[INFO] [stdout]    |        field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout]    = note: `Part2` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/day7/mod.rs:140:14
[INFO] [stdout]     |
[INFO] [stdout] 140 | struct Part2(u32);
[INFO] [stdout]     |        ----- ^^^
[INFO] [stdout]     |        |
[INFO] [stdout]     |        field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout]     = note: `Part2` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/day8/mod.rs:9:14
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct Part1(u32);
[INFO] [stdout]   |        ----- ^^^
[INFO] [stdout]   |        |
[INFO] [stdout]   |        field in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider removing this field
[INFO] [stdout]   = note: `Part1` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/day8/mod.rs:63:14
[INFO] [stdout]    |
[INFO] [stdout] 63 | struct Part2(usize);
[INFO] [stdout]    |        ----- ^^^^^
[INFO] [stdout]    |        |
[INFO] [stdout]    |        field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout]    = note: `Part2` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/day9/mod.rs:13:14
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct Part1(isize);
[INFO] [stdout]    |        ----- ^^^^^
[INFO] [stdout]    |        |
[INFO] [stdout]    |        field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout]    = note: `Part1` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/day9/mod.rs:43:14
[INFO] [stdout]    |
[INFO] [stdout] 43 | struct Part2(isize);
[INFO] [stdout]    |        ----- ^^^^^
[INFO] [stdout]    |        |
[INFO] [stdout]    |        field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout]    = note: `Part2` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.23s
[INFO] running `Command { std: "docker" "inspect" "cf3560ab2cb71e2975cde17a2de8f6301487d1abdb355fb25eafe067de51b838", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "cf3560ab2cb71e2975cde17a2de8f6301487d1abdb355fb25eafe067de51b838" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `Game`
[INFO] [stderr]  --> src/day2/mod.rs:1:32
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::day2::part1::{Day2, Game, GamePart};
[INFO] [stderr]   |                                ^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::cmp`
[INFO] [stderr]  --> src/day2/mod.rs:4:9
[INFO] [stderr]   |
[INFO] [stderr] 4 |     use std::cmp;
[INFO] [stderr]   |         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::AOCInput`
[INFO] [stderr]    --> src/day2/mod.rs:129:9
[INFO] [stderr]     |
[INFO] [stderr] 129 |     use crate::AOCInput;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]   --> src/day1/mod.rs:58:49
[INFO] [stderr]    |
[INFO] [stderr] 58 | ...                   if let Some(i) = s.find("one") {
[INFO] [stderr]    |                                   ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]   --> src/day1/mod.rs:60:56
[INFO] [stderr]    |
[INFO] [stderr] 60 | ...                   } else if let Some(i) = s.find("two") {
[INFO] [stderr]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]   --> src/day1/mod.rs:62:56
[INFO] [stderr]    |
[INFO] [stderr] 62 | ...                   } else if let Some(i) = s.find("three") {
[INFO] [stderr]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]   --> src/day1/mod.rs:64:56
[INFO] [stderr]    |
[INFO] [stderr] 64 | ...                   } else if let Some(i) = s.find("four") {
[INFO] [stderr]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]   --> src/day1/mod.rs:66:56
[INFO] [stderr]    |
[INFO] [stderr] 66 | ...                   } else if let Some(i) = s.find("five") {
[INFO] [stderr]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]   --> src/day1/mod.rs:68:56
[INFO] [stderr]    |
[INFO] [stderr] 68 | ...                   } else if let Some(i) = s.find("six") {
[INFO] [stderr]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]   --> src/day1/mod.rs:70:56
[INFO] [stderr]    |
[INFO] [stderr] 70 | ...                   } else if let Some(i) = s.find("seven") {
[INFO] [stderr]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]   --> src/day1/mod.rs:72:56
[INFO] [stderr]    |
[INFO] [stderr] 72 | ...                   } else if let Some(i) = s.find("eight") {
[INFO] [stderr]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]   --> src/day1/mod.rs:74:56
[INFO] [stderr]    |
[INFO] [stderr] 74 | ...                   } else if let Some(i) = s.find("nine") {
[INFO] [stderr]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]   --> src/day1/mod.rs:25:49
[INFO] [stderr]    |
[INFO] [stderr] 25 | ...                   if let Some(i) = s.find("one") {
[INFO] [stderr]    |                                   ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]   --> src/day1/mod.rs:27:56
[INFO] [stderr]    |
[INFO] [stderr] 27 | ...                   } else if let Some(i) = s.find("two") {
[INFO] [stderr]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]   --> src/day1/mod.rs:29:56
[INFO] [stderr]    |
[INFO] [stderr] 29 | ...                   } else if let Some(i) = s.find("three") {
[INFO] [stderr]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]   --> src/day1/mod.rs:31:56
[INFO] [stderr]    |
[INFO] [stderr] 31 | ...                   } else if let Some(i) = s.find("four") {
[INFO] [stderr]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]   --> src/day1/mod.rs:33:56
[INFO] [stderr]    |
[INFO] [stderr] 33 | ...                   } else if let Some(i) = s.find("five") {
[INFO] [stderr]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]   --> src/day1/mod.rs:35:56
[INFO] [stderr]    |
[INFO] [stderr] 35 | ...                   } else if let Some(i) = s.find("six") {
[INFO] [stderr]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]   --> src/day1/mod.rs:37:56
[INFO] [stderr]    |
[INFO] [stderr] 37 | ...                   } else if let Some(i) = s.find("seven") {
[INFO] [stderr]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]   --> src/day1/mod.rs:39:56
[INFO] [stderr]    |
[INFO] [stderr] 39 | ...                   } else if let Some(i) = s.find("eight") {
[INFO] [stderr]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]   --> src/day1/mod.rs:41:56
[INFO] [stderr]    |
[INFO] [stderr] 41 | ...                   } else if let Some(i) = s.find("nine") {
[INFO] [stderr]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `max`
[INFO] [stderr]   --> src/day2/mod.rs:85:17
[INFO] [stderr]    |
[INFO] [stderr] 85 |             let max = GamePart {
[INFO] [stderr]    |                 ^^^ help: if this is intentional, prefix it with an underscore: `_max`
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]  --> src/day1/mod.rs:2:17
[INFO] [stderr]   |
[INFO] [stderr] 2 | pub struct Day1(u32);
[INFO] [stderr]   |            ---- ^^^
[INFO] [stderr]   |            |
[INFO] [stderr]   |            field in this struct
[INFO] [stderr]   |
[INFO] [stderr]   = help: consider removing this field
[INFO] [stderr]   = note: `Day1` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `id` is never read
[INFO] [stderr]   --> src/day2/mod.rs:51:9
[INFO] [stderr]    |
[INFO] [stderr] 50 |     pub struct Game {
[INFO] [stderr]    |                ---- field in this struct
[INFO] [stderr] 51 |         id: u32,
[INFO] [stderr]    |         ^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/day2/mod.rs:81:21
[INFO] [stderr]    |
[INFO] [stderr] 81 |     pub struct Day2(u32);
[INFO] [stderr]    |                ---- ^^^
[INFO] [stderr]    |                |
[INFO] [stderr]    |                field in this struct
[INFO] [stderr]    |
[INFO] [stderr]    = help: consider removing this field
[INFO] [stderr]    = note: `Day2` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]    --> src/day3/mod.rs:111:15
[INFO] [stderr]     |
[INFO] [stderr] 111 | struct Day3_2(u32);
[INFO] [stderr]     |        ------ ^^^
[INFO] [stderr]     |        |
[INFO] [stderr]     |        field in this struct
[INFO] [stderr]     |
[INFO] [stderr]     = help: consider removing this field
[INFO] [stderr]     = note: `Day3_2` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]  --> src/day4/mod.rs:8:14
[INFO] [stderr]   |
[INFO] [stderr] 8 | struct Part1(u32);
[INFO] [stderr]   |        ----- ^^^
[INFO] [stderr]   |        |
[INFO] [stderr]   |        field in this struct
[INFO] [stderr]   |
[INFO] [stderr]   = help: consider removing this field
[INFO] [stderr]   = note: `Part1` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/day4/mod.rs:41:14
[INFO] [stderr]    |
[INFO] [stderr] 41 | struct Part2(u32);
[INFO] [stderr]    |        ----- ^^^
[INFO] [stderr]    |        |
[INFO] [stderr]    |        field in this struct
[INFO] [stderr]    |
[INFO] [stderr]    = help: consider removing this field
[INFO] [stderr]    = note: `Part2` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]  --> src/day5/mod.rs:6:14
[INFO] [stderr]   |
[INFO] [stderr] 6 | struct Part1(u32);
[INFO] [stderr]   |        ----- ^^^
[INFO] [stderr]   |        |
[INFO] [stderr]   |        field in this struct
[INFO] [stderr]   |
[INFO] [stderr]   = help: consider removing this field
[INFO] [stderr]   = note: `Part1` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/day5/mod.rs:54:14
[INFO] [stderr]    |
[INFO] [stderr] 54 | struct Part2(u32);
[INFO] [stderr]    |        ----- ^^^
[INFO] [stderr]    |        |
[INFO] [stderr]    |        field in this struct
[INFO] [stderr]    |
[INFO] [stderr]    = help: consider removing this field
[INFO] [stderr]    = note: `Part2` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]  --> src/day6/mod.rs:6:14
[INFO] [stderr]   |
[INFO] [stderr] 6 | struct Part1(u32);
[INFO] [stderr]   |        ----- ^^^
[INFO] [stderr]   |        |
[INFO] [stderr]   |        field in this struct
[INFO] [stderr]   |
[INFO] [stderr]   = help: consider removing this field
[INFO] [stderr]   = note: `Part1` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/day6/mod.rs:54:14
[INFO] [stderr]    |
[INFO] [stderr] 54 | struct Part2(usize);
[INFO] [stderr]    |        ----- ^^^^^
[INFO] [stderr]    |        |
[INFO] [stderr]    |        field in this struct
[INFO] [stderr]    |
[INFO] [stderr]    = help: consider removing this field
[INFO] [stderr]    = note: `Part2` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]    --> src/day7/mod.rs:140:14
[INFO] [stderr]     |
[INFO] [stderr] 140 | struct Part2(u32);
[INFO] [stderr]     |        ----- ^^^
[INFO] [stderr]     |        |
[INFO] [stderr]     |        field in this struct
[INFO] [stderr]     |
[INFO] [stderr]     = help: consider removing this field
[INFO] [stderr]     = note: `Part2` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]  --> src/day8/mod.rs:9:14
[INFO] [stderr]   |
[INFO] [stderr] 9 | struct Part1(u32);
[INFO] [stderr]   |        ----- ^^^
[INFO] [stderr]   |        |
[INFO] [stderr]   |        field in this struct
[INFO] [stderr]   |
[INFO] [stderr]   = help: consider removing this field
[INFO] [stderr]   = note: `Part1` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/day8/mod.rs:63:14
[INFO] [stderr]    |
[INFO] [stderr] 63 | struct Part2(usize);
[INFO] [stderr]    |        ----- ^^^^^
[INFO] [stderr]    |        |
[INFO] [stderr]    |        field in this struct
[INFO] [stderr]    |
[INFO] [stderr]    = help: consider removing this field
[INFO] [stderr]    = note: `Part2` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/day9/mod.rs:13:14
[INFO] [stderr]    |
[INFO] [stderr] 13 | struct Part1(isize);
[INFO] [stderr]    |        ----- ^^^^^
[INFO] [stderr]    |        |
[INFO] [stderr]    |        field in this struct
[INFO] [stderr]    |
[INFO] [stderr]    = help: consider removing this field
[INFO] [stderr]    = note: `Part1` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/day9/mod.rs:43:14
[INFO] [stderr]    |
[INFO] [stderr] 43 | struct Part2(isize);
[INFO] [stderr]    |        ----- ^^^^^
[INFO] [stderr]    |        |
[INFO] [stderr]    |        field in this struct
[INFO] [stderr]    |
[INFO] [stderr]    = help: consider removing this field
[INFO] [stderr]    = note: `Part2` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: `aoc-23` (bin "aoc-23" test) generated 37 warnings (run `cargo fix --bin "aoc-23" -p aoc-23 --tests` to apply 22 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.07s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/aoc_23-6a489279d663337d)
[INFO] [stdout] 
[INFO] [stdout] running 24 tests
[INFO] [stdout] test day2::test_1 ... ok
[INFO] [stdout] test day2::test ... ok
[INFO] [stdout] test day1::test ... ok
[INFO] [stdout] test day5::part1 ... ok
[INFO] [stdout] test day5::tester ... ok
[INFO] [stdout] test day6::tester ... ok
[INFO] [stdout] test day4::tester ... ok
[INFO] [stdout] test day6::part1 ... ok
[INFO] [stdout] test day4::part1 ... ok
[INFO] [stdout] test day3::tester ... ok
[INFO] [stdout] test day9::parts ... ok
[INFO] [stdout] test day9::tester ... ok
[INFO] [stdout] test day2::part1 ... ok
[INFO] [stdout] test day5::part2 ... ok
[INFO] [stdout] test day7::tester ... ok
[INFO] [stdout] test day1::part1 ... ok
[INFO] [stdout] test day8::tester ... ok
[INFO] [stdout] test day4::part2 ... ok
[INFO] [stdout] test day7::part2 ... ok
[INFO] [stdout] test day7::part1 ... ok
[INFO] [stdout] test day3::part2 ... ok
[INFO] [stdout] test day3::part1 ... ok
[INFO] [stdout] test day8::parts ... ok
[INFO] [stdout] test day6::part2 ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 24 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.05s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "cf3560ab2cb71e2975cde17a2de8f6301487d1abdb355fb25eafe067de51b838", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cf3560ab2cb71e2975cde17a2de8f6301487d1abdb355fb25eafe067de51b838", kill_on_drop: false }`
[INFO] [stdout] cf3560ab2cb71e2975cde17a2de8f6301487d1abdb355fb25eafe067de51b838
