[INFO] cloning repository https://github.com/A1cey/AdventOfCode2024
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/A1cey/AdventOfCode2024" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FA1cey%2FAdventOfCode2024", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FA1cey%2FAdventOfCode2024'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 51c0a8147bd67b2b4793a1feb914e89e09ce714a
[INFO] checking A1cey/AdventOfCode2024 against try#5fee451ebd94296ea05214e819c311e164b30af6 for pr-139042
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FA1cey%2FAdventOfCode2024" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/A1cey/AdventOfCode2024 on toolchain 5fee451ebd94296ea05214e819c311e164b30af6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5fee451ebd94296ea05214e819c311e164b30af6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/A1cey/AdventOfCode2024
[INFO] finished tweaking git repo https://github.com/A1cey/AdventOfCode2024
[INFO] tweaked toml for git repo https://github.com/A1cey/AdventOfCode2024 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/A1cey/AdventOfCode2024 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" "+5fee451ebd94296ea05214e819c311e164b30af6" "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:4b26683ee3c49f365255c425c23003cbf4366de097804722c29c5bbbee3624d2" "/opt/rustwide/cargo-home/bin/cargo" "+5fee451ebd94296ea05214e819c311e164b30af6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c4bdffaf5e9546788a8946468315e7b5fe54d89cb2f167d3431ca15669de6ee6
[INFO] running `Command { std: "docker" "start" "-a" "c4bdffaf5e9546788a8946468315e7b5fe54d89cb2f167d3431ca15669de6ee6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c4bdffaf5e9546788a8946468315e7b5fe54d89cb2f167d3431ca15669de6ee6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c4bdffaf5e9546788a8946468315e7b5fe54d89cb2f167d3431ca15669de6ee6", kill_on_drop: false }`
[INFO] [stdout] c4bdffaf5e9546788a8946468315e7b5fe54d89cb2f167d3431ca15669de6ee6
[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" "-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:4b26683ee3c49f365255c425c23003cbf4366de097804722c29c5bbbee3624d2" "/opt/rustwide/cargo-home/bin/cargo" "+5fee451ebd94296ea05214e819c311e164b30af6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5b769f78a9632888ce6d84289d3f83163d2ab2434959d1825a92a5d2a4ce68f9
[INFO] running `Command { std: "docker" "start" "-a" "5b769f78a9632888ce6d84289d3f83163d2ab2434959d1825a92a5d2a4ce68f9", kill_on_drop: false }`
[INFO] [stderr]     Checking colored v2.2.0
[INFO] [stderr]     Checking AdventOfCode2024 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `default`
[INFO] [stdout]  --> src/day15.rs:1:34
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::VecDeque, default, fs};
[INFO] [stdout]   |                                  ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::hash`
[INFO] [stdout]  --> src/day16.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::hash;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/day18.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `File`, `io::Write`, `ops::Div`, and `path::Path`
[INFO] [stdout]  --> src/day23.rs:3:16
[INFO] [stdout]   |
[INFO] [stdout] 3 |     fs::{self, File},
[INFO] [stdout]   |                ^^^^
[INFO] [stdout] 4 |     io::Write,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 5 |     ops::Div,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 6 |     path::Path,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `default`
[INFO] [stdout]  --> src/day15.rs:1:34
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::VecDeque, default, fs};
[INFO] [stdout]   |                                  ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::hash`
[INFO] [stdout]  --> src/day16.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::hash;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/day18.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `File`, `io::Write`, `ops::Div`, and `path::Path`
[INFO] [stdout]  --> src/day23.rs:3:16
[INFO] [stdout]   |
[INFO] [stdout] 3 |     fs::{self, File},
[INFO] [stdout]   |                ^^^^
[INFO] [stdout] 4 |     io::Write,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 5 |     ops::Div,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 6 |     path::Path,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day12.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let mut field = fs::read_to_string("src/input/input12.txt")
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]   --> src/day15_2.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |             other => unreachable!(),
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `map`
[INFO] [stdout]    --> src/day15_2.rs:186:5
[INFO] [stdout]     |
[INFO] [stdout] 186 |     map: &WideMap,
[INFO] [stdout]     |     ^^^ help: if this is intentional, prefix it with an underscore: `_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day15_2.rs:184:5
[INFO] [stdout]     |
[INFO] [stdout] 184 |     mut coords: [(usize, usize); N],
[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/day15_2.rs:227:5
[INFO] [stdout]     |
[INFO] [stdout] 227 |     mut coords: [(usize, usize); N],
[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/day15_2.rs:246:21
[INFO] [stdout]     |
[INFO] [stdout] 246 |                 let mut a;
[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/day15_2.rs:253:21
[INFO] [stdout]     |
[INFO] [stdout] 253 |                 let mut a;
[INFO] [stdout]     |                     ----^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]    --> src/day15_2.rs:382:9
[INFO] [stdout]     |
[INFO] [stdout] 382 |     let width = m[0].len();
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]    --> src/day15_2.rs:395:9
[INFO] [stdout]     |
[INFO] [stdout] 395 |     let width = m[0].len();
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day17.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let (mut registers, program) = parse_program(&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/day12.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let mut field = fs::read_to_string("src/input/input12.txt")
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `swaps`
[INFO] [stdout]   --> src/day24.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let swaps = find_swaps(&wire_vals, &mut operations, correct_res);
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_swaps`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `wire_vals`
[INFO] [stdout]   --> src/day24.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 |     wire_vals: &HashMap<&str, i32>,
[INFO] [stdout]    |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_wire_vals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `operations`
[INFO] [stdout]   --> src/day24.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     operations: &mut VecDeque<((&str, &str, &str), fn(i32, i32) -> i32)>,
[INFO] [stdout]    |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operations`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day21_2.rs:309:13
[INFO] [stdout]     |
[INFO] [stdout] 309 |         let mut inp = inp.trim();
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]   --> src/day15_2.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |             other => unreachable!(),
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `map`
[INFO] [stdout]    --> src/day15_2.rs:186:5
[INFO] [stdout]     |
[INFO] [stdout] 186 |     map: &WideMap,
[INFO] [stdout]     |     ^^^ help: if this is intentional, prefix it with an underscore: `_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day15_2.rs:184:5
[INFO] [stdout]     |
[INFO] [stdout] 184 |     mut coords: [(usize, usize); N],
[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/day15_2.rs:227:5
[INFO] [stdout]     |
[INFO] [stdout] 227 |     mut coords: [(usize, usize); N],
[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/day15_2.rs:246:21
[INFO] [stdout]     |
[INFO] [stdout] 246 |                 let mut a;
[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/day15_2.rs:253:21
[INFO] [stdout]     |
[INFO] [stdout] 253 |                 let mut a;
[INFO] [stdout]     |                     ----^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]    --> src/day15_2.rs:382:9
[INFO] [stdout]     |
[INFO] [stdout] 382 |     let width = m[0].len();
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]    --> src/day15_2.rs:395:9
[INFO] [stdout]     |
[INFO] [stdout] 395 |     let width = m[0].len();
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day17.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let (mut registers, program) = parse_program(&input);
[INFO] [stdout]    |          ----^^^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_corners` is never used
[INFO] [stdout]    --> src/day12.rs:115:4
[INFO] [stdout]     |
[INFO] [stdout] 115 | fn count_corners(region_tiles: &[Tile], max_row: usize, max_col: usize) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dijkstra` is never used
[INFO] [stdout]    --> src/day13.rs:126:4
[INFO] [stdout]     |
[INFO] [stdout] 126 | fn dijkstra(dx_a: i64, dy_a: i64, dx_b: i64, dy_b: i64, goal: (i64, i64)) -> Option<i64> {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Robot` is never constructed
[INFO] [stdout]  --> src/day14.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct Robot {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Quadrant` is never used
[INFO] [stdout]   --> src/day14.rs:16:6
[INFO] [stdout]    |
[INFO] [stdout] 16 | enum Quadrant {
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Occuppation` is never used
[INFO] [stdout]   --> src/day14.rs:25:6
[INFO] [stdout]    |
[INFO] [stdout] 25 | enum Occuppation {
[INFO] [stdout]    |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `create_robot` are never used
[INFO] [stdout]   --> src/day14.rs:31:14
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl Robot {
[INFO] [stdout]    | ---------- associated functions in this implementation
[INFO] [stdout] 31 |     const fn new(pos_x: i32, pos_y: i32, vel_x: i32, vel_y: i32) -> Robot {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     fn create_robot(data: &str) -> Robot {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]   --> src/day14.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn run() {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simulate_movement` is never used
[INFO] [stdout]   --> src/day14.rs:95:4
[INFO] [stdout]    |
[INFO] [stdout] 95 | fn simulate_movement(n: i32, mut robot: Robot, room_width: i32, room_height: i32) -> Robot {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_robots_in_quadrants` is never used
[INFO] [stdout]    --> src/day14.rs:119:4
[INFO] [stdout]     |
[INFO] [stdout] 119 | fn count_robots_in_quadrants(robots: &[Robot], room_width: i32, room_height: i32) -> [i32; 4] {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_quadrant` is never used
[INFO] [stdout]    --> src/day14.rs:135:4
[INFO] [stdout]     |
[INFO] [stdout] 135 | fn get_quadrant(robot: &Robot, room_width: i32, room_height: i32) -> Quadrant {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_christmas_tree` is never used
[INFO] [stdout]    --> src/day14.rs:154:4
[INFO] [stdout]     |
[INFO] [stdout] 154 | fn find_christmas_tree(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_robots` is never used
[INFO] [stdout]    --> src/day14.rs:209:4
[INFO] [stdout]     |
[INFO] [stdout] 209 | fn print_robots(robots: &[Robot], room_width: i32, room_height: i32, file: &mut File) {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `LeftBox` and `RightBox` are never constructed
[INFO] [stdout]   --> src/day15.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | enum Tile {
[INFO] [stdout]    |      ---- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 17 |     LeftBox,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 18 |     RightBox,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Tile` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_big_warehouse` is never used
[INFO] [stdout]    --> src/day15.rs:261:4
[INFO] [stdout]     |
[INFO] [stdout] 261 | fn get_big_warehouse(data: &str) -> (Vec<Vec<Tile>>, Robot) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `step_2` is never used
[INFO] [stdout]    --> src/day15.rs:291:4
[INFO] [stdout]     |
[INFO] [stdout] 291 | fn step_2(warehouse: &mut Vec<Vec<Tile>>, robot: &mut Robot, direction: &Direction) {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Map` is never used
[INFO] [stdout]  --> src/day15_2.rs:3:6
[INFO] [stdout]   |
[INFO] [stdout] 3 | type Map = Vec<Vec<Tile>>;
[INFO] [stdout]   |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `WideMap` is never used
[INFO] [stdout]  --> src/day15_2.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | type WideMap = Vec<Vec<WideTile>>;
[INFO] [stdout]   |      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_grid` is never used
[INFO] [stdout]   --> src/day15_2.rs:90:4
[INFO] [stdout]    |
[INFO] [stdout] 90 | fn print_grid<T: Display>(m: &[Vec<T>]) {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_cell` is never used
[INFO] [stdout]   --> src/day15_2.rs:99:4
[INFO] [stdout]    |
[INFO] [stdout] 99 | fn get_cell<T>(xy: (usize, usize), m: &[Vec<T>]) -> &T {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `char_to_wide_tiles` is never used
[INFO] [stdout]    --> src/day15_2.rs:103:4
[INFO] [stdout]     |
[INFO] [stdout] 103 | fn char_to_wide_tiles(value: char) -> [WideTile; 2] {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_map` is never used
[INFO] [stdout]    --> src/day15_2.rs:113:4
[INFO] [stdout]     |
[INFO] [stdout] 113 | fn parse_map(s: &str) -> Map {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_wide_map` is never used
[INFO] [stdout]    --> src/day15_2.rs:119:4
[INFO] [stdout]     |
[INFO] [stdout] 119 | fn parse_wide_map(s: &str) -> WideMap {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]    --> src/day15_2.rs:126:4
[INFO] [stdout]     |
[INFO] [stdout] 126 | fn parse_input(s: &str) -> (Map, Vec<Direction>) {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input_wide` is never used
[INFO] [stdout]    --> src/day15_2.rs:139:4
[INFO] [stdout]     |
[INFO] [stdout] 139 | fn parse_input_wide(s: &str) -> (WideMap, Vec<Direction>) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `robot_coord` is never used
[INFO] [stdout]    --> src/day15_2.rs:151:4
[INFO] [stdout]     |
[INFO] [stdout] 151 | fn robot_coord(m: &Map) -> (usize, usize) {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `robot_coord_wide` is never used
[INFO] [stdout]    --> src/day15_2.rs:163:4
[INFO] [stdout]     |
[INFO] [stdout] 163 | fn robot_coord_wide(m: &WideMap) -> (usize, usize) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `next_coord` is never used
[INFO] [stdout]    --> src/day15_2.rs:174:4
[INFO] [stdout]     |
[INFO] [stdout] 174 | fn next_coord(xy: (usize, usize), mve: &Direction) -> (usize, usize) {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `next_coords` is never used
[INFO] [stdout]    --> src/day15_2.rs:183:4
[INFO] [stdout]     |
[INFO] [stdout] 183 | fn next_coords<const N: usize>(
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `next_empty_tile_coord` is never used
[INFO] [stdout]    --> src/day15_2.rs:192:4
[INFO] [stdout]     |
[INFO] [stdout] 192 | fn next_empty_tile_coord(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `next_empty_tile_coord_wide_horiz` is never used
[INFO] [stdout]    --> src/day15_2.rs:208:4
[INFO] [stdout]     |
[INFO] [stdout] 208 | fn next_empty_tile_coord_wide_horiz(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_moves_vert_wide` is never used
[INFO] [stdout]    --> src/day15_2.rs:226:4
[INFO] [stdout]     |
[INFO] [stdout] 226 | fn check_moves_vert_wide<const N: usize>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> src/day15_2.rs:265:4
[INFO] [stdout]     |
[INFO] [stdout] 265 | fn apply_move(mut map: Map, mve: Direction) -> Map {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shift_boxes_horiz` is never used
[INFO] [stdout]    --> src/day15_2.rs:289:4
[INFO] [stdout]     |
[INFO] [stdout] 289 | fn shift_boxes_horiz(map: &mut [Vec<WideTile>], start: (usize, usize), end: (usize, usize)) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shift_boxes_vert` is never used
[INFO] [stdout]    --> src/day15_2.rs:304:4
[INFO] [stdout]     |
[INFO] [stdout] 304 | fn shift_boxes_vert(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move_wide` is never used
[INFO] [stdout]    --> src/day15_2.rs:335:4
[INFO] [stdout]     |
[INFO] [stdout] 335 | fn apply_move_wide(mut map: Vec<Vec<WideTile>>, mve: Direction) -> Vec<Vec<WideTile>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `total_gps_coords` is never used
[INFO] [stdout]    --> src/day15_2.rs:380:4
[INFO] [stdout]     |
[INFO] [stdout] 380 | fn total_gps_coords(m: &Map) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `total_gps_coords_wide` is never used
[INFO] [stdout]    --> src/day15_2.rs:393:4
[INFO] [stdout]     |
[INFO] [stdout] 393 | fn total_gps_coords_wide(m: &WideMap) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]    --> src/day15_2.rs:406:4
[INFO] [stdout]     |
[INFO] [stdout] 406 | fn solve_part_1(s: &str) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]    --> src/day15_2.rs:414:4
[INFO] [stdout]     |
[INFO] [stdout] 414 | fn solve_part_2(s: &str) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]    --> src/day15_2.rs:423:8
[INFO] [stdout]     |
[INFO] [stdout] 423 | pub fn run() {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `West`, `North`, and `South` are never constructed
[INFO] [stdout]   --> src/day16.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 50 | enum Direction {
[INFO] [stdout]    |      --------- variants in this enum
[INFO] [stdout] 51 |     East,
[INFO] [stdout] 52 |     West,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 53 |     North,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 54 |     South,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Direction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Tile` is never used
[INFO] [stdout]   --> src/day16.rs:58:6
[INFO] [stdout]    |
[INFO] [stdout] 58 | enum Tile {
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]   --> src/day16.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn run() {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_map` is never used
[INFO] [stdout]   --> src/day16.rs:91:4
[INFO] [stdout]    |
[INFO] [stdout] 91 | fn parse_map(input: &str) -> (Reindeer, Coordinate, Vec<Vec<Tile>>) {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_map` is never used
[INFO] [stdout]    --> src/day16.rs:122:4
[INFO] [stdout]     |
[INFO] [stdout] 122 | fn print_map(map: &[Vec<Tile>], reindeer: &Reindeer, end: &Coordinate) {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_paths` is never used
[INFO] [stdout]    --> src/day16.rs:138:4
[INFO] [stdout]     |
[INFO] [stdout] 138 | fn print_paths(map: &[Vec<Tile>], paths: &[Vec<Coordinate>]) {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_path` is never used
[INFO] [stdout]    --> src/day16.rs:142:4
[INFO] [stdout]     |
[INFO] [stdout] 142 | fn print_path(map: &[Vec<Tile>], path: &[Coordinate]) {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_min_cost` is never used
[INFO] [stdout]    --> src/day16.rs:157:4
[INFO] [stdout]     |
[INFO] [stdout] 157 | fn get_min_cost(map: &[Vec<Tile>], reindeer: Reindeer, end: &Coordinate) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_best_paths` is never used
[INFO] [stdout]    --> src/day16.rs:166:4
[INFO] [stdout]     |
[INFO] [stdout] 166 | fn get_best_paths(map: &[Vec<Tile>], reindeer: Reindeer, end: &Coordinate) -> Vec<Vec<Coordinate>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `step` is never used
[INFO] [stdout]    --> src/day16.rs:170:4
[INFO] [stdout]     |
[INFO] [stdout] 170 | fn step(
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `step_queue` is never used
[INFO] [stdout]    --> src/day16.rs:248:4
[INFO] [stdout]     |
[INFO] [stdout] 248 | fn step_queue(map: &[Vec<Tile>], reindeer: Reindeer, end: &Coordinate) -> Vec<i32> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dijkstra` is never used
[INFO] [stdout]    --> src/day16.rs:319:4
[INFO] [stdout]     |
[INFO] [stdout] 319 | fn dijkstra(map: &[Vec<Tile>], reindeer: Reindeer, end: &Coordinate) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dijkstra_all_best_paths` is never used
[INFO] [stdout]    --> src/day16.rs:383:4
[INFO] [stdout]     |
[INFO] [stdout] 383 | fn dijkstra_all_best_paths(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `brute_force` is never used
[INFO] [stdout]   --> src/day17.rs:92:4
[INFO] [stdout]    |
[INFO] [stdout] 92 | fn brute_force(program: &[u64]) -> u64 {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `first_blocking_byte_brute_force` is never used
[INFO] [stdout]   --> src/day18.rs:85:4
[INFO] [stdout]    |
[INFO] [stdout] 85 | fn first_blocking_byte_brute_force(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_patterns` is never used
[INFO] [stdout]   --> src/day19.rs:36:4
[INFO] [stdout]    |
[INFO] [stdout] 36 | fn test_patterns(design: &str, patterns: &[&str]) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Coordinate` is never constructed
[INFO] [stdout]  --> src/day20.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Coordinate {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/day20.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 9  | impl Coordinate {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 10 |     fn new(row: usize, col: usize) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Tile` is never used
[INFO] [stdout]   --> src/day20.rs:16:6
[INFO] [stdout]    |
[INFO] [stdout] 16 | enum Tile {
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]   --> src/day20.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn run() {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_path` is never used
[INFO] [stdout]   --> src/day20.rs:63:4
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn find_path(map: &[Vec<Tile>], start: Coordinate, width: usize, height: usize) -> Vec<Coordinate> {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_best_shortcuts` is never used
[INFO] [stdout]   --> src/day20.rs:92:4
[INFO] [stdout]    |
[INFO] [stdout] 92 | fn find_best_shortcuts(path: &[Coordinate]) -> Vec<(Coordinate, Coordinate)> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_distance` is never used
[INFO] [stdout]    --> src/day20.rs:110:4
[INFO] [stdout]     |
[INFO] [stdout] 110 | fn calculate_distance(start: Coordinate, end: Coordinate) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_path` is never used
[INFO] [stdout]   --> src/day21.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn print_path(path: &[Vec<Action>]) {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]  --> src/day22.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn run() {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_nth_secret_num` is never used
[INFO] [stdout]   --> src/day22.rs:37:4
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn generate_nth_secret_num(start: usize, n: usize) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_next_secret_num` is never used
[INFO] [stdout]   --> src/day22.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn generate_next_secret_num(prev: usize) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mix` is never used
[INFO] [stdout]   --> src/day22.rs:55:4
[INFO] [stdout]    |
[INFO] [stdout] 55 | fn mix(secret_num: usize, val: usize) -> usize {
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prune` is never used
[INFO] [stdout]   --> src/day22.rs:59:4
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn prune(secret_num: usize) -> usize {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_n_secrets` is never used
[INFO] [stdout]   --> src/day22.rs:63:4
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn get_n_secrets(start: usize, n: usize) -> Vec<usize> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_secret_first_digits` is never used
[INFO] [stdout]   --> src/day22.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn get_secret_first_digits(secrets: &[usize]) -> Vec<usize> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_changes` is never used
[INFO] [stdout]   --> src/day22.rs:77:4
[INFO] [stdout]    |
[INFO] [stdout] 77 | fn get_changes(secrets: &[usize]) -> HashMap<(isize, isize, isize, isize), usize> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `combine_changes` is never used
[INFO] [stdout]   --> src/day22.rs:97:4
[INFO] [stdout]    |
[INFO] [stdout] 97 | fn combine_changes(changes: &[HashMap<(isize, isize, isize, isize),usize>]) -> HashMap<(isize, isize, isize, isize),Vec<usize>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_highest_value` is never used
[INFO] [stdout]    --> src/day22.rs:108:4
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn get_highest_value(changes:  &HashMap<(isize, isize, isize, isize),Vec<usize>>) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `File` is never constructed
[INFO] [stdout]  --> src/day9.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct File {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/day9.rs:10:14
[INFO] [stdout]    |
[INFO] [stdout] 9  | impl File {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 10 |     const fn new(val: isize, len: usize) -> File {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Block` is never used
[INFO] [stdout]   --> src/day9.rs:16:6
[INFO] [stdout]    |
[INFO] [stdout] 16 | enum Block {
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]   --> src/day9.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn run() {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_first_checksum` is never used
[INFO] [stdout]   --> src/day9.rs:41:4
[INFO] [stdout]    |
[INFO] [stdout] 41 | fn calculate_first_checksum(input: &[u32]) -> isize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_second_checksum` is never used
[INFO] [stdout]   --> src/day9.rs:72:4
[INFO] [stdout]    |
[INFO] [stdout] 72 | fn calculate_second_checksum(input: &[u32]) -> isize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Position` is never used
[INFO] [stdout]  --> src/day20_2.rs:3:6
[INFO] [stdout]   |
[INFO] [stdout] 3 | type Position = (i32, i32);
[INFO] [stdout]   |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEPRECATED_CHEAT_DURATION` is never used
[INFO] [stdout]  --> src/day20_2.rs:5:7
[INFO] [stdout]   |
[INFO] [stdout] 5 | const DEPRECATED_CHEAT_DURATION: i32 = 2;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LATEST_CHEAT_DURATION` is never used
[INFO] [stdout]  --> src/day20_2.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const LATEST_CHEAT_DURATION: i32 = 20;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RaceSetup` is never constructed
[INFO] [stdout]  --> src/day20_2.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct RaceSetup {
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]   --> src/day20_2.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn run() {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/day20_2.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn parse_input(input: &str) -> RaceSetup {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distance` is never used
[INFO] [stdout]   --> src/day20_2.rs:58:4
[INFO] [stdout]    |
[INFO] [stdout] 58 | fn distance(position_a: &Position, position_b: &Position) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_deprecated_cheats` is never used
[INFO] [stdout]   --> src/day20_2.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn count_deprecated_cheats(race_setup: &RaceSetup, saved: i32) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part1` is never used
[INFO] [stdout]    --> src/day20_2.rs:101:4
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn part1(race_setup: &RaceSetup) -> usize {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_latest_cheats` is never used
[INFO] [stdout]    --> src/day20_2.rs:105:4
[INFO] [stdout]     |
[INFO] [stdout] 105 | fn count_latest_cheats(race_setup: &RaceSetup, saved: i32) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part2` is never used
[INFO] [stdout]    --> src/day20_2.rs:142:4
[INFO] [stdout]     |
[INFO] [stdout] 142 | fn part2(race_setup: &RaceSetup) -> usize {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `C` should have a snake case name
[INFO] [stdout]   --> src/day13.rs:70:24
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn solve1(input: &str, C: isize) -> usize {
[INFO] [stdout]    |                        ^ help: convert the identifier to snake case (notice the capitalization): `c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `swaps`
[INFO] [stdout]   --> src/day24.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let swaps = find_swaps(&wire_vals, &mut operations, correct_res);
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_swaps`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `wire_vals`
[INFO] [stdout]   --> src/day24.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 |     wire_vals: &HashMap<&str, i32>,
[INFO] [stdout]    |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_wire_vals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `operations`
[INFO] [stdout]   --> src/day24.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     operations: &mut VecDeque<((&str, &str, &str), fn(i32, i32) -> i32)>,
[INFO] [stdout]    |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operations`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day21_2.rs:309:13
[INFO] [stdout]     |
[INFO] [stdout] 309 |         let mut inp = inp.trim();
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_corners` is never used
[INFO] [stdout]    --> src/day12.rs:115:4
[INFO] [stdout]     |
[INFO] [stdout] 115 | fn count_corners(region_tiles: &[Tile], max_row: usize, max_col: usize) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dijkstra` is never used
[INFO] [stdout]    --> src/day13.rs:126:4
[INFO] [stdout]     |
[INFO] [stdout] 126 | fn dijkstra(dx_a: i64, dy_a: i64, dx_b: i64, dy_b: i64, goal: (i64, i64)) -> Option<i64> {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Robot` is never constructed
[INFO] [stdout]  --> src/day14.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct Robot {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Quadrant` is never used
[INFO] [stdout]   --> src/day14.rs:16:6
[INFO] [stdout]    |
[INFO] [stdout] 16 | enum Quadrant {
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Occuppation` is never used
[INFO] [stdout]   --> src/day14.rs:25:6
[INFO] [stdout]    |
[INFO] [stdout] 25 | enum Occuppation {
[INFO] [stdout]    |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `create_robot` are never used
[INFO] [stdout]   --> src/day14.rs:31:14
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl Robot {
[INFO] [stdout]    | ---------- associated functions in this implementation
[INFO] [stdout] 31 |     const fn new(pos_x: i32, pos_y: i32, vel_x: i32, vel_y: i32) -> Robot {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     fn create_robot(data: &str) -> Robot {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]   --> src/day14.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn run() {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simulate_movement` is never used
[INFO] [stdout]   --> src/day14.rs:95:4
[INFO] [stdout]    |
[INFO] [stdout] 95 | fn simulate_movement(n: i32, mut robot: Robot, room_width: i32, room_height: i32) -> Robot {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_robots_in_quadrants` is never used
[INFO] [stdout]    --> src/day14.rs:119:4
[INFO] [stdout]     |
[INFO] [stdout] 119 | fn count_robots_in_quadrants(robots: &[Robot], room_width: i32, room_height: i32) -> [i32; 4] {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_quadrant` is never used
[INFO] [stdout]    --> src/day14.rs:135:4
[INFO] [stdout]     |
[INFO] [stdout] 135 | fn get_quadrant(robot: &Robot, room_width: i32, room_height: i32) -> Quadrant {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_christmas_tree` is never used
[INFO] [stdout]    --> src/day14.rs:154:4
[INFO] [stdout]     |
[INFO] [stdout] 154 | fn find_christmas_tree(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_robots` is never used
[INFO] [stdout]    --> src/day14.rs:209:4
[INFO] [stdout]     |
[INFO] [stdout] 209 | fn print_robots(robots: &[Robot], room_width: i32, room_height: i32, file: &mut File) {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `LeftBox` and `RightBox` are never constructed
[INFO] [stdout]   --> src/day15.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | enum Tile {
[INFO] [stdout]    |      ---- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 17 |     LeftBox,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 18 |     RightBox,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Tile` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_big_warehouse` is never used
[INFO] [stdout]    --> src/day15.rs:261:4
[INFO] [stdout]     |
[INFO] [stdout] 261 | fn get_big_warehouse(data: &str) -> (Vec<Vec<Tile>>, Robot) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `step_2` is never used
[INFO] [stdout]    --> src/day15.rs:291:4
[INFO] [stdout]     |
[INFO] [stdout] 291 | fn step_2(warehouse: &mut Vec<Vec<Tile>>, robot: &mut Robot, direction: &Direction) {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Map` is never used
[INFO] [stdout]  --> src/day15_2.rs:3:6
[INFO] [stdout]   |
[INFO] [stdout] 3 | type Map = Vec<Vec<Tile>>;
[INFO] [stdout]   |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `WideMap` is never used
[INFO] [stdout]  --> src/day15_2.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | type WideMap = Vec<Vec<WideTile>>;
[INFO] [stdout]   |      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_grid` is never used
[INFO] [stdout]   --> src/day15_2.rs:90:4
[INFO] [stdout]    |
[INFO] [stdout] 90 | fn print_grid<T: Display>(m: &[Vec<T>]) {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_cell` is never used
[INFO] [stdout]   --> src/day15_2.rs:99:4
[INFO] [stdout]    |
[INFO] [stdout] 99 | fn get_cell<T>(xy: (usize, usize), m: &[Vec<T>]) -> &T {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `char_to_wide_tiles` is never used
[INFO] [stdout]    --> src/day15_2.rs:103:4
[INFO] [stdout]     |
[INFO] [stdout] 103 | fn char_to_wide_tiles(value: char) -> [WideTile; 2] {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_map` is never used
[INFO] [stdout]    --> src/day15_2.rs:113:4
[INFO] [stdout]     |
[INFO] [stdout] 113 | fn parse_map(s: &str) -> Map {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_wide_map` is never used
[INFO] [stdout]    --> src/day15_2.rs:119:4
[INFO] [stdout]     |
[INFO] [stdout] 119 | fn parse_wide_map(s: &str) -> WideMap {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]    --> src/day15_2.rs:126:4
[INFO] [stdout]     |
[INFO] [stdout] 126 | fn parse_input(s: &str) -> (Map, Vec<Direction>) {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input_wide` is never used
[INFO] [stdout]    --> src/day15_2.rs:139:4
[INFO] [stdout]     |
[INFO] [stdout] 139 | fn parse_input_wide(s: &str) -> (WideMap, Vec<Direction>) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `robot_coord` is never used
[INFO] [stdout]    --> src/day15_2.rs:151:4
[INFO] [stdout]     |
[INFO] [stdout] 151 | fn robot_coord(m: &Map) -> (usize, usize) {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `robot_coord_wide` is never used
[INFO] [stdout]    --> src/day15_2.rs:163:4
[INFO] [stdout]     |
[INFO] [stdout] 163 | fn robot_coord_wide(m: &WideMap) -> (usize, usize) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `next_coord` is never used
[INFO] [stdout]    --> src/day15_2.rs:174:4
[INFO] [stdout]     |
[INFO] [stdout] 174 | fn next_coord(xy: (usize, usize), mve: &Direction) -> (usize, usize) {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `next_coords` is never used
[INFO] [stdout]    --> src/day15_2.rs:183:4
[INFO] [stdout]     |
[INFO] [stdout] 183 | fn next_coords<const N: usize>(
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `next_empty_tile_coord` is never used
[INFO] [stdout]    --> src/day15_2.rs:192:4
[INFO] [stdout]     |
[INFO] [stdout] 192 | fn next_empty_tile_coord(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `next_empty_tile_coord_wide_horiz` is never used
[INFO] [stdout]    --> src/day15_2.rs:208:4
[INFO] [stdout]     |
[INFO] [stdout] 208 | fn next_empty_tile_coord_wide_horiz(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_moves_vert_wide` is never used
[INFO] [stdout]    --> src/day15_2.rs:226:4
[INFO] [stdout]     |
[INFO] [stdout] 226 | fn check_moves_vert_wide<const N: usize>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move` is never used
[INFO] [stdout]    --> src/day15_2.rs:265:4
[INFO] [stdout]     |
[INFO] [stdout] 265 | fn apply_move(mut map: Map, mve: Direction) -> Map {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shift_boxes_horiz` is never used
[INFO] [stdout]    --> src/day15_2.rs:289:4
[INFO] [stdout]     |
[INFO] [stdout] 289 | fn shift_boxes_horiz(map: &mut [Vec<WideTile>], start: (usize, usize), end: (usize, usize)) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shift_boxes_vert` is never used
[INFO] [stdout]    --> src/day15_2.rs:304:4
[INFO] [stdout]     |
[INFO] [stdout] 304 | fn shift_boxes_vert(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_move_wide` is never used
[INFO] [stdout]    --> src/day15_2.rs:335:4
[INFO] [stdout]     |
[INFO] [stdout] 335 | fn apply_move_wide(mut map: Vec<Vec<WideTile>>, mve: Direction) -> Vec<Vec<WideTile>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `total_gps_coords` is never used
[INFO] [stdout]    --> src/day15_2.rs:380:4
[INFO] [stdout]     |
[INFO] [stdout] 380 | fn total_gps_coords(m: &Map) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `total_gps_coords_wide` is never used
[INFO] [stdout]    --> src/day15_2.rs:393:4
[INFO] [stdout]     |
[INFO] [stdout] 393 | fn total_gps_coords_wide(m: &WideMap) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]    --> src/day15_2.rs:406:4
[INFO] [stdout]     |
[INFO] [stdout] 406 | fn solve_part_1(s: &str) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]    --> src/day15_2.rs:414:4
[INFO] [stdout]     |
[INFO] [stdout] 414 | fn solve_part_2(s: &str) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]    --> src/day15_2.rs:423:8
[INFO] [stdout]     |
[INFO] [stdout] 423 | pub fn run() {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `West`, `North`, and `South` are never constructed
[INFO] [stdout]   --> src/day16.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 50 | enum Direction {
[INFO] [stdout]    |      --------- variants in this enum
[INFO] [stdout] 51 |     East,
[INFO] [stdout] 52 |     West,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 53 |     North,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 54 |     South,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Direction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Tile` is never used
[INFO] [stdout]   --> src/day16.rs:58:6
[INFO] [stdout]    |
[INFO] [stdout] 58 | enum Tile {
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]   --> src/day16.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn run() {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_map` is never used
[INFO] [stdout]   --> src/day16.rs:91:4
[INFO] [stdout]    |
[INFO] [stdout] 91 | fn parse_map(input: &str) -> (Reindeer, Coordinate, Vec<Vec<Tile>>) {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_map` is never used
[INFO] [stdout]    --> src/day16.rs:122:4
[INFO] [stdout]     |
[INFO] [stdout] 122 | fn print_map(map: &[Vec<Tile>], reindeer: &Reindeer, end: &Coordinate) {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_paths` is never used
[INFO] [stdout]    --> src/day16.rs:138:4
[INFO] [stdout]     |
[INFO] [stdout] 138 | fn print_paths(map: &[Vec<Tile>], paths: &[Vec<Coordinate>]) {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_path` is never used
[INFO] [stdout]    --> src/day16.rs:142:4
[INFO] [stdout]     |
[INFO] [stdout] 142 | fn print_path(map: &[Vec<Tile>], path: &[Coordinate]) {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_min_cost` is never used
[INFO] [stdout]    --> src/day16.rs:157:4
[INFO] [stdout]     |
[INFO] [stdout] 157 | fn get_min_cost(map: &[Vec<Tile>], reindeer: Reindeer, end: &Coordinate) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_best_paths` is never used
[INFO] [stdout]    --> src/day16.rs:166:4
[INFO] [stdout]     |
[INFO] [stdout] 166 | fn get_best_paths(map: &[Vec<Tile>], reindeer: Reindeer, end: &Coordinate) -> Vec<Vec<Coordinate>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `step` is never used
[INFO] [stdout]    --> src/day16.rs:170:4
[INFO] [stdout]     |
[INFO] [stdout] 170 | fn step(
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `step_queue` is never used
[INFO] [stdout]    --> src/day16.rs:248:4
[INFO] [stdout]     |
[INFO] [stdout] 248 | fn step_queue(map: &[Vec<Tile>], reindeer: Reindeer, end: &Coordinate) -> Vec<i32> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dijkstra` is never used
[INFO] [stdout]    --> src/day16.rs:319:4
[INFO] [stdout]     |
[INFO] [stdout] 319 | fn dijkstra(map: &[Vec<Tile>], reindeer: Reindeer, end: &Coordinate) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dijkstra_all_best_paths` is never used
[INFO] [stdout]    --> src/day16.rs:383:4
[INFO] [stdout]     |
[INFO] [stdout] 383 | fn dijkstra_all_best_paths(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `brute_force` is never used
[INFO] [stdout]   --> src/day17.rs:92:4
[INFO] [stdout]    |
[INFO] [stdout] 92 | fn brute_force(program: &[u64]) -> u64 {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `first_blocking_byte_brute_force` is never used
[INFO] [stdout]   --> src/day18.rs:85:4
[INFO] [stdout]    |
[INFO] [stdout] 85 | fn first_blocking_byte_brute_force(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_patterns` is never used
[INFO] [stdout]   --> src/day19.rs:36:4
[INFO] [stdout]    |
[INFO] [stdout] 36 | fn test_patterns(design: &str, patterns: &[&str]) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Coordinate` is never constructed
[INFO] [stdout]  --> src/day20.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Coordinate {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/day20.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 9  | impl Coordinate {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 10 |     fn new(row: usize, col: usize) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Tile` is never used
[INFO] [stdout]   --> src/day20.rs:16:6
[INFO] [stdout]    |
[INFO] [stdout] 16 | enum Tile {
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]   --> src/day20.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn run() {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_path` is never used
[INFO] [stdout]   --> src/day20.rs:63:4
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn find_path(map: &[Vec<Tile>], start: Coordinate, width: usize, height: usize) -> Vec<Coordinate> {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_best_shortcuts` is never used
[INFO] [stdout]   --> src/day20.rs:92:4
[INFO] [stdout]    |
[INFO] [stdout] 92 | fn find_best_shortcuts(path: &[Coordinate]) -> Vec<(Coordinate, Coordinate)> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_distance` is never used
[INFO] [stdout]    --> src/day20.rs:110:4
[INFO] [stdout]     |
[INFO] [stdout] 110 | fn calculate_distance(start: Coordinate, end: Coordinate) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_path` is never used
[INFO] [stdout]   --> src/day21.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn print_path(path: &[Vec<Action>]) {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]  --> src/day22.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn run() {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_nth_secret_num` is never used
[INFO] [stdout]   --> src/day22.rs:37:4
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn generate_nth_secret_num(start: usize, n: usize) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_next_secret_num` is never used
[INFO] [stdout]   --> src/day22.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn generate_next_secret_num(prev: usize) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mix` is never used
[INFO] [stdout]   --> src/day22.rs:55:4
[INFO] [stdout]    |
[INFO] [stdout] 55 | fn mix(secret_num: usize, val: usize) -> usize {
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prune` is never used
[INFO] [stdout]   --> src/day22.rs:59:4
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn prune(secret_num: usize) -> usize {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_n_secrets` is never used
[INFO] [stdout]   --> src/day22.rs:63:4
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn get_n_secrets(start: usize, n: usize) -> Vec<usize> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_secret_first_digits` is never used
[INFO] [stdout]   --> src/day22.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn get_secret_first_digits(secrets: &[usize]) -> Vec<usize> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_changes` is never used
[INFO] [stdout]   --> src/day22.rs:77:4
[INFO] [stdout]    |
[INFO] [stdout] 77 | fn get_changes(secrets: &[usize]) -> HashMap<(isize, isize, isize, isize), usize> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `combine_changes` is never used
[INFO] [stdout]   --> src/day22.rs:97:4
[INFO] [stdout]    |
[INFO] [stdout] 97 | fn combine_changes(changes: &[HashMap<(isize, isize, isize, isize),usize>]) -> HashMap<(isize, isize, isize, isize),Vec<usize>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_highest_value` is never used
[INFO] [stdout]    --> src/day22.rs:108:4
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn get_highest_value(changes:  &HashMap<(isize, isize, isize, isize),Vec<usize>>) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `File` is never constructed
[INFO] [stdout]  --> src/day9.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct File {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/day9.rs:10:14
[INFO] [stdout]    |
[INFO] [stdout] 9  | impl File {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 10 |     const fn new(val: isize, len: usize) -> File {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Block` is never used
[INFO] [stdout]   --> src/day9.rs:16:6
[INFO] [stdout]    |
[INFO] [stdout] 16 | enum Block {
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]   --> src/day9.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn run() {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_first_checksum` is never used
[INFO] [stdout]   --> src/day9.rs:41:4
[INFO] [stdout]    |
[INFO] [stdout] 41 | fn calculate_first_checksum(input: &[u32]) -> isize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_second_checksum` is never used
[INFO] [stdout]   --> src/day9.rs:72:4
[INFO] [stdout]    |
[INFO] [stdout] 72 | fn calculate_second_checksum(input: &[u32]) -> isize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Position` is never used
[INFO] [stdout]  --> src/day20_2.rs:3:6
[INFO] [stdout]   |
[INFO] [stdout] 3 | type Position = (i32, i32);
[INFO] [stdout]   |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEPRECATED_CHEAT_DURATION` is never used
[INFO] [stdout]  --> src/day20_2.rs:5:7
[INFO] [stdout]   |
[INFO] [stdout] 5 | const DEPRECATED_CHEAT_DURATION: i32 = 2;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LATEST_CHEAT_DURATION` is never used
[INFO] [stdout]  --> src/day20_2.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const LATEST_CHEAT_DURATION: i32 = 20;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RaceSetup` is never constructed
[INFO] [stdout]  --> src/day20_2.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct RaceSetup {
[INFO] [stdout]   |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]   --> src/day20_2.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn run() {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/day20_2.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn parse_input(input: &str) -> RaceSetup {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distance` is never used
[INFO] [stdout]   --> src/day20_2.rs:58:4
[INFO] [stdout]    |
[INFO] [stdout] 58 | fn distance(position_a: &Position, position_b: &Position) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_deprecated_cheats` is never used
[INFO] [stdout]   --> src/day20_2.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn count_deprecated_cheats(race_setup: &RaceSetup, saved: i32) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part1` is never used
[INFO] [stdout]    --> src/day20_2.rs:101:4
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn part1(race_setup: &RaceSetup) -> usize {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_latest_cheats` is never used
[INFO] [stdout]    --> src/day20_2.rs:105:4
[INFO] [stdout]     |
[INFO] [stdout] 105 | fn count_latest_cheats(race_setup: &RaceSetup, saved: i32) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part2` is never used
[INFO] [stdout]    --> src/day20_2.rs:142:4
[INFO] [stdout]     |
[INFO] [stdout] 142 | fn part2(race_setup: &RaceSetup) -> usize {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `C` should have a snake case name
[INFO] [stdout]   --> src/day13.rs:70:24
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn solve1(input: &str, C: isize) -> usize {
[INFO] [stdout]    |                        ^ help: convert the identifier to snake case (notice the capitalization): `c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.71s
[INFO] running `Command { std: "docker" "inspect" "5b769f78a9632888ce6d84289d3f83163d2ab2434959d1825a92a5d2a4ce68f9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5b769f78a9632888ce6d84289d3f83163d2ab2434959d1825a92a5d2a4ce68f9", kill_on_drop: false }`
[INFO] [stdout] 5b769f78a9632888ce6d84289d3f83163d2ab2434959d1825a92a5d2a4ce68f9
