[INFO] cloning repository https://github.com/mfbieber/advent_of_code2023
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mfbieber/advent_of_code2023" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmfbieber%2Fadvent_of_code2023", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmfbieber%2Fadvent_of_code2023'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 9caa69a60c09f458e580a93fa2530d6c07584816
[INFO] checking mfbieber/advent_of_code2023 against try#4f260f0f20b3133d20cfb50353c0221943af5796+rustflags=-Dunmustuse_in_always_ok for pr-148577
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmfbieber%2Fadvent_of_code2023" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/mfbieber/advent_of_code2023
[INFO] finished tweaking git repo https://github.com/mfbieber/advent_of_code2023
[INFO] tweaked toml for git repo https://github.com/mfbieber/advent_of_code2023 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/mfbieber/advent_of_code2023 on toolchain 4f260f0f20b3133d20cfb50353c0221943af5796
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/mfbieber/advent_of_code2023 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" "+4f260f0f20b3133d20cfb50353c0221943af5796" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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" "+4f260f0f20b3133d20cfb50353c0221943af5796" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 51777a5f045ec3fc530b143d36c76fb49f3f9ca3ba34c7895c4fd0bf4229512a
[INFO] running `Command { std: "docker" "start" "-a" "51777a5f045ec3fc530b143d36c76fb49f3f9ca3ba34c7895c4fd0bf4229512a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "51777a5f045ec3fc530b143d36c76fb49f3f9ca3ba34c7895c4fd0bf4229512a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "51777a5f045ec3fc530b143d36c76fb49f3f9ca3ba34c7895c4fd0bf4229512a", kill_on_drop: false }`
[INFO] [stdout] 51777a5f045ec3fc530b143d36c76fb49f3f9ca3ba34c7895c4fd0bf4229512a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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 -Dunmustuse_in_always_ok" "-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" "+4f260f0f20b3133d20cfb50353c0221943af5796" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6226dafd6dcb239a24a33bd41a84646b9f1cd568886ab401f8f40ed0e16c711c
[INFO] running `Command { std: "docker" "start" "-a" "6226dafd6dcb239a24a33bd41a84646b9f1cd568886ab401f8f40ed0e16c711c", kill_on_drop: false }`
[INFO] [stderr]    Compiling num-traits v0.2.17
[INFO] [stderr]    Compiling proc-macro2 v1.0.70
[INFO] [stderr]    Compiling crossbeam-utils v0.8.18
[INFO] [stderr]    Compiling futures-core v0.3.29
[INFO] [stderr]    Compiling futures-channel v0.3.29
[INFO] [stderr]    Compiling num-bigint v0.4.4
[INFO] [stderr]     Checking futures-sink v0.3.29
[INFO] [stderr]    Compiling futures-util v0.3.29
[INFO] [stderr]    Compiling num-rational v0.4.1
[INFO] [stderr]    Compiling num-iter v0.1.43
[INFO] [stderr]    Compiling rayon-core v1.12.0
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]     Checking memchr v2.6.4
[INFO] [stderr]     Checking futures-io v0.3.29
[INFO] [stderr]     Checking itertools v0.12.0
[INFO] [stderr]     Checking crossbeam-epoch v0.9.17
[INFO] [stderr]    Compiling quote v1.0.33
[INFO] [stderr]    Compiling syn v2.0.39
[INFO] [stderr]     Checking crossbeam-deque v0.8.4
[INFO] [stderr]     Checking num-complex v0.4.4
[INFO] [stderr]     Checking rayon v1.8.0
[INFO] [stderr]     Checking num v0.4.1
[INFO] [stderr]    Compiling futures-macro v0.3.29
[INFO] [stderr]     Checking futures-executor v0.3.29
[INFO] [stderr]     Checking futures v0.3.29
[INFO] [stderr]     Checking advent_of_code2023 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]  --> src/day5.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::Write;
[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 imports: `DerefMut` and `Deref`
[INFO] [stdout]  --> src/day5.rs:3:16
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::ops::{Deref, DerefMut};
[INFO] [stdout]   |                ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]  --> src/day6.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::read_lines`
[INFO] [stdout]  --> src/day6.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::read_lines;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::SinkExt`
[INFO] [stdout]  --> src/day7.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use futures::SinkExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str::Chars`
[INFO] [stdout]  --> src/day8.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::str::Chars;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::vec`
[INFO] [stdout]  --> src/day8.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::vec;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]  --> src/day10.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::Deref;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]  --> src/day12.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::Deref;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]  --> src/day5.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::Write;
[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 imports: `DerefMut` and `Deref`
[INFO] [stdout]  --> src/day5.rs:3:16
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::ops::{Deref, DerefMut};
[INFO] [stdout]   |                ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]  --> src/day6.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::read_lines`
[INFO] [stdout]  --> src/day6.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::read_lines;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]   --> src/day6.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 57 |     use std::path::PathBuf;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::SinkExt`
[INFO] [stdout]  --> src/day7.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use futures::SinkExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str::Chars`
[INFO] [stdout]  --> src/day8.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::str::Chars;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::vec`
[INFO] [stdout]  --> src/day8.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::vec;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]  --> src/day10.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::Deref;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]  --> src/day12.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::Deref;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::AsyncReadExt`
[INFO] [stdout]  --> src/day4.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use futures::AsyncReadExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `games`
[INFO] [stdout]   --> src/day2.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let games: Vec<Game> = lines.map(|line| {
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_games`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `games`
[INFO] [stdout]   --> src/day2.rs:73:13
[INFO] [stdout]    |
[INFO] [stdout] 73 |         let games: Vec<Game> = lines.map(|line| {
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_games`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `gears` is never read
[INFO] [stdout]    --> src/day3.rs:154:17
[INFO] [stdout]     |
[INFO] [stdout] 154 |                 gears = 0;
[INFO] [stdout]     |                 ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `gear_ratio` is never read
[INFO] [stdout]    --> src/day3.rs:153:17
[INFO] [stdout]     |
[INFO] [stdout] 153 |                 gear_ratio = 0;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `sum` is never read
[INFO] [stdout]  --> src/day4.rs:7:24
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let mut sum: i32 = 0;
[INFO] [stdout]   |                        ^
[INFO] [stdout]   |
[INFO] [stdout]   = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `location` is never read
[INFO] [stdout]   --> src/day5.rs:17:29
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let mut location: i64 = 0;
[INFO] [stdout]    |                             ^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day5.rs:169:46
[INFO] [stdout]     |
[INFO] [stdout] 169 | fn push_mapping(mappings: &mut Vec<Mapping>, mut mapping_ranges: Vec<MappingRange>, mut name: String) {
[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/day5.rs:169:85
[INFO] [stdout]     |
[INFO] [stdout] 169 | fn push_mapping(mappings: &mut Vec<Mapping>, mut mapping_ranges: Vec<MappingRange>, mut name: String) {
[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/day5.rs:176:41
[INFO] [stdout]     |
[INFO] [stdout] 176 | fn get_mapping_range(line_ref: &String, mut mapping_name: &String) -> MappingRange {
[INFO] [stdout]     |                                         ----^^^^^^^^^^^^
[INFO] [stdout]     |                                         |
[INFO] [stdout]     |                                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mapping_name`
[INFO] [stdout]    --> src/day5.rs:176:41
[INFO] [stdout]     |
[INFO] [stdout] 176 | fn get_mapping_range(line_ref: &String, mut mapping_name: &String) -> MappingRange {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mapping_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day6.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let mut i: i64 = 1;
[INFO] [stdout]    |             ----^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day6.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let mut i: i64 = 1;
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day7.rs:111:46
[INFO] [stdout]     |
[INFO] [stdout] 111 |     fn replace_joker_with_cards(joker: bool, mut cards: &mut HashMap<Card, i32>, hand_vec: &Vec<Card>) {
[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/day7.rs:131:52
[INFO] [stdout]     |
[INFO] [stdout] 131 |     fn remove_jokers_and_generate_map(joker: bool, mut cards: &mut HashMap<Card, i32>, hand_vec: &Vec<Card>) {
[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/day7.rs:259:15
[INFO] [stdout]     |
[INFO] [stdout] 259 | fn rank_hands(mut hands: &mut Vec<Hand>) {
[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/day7.rs:269:9
[INFO] [stdout]     |
[INFO] [stdout] 269 |     let mut sum: u32 = 0;
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line`
[INFO] [stdout]    --> src/day7.rs:272:13
[INFO] [stdout]     |
[INFO] [stdout] 272 |         for line in lines {
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_line`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node`
[INFO] [stdout]   --> src/day8.rs:47:57
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let mut paths: Vec<i32> = current_nodes.iter().map(|node| 0).collect();
[INFO] [stdout]    |                                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end_node_match`
[INFO] [stdout]   --> src/day8.rs:41:58
[INFO] [stdout]    |
[INFO] [stdout] 41 | fn count_steps_for_path_part2(start_nodes: Vec<&String>, end_node_match: String, instructions: &Vec<String>,
[INFO] [stdout]    |                                                          ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_end_node_match`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `node_number` is never read
[INFO] [stdout]   --> src/day8.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |         node_number = 0;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day8.rs:108:33
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn read_network(path: &PathBuf, mut nodes: &mut HashMap<String, Node>){
[INFO] [stdout]     |                                 ----^^^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `x` is never read
[INFO] [stdout]    --> src/day10.rs:127:22
[INFO] [stdout]     |
[INFO] [stdout] 127 |     let mut x: i32 = 0;
[INFO] [stdout]     |                      ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `end` is never read
[INFO] [stdout]    --> src/day10.rs:174:13
[INFO] [stdout]     |
[INFO] [stdout] 174 |             end = true;
[INFO] [stdout]     |             ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `end` is never read
[INFO] [stdout]    --> src/day10.rs:166:13
[INFO] [stdout]     |
[INFO] [stdout] 166 |             end = true;
[INFO] [stdout]     |             ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `traverse` is never read
[INFO] [stdout]    --> src/day10.rs:216:9
[INFO] [stdout]     |
[INFO] [stdout] 216 |         traverse = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expansion_factor`
[INFO] [stdout]   --> src/day11.rs:20:41
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn expand_space(space: &Vec<Vec<char>>, expansion_factor: i32) -> (Vec<usize>,Vec<usize>) {
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expansion_factor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day12.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let mut count: i64 = line_inputs.par_iter_mut().map(|line_input| {
[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/day13.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let mut sum: i32 = 0;
[INFO] [stdout]   |         ----^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line`
[INFO] [stdout]  --> src/day13.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 |         for line in lines {
[INFO] [stdout]   |             ^^^^ help: if this is intentional, prefix it with an underscore: `_line`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day13.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let mut sum: i32 = 0;
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `split`
[INFO] [stdout]   --> src/day13.rs:21:17
[INFO] [stdout]    |
[INFO] [stdout] 21 |             let split: Vec<&str> = line
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_split`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_lines` is never used
[INFO] [stdout]   --> src/main.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn read_lines<P>(filename: P) -> io::Result<io::Lines<io::BufReader<File>>>
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day1` is never used
[INFO] [stdout]  --> src/day1.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn day1(part2: bool, path: &PathBuf) -> u32 {
[INFO] [stdout]   |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `convert_words_to_numbers` is never used
[INFO] [stdout]   --> src/day1.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn convert_words_to_numbers(input: String) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_last_number` is never used
[INFO] [stdout]   --> src/day1.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn find_last_number(input: String) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_first_number` is never used
[INFO] [stdout]   --> src/day1.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn find_first_number(input: String) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `replace_word` is never used
[INFO] [stdout]   --> src/day1.rs:76:4
[INFO] [stdout]    |
[INFO] [stdout] 76 | fn replace_word(string: &String, i: usize, word: String, number: i32) -> (String, bool) {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `replace_words` is never used
[INFO] [stdout]   --> src/day1.rs:89:4
[INFO] [stdout]    |
[INFO] [stdout] 89 | fn replace_words(string: &String, i: usize) -> (String, bool) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Game` is never constructed
[INFO] [stdout]  --> src/day2.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct Game {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Set` is never constructed
[INFO] [stdout]   --> src/day2.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | struct Set {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day2_part2` is never used
[INFO] [stdout]   --> src/day2.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn day2_part2(path: &PathBuf) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day2_part1` is never used
[INFO] [stdout]   --> src/day2.rs:64:4
[INFO] [stdout]    |
[INFO] [stdout] 64 | fn day2_part1(path: &PathBuf) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_game` is never used
[INFO] [stdout]   --> src/day2.rs:93:4
[INFO] [stdout]    |
[INFO] [stdout] 93 | fn parse_game(line: &str) -> Game {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Number` is never constructed
[INFO] [stdout]  --> src/day3.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Number {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Symbol` is never constructed
[INFO] [stdout]  --> src/day3.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct Symbol {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `length`, `is_symbol_adjacent`, and `is_number_next_to_symbol` are never used
[INFO] [stdout]   --> src/day3.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Number {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] 16 |     fn length(&self) -> i32 {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     fn is_symbol_adjacent(&self, symbol: &Symbol) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     fn is_number_next_to_symbol(&self, symbol: &Symbol) -> Option<bool> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day3_part1` is never used
[INFO] [stdout]   --> src/day3.rs:49:4
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn day3_part1(path: &PathBuf) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_lines_to_numbers_and_symbols` is never used
[INFO] [stdout]   --> src/day3.rs:67:4
[INFO] [stdout]    |
[INFO] [stdout] 67 | fn parse_lines_to_numbers_and_symbols(path: &PathBuf, symbols: &mut Vec<Symbol>, mut numbers: &mut Vec<Number>) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_number` is never used
[INFO] [stdout]    --> src/day3.rs:113:4
[INFO] [stdout]     |
[INFO] [stdout] 113 | fn push_number(numbers: &mut Vec<Number>, y: &mut i32, x: &mut i32, num_vec: &mut Vec<i32>) {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day3_part2` is never used
[INFO] [stdout]    --> src/day3.rs:129:4
[INFO] [stdout]     |
[INFO] [stdout] 129 | fn day3_part2(path: &PathBuf) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day4_part2` is never used
[INFO] [stdout]  --> src/day4.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn day4_part2(path: &PathBuf) -> i32 {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day4_part1` is never used
[INFO] [stdout]   --> src/day4.rs:31:4
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn day4_part1(path: &PathBuf) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `match_numbers` is never used
[INFO] [stdout]   --> src/day4.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn match_numbers(line: &String) -> Vec<i32> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SeedRange` is never constructed
[INFO] [stdout]  --> src/day5.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | struct SeedRange {
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day5_part2` is never used
[INFO] [stdout]   --> src/day5.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn day5_part2(path: &PathBuf, seed_ranges: Vec<SeedRange>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_smallest_location_in_mappings_for_seed` is never used
[INFO] [stdout]   --> src/day5.rs:35:4
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn find_smallest_location_in_mappings_for_seed(seed: i64, mappings: &Vec<Mapping>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIZE` is never used
[INFO] [stdout]   --> src/day5.rs:54:7
[INFO] [stdout]    |
[INFO] [stdout] 54 | const SIZE: usize = 11322857500;
[INFO] [stdout]    |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MappingRange` is never constructed
[INFO] [stdout]   --> src/day5.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 57 | struct MappingRange {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_dest`, `is_in_dest_range`, and `is_in_source_range` are never used
[INFO] [stdout]   --> src/day5.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | impl MappingRange {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] 64 |
[INFO] [stdout] 65 |     fn get_dest(&self, value: i64) -> i64 {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     fn is_in_dest_range(&self, value: i64) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     fn is_in_source_range(&self, value: i64) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Mapping` is never constructed
[INFO] [stdout]   --> src/day5.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | struct Mapping {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `push_mapping_range` is never used
[INFO] [stdout]   --> src/day5.rs:86:8
[INFO] [stdout]    |
[INFO] [stdout] 85 | impl Mapping {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] 86 |     fn push_mapping_range(&mut self, range: MappingRange) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_smallest_location_for_seeds` is never used
[INFO] [stdout]   --> src/day5.rs:92:4
[INFO] [stdout]    |
[INFO] [stdout] 92 | fn get_smallest_location_for_seeds(path: &PathBuf, seeds: HashSet<i64>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_smallest_location_in_mappings` is never used
[INFO] [stdout]   --> src/day5.rs:97:4
[INFO] [stdout]    |
[INFO] [stdout] 97 | fn find_smallest_location_in_mappings(seeds: HashSet<i64>, mappings: &Vec<Mapping>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_mappings` is never used
[INFO] [stdout]    --> src/day5.rs:118:4
[INFO] [stdout]     |
[INFO] [stdout] 118 | fn read_mappings(path: &PathBuf) -> Vec<Mapping> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_mapping` is never used
[INFO] [stdout]    --> src/day5.rs:169:4
[INFO] [stdout]     |
[INFO] [stdout] 169 | fn push_mapping(mappings: &mut Vec<Mapping>, mut mapping_ranges: Vec<MappingRange>, mut name: String) {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_mapping_range` is never used
[INFO] [stdout]    --> src/day5.rs:176:4
[INFO] [stdout]     |
[INFO] [stdout] 176 | fn get_mapping_range(line_ref: &String, mut mapping_name: &String) -> MappingRange {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Race` is never constructed
[INFO] [stdout]  --> src/day6.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Race {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `hold_one_ms`, `get_distance`, and `would_win` are never used
[INFO] [stdout]   --> src/day6.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Race {
[INFO] [stdout]    | --------- methods in this implementation
[INFO] [stdout] 11 |     fn hold_one_ms(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     fn get_distance(&self) -> i64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     fn would_win(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day6_part1` is never used
[INFO] [stdout]   --> src/day6.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn day6_part1(races: &mut Vec<Race>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day6_part2` is never used
[INFO] [stdout]   --> src/day6.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn day6_part2(race: &mut Race) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Card` is never constructed
[INFO] [stdout]  --> src/day7.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct Card {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `calculate_strength` is never used
[INFO] [stdout]   --> src/day7.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl Card {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 23 |
[INFO] [stdout] 24 |     fn calculate_strength(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Type` is never used
[INFO] [stdout]   --> src/day7.rs:46:6
[INFO] [stdout]    |
[INFO] [stdout] 46 | enum Type {
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Hand` is never constructed
[INFO] [stdout]   --> src/day7.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | struct Hand {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/day7.rs:87:8
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Hand {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout]  86 |
[INFO] [stdout]  87 |     fn new(hand_string: String, bid: i64, joker: bool) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     fn build_hand_from_string(hand_string: String, bid: i64, joker: bool) -> Hand {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn replace_joker_with_cards(joker: bool, mut cards: &mut HashMap<Card, i32>, hand_vec: &Vec<Card>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     fn remove_jokers_and_generate_map(joker: bool, mut cards: &mut HashMap<Card, i32>, hand_vec: &Vec<Card>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     fn determine_type_for_cards(cards: &HashMap<Card, i32>) -> Type {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 185 |     fn compare_hands(hand_vec_a: &Vec<Card>, hand_vec_b: &Vec<Card>) -> Ordering {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     fn is_higher_ranked(&self, other: &Hand) -> Ordering {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rank_hands` is never used
[INFO] [stdout]    --> src/day7.rs:259:4
[INFO] [stdout]     |
[INFO] [stdout] 259 | fn rank_hands(mut hands: &mut Vec<Hand>) {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Game` is never constructed
[INFO] [stdout]    --> src/day7.rs:263:8
[INFO] [stdout]     |
[INFO] [stdout] 263 | struct Game {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day7_part2` is never used
[INFO] [stdout]    --> src/day7.rs:268:4
[INFO] [stdout]     |
[INFO] [stdout] 268 | fn day7_part2(path: &PathBuf) -> u32 {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_winnings` is never used
[INFO] [stdout]    --> src/day7.rs:280:4
[INFO] [stdout]     |
[INFO] [stdout] 280 | fn calculate_winnings(path: &PathBuf, joker: bool) -> i64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]  --> src/day8.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | struct Node {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/day8.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Node {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 15 |     fn new(label: String, left: String, right: String) -> Node {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day8_part2` is never used
[INFO] [stdout]   --> src/day8.rs:24:4
[INFO] [stdout]    |
[INFO] [stdout] 24 | fn day8_part2(path: &PathBuf, instructions: Vec<String>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day8_part1` is never used
[INFO] [stdout]   --> src/day8.rs:35:4
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn day8_part1(path: &PathBuf, instructions: Vec<String>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_steps_for_path_part2` is never used
[INFO] [stdout]   --> src/day8.rs:41:4
[INFO] [stdout]    |
[INFO] [stdout] 41 | fn count_steps_for_path_part2(start_nodes: Vec<&String>, end_node_match: String, instructions: &Vec<String>,
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_steps_for_path` is never used
[INFO] [stdout]   --> src/day8.rs:80:4
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn count_steps_for_path(start_node_match: String, end_node_match: String, instructions: &Vec<String>,
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_network` is never used
[INFO] [stdout]    --> src/day8.rs:108:4
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn read_network(path: &PathBuf, mut nodes: &mut HashMap<String, Node>){
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `History` is never constructed
[INFO] [stdout]  --> src/day9.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct History {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `calculate_differences`, `next_value`, and `previous_value` are never used
[INFO] [stdout]   --> src/day9.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl History {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 10 |     fn new(string: String) -> History {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     fn calculate_differences(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     fn next_value(&self) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     fn previous_value(&self) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day9_part2` is never used
[INFO] [stdout]   --> src/day9.rs:68:4
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn day9_part2(path: &PathBuf) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day9_part1` is never used
[INFO] [stdout]   --> src/day9.rs:82:4
[INFO] [stdout]    |
[INFO] [stdout] 82 | fn day9_part1(path: &PathBuf) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tile` is never constructed
[INFO] [stdout]  --> src/day10.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | struct Tile {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get_connected_pipes` are never used
[INFO] [stdout]   --> src/day10.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Tile {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 17 |
[INFO] [stdout] 18 |     fn new(char: char, x: i32, y: i32) -> Tile {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     fn get_connected_pipes(&self, tiles: &Vec<Vec<Tile>>) -> (Tile, Tile) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_tiles` is never used
[INFO] [stdout]    --> src/day10.rs:125:4
[INFO] [stdout]     |
[INFO] [stdout] 125 | fn read_tiles(path: &PathBuf) -> Vec<Vec<Tile>> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_longest_path` is never used
[INFO] [stdout]    --> src/day10.rs:149:4
[INFO] [stdout]     |
[INFO] [stdout] 149 | fn get_longest_path(tiles: &mut Vec<Vec<Tile>>, x1: i32, y1: i32, x2: i32, y2: i32) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_start_tile` is never used
[INFO] [stdout]    --> src/day10.rs:184:4
[INFO] [stdout]     |
[INFO] [stdout] 184 | fn find_start_tile(tiles: &Vec<Vec<Tile>>) -> Tile {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_enclosed_tiles` is never used
[INFO] [stdout]    --> src/day10.rs:198:4
[INFO] [stdout]     |
[INFO] [stdout] 198 | fn find_enclosed_tiles(tiles: &mut Vec<Vec<Tile>>) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_input` is never used
[INFO] [stdout]  --> src/day11.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn read_input(path: &PathBuf) -> Vec<Vec<char>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `expand_space` is never used
[INFO] [stdout]   --> src/day11.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn expand_space(space: &Vec<Vec<char>>, expansion_factor: i32) -> (Vec<usize>,Vec<usize>) {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_shortest_paths_to_galaxies_sum` is never used
[INFO] [stdout]   --> src/day11.rs:60:4
[INFO] [stdout]    |
[INFO] [stdout] 60 | fn find_shortest_paths_to_galaxies_sum(space: &Vec<Vec<char>>, expansion_factor: i32,
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unfold` is never used
[INFO] [stdout]  --> src/day12.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn unfold(springs: &Vec<char>, damaged: &Vec<i32>) -> (Vec<char>, Vec<i32>) {
[INFO] [stdout]   |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day12_part1` is never used
[INFO] [stdout]   --> src/day12.rs:26:4
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn day12_part1(path: &PathBuf) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_line` is never used
[INFO] [stdout]   --> src/day12.rs:41:4
[INFO] [stdout]    |
[INFO] [stdout] 41 | fn parse_line(line: String) -> (Vec<char>, Vec<i32>) {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day12_part2` is never used
[INFO] [stdout]   --> src/day12.rs:51:4
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn day12_part2(path: &PathBuf) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_valid_arrangements` is never used
[INFO] [stdout]   --> src/day12.rs:71:4
[INFO] [stdout]    |
[INFO] [stdout] 71 | fn count_valid_arrangements(mut arrangement: Vec<char>, mut valid_damaged_group_end_idx: Vec<usize>,
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_all` is never used
[INFO] [stdout]    --> src/day12.rs:107:4
[INFO] [stdout]     |
[INFO] [stdout] 107 | fn validate_all((arrangement, valid_damaged_group_end_idx): (&Vec<char>, &mut Vec<usize>),
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_partially` is never used
[INFO] [stdout]    --> src/day12.rs:117:4
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn validate_partially((arrangement, valid_damaged_group_end_idx): (&Vec<char>, &mut Vec<usize>),
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day13_part2` is never used
[INFO] [stdout]  --> src/day13.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn day13_part2(path: &PathBuf) -> i32 {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day13_part1` is never used
[INFO] [stdout]   --> src/day13.rs:16:4
[INFO] [stdout]    |
[INFO] [stdout] 16 | fn day13_part1(path: &PathBuf) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<String, Infallible>
[INFO] [stdout]   --> src/day1.rs:90:60
[INFO] [stdout]    |
[INFO] [stdout] 90 |     let (string_copy, replaced) = replace_word(&string, i, "one".parse().unwrap(), 1);
[INFO] [stdout]    |                                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-D unmustuse-in-always-ok`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<String, Infallible>
[INFO] [stdout]   --> src/day1.rs:94:60
[INFO] [stdout]    |
[INFO] [stdout] 94 |     let (string_copy, replaced) = replace_word(&string, i, "two".parse().unwrap(), 2);
[INFO] [stdout]    |                                                            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<String, Infallible>
[INFO] [stdout]   --> src/day1.rs:98:60
[INFO] [stdout]    |
[INFO] [stdout] 98 |     let (string_copy, replaced) = replace_word(&string, i, "three".parse().unwrap(), 3);
[INFO] [stdout]    |                                                            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<String, Infallible>
[INFO] [stdout]    --> src/day1.rs:102:60
[INFO] [stdout]     |
[INFO] [stdout] 102 |     let (string_copy, replaced) = replace_word(&string, i, "four".parse().unwrap(), 4);
[INFO] [stdout]     |                                                            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<String, Infallible>
[INFO] [stdout]    --> src/day1.rs:106:60
[INFO] [stdout]     |
[INFO] [stdout] 106 |     let (string_copy, replaced) = replace_word(&string, i, "five".parse().unwrap(), 5);
[INFO] [stdout]     |                                                            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<String, Infallible>
[INFO] [stdout]    --> src/day1.rs:110:60
[INFO] [stdout]     |
[INFO] [stdout] 110 |     let (string_copy, replaced) = replace_word(&string, i, "six".parse().unwrap(), 6);
[INFO] [stdout]     |                                                            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<String, Infallible>
[INFO] [stdout]    --> src/day1.rs:114:60
[INFO] [stdout]     |
[INFO] [stdout] 114 |     let (string_copy, replaced) = replace_word(&string, i, "seven".parse().unwrap(), 7);
[INFO] [stdout]     |                                                            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<String, Infallible>
[INFO] [stdout]    --> src/day1.rs:118:60
[INFO] [stdout]     |
[INFO] [stdout] 118 |     let (string_copy, replaced) = replace_word(&string, i, "eight".parse().unwrap(), 8);
[INFO] [stdout]     |                                                            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<String, Infallible>
[INFO] [stdout]    --> src/day1.rs:122:60
[INFO] [stdout]     |
[INFO] [stdout] 122 |     let (string_copy, replaced) = replace_word(&string, i, "nine".parse().unwrap(), 9);
[INFO] [stdout]     |                                                            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]   --> src/day2.rs:45:13
[INFO] [stdout]    |
[INFO] [stdout] 45 | /             &sets.iter().for_each(|set| {
[INFO] [stdout] 46 | |                 if set.red > min_red {
[INFO] [stdout] 47 | |                     min_red = set.red;
[INFO] [stdout] ...  |
[INFO] [stdout] 55 | |             });
[INFO] [stdout]    | |______________^ the borrow produces a value
[INFO] [stdout]    |
[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] 45 |             let _ = &sets.iter().for_each(|set| {
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]   --> src/day2.rs:79:13
[INFO] [stdout]    |
[INFO] [stdout] 79 | /             &sets.iter().for_each(|set| {
[INFO] [stdout] 80 | |                 if set.red > red_limit || set.green > green_limit || set.blue > blue_limit {
[INFO] [stdout] 81 | |                     valid = false;
[INFO] [stdout] 82 | |                 }
[INFO] [stdout] 83 | |             });
[INFO] [stdout]    | |______________^ the borrow produces a value
[INFO] [stdout]    |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 79 |             let _ = &sets.iter().for_each(|set| {
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<String, Infallible>
[INFO] [stdout]    --> src/day7.rs:290:39
[INFO] [stdout]     |
[INFO] [stdout] 290 |             let hand_string: String = split.get(0).unwrap().clone().parse().unwrap();
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/day7.rs:290:60
[INFO] [stdout]     |
[INFO] [stdout] 290 |             let hand_string: String = split.get(0).unwrap().clone().parse().unwrap();
[INFO] [stdout]     |                                                            ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/day7.rs:291:49
[INFO] [stdout]     |
[INFO] [stdout] 291 |             let bid: i64 = split.get(1).unwrap().clone().parse().unwrap();
[INFO] [stdout]     |                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]   --> src/day8.rs:52:55
[INFO] [stdout]    |
[INFO] [stdout] 52 |             let current_node: &Node = nodes.get(&*node.clone()).unwrap();
[INFO] [stdout]    |                                                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `advent_of_code2023` (bin "main") due to 10 previous errors; 123 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused import: `futures::AsyncReadExt`
[INFO] [stdout]  --> src/day4.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use futures::AsyncReadExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `games`
[INFO] [stdout]   --> src/day2.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let games: Vec<Game> = lines.map(|line| {
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_games`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `games`
[INFO] [stdout]   --> src/day2.rs:73:13
[INFO] [stdout]    |
[INFO] [stdout] 73 |         let games: Vec<Game> = lines.map(|line| {
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_games`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `gears` is never read
[INFO] [stdout]    --> src/day3.rs:154:17
[INFO] [stdout]     |
[INFO] [stdout] 154 |                 gears = 0;
[INFO] [stdout]     |                 ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `gear_ratio` is never read
[INFO] [stdout]    --> src/day3.rs:153:17
[INFO] [stdout]     |
[INFO] [stdout] 153 |                 gear_ratio = 0;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `sum` is never read
[INFO] [stdout]  --> src/day4.rs:7:24
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let mut sum: i32 = 0;
[INFO] [stdout]   |                        ^
[INFO] [stdout]   |
[INFO] [stdout]   = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `location` is never read
[INFO] [stdout]   --> src/day5.rs:17:29
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let mut location: i64 = 0;
[INFO] [stdout]    |                             ^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day5.rs:169:46
[INFO] [stdout]     |
[INFO] [stdout] 169 | fn push_mapping(mappings: &mut Vec<Mapping>, mut mapping_ranges: Vec<MappingRange>, mut name: String) {
[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/day5.rs:169:85
[INFO] [stdout]     |
[INFO] [stdout] 169 | fn push_mapping(mappings: &mut Vec<Mapping>, mut mapping_ranges: Vec<MappingRange>, mut name: String) {
[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/day5.rs:176:41
[INFO] [stdout]     |
[INFO] [stdout] 176 | fn get_mapping_range(line_ref: &String, mut mapping_name: &String) -> MappingRange {
[INFO] [stdout]     |                                         ----^^^^^^^^^^^^
[INFO] [stdout]     |                                         |
[INFO] [stdout]     |                                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mapping_name`
[INFO] [stdout]    --> src/day5.rs:176:41
[INFO] [stdout]     |
[INFO] [stdout] 176 | fn get_mapping_range(line_ref: &String, mut mapping_name: &String) -> MappingRange {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mapping_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day6.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let mut i: i64 = 1;
[INFO] [stdout]    |             ----^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day6.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let mut i: i64 = 1;
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day6.rs:62:13
[INFO] [stdout]    |
[INFO] [stdout] 62 |         let mut race: Race = Race {
[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/day6.rs:100:13
[INFO] [stdout]     |
[INFO] [stdout] 100 |         let mut race1: Race = Race {
[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/day6.rs:105:13
[INFO] [stdout]     |
[INFO] [stdout] 105 |         let mut race2: Race = Race {
[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/day6.rs:110:13
[INFO] [stdout]     |
[INFO] [stdout] 110 |         let mut race3: Race = Race {
[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/day6.rs:121:13
[INFO] [stdout]     |
[INFO] [stdout] 121 |         let mut race1: Race = Race {
[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/day6.rs:126:13
[INFO] [stdout]     |
[INFO] [stdout] 126 |         let mut race2: Race = Race {
[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/day6.rs:131:13
[INFO] [stdout]     |
[INFO] [stdout] 131 |         let mut race3: Race = Race {
[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/day6.rs:136:13
[INFO] [stdout]     |
[INFO] [stdout] 136 |         let mut race4: Race = Race {
[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/day7.rs:111:46
[INFO] [stdout]     |
[INFO] [stdout] 111 |     fn replace_joker_with_cards(joker: bool, mut cards: &mut HashMap<Card, i32>, hand_vec: &Vec<Card>) {
[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/day7.rs:131:52
[INFO] [stdout]     |
[INFO] [stdout] 131 |     fn remove_jokers_and_generate_map(joker: bool, mut cards: &mut HashMap<Card, i32>, hand_vec: &Vec<Card>) {
[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/day7.rs:259:15
[INFO] [stdout]     |
[INFO] [stdout] 259 | fn rank_hands(mut hands: &mut Vec<Hand>) {
[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/day7.rs:269:9
[INFO] [stdout]     |
[INFO] [stdout] 269 |     let mut sum: u32 = 0;
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line`
[INFO] [stdout]    --> src/day7.rs:272:13
[INFO] [stdout]     |
[INFO] [stdout] 272 |         for line in lines {
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_line`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node`
[INFO] [stdout]   --> src/day8.rs:47:57
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let mut paths: Vec<i32> = current_nodes.iter().map(|node| 0).collect();
[INFO] [stdout]    |                                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end_node_match`
[INFO] [stdout]   --> src/day8.rs:41:58
[INFO] [stdout]    |
[INFO] [stdout] 41 | fn count_steps_for_path_part2(start_nodes: Vec<&String>, end_node_match: String, instructions: &Vec<String>,
[INFO] [stdout]    |                                                          ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_end_node_match`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `node_number` is never read
[INFO] [stdout]   --> src/day8.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |         node_number = 0;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day8.rs:108:33
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn read_network(path: &PathBuf, mut nodes: &mut HashMap<String, Node>){
[INFO] [stdout]     |                                 ----^^^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `x` is never read
[INFO] [stdout]    --> src/day10.rs:127:22
[INFO] [stdout]     |
[INFO] [stdout] 127 |     let mut x: i32 = 0;
[INFO] [stdout]     |                      ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `end` is never read
[INFO] [stdout]    --> src/day10.rs:174:13
[INFO] [stdout]     |
[INFO] [stdout] 174 |             end = true;
[INFO] [stdout]     |             ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `end` is never read
[INFO] [stdout]    --> src/day10.rs:166:13
[INFO] [stdout]     |
[INFO] [stdout] 166 |             end = true;
[INFO] [stdout]     |             ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `traverse` is never read
[INFO] [stdout]    --> src/day10.rs:216:9
[INFO] [stdout]     |
[INFO] [stdout] 216 |         traverse = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day10.rs:232:13
[INFO] [stdout]     |
[INFO] [stdout] 232 |         let mut start_tile: Tile = find_start_tile(&tiles);
[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/day10.rs:245:13
[INFO] [stdout]     |
[INFO] [stdout] 245 |         let mut start_tile: Tile = find_start_tile(&tiles);
[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/day10.rs:295:13
[INFO] [stdout]     |
[INFO] [stdout] 295 |         let mut start_tile: Tile = find_start_tile(&tiles);
[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/day10.rs:308:13
[INFO] [stdout]     |
[INFO] [stdout] 308 |         let mut start_tile: Tile = find_start_tile(&tiles);
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path_length`
[INFO] [stdout]    --> src/day10.rs:312:13
[INFO] [stdout]     |
[INFO] [stdout] 312 |         let path_length: i32 = get_longest_path(&mut tiles, connected.0.x, connected.0.y, connected.1.x, connected.1.y);
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_path_length`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day10.rs:322:13
[INFO] [stdout]     |
[INFO] [stdout] 322 |         let mut start_tile: Tile = find_start_tile(&tiles);
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path_length`
[INFO] [stdout]    --> src/day10.rs:326:13
[INFO] [stdout]     |
[INFO] [stdout] 326 |         let path_length: i32 = get_longest_path(&mut tiles, connected.0.x, connected.0.y, connected.1.x, connected.1.y);
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_path_length`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day10.rs:337:13
[INFO] [stdout]     |
[INFO] [stdout] 337 |         let mut start_tile: Tile = find_start_tile(&tiles);
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path_length`
[INFO] [stdout]    --> src/day10.rs:341:13
[INFO] [stdout]     |
[INFO] [stdout] 341 |         let path_length: i32 = get_longest_path(&mut tiles, connected.0.x, connected.0.y, connected.1.x, connected.1.y);
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_path_length`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day10.rs:381:13
[INFO] [stdout]     |
[INFO] [stdout] 381 |         let mut start_tile: Tile = find_start_tile(&tiles);
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path_length`
[INFO] [stdout]    --> src/day10.rs:385:13
[INFO] [stdout]     |
[INFO] [stdout] 385 |         let path_length: i32 = get_longest_path(&mut tiles, connected.0.x, connected.0.y, connected.1.x, connected.1.y);
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_path_length`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expansion_factor`
[INFO] [stdout]   --> src/day11.rs:20:41
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn expand_space(space: &Vec<Vec<char>>, expansion_factor: i32) -> (Vec<usize>,Vec<usize>) {
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expansion_factor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day12.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let mut count: i64 = line_inputs.par_iter_mut().map(|line_input| {
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `valid_damaged_group_end_idx`
[INFO] [stdout]    --> src/day12.rs:173:13
[INFO] [stdout]     |
[INFO] [stdout] 173 |         let valid_damaged_group_end_idx: usize = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_valid_damaged_group_end_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `valid_damaged_group_end_idx`
[INFO] [stdout]    --> src/day12.rs:183:13
[INFO] [stdout]     |
[INFO] [stdout] 183 |         let valid_damaged_group_end_idx: usize = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_valid_damaged_group_end_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `valid_damaged_group_end_idx`
[INFO] [stdout]    --> src/day12.rs:193:13
[INFO] [stdout]     |
[INFO] [stdout] 193 |         let valid_damaged_group_end_idx: usize = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_valid_damaged_group_end_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `valid_damaged_group_end_idx`
[INFO] [stdout]    --> src/day12.rs:203:13
[INFO] [stdout]     |
[INFO] [stdout] 203 |         let valid_damaged_group_end_idx: usize = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_valid_damaged_group_end_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `valid_damaged_group_end_idx`
[INFO] [stdout]    --> src/day12.rs:213:13
[INFO] [stdout]     |
[INFO] [stdout] 213 |         let valid_damaged_group_end_idx: usize = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_valid_damaged_group_end_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `valid_damaged_group_end_idx`
[INFO] [stdout]    --> src/day12.rs:223:13
[INFO] [stdout]     |
[INFO] [stdout] 223 |         let valid_damaged_group_end_idx: usize = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_valid_damaged_group_end_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `valid_damaged_group_end_idx`
[INFO] [stdout]    --> src/day12.rs:233:13
[INFO] [stdout]     |
[INFO] [stdout] 233 |         let valid_damaged_group_end_idx: usize = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_valid_damaged_group_end_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `valid_damaged_group_end_idx`
[INFO] [stdout]    --> src/day12.rs:243:13
[INFO] [stdout]     |
[INFO] [stdout] 243 |         let valid_damaged_group_end_idx: usize = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_valid_damaged_group_end_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `valid_damaged_group_end_idx`
[INFO] [stdout]    --> src/day12.rs:291:13
[INFO] [stdout]     |
[INFO] [stdout] 291 |         let valid_damaged_group_end_idx: usize = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_valid_damaged_group_end_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `valid_damaged_group_end_idx`
[INFO] [stdout]    --> src/day12.rs:303:13
[INFO] [stdout]     |
[INFO] [stdout] 303 |         let valid_damaged_group_end_idx: usize = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_valid_damaged_group_end_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `valid_damaged_group_end_idx`
[INFO] [stdout]    --> src/day12.rs:315:13
[INFO] [stdout]     |
[INFO] [stdout] 315 |         let valid_damaged_group_end_idx: usize = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_valid_damaged_group_end_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `valid_damaged_group_end_idx`
[INFO] [stdout]    --> src/day12.rs:327:13
[INFO] [stdout]     |
[INFO] [stdout] 327 |         let valid_damaged_group_end_idx: usize = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_valid_damaged_group_end_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `valid_damaged_group_end_idx`
[INFO] [stdout]    --> src/day12.rs:339:13
[INFO] [stdout]     |
[INFO] [stdout] 339 |         let valid_damaged_group_end_idx: usize = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_valid_damaged_group_end_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expected_arrangement`
[INFO] [stdout]    --> src/day12.rs:341:128
[INFO] [stdout]     |
[INFO] [stdout] 341 | ...d);        let expected_arrangement: Vec<char> = String::from("..#...#....###.").chars().collect();
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_arrangement`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `valid_damaged_group_end_idx`
[INFO] [stdout]    --> src/day12.rs:351:13
[INFO] [stdout]     |
[INFO] [stdout] 351 |         let valid_damaged_group_end_idx: usize = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_valid_damaged_group_end_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expected_arrangement`
[INFO] [stdout]    --> src/day12.rs:354:13
[INFO] [stdout]     |
[INFO] [stdout] 354 |         let expected_arrangement: Vec<char> = String::from(".#.#.###").chars().collect();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_arrangement`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/day13.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let mut sum: i32 = 0;
[INFO] [stdout]   |         ----^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line`
[INFO] [stdout]  --> src/day13.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 |         for line in lines {
[INFO] [stdout]   |             ^^^^ help: if this is intentional, prefix it with an underscore: `_line`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day13.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let mut sum: i32 = 0;
[INFO] [stdout]    |         ----^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `split`
[INFO] [stdout]   --> src/day13.rs:21:17
[INFO] [stdout]    |
[INFO] [stdout] 21 |             let split: Vec<&str> = line
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_split`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RADIX` is never used
[INFO] [stdout]   --> src/day3.rs:74:19
[INFO] [stdout]    |
[INFO] [stdout] 74 |             const RADIX: i32 = 10;
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> src/day5.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 80 | struct Mapping {
[INFO] [stdout]    |        ------- field in this struct
[INFO] [stdout] 81 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Mapping` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `push_mapping_range` is never used
[INFO] [stdout]   --> src/day5.rs:86:8
[INFO] [stdout]    |
[INFO] [stdout] 85 | impl Mapping {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] 86 |     fn push_mapping_range(&mut self, range: MappingRange) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `joker` is never read
[INFO] [stdout]   --> src/day7.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 58 | struct Hand {
[INFO] [stdout]    |        ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 63 |     joker: bool
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Hand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Game` is never constructed
[INFO] [stdout]    --> src/day7.rs:263:8
[INFO] [stdout]     |
[INFO] [stdout] 263 | struct Game {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day7_part2` is never used
[INFO] [stdout]    --> src/day7.rs:268:4
[INFO] [stdout]     |
[INFO] [stdout] 268 | fn day7_part2(path: &PathBuf) -> u32 {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day13_part2` is never used
[INFO] [stdout]  --> src/day13.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn day13_part2(path: &PathBuf) -> i32 {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day13_part1` is never used
[INFO] [stdout]   --> src/day13.rs:16:4
[INFO] [stdout]    |
[INFO] [stdout] 16 | fn day13_part1(path: &PathBuf) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<String, Infallible>
[INFO] [stdout]   --> src/day1.rs:90:60
[INFO] [stdout]    |
[INFO] [stdout] 90 |     let (string_copy, replaced) = replace_word(&string, i, "one".parse().unwrap(), 1);
[INFO] [stdout]    |                                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-D unmustuse-in-always-ok`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<String, Infallible>
[INFO] [stdout]   --> src/day1.rs:94:60
[INFO] [stdout]    |
[INFO] [stdout] 94 |     let (string_copy, replaced) = replace_word(&string, i, "two".parse().unwrap(), 2);
[INFO] [stdout]    |                                                            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<String, Infallible>
[INFO] [stdout]   --> src/day1.rs:98:60
[INFO] [stdout]    |
[INFO] [stdout] 98 |     let (string_copy, replaced) = replace_word(&string, i, "three".parse().unwrap(), 3);
[INFO] [stdout]    |                                                            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<String, Infallible>
[INFO] [stdout]    --> src/day1.rs:102:60
[INFO] [stdout]     |
[INFO] [stdout] 102 |     let (string_copy, replaced) = replace_word(&string, i, "four".parse().unwrap(), 4);
[INFO] [stdout]     |                                                            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<String, Infallible>
[INFO] [stdout]    --> src/day1.rs:106:60
[INFO] [stdout]     |
[INFO] [stdout] 106 |     let (string_copy, replaced) = replace_word(&string, i, "five".parse().unwrap(), 5);
[INFO] [stdout]     |                                                            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<String, Infallible>
[INFO] [stdout]    --> src/day1.rs:110:60
[INFO] [stdout]     |
[INFO] [stdout] 110 |     let (string_copy, replaced) = replace_word(&string, i, "six".parse().unwrap(), 6);
[INFO] [stdout]     |                                                            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<String, Infallible>
[INFO] [stdout]    --> src/day1.rs:114:60
[INFO] [stdout]     |
[INFO] [stdout] 114 |     let (string_copy, replaced) = replace_word(&string, i, "seven".parse().unwrap(), 7);
[INFO] [stdout]     |                                                            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<String, Infallible>
[INFO] [stdout]    --> src/day1.rs:118:60
[INFO] [stdout]     |
[INFO] [stdout] 118 |     let (string_copy, replaced) = replace_word(&string, i, "eight".parse().unwrap(), 8);
[INFO] [stdout]     |                                                            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<String, Infallible>
[INFO] [stdout]    --> src/day1.rs:122:60
[INFO] [stdout]     |
[INFO] [stdout] 122 |     let (string_copy, replaced) = replace_word(&string, i, "nine".parse().unwrap(), 9);
[INFO] [stdout]     |                                                            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]   --> src/day2.rs:45:13
[INFO] [stdout]    |
[INFO] [stdout] 45 | /             &sets.iter().for_each(|set| {
[INFO] [stdout] 46 | |                 if set.red > min_red {
[INFO] [stdout] 47 | |                     min_red = set.red;
[INFO] [stdout] ...  |
[INFO] [stdout] 55 | |             });
[INFO] [stdout]    | |______________^ the borrow produces a value
[INFO] [stdout]    |
[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] 45 |             let _ = &sets.iter().for_each(|set| {
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]   --> src/day2.rs:79:13
[INFO] [stdout]    |
[INFO] [stdout] 79 | /             &sets.iter().for_each(|set| {
[INFO] [stdout] 80 | |                 if set.red > red_limit || set.green > green_limit || set.blue > blue_limit {
[INFO] [stdout] 81 | |                     valid = false;
[INFO] [stdout] 82 | |                 }
[INFO] [stdout] 83 | |             });
[INFO] [stdout]    | |______________^ the borrow produces a value
[INFO] [stdout]    |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 79 |             let _ = &sets.iter().for_each(|set| {
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<String, Infallible>
[INFO] [stdout]    --> src/day7.rs:290:39
[INFO] [stdout]     |
[INFO] [stdout] 290 |             let hand_string: String = split.get(0).unwrap().clone().parse().unwrap();
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/day7.rs:290:60
[INFO] [stdout]     |
[INFO] [stdout] 290 |             let hand_string: String = split.get(0).unwrap().clone().parse().unwrap();
[INFO] [stdout]     |                                                            ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&str` instead of cloning the inner type
[INFO] [stdout]    --> src/day7.rs:291:49
[INFO] [stdout]     |
[INFO] [stdout] 291 |             let bid: i64 = split.get(1).unwrap().clone().parse().unwrap();
[INFO] [stdout]     |                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]   --> src/day8.rs:52:55
[INFO] [stdout]    |
[INFO] [stdout] 52 |             let current_node: &Node = nodes.get(&*node.clone()).unwrap();
[INFO] [stdout]    |                                                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this type will no longer be must used: Result<i64, Infallible>
[INFO] [stdout]    --> src/day11.rs:114:30
[INFO] [stdout]     |
[INFO] [stdout] 114 |         let sum_paths: i64 = find_shortest_paths_to_galaxies_sum(&space, 1,(y_idx, x_idx)).try_into().unwrap();
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `advent_of_code2023` (bin "main" test) due to 11 previous errors; 90 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "6226dafd6dcb239a24a33bd41a84646b9f1cd568886ab401f8f40ed0e16c711c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6226dafd6dcb239a24a33bd41a84646b9f1cd568886ab401f8f40ed0e16c711c", kill_on_drop: false }`
[INFO] [stdout] 6226dafd6dcb239a24a33bd41a84646b9f1cd568886ab401f8f40ed0e16c711c
