[INFO] cloning repository https://github.com/robgev/aoc-2024-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/robgev/aoc-2024-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frobgev%2Faoc-2024-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frobgev%2Faoc-2024-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 3ce02ff4d6e1d32d94b3a0805766b09f6d706777
[INFO] checking robgev/aoc-2024-rust against try#54e27f559f23913c1d5afb1a0f0114e9e61b81b8 for pr-147589
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frobgev%2Faoc-2024-rust" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/robgev/aoc-2024-rust
[INFO] finished tweaking git repo https://github.com/robgev/aoc-2024-rust
[INFO] tweaked toml for git repo https://github.com/robgev/aoc-2024-rust written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/robgev/aoc-2024-rust on toolchain 54e27f559f23913c1d5afb1a0f0114e9e61b81b8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+54e27f559f23913c1d5afb1a0f0114e9e61b81b8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/robgev/aoc-2024-rust 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" "+54e27f559f23913c1d5afb1a0f0114e9e61b81b8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] checking robgev/aoc-2024-rust against try#54e27f559f23913c1d5afb1a0f0114e9e61b81b8 for pr-147589
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frobgev%2Faoc-2024-rust" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/robgev/aoc-2024-rust
[INFO] finished tweaking git repo https://github.com/robgev/aoc-2024-rust
[INFO] tweaked toml for git repo https://github.com/robgev/aoc-2024-rust written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/robgev/aoc-2024-rust on toolchain 54e27f559f23913c1d5afb1a0f0114e9e61b81b8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+54e27f559f23913c1d5afb1a0f0114e9e61b81b8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/robgev/aoc-2024-rust 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" "+54e27f559f23913c1d5afb1a0f0114e9e61b81b8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+54e27f559f23913c1d5afb1a0f0114e9e61b81b8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e96ea6cbe3812262d7b41e3bd93bf3a6f3ae95347e2e9a8bca334a5356a68432
[INFO] running `Command { std: "docker" "start" "-a" "e96ea6cbe3812262d7b41e3bd93bf3a6f3ae95347e2e9a8bca334a5356a68432", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e96ea6cbe3812262d7b41e3bd93bf3a6f3ae95347e2e9a8bca334a5356a68432", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e96ea6cbe3812262d7b41e3bd93bf3a6f3ae95347e2e9a8bca334a5356a68432", kill_on_drop: false }`
[INFO] [stdout] e96ea6cbe3812262d7b41e3bd93bf3a6f3ae95347e2e9a8bca334a5356a68432
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+54e27f559f23913c1d5afb1a0f0114e9e61b81b8" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9acce4121aadb7bff009ffe9ecfa2a2439d28220e1e7f4b30b93adb09e33a2d8
[INFO] running `Command { std: "docker" "start" "-a" "9acce4121aadb7bff009ffe9ecfa2a2439d28220e1e7f4b30b93adb09e33a2d8", kill_on_drop: false }`
[INFO] [stderr]     Checking regex-automata v0.4.9
[INFO] [stderr]     Checking regex v1.11.1
[INFO] [stderr]     Checking aoc-2024-rust v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::utils::to_num`
[INFO] [stdout]  --> src/day03_alt.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::utils::to_num;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `regex::Regex`
[INFO] [stdout]  --> src/day03_alt.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use regex::Regex;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `regex::Regex`
[INFO] [stdout]  --> src/day07.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use regex::Regex;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `u32`
[INFO] [stdout]  --> src/day07.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::{fs, u32, usize};
[INFO] [stdout]   |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `i64`
[INFO] [stdout]  --> src/day13.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::{fs, i64, usize};
[INFO] [stdout]   |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `thread::sleep` and `time::Duration`
[INFO] [stdout]  --> src/day14.rs:2:20
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{fs, i32, thread::sleep, time::Duration, usize};
[INFO] [stdout]   |                    ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::VecDeque`
[INFO] [stdout]  --> src/day15.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::VecDeque, fs, usize};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `print_grid`
[INFO] [stdout]  --> src/day16.rs:1:50
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::utils::{find_start_loc, is_in_bounds, print_grid};
[INFO] [stdout]   |                                                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VecDeque`
[INFO] [stdout]  --> src/day23.rs:2:37
[INFO] [stdout]   |
[INFO] [stdout] 2 |     collections::{HashMap, HashSet, VecDeque},
[INFO] [stdout]   |                                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fmt::format`
[INFO] [stdout]  --> src/day24.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     fmt::format,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::utils::to_num`
[INFO] [stdout]  --> src/day03_alt.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::utils::to_num;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `regex::Regex`
[INFO] [stdout]  --> src/day03_alt.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use regex::Regex;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `regex::Regex`
[INFO] [stdout]  --> src/day07.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use regex::Regex;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `u32`
[INFO] [stdout]  --> src/day07.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::{fs, u32, usize};
[INFO] [stdout]   |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `i64`
[INFO] [stdout]  --> src/day13.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::{fs, i64, usize};
[INFO] [stdout]   |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `thread::sleep` and `time::Duration`
[INFO] [stdout]  --> src/day14.rs:2:20
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{fs, i32, thread::sleep, time::Duration, usize};
[INFO] [stdout]   |                    ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::VecDeque`
[INFO] [stdout]  --> src/day15.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::VecDeque, fs, usize};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `print_grid`
[INFO] [stdout]  --> src/day16.rs:1:50
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::utils::{find_start_loc, is_in_bounds, print_grid};
[INFO] [stdout]   |                                                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VecDeque`
[INFO] [stdout]  --> src/day23.rs:2:37
[INFO] [stdout]   |
[INFO] [stdout] 2 |     collections::{HashMap, HashSet, VecDeque},
[INFO] [stdout]   |                                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fmt::format`
[INFO] [stdout]  --> src/day24.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     fmt::format,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `new_vec` is never read
[INFO] [stdout]   --> src/day11.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let mut new_vec: Vec<usize> = Vec::new();
[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: unused variable: `j`
[INFO] [stdout]   --> src/day11.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     for j in 0..25 {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `new_vec` is never read
[INFO] [stdout]   --> src/day11.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let mut new_vec: Vec<usize> = Vec::new();
[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: unused variable: `j`
[INFO] [stdout]   --> src/day11.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     for j in 0..25 {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `contents`
[INFO] [stdout]   --> src/day25.rs:77:9
[INFO] [stdout]    |
[INFO] [stdout] 77 |     let contents = fs::read_to_string("./src/input.txt").expect("Should read the file");
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_contents`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]  --> src/day01.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_part_1() {
[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 `solve_part_2` is never used
[INFO] [stdout]   --> src/day01.rs:31:4
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]   --> src/day01.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn solve() {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_line` is never used
[INFO] [stdout]  --> src/day02.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn validate_line(nums: Vec<i32>) -> bool {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]   --> src/day02.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn solve_part_1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]   --> src/day02.rs:37:4
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]   --> src/day02.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub fn solve() {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]  --> src/day03.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_part_1() {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]   --> src/day03.rs:19:4
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]   --> src/day03.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn solve() {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_number` is never used
[INFO] [stdout]  --> src/day03_alt.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn extract_number(contents: &Vec<char>, char_loc: &mut usize) -> i32 {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_mult` is never used
[INFO] [stdout]   --> src/day03_alt.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn extract_mult(contents: &Vec<char>, char_loc: &mut usize) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]   --> src/day03_alt.rs:39:4
[INFO] [stdout]    |
[INFO] [stdout] 39 | fn solve_part_1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]   --> src/day03_alt.rs:57:4
[INFO] [stdout]    |
[INFO] [stdout] 57 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]   --> src/day03_alt.rs:98:8
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub fn solve() {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `search_all_directions` is never used
[INFO] [stdout]  --> src/day04.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn search_all_directions(grid: &Vec<Vec<char>>, x_row: i32, x_col: i32) -> i32 {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_x_mas` is never used
[INFO] [stdout]   --> src/day04.rs:41:4
[INFO] [stdout]    |
[INFO] [stdout] 41 | fn is_x_mas(grid: &Vec<Vec<char>>, a_row: i32, a_col: i32) -> bool {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]   --> src/day04.rs:66:4
[INFO] [stdout]    |
[INFO] [stdout] 66 | fn solve_part_1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]   --> src/day04.rs:84:4
[INFO] [stdout]    |
[INFO] [stdout] 84 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]    --> src/day04.rs:104:8
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub fn solve() {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_is_valid` is never used
[INFO] [stdout]  --> src/day05.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn check_is_valid(nums: &Vec<i32>, rules: &HashMap<i32, Vec<i32>>) -> bool {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]   --> src/day05.rs:19:4
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn solve_part_1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]   --> src/day05.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]   --> src/day05.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn solve() {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]  --> src/day06.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_part_1() {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `can_loop` is never used
[INFO] [stdout]   --> src/day06.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn can_loop(map: &Vec<Vec<char>>, start_loc: (i32, i32)) -> bool {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]   --> src/day06.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]    --> src/day06.rs:120:8
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub fn solve() {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_valid` is never used
[INFO] [stdout]  --> src/day07.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn is_valid(target: usize, nums: Vec<usize>, total: usize) -> bool {
[INFO] [stdout]   |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_valid_concat` is never used
[INFO] [stdout]   --> src/day07.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn is_valid_concat(target: usize, nums: Vec<usize>, total: usize) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]   --> src/day07.rs:36:4
[INFO] [stdout]    |
[INFO] [stdout] 36 | fn solve_part_1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]   --> src/day07.rs:58:4
[INFO] [stdout]    |
[INFO] [stdout] 58 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]   --> src/day07.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn solve() {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]  --> src/day08.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_part_1() {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]   --> src/day08.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]   --> src/day08.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn solve() {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_empty` is never used
[INFO] [stdout]  --> src/day09.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn is_empty(blocks: &Vec<u32>) -> bool {
[INFO] [stdout]   |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]   --> src/day09.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn solve_part_1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]   --> src/day09.rs:68:4
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]    --> src/day09.rs:131:8
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub fn solve() {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_score` is never used
[INFO] [stdout]  --> src/day10.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn count_score(map: &Vec<Vec<u32>>, start_pos: (usize, usize)) -> i32 {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_rating` is never used
[INFO] [stdout]   --> src/day10.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn count_rating(map: &Vec<Vec<u32>>, start_pos: (usize, usize)) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]   --> src/day10.rs:74:4
[INFO] [stdout]    |
[INFO] [stdout] 74 | fn solve_part_1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]   --> src/day10.rs:98:4
[INFO] [stdout]    |
[INFO] [stdout] 98 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]    --> src/day10.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub fn solve() {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evolve_single` is never used
[INFO] [stdout]  --> src/day11.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn evolve_single(num: usize) -> Vec<usize> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]   --> src/day11.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn solve_part_1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_for` is never used
[INFO] [stdout]   --> src/day11.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn count_for(num: usize, steps: usize, cache: &mut HashMap<(usize, usize), usize>) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]   --> src/day11.rs:69:4
[INFO] [stdout]    |
[INFO] [stdout] 69 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]   --> src/day11.rs:85:8
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub fn solve() {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_perimeter` is never used
[INFO] [stdout]  --> src/day12.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn count_perimeter(map: &Vec<Vec<char>>, loc: (i32, i32), current_plant: char) -> i32 {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_same` is never used
[INFO] [stdout]   --> src/day12.rs:26:4
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn is_same(map: &Vec<Vec<char>>, current_plant: char, neighbor: (i32, i32)) -> bool {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_corners` is never used
[INFO] [stdout]   --> src/day12.rs:35:4
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn count_corners(map: &Vec<Vec<char>>, loc: (i32, i32), current_plant: char) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `group_loc` is never used
[INFO] [stdout]    --> src/day12.rs:100:4
[INFO] [stdout]     |
[INFO] [stdout] 100 | fn group_loc(
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `group_plants` is never used
[INFO] [stdout]    --> src/day12.rs:130:4
[INFO] [stdout]     |
[INFO] [stdout] 130 | fn group_plants(map: &Vec<Vec<char>>) -> Vec<Vec<i32>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]    --> src/day12.rs:150:4
[INFO] [stdout]     |
[INFO] [stdout] 150 | fn solve_part_1() {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]    --> src/day12.rs:183:4
[INFO] [stdout]     |
[INFO] [stdout] 183 | fn solve_part_2() {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]    --> src/day12.rs:212:8
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub fn solve() {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_button` is never used
[INFO] [stdout]  --> src/day13.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn parse_button(line: &str, button: &str) -> (f64, f64) {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_prize` is never used
[INFO] [stdout]   --> src/day13.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn parse_prize(line: &str) -> (f64, f64) {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_prize_part2` is never used
[INFO] [stdout]   --> src/day13.rs:31:4
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn parse_prize_part2(line: &str) -> (f64, f64) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_machine` is never used
[INFO] [stdout]   --> src/day13.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn parse_machine(machine: &str) -> [(f64, f64); 3] {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_machine_part2` is never used
[INFO] [stdout]   --> src/day13.rs:53:4
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn parse_machine_part2(machine: &str) -> [(f64, f64); 3] {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_min` is never used
[INFO] [stdout]   --> src/day13.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn find_min(config: [(f64, f64); 3]) -> usize {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]   --> src/day13.rs:76:4
[INFO] [stdout]    |
[INFO] [stdout] 76 | fn solve_part_1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]   --> src/day13.rs:89:4
[INFO] [stdout]    |
[INFO] [stdout] 89 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]    --> src/day13.rs:102:8
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn solve() {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_metric` is never used
[INFO] [stdout]  --> src/day14.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn parse_metric(line: &str, metric: &str) -> (i32, i32) {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse` is never used
[INFO] [stdout]   --> src/day14.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn parse(line: &str) -> (i32, i32, i32, i32) {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_quadrant` is never used
[INFO] [stdout]   --> src/day14.rs:24:4
[INFO] [stdout]    |
[INFO] [stdout] 24 | fn find_quadrant(px: i32, py: i32) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clean_grid` is never used
[INFO] [stdout]   --> src/day14.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn clean_grid() -> Vec<Vec<char>> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_grid` is never used
[INFO] [stdout]   --> src/day14.rs:55:4
[INFO] [stdout]    |
[INFO] [stdout] 55 | fn print_grid(grid: Vec<Vec<char>>) {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]   --> src/day14.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn solve_part_1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]   --> src/day14.rs:80:4
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]    --> src/day14.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn solve() {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_dir` is never used
[INFO] [stdout]  --> src/day15.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn get_dir(dir: char) -> (i32, i32) {
[INFO] [stdout]   |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_move` is never used
[INFO] [stdout]   --> src/day15.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn make_move(map: &mut Vec<Vec<char>>, loc: (i32, i32), dir: char) -> (i32, i32) {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_gps_sum` is never used
[INFO] [stdout]   --> src/day15.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn calculate_gps_sum(map: &Vec<Vec<char>>, box_char: char) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]   --> src/day15.rs:55:4
[INFO] [stdout]    |
[INFO] [stdout] 55 | fn solve_part_1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_pair` is never used
[INFO] [stdout]   --> src/day15.rs:78:4
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn find_pair(map: &Vec<Vec<char>>, box_loc: (i32, i32)) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `touches_box` is never used
[INFO] [stdout]   --> src/day15.rs:91:4
[INFO] [stdout]    |
[INFO] [stdout] 91 | fn touches_box(map: &Vec<Vec<char>>, box_loc: (i32, i32), (dy, dx): (i32, i32)) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `move_box_vertical` is never used
[INFO] [stdout]    --> src/day15.rs:105:4
[INFO] [stdout]     |
[INFO] [stdout] 105 | fn move_box_vertical(map: &mut Vec<Vec<char>>, box_loc: (i32, i32), (dy, dx): (i32, i32)) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `move_box_horizontal` is never used
[INFO] [stdout]    --> src/day15.rs:134:4
[INFO] [stdout]     |
[INFO] [stdout] 134 | fn move_box_horizontal(map: &mut Vec<Vec<char>>, box_loc: (i32, i32), (dy, dx): (i32, i32)) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `move_box` is never used
[INFO] [stdout]    --> src/day15.rs:148:4
[INFO] [stdout]     |
[INFO] [stdout] 148 | fn move_box(map: &mut Vec<Vec<char>>, box_loc: (i32, i32), (dy, dx): (i32, i32)) {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_hitting_wall` is never used
[INFO] [stdout]    --> src/day15.rs:156:4
[INFO] [stdout]     |
[INFO] [stdout] 156 | fn is_hitting_wall(map: &Vec<Vec<char>>, loc: (i32, i32), (dy, dx): (i32, i32)) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_move_part2` is never used
[INFO] [stdout]    --> src/day15.rs:183:4
[INFO] [stdout]     |
[INFO] [stdout] 183 | fn make_move_part2(map: &mut Vec<Vec<char>>, robot_loc: (i32, i32), dir: char) -> (i32, i32) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]    --> src/day15.rs:209:4
[INFO] [stdout]     |
[INFO] [stdout] 209 | fn solve_part_2() {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]    --> src/day15.rs:244:8
[INFO] [stdout]     |
[INFO] [stdout] 244 | pub fn solve() {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `PosAndDir` is never used
[INFO] [stdout]  --> src/day16.rs:7:6
[INFO] [stdout]   |
[INFO] [stdout] 7 | type PosAndDir = (i32, i32, i32, i32);
[INFO] [stdout]   |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Track` is never used
[INFO] [stdout]  --> src/day16.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type Track = HashMap<PosAndDir, HashSet<PosAndDir>>;
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `traverse` is never used
[INFO] [stdout]   --> src/day16.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn traverse(map: &Vec<Vec<char>>, (sr, sc): (i32, i32), (sdr, sdc): (i32, i32)) -> usize {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_tracks` is never used
[INFO] [stdout]   --> src/day16.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn find_tracks(map: &Vec<Vec<char>>, (sr, sc): (i32, i32), (sdr, sdc): (i32, i32)) -> Track {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `backtrack_count` is never used
[INFO] [stdout]   --> src/day16.rs:86:4
[INFO] [stdout]    |
[INFO] [stdout] 86 | fn backtrack_count(tracks: &Track, pos: PosAndDir) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]    --> src/day16.rs:104:4
[INFO] [stdout]     |
[INFO] [stdout] 104 | fn solve_part_1() {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]    --> src/day16.rs:117:4
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn solve_part_2() {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]    --> src/day16.rs:138:8
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn solve() {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_register` is never used
[INFO] [stdout]  --> src/day17.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn parse_register(line: &str, reg_name: char) -> i32 {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_program` is never used
[INFO] [stdout]   --> src/day17.rs:12:4
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn parse_program(line: &str) -> Vec<i8> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_combo_op_val` is never used
[INFO] [stdout]   --> src/day17.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn get_combo_op_val(operand: i8, registers: &[i32; 3]) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `division` is never used
[INFO] [stdout]   --> src/day17.rs:33:4
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn division(operand: i8, save_reg: i8, registers: &mut [i32; 3]) {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `jump_not_zero` is never used
[INFO] [stdout]   --> src/day17.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn jump_not_zero(operand: i8, registers: &[i32; 3], ins_p: usize) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `perform_op` is never used
[INFO] [stdout]   --> src/day17.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn perform_op(
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]   --> src/day17.rs:71:4
[INFO] [stdout]    |
[INFO] [stdout] 71 | fn solve_part_1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trace` is never used
[INFO] [stdout]   --> src/day17.rs:93:4
[INFO] [stdout]    |
[INFO] [stdout] 93 | fn trace(program: &Vec<i8>, ans: usize) -> Option<usize> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]    --> src/day17.rs:118:4
[INFO] [stdout]     |
[INFO] [stdout] 118 | fn solve_part_2() {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]    --> src/day17.rs:127:8
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub fn solve() {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `traverse` is never used
[INFO] [stdout]  --> src/day18.rs:8:4
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn traverse(map: &mut [[char; 71]; 71], (sr, sc): (i32, i32)) -> Option<usize> {
[INFO] [stdout]   |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]   --> src/day18.rs:35:4
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn solve_part_1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `can_pass_after_n` is never used
[INFO] [stdout]   --> src/day18.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn can_pass_after_n(lines: &Vec<&str>, n: usize) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]   --> src/day18.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]   --> src/day18.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn solve() {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `can_construct` is never used
[INFO] [stdout]  --> src/day19.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn can_construct(
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]   --> src/day19.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn solve_part_1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]   --> src/day19.rs:53:4
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]   --> src/day19.rs:73:8
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub fn solve() {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_scores` is never used
[INFO] [stdout]  --> src/day20.rs:8:4
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn get_scores(map: &Vec<Vec<char>>, (sr, sc): (i32, i32)) -> Vec<Vec<i32>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_shortcuts` is never used
[INFO] [stdout]   --> src/day20.rs:36:4
[INFO] [stdout]    |
[INFO] [stdout] 36 | fn count_shortcuts(scores: &Vec<Vec<i32>>, radius: i32) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]   --> src/day20.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn solve_part_1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]   --> src/day20.rs:87:4
[INFO] [stdout]    |
[INFO] [stdout] 87 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]    --> src/day20.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn solve() {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `KeyCode` is never used
[INFO] [stdout]  --> src/day21.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type KeyCode = (i32, i32);
[INFO] [stdout]   |      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `LevelAndPath` is never used
[INFO] [stdout]  --> src/day21.rs:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | type LevelAndPath = (KeyCode, KeyCode, i32);
[INFO] [stdout]   |      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dir_to_key` is never used
[INFO] [stdout]   --> src/day21.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn dir_to_key(dir: (i32, i32)) -> KeyCode {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_path_on_keyboard` is never used
[INFO] [stdout]   --> src/day21.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn find_path_on_keyboard(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `length_for_keys` is never used
[INFO] [stdout]   --> src/day21.rs:74:4
[INFO] [stdout]    |
[INFO] [stdout] 74 | fn length_for_keys(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `code_to_keys` is never used
[INFO] [stdout]    --> src/day21.rs:117:4
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn code_to_keys(sequence: &Vec<(i32, i32)>) -> Vec<Vec<(i32, i32)>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `key_to_loc` is never used
[INFO] [stdout]    --> src/day21.rs:155:4
[INFO] [stdout]     |
[INFO] [stdout] 155 | fn key_to_loc(key: char) -> (i32, i32) {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `loc_to_key` is never used
[INFO] [stdout]    --> src/day21.rs:172:4
[INFO] [stdout]     |
[INFO] [stdout] 172 | fn loc_to_key(loc: (i32, i32)) -> char {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_seq` is never used
[INFO] [stdout]    --> src/day21.rs:183:4
[INFO] [stdout]     |
[INFO] [stdout] 183 | fn print_seq(seq: &Vec<(i32, i32)>) {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]    --> src/day21.rs:188:4
[INFO] [stdout]     |
[INFO] [stdout] 188 | fn solve_part_1() {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]    --> src/day21.rs:217:4
[INFO] [stdout]     |
[INFO] [stdout] 217 | fn solve_part_2() {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]    --> src/day21.rs:246:8
[INFO] [stdout]     |
[INFO] [stdout] 246 | pub fn solve() {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]  --> src/day22.rs:8:4
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn solve_part_1() {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Seq` is never used
[INFO] [stdout]   --> src/day22.rs:35:6
[INFO] [stdout]    |
[INFO] [stdout] 35 | type Seq = (i8, i8, i8, i8);
[INFO] [stdout]    |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]   --> src/day22.rs:36:4
[INFO] [stdout]    |
[INFO] [stdout] 36 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]   --> src/day22.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub fn solve() {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_three_peers` is never used
[INFO] [stdout]  --> src/day23.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn find_three_peers(connections: &HashMap<&str, Vec<&str>>, name: &str) -> Vec<String> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_connected_to_all` is never used
[INFO] [stdout]   --> src/day23.rs:45:4
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn is_connected_to_all(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_largest` is never used
[INFO] [stdout]   --> src/day23.rs:57:4
[INFO] [stdout]    |
[INFO] [stdout] 57 | fn find_largest(
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]   --> src/day23.rs:84:4
[INFO] [stdout]    |
[INFO] [stdout] 84 | fn solve_part_1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]    --> src/day23.rs:115:4
[INFO] [stdout]     |
[INFO] [stdout] 115 | fn solve_part_2() {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]    --> src/day23.rs:149:8
[INFO] [stdout]     |
[INFO] [stdout] 149 | pub fn solve() {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `perform_op` is never used
[INFO] [stdout]  --> src/day24.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn perform_op(w1: bool, op: String, w2: bool) -> bool {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]   --> src/day24.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn solve_part_1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_correct_op` is never used
[INFO] [stdout]   --> src/day24.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn is_correct_op(
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify_prev` is never used
[INFO] [stdout]   --> src/day24.rs:92:4
[INFO] [stdout]    |
[INFO] [stdout] 92 | fn verify_prev(
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify_carry` is never used
[INFO] [stdout]    --> src/day24.rs:109:4
[INFO] [stdout]     |
[INFO] [stdout] 109 | fn verify_carry(
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_z_bit` is never used
[INFO] [stdout]    --> src/day24.rs:132:4
[INFO] [stdout]     |
[INFO] [stdout] 132 | fn check_z_bit(
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify` is never used
[INFO] [stdout]    --> src/day24.rs:162:4
[INFO] [stdout]     |
[INFO] [stdout] 162 | fn verify(current_bit: i32, ops: &HashMap<String, (String, String, String)>) -> bool {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_faulty_bit_loc` is never used
[INFO] [stdout]    --> src/day24.rs:168:4
[INFO] [stdout]     |
[INFO] [stdout] 168 | fn find_faulty_bit_loc(ops: &HashMap<String, (String, String, String)>) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_swap` is never used
[INFO] [stdout]    --> src/day24.rs:178:4
[INFO] [stdout]     |
[INFO] [stdout] 178 | fn find_swap(ops: &mut HashMap<String, (String, String, String)>) -> (String, String) {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]    --> src/day24.rs:203:4
[INFO] [stdout]     |
[INFO] [stdout] 203 | fn solve_part_2() {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]    --> src/day24.rs:235:8
[INFO] [stdout]     |
[INFO] [stdout] 235 | pub fn solve() {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_scheme` is never used
[INFO] [stdout]   --> src/day25.rs:31:4
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn print_scheme(item: [i32; 5]) {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_num` is never used
[INFO] [stdout]  --> src/utils.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn to_num(num_str: &str) -> i32 {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_u_num` is never used
[INFO] [stdout]  --> src/utils.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn to_u_num(num_str: &str) -> usize {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_start_loc` is never used
[INFO] [stdout]   --> src/utils.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn find_start_loc(map: &Vec<Vec<char>>, symbol: char) -> (i32, i32) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_in_bounds` is never used
[INFO] [stdout]   --> src/utils.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn is_in_bounds(sizes: (usize, usize), index: (i32, i32)) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_grid` is never used
[INFO] [stdout]   --> src/utils.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn print_grid(map: &Vec<Vec<char>>, title: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `contents`
[INFO] [stdout]   --> src/day25.rs:77:9
[INFO] [stdout]    |
[INFO] [stdout] 77 |     let contents = fs::read_to_string("./src/input.txt").expect("Should read the file");
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_contents`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]  --> src/day01.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_part_1() {
[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 `solve_part_2` is never used
[INFO] [stdout]   --> src/day01.rs:31:4
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]   --> src/day01.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn solve() {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_line` is never used
[INFO] [stdout]  --> src/day02.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn validate_line(nums: Vec<i32>) -> bool {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]   --> src/day02.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn solve_part_1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]   --> src/day02.rs:37:4
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]   --> src/day02.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub fn solve() {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]  --> src/day03.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn solve_part_1() {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]   --> src/day03.rs:19:4
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]   --> src/day03.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn solve() {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_number` is never used
[INFO] [stdout]  --> src/day03_alt.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn extract_number(contents: &Vec<char>, char_loc: &mut usize) -> i32 {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_mult` is never used
[INFO] [stdout]   --> src/day03_alt.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn extract_mult(contents: &Vec<char>, char_loc: &mut usize) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]   --> src/day03_alt.rs:39:4
[INFO] [stdout]    |
[INFO] [stdout] 39 | fn solve_part_1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]   --> src/day03_alt.rs:57:4
[INFO] [stdout]    |
[INFO] [stdout] 57 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]   --> src/day03_alt.rs:98:8
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub fn solve() {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `search_all_directions` is never used
[INFO] [stdout]  --> src/day04.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn search_all_directions(grid: &Vec<Vec<char>>, x_row: i32, x_col: i32) -> i32 {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_x_mas` is never used
[INFO] [stdout]   --> src/day04.rs:41:4
[INFO] [stdout]    |
[INFO] [stdout] 41 | fn is_x_mas(grid: &Vec<Vec<char>>, a_row: i32, a_col: i32) -> bool {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]   --> src/day04.rs:66:4
[INFO] [stdout]    |
[INFO] [stdout] 66 | fn solve_part_1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]   --> src/day04.rs:84:4
[INFO] [stdout]    |
[INFO] [stdout] 84 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]    --> src/day04.rs:104:8
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub fn solve() {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_is_valid` is never used
[INFO] [stdout]  --> src/day05.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn check_is_valid(nums: &Vec<i32>, rules: &HashMap<i32, Vec<i32>>) -> bool {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]   --> src/day05.rs:19:4
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn solve_part_1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]   --> src/day05.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]   --> src/day05.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn solve() {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]  --> src/day06.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn solve_part_1() {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `can_loop` is never used
[INFO] [stdout]   --> src/day06.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn can_loop(map: &Vec<Vec<char>>, start_loc: (i32, i32)) -> bool {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]   --> src/day06.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]    --> src/day06.rs:120:8
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub fn solve() {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_valid` is never used
[INFO] [stdout]  --> src/day07.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn is_valid(target: usize, nums: Vec<usize>, total: usize) -> bool {
[INFO] [stdout]   |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_valid_concat` is never used
[INFO] [stdout]   --> src/day07.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn is_valid_concat(target: usize, nums: Vec<usize>, total: usize) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]   --> src/day07.rs:36:4
[INFO] [stdout]    |
[INFO] [stdout] 36 | fn solve_part_1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]   --> src/day07.rs:58:4
[INFO] [stdout]    |
[INFO] [stdout] 58 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]   --> src/day07.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn solve() {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]  --> src/day08.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve_part_1() {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]   --> src/day08.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]   --> src/day08.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn solve() {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_empty` is never used
[INFO] [stdout]  --> src/day09.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn is_empty(blocks: &Vec<u32>) -> bool {
[INFO] [stdout]   |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]   --> src/day09.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn solve_part_1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]   --> src/day09.rs:68:4
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]    --> src/day09.rs:131:8
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub fn solve() {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_score` is never used
[INFO] [stdout]  --> src/day10.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn count_score(map: &Vec<Vec<u32>>, start_pos: (usize, usize)) -> i32 {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_rating` is never used
[INFO] [stdout]   --> src/day10.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn count_rating(map: &Vec<Vec<u32>>, start_pos: (usize, usize)) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]   --> src/day10.rs:74:4
[INFO] [stdout]    |
[INFO] [stdout] 74 | fn solve_part_1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]   --> src/day10.rs:98:4
[INFO] [stdout]    |
[INFO] [stdout] 98 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]    --> src/day10.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub fn solve() {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evolve_single` is never used
[INFO] [stdout]  --> src/day11.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn evolve_single(num: usize) -> Vec<usize> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]   --> src/day11.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn solve_part_1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_for` is never used
[INFO] [stdout]   --> src/day11.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn count_for(num: usize, steps: usize, cache: &mut HashMap<(usize, usize), usize>) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]   --> src/day11.rs:69:4
[INFO] [stdout]    |
[INFO] [stdout] 69 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]   --> src/day11.rs:85:8
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub fn solve() {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_perimeter` is never used
[INFO] [stdout]  --> src/day12.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn count_perimeter(map: &Vec<Vec<char>>, loc: (i32, i32), current_plant: char) -> i32 {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_same` is never used
[INFO] [stdout]   --> src/day12.rs:26:4
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn is_same(map: &Vec<Vec<char>>, current_plant: char, neighbor: (i32, i32)) -> bool {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_corners` is never used
[INFO] [stdout]   --> src/day12.rs:35:4
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn count_corners(map: &Vec<Vec<char>>, loc: (i32, i32), current_plant: char) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `group_loc` is never used
[INFO] [stdout]    --> src/day12.rs:100:4
[INFO] [stdout]     |
[INFO] [stdout] 100 | fn group_loc(
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `group_plants` is never used
[INFO] [stdout]    --> src/day12.rs:130:4
[INFO] [stdout]     |
[INFO] [stdout] 130 | fn group_plants(map: &Vec<Vec<char>>) -> Vec<Vec<i32>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]    --> src/day12.rs:150:4
[INFO] [stdout]     |
[INFO] [stdout] 150 | fn solve_part_1() {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]    --> src/day12.rs:183:4
[INFO] [stdout]     |
[INFO] [stdout] 183 | fn solve_part_2() {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]    --> src/day12.rs:212:8
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub fn solve() {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_button` is never used
[INFO] [stdout]  --> src/day13.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn parse_button(line: &str, button: &str) -> (f64, f64) {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_prize` is never used
[INFO] [stdout]   --> src/day13.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn parse_prize(line: &str) -> (f64, f64) {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_prize_part2` is never used
[INFO] [stdout]   --> src/day13.rs:31:4
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn parse_prize_part2(line: &str) -> (f64, f64) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_machine` is never used
[INFO] [stdout]   --> src/day13.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn parse_machine(machine: &str) -> [(f64, f64); 3] {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_machine_part2` is never used
[INFO] [stdout]   --> src/day13.rs:53:4
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn parse_machine_part2(machine: &str) -> [(f64, f64); 3] {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_min` is never used
[INFO] [stdout]   --> src/day13.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn find_min(config: [(f64, f64); 3]) -> usize {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]   --> src/day13.rs:76:4
[INFO] [stdout]    |
[INFO] [stdout] 76 | fn solve_part_1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]   --> src/day13.rs:89:4
[INFO] [stdout]    |
[INFO] [stdout] 89 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]    --> src/day13.rs:102:8
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn solve() {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_metric` is never used
[INFO] [stdout]  --> src/day14.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn parse_metric(line: &str, metric: &str) -> (i32, i32) {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse` is never used
[INFO] [stdout]   --> src/day14.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn parse(line: &str) -> (i32, i32, i32, i32) {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_quadrant` is never used
[INFO] [stdout]   --> src/day14.rs:24:4
[INFO] [stdout]    |
[INFO] [stdout] 24 | fn find_quadrant(px: i32, py: i32) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clean_grid` is never used
[INFO] [stdout]   --> src/day14.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn clean_grid() -> Vec<Vec<char>> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_grid` is never used
[INFO] [stdout]   --> src/day14.rs:55:4
[INFO] [stdout]    |
[INFO] [stdout] 55 | fn print_grid(grid: Vec<Vec<char>>) {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]   --> src/day14.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn solve_part_1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]   --> src/day14.rs:80:4
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]    --> src/day14.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn solve() {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_dir` is never used
[INFO] [stdout]  --> src/day15.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn get_dir(dir: char) -> (i32, i32) {
[INFO] [stdout]   |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_move` is never used
[INFO] [stdout]   --> src/day15.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn make_move(map: &mut Vec<Vec<char>>, loc: (i32, i32), dir: char) -> (i32, i32) {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_gps_sum` is never used
[INFO] [stdout]   --> src/day15.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn calculate_gps_sum(map: &Vec<Vec<char>>, box_char: char) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]   --> src/day15.rs:55:4
[INFO] [stdout]    |
[INFO] [stdout] 55 | fn solve_part_1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_pair` is never used
[INFO] [stdout]   --> src/day15.rs:78:4
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn find_pair(map: &Vec<Vec<char>>, box_loc: (i32, i32)) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `touches_box` is never used
[INFO] [stdout]   --> src/day15.rs:91:4
[INFO] [stdout]    |
[INFO] [stdout] 91 | fn touches_box(map: &Vec<Vec<char>>, box_loc: (i32, i32), (dy, dx): (i32, i32)) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `move_box_vertical` is never used
[INFO] [stdout]    --> src/day15.rs:105:4
[INFO] [stdout]     |
[INFO] [stdout] 105 | fn move_box_vertical(map: &mut Vec<Vec<char>>, box_loc: (i32, i32), (dy, dx): (i32, i32)) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `move_box_horizontal` is never used
[INFO] [stdout]    --> src/day15.rs:134:4
[INFO] [stdout]     |
[INFO] [stdout] 134 | fn move_box_horizontal(map: &mut Vec<Vec<char>>, box_loc: (i32, i32), (dy, dx): (i32, i32)) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `move_box` is never used
[INFO] [stdout]    --> src/day15.rs:148:4
[INFO] [stdout]     |
[INFO] [stdout] 148 | fn move_box(map: &mut Vec<Vec<char>>, box_loc: (i32, i32), (dy, dx): (i32, i32)) {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_hitting_wall` is never used
[INFO] [stdout]    --> src/day15.rs:156:4
[INFO] [stdout]     |
[INFO] [stdout] 156 | fn is_hitting_wall(map: &Vec<Vec<char>>, loc: (i32, i32), (dy, dx): (i32, i32)) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_move_part2` is never used
[INFO] [stdout]    --> src/day15.rs:183:4
[INFO] [stdout]     |
[INFO] [stdout] 183 | fn make_move_part2(map: &mut Vec<Vec<char>>, robot_loc: (i32, i32), dir: char) -> (i32, i32) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]    --> src/day15.rs:209:4
[INFO] [stdout]     |
[INFO] [stdout] 209 | fn solve_part_2() {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]    --> src/day15.rs:244:8
[INFO] [stdout]     |
[INFO] [stdout] 244 | pub fn solve() {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `PosAndDir` is never used
[INFO] [stdout]  --> src/day16.rs:7:6
[INFO] [stdout]   |
[INFO] [stdout] 7 | type PosAndDir = (i32, i32, i32, i32);
[INFO] [stdout]   |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Track` is never used
[INFO] [stdout]  --> src/day16.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type Track = HashMap<PosAndDir, HashSet<PosAndDir>>;
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `traverse` is never used
[INFO] [stdout]   --> src/day16.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn traverse(map: &Vec<Vec<char>>, (sr, sc): (i32, i32), (sdr, sdc): (i32, i32)) -> usize {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_tracks` is never used
[INFO] [stdout]   --> src/day16.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn find_tracks(map: &Vec<Vec<char>>, (sr, sc): (i32, i32), (sdr, sdc): (i32, i32)) -> Track {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `backtrack_count` is never used
[INFO] [stdout]   --> src/day16.rs:86:4
[INFO] [stdout]    |
[INFO] [stdout] 86 | fn backtrack_count(tracks: &Track, pos: PosAndDir) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]    --> src/day16.rs:104:4
[INFO] [stdout]     |
[INFO] [stdout] 104 | fn solve_part_1() {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]    --> src/day16.rs:117:4
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn solve_part_2() {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]    --> src/day16.rs:138:8
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn solve() {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_register` is never used
[INFO] [stdout]  --> src/day17.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn parse_register(line: &str, reg_name: char) -> i32 {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_program` is never used
[INFO] [stdout]   --> src/day17.rs:12:4
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn parse_program(line: &str) -> Vec<i8> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_combo_op_val` is never used
[INFO] [stdout]   --> src/day17.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn get_combo_op_val(operand: i8, registers: &[i32; 3]) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `division` is never used
[INFO] [stdout]   --> src/day17.rs:33:4
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn division(operand: i8, save_reg: i8, registers: &mut [i32; 3]) {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `jump_not_zero` is never used
[INFO] [stdout]   --> src/day17.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn jump_not_zero(operand: i8, registers: &[i32; 3], ins_p: usize) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `perform_op` is never used
[INFO] [stdout]   --> src/day17.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn perform_op(
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]   --> src/day17.rs:71:4
[INFO] [stdout]    |
[INFO] [stdout] 71 | fn solve_part_1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trace` is never used
[INFO] [stdout]   --> src/day17.rs:93:4
[INFO] [stdout]    |
[INFO] [stdout] 93 | fn trace(program: &Vec<i8>, ans: usize) -> Option<usize> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]    --> src/day17.rs:118:4
[INFO] [stdout]     |
[INFO] [stdout] 118 | fn solve_part_2() {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]    --> src/day17.rs:127:8
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub fn solve() {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `traverse` is never used
[INFO] [stdout]  --> src/day18.rs:8:4
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn traverse(map: &mut [[char; 71]; 71], (sr, sc): (i32, i32)) -> Option<usize> {
[INFO] [stdout]   |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]   --> src/day18.rs:35:4
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn solve_part_1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `can_pass_after_n` is never used
[INFO] [stdout]   --> src/day18.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn can_pass_after_n(lines: &Vec<&str>, n: usize) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]   --> src/day18.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]   --> src/day18.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn solve() {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `can_construct` is never used
[INFO] [stdout]  --> src/day19.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn can_construct(
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]   --> src/day19.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn solve_part_1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]   --> src/day19.rs:53:4
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]   --> src/day19.rs:73:8
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub fn solve() {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_scores` is never used
[INFO] [stdout]  --> src/day20.rs:8:4
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn get_scores(map: &Vec<Vec<char>>, (sr, sc): (i32, i32)) -> Vec<Vec<i32>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_shortcuts` is never used
[INFO] [stdout]   --> src/day20.rs:36:4
[INFO] [stdout]    |
[INFO] [stdout] 36 | fn count_shortcuts(scores: &Vec<Vec<i32>>, radius: i32) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]   --> src/day20.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn solve_part_1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]   --> src/day20.rs:87:4
[INFO] [stdout]    |
[INFO] [stdout] 87 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]    --> src/day20.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn solve() {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `KeyCode` is never used
[INFO] [stdout]  --> src/day21.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type KeyCode = (i32, i32);
[INFO] [stdout]   |      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `LevelAndPath` is never used
[INFO] [stdout]  --> src/day21.rs:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | type LevelAndPath = (KeyCode, KeyCode, i32);
[INFO] [stdout]   |      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dir_to_key` is never used
[INFO] [stdout]   --> src/day21.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn dir_to_key(dir: (i32, i32)) -> KeyCode {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_path_on_keyboard` is never used
[INFO] [stdout]   --> src/day21.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn find_path_on_keyboard(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `length_for_keys` is never used
[INFO] [stdout]   --> src/day21.rs:74:4
[INFO] [stdout]    |
[INFO] [stdout] 74 | fn length_for_keys(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `code_to_keys` is never used
[INFO] [stdout]    --> src/day21.rs:117:4
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn code_to_keys(sequence: &Vec<(i32, i32)>) -> Vec<Vec<(i32, i32)>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `key_to_loc` is never used
[INFO] [stdout]    --> src/day21.rs:155:4
[INFO] [stdout]     |
[INFO] [stdout] 155 | fn key_to_loc(key: char) -> (i32, i32) {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `loc_to_key` is never used
[INFO] [stdout]    --> src/day21.rs:172:4
[INFO] [stdout]     |
[INFO] [stdout] 172 | fn loc_to_key(loc: (i32, i32)) -> char {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_seq` is never used
[INFO] [stdout]    --> src/day21.rs:183:4
[INFO] [stdout]     |
[INFO] [stdout] 183 | fn print_seq(seq: &Vec<(i32, i32)>) {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]    --> src/day21.rs:188:4
[INFO] [stdout]     |
[INFO] [stdout] 188 | fn solve_part_1() {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]    --> src/day21.rs:217:4
[INFO] [stdout]     |
[INFO] [stdout] 217 | fn solve_part_2() {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]    --> src/day21.rs:246:8
[INFO] [stdout]     |
[INFO] [stdout] 246 | pub fn solve() {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]  --> src/day22.rs:8:4
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn solve_part_1() {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Seq` is never used
[INFO] [stdout]   --> src/day22.rs:35:6
[INFO] [stdout]    |
[INFO] [stdout] 35 | type Seq = (i8, i8, i8, i8);
[INFO] [stdout]    |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]   --> src/day22.rs:36:4
[INFO] [stdout]    |
[INFO] [stdout] 36 | fn solve_part_2() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]   --> src/day22.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub fn solve() {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_three_peers` is never used
[INFO] [stdout]  --> src/day23.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn find_three_peers(connections: &HashMap<&str, Vec<&str>>, name: &str) -> Vec<String> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_connected_to_all` is never used
[INFO] [stdout]   --> src/day23.rs:45:4
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn is_connected_to_all(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_largest` is never used
[INFO] [stdout]   --> src/day23.rs:57:4
[INFO] [stdout]    |
[INFO] [stdout] 57 | fn find_largest(
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]   --> src/day23.rs:84:4
[INFO] [stdout]    |
[INFO] [stdout] 84 | fn solve_part_1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]    --> src/day23.rs:115:4
[INFO] [stdout]     |
[INFO] [stdout] 115 | fn solve_part_2() {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]    --> src/day23.rs:149:8
[INFO] [stdout]     |
[INFO] [stdout] 149 | pub fn solve() {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `perform_op` is never used
[INFO] [stdout]  --> src/day24.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn perform_op(w1: bool, op: String, w2: bool) -> bool {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_1` is never used
[INFO] [stdout]   --> src/day24.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn solve_part_1() {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_correct_op` is never used
[INFO] [stdout]   --> src/day24.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn is_correct_op(
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify_prev` is never used
[INFO] [stdout]   --> src/day24.rs:92:4
[INFO] [stdout]    |
[INFO] [stdout] 92 | fn verify_prev(
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify_carry` is never used
[INFO] [stdout]    --> src/day24.rs:109:4
[INFO] [stdout]     |
[INFO] [stdout] 109 | fn verify_carry(
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_z_bit` is never used
[INFO] [stdout]    --> src/day24.rs:132:4
[INFO] [stdout]     |
[INFO] [stdout] 132 | fn check_z_bit(
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify` is never used
[INFO] [stdout]    --> src/day24.rs:162:4
[INFO] [stdout]     |
[INFO] [stdout] 162 | fn verify(current_bit: i32, ops: &HashMap<String, (String, String, String)>) -> bool {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_faulty_bit_loc` is never used
[INFO] [stdout]    --> src/day24.rs:168:4
[INFO] [stdout]     |
[INFO] [stdout] 168 | fn find_faulty_bit_loc(ops: &HashMap<String, (String, String, String)>) -> i32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_swap` is never used
[INFO] [stdout]    --> src/day24.rs:178:4
[INFO] [stdout]     |
[INFO] [stdout] 178 | fn find_swap(ops: &mut HashMap<String, (String, String, String)>) -> (String, String) {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part_2` is never used
[INFO] [stdout]    --> src/day24.rs:203:4
[INFO] [stdout]     |
[INFO] [stdout] 203 | fn solve_part_2() {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]    --> src/day24.rs:235:8
[INFO] [stdout]     |
[INFO] [stdout] 235 | pub fn solve() {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_scheme` is never used
[INFO] [stdout]   --> src/day25.rs:31:4
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn print_scheme(item: [i32; 5]) {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_num` is never used
[INFO] [stdout]  --> src/utils.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn to_num(num_str: &str) -> i32 {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_u_num` is never used
[INFO] [stdout]  --> src/utils.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn to_u_num(num_str: &str) -> usize {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_start_loc` is never used
[INFO] [stdout]   --> src/utils.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn find_start_loc(map: &Vec<Vec<char>>, symbol: char) -> (i32, i32) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_in_bounds` is never used
[INFO] [stdout]   --> src/utils.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn is_in_bounds(sizes: (usize, usize), index: (i32, i32)) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_grid` is never used
[INFO] [stdout]   --> src/utils.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn print_grid(map: &Vec<Vec<char>>, title: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.89s
[INFO] running `Command { std: "docker" "inspect" "9acce4121aadb7bff009ffe9ecfa2a2439d28220e1e7f4b30b93adb09e33a2d8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9acce4121aadb7bff009ffe9ecfa2a2439d28220e1e7f4b30b93adb09e33a2d8", kill_on_drop: false }`
[INFO] [stdout] 9acce4121aadb7bff009ffe9ecfa2a2439d28220e1e7f4b30b93adb09e33a2d8
