[INFO] cloning repository https://github.com/NavidJalali/advent-of-code-23
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/NavidJalali/advent-of-code-23" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNavidJalali%2Fadvent-of-code-23", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNavidJalali%2Fadvent-of-code-23'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2b10633c546679b3c5749268df9bfa5691f936c4
[INFO] checking NavidJalali/advent-of-code-23 against master#3139ff09e9d07f7700f8d15ed25a231e29c43627 for pr-121848-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNavidJalali%2Fadvent-of-code-23" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/NavidJalali/advent-of-code-23 on toolchain 3139ff09e9d07f7700f8d15ed25a231e29c43627
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3139ff09e9d07f7700f8d15ed25a231e29c43627" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/NavidJalali/advent-of-code-23
[INFO] finished tweaking git repo https://github.com/NavidJalali/advent-of-code-23
[INFO] tweaked toml for git repo https://github.com/NavidJalali/advent-of-code-23 written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/NavidJalali/advent-of-code-23 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3139ff09e9d07f7700f8d15ed25a231e29c43627" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded matrixmultiply v0.3.8
[INFO] [stderr]   Downloaded nalgebra-macros v0.2.1
[INFO] [stderr]   Downloaded simba v0.8.1
[INFO] [stderr]   Downloaded proc-macro2 v1.0.71
[INFO] [stderr]   Downloaded wide v0.7.13
[INFO] [stderr]   Downloaded nalgebra v0.32.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+3139ff09e9d07f7700f8d15ed25a231e29c43627" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] beeef562a11c95bcf56c69a35001cb1d28008f9bbab188c7dd381ee6da62c60b
[INFO] running `Command { std: "docker" "start" "-a" "beeef562a11c95bcf56c69a35001cb1d28008f9bbab188c7dd381ee6da62c60b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "beeef562a11c95bcf56c69a35001cb1d28008f9bbab188c7dd381ee6da62c60b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "beeef562a11c95bcf56c69a35001cb1d28008f9bbab188c7dd381ee6da62c60b", kill_on_drop: false }`
[INFO] [stdout] beeef562a11c95bcf56c69a35001cb1d28008f9bbab188c7dd381ee6da62c60b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+3139ff09e9d07f7700f8d15ed25a231e29c43627" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9c49f972aa3b70f1b0cfc403ce12bbcdd3eed3daebe08a43781bf518ceccf2fa
[INFO] running `Command { std: "docker" "start" "-a" "9c49f972aa3b70f1b0cfc403ce12bbcdd3eed3daebe08a43781bf518ceccf2fa", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v1.1.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.71
[INFO] [stderr]    Compiling paste v1.0.14
[INFO] [stderr]     Checking bytemuck v1.14.0
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking rawpointer v0.2.1
[INFO] [stderr]     Checking once_cell v1.18.0
[INFO] [stderr]     Checking safe_arch v0.7.1
[INFO] [stderr]    Compiling num-traits v0.2.17
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]    Compiling matrixmultiply v0.3.8
[INFO] [stderr]    Compiling num-rational v0.4.1
[INFO] [stderr]     Checking wide v0.7.13
[INFO] [stderr]    Compiling quote v1.0.33
[INFO] [stderr]     Checking num-complex v0.4.4
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]     Checking simba v0.8.1
[INFO] [stderr]    Compiling nalgebra-macros v0.2.1
[INFO] [stderr]     Checking nalgebra v0.32.3
[INFO] [stderr]     Checking advent-of-code-2023 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `result`
[INFO] [stdout]  --> src/day_24.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fmt::Debug, io, result, str::FromStr};
[INFO] [stdout]   |                           ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `result`
[INFO] [stdout]  --> src/day_24.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fmt::Debug, io, result, str::FromStr};
[INFO] [stdout]   |                           ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]  --> src/day_1.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn part_1() -> io::Result<u32> {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `SPELLED_OUT_DIGITS_MAP` is never used
[INFO] [stdout]   --> src/day_1.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | static SPELLED_OUT_DIGITS_MAP: Lazy<HashMap<Vec<char>, u32>> = Lazy::new(|| {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_out_digits` is never used
[INFO] [stdout]   --> src/day_1.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn parse_out_digits(line: &String) -> Vec<u32> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]   --> src/day_1.rs:76:8
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub fn part_2() -> io::Result<u32> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Coordinate` is never constructed
[INFO] [stdout]  --> src/day_10.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Coordinate {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/day_10.rs:18:6
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl Coordinate {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 18 |   fn new(x: i32, y: i32) -> Self {
[INFO] [stdout]    |      ^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |   fn east(&self) -> Option<Self> {
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |   fn west(&self) -> Option<Self> {
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |   fn north(&self) -> Option<Self> {
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |   fn south(&self) -> Option<Self> {
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |   fn is_north_of(&self, other: Coordinate) -> bool {
[INFO] [stdout]    |      ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |   fn is_south_of(&self, other: Coordinate) -> bool {
[INFO] [stdout]    |      ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |   fn is_east_of(&self, other: Coordinate) -> bool {
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |   fn is_west_of(&self, other: Coordinate) -> bool {
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/day_10.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 |   Pipe(PipeType),
[INFO] [stdout]    |   ---- ^^^^^^^^
[INFO] [stdout]    |   |
[INFO] [stdout]    |   field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Tile` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 66 |   Pipe(()),
[INFO] [stdout]    |        ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_char` is never used
[INFO] [stdout]   --> src/day_10.rs:71:6
[INFO] [stdout]    |
[INFO] [stdout] 70 | impl Tile {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 71 |   fn to_char(&self) -> char {
[INFO] [stdout]    |      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Map` is never constructed
[INFO] [stdout]    --> src/day_10.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | struct Map {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get` are never used
[INFO] [stdout]    --> src/day_10.rs:120:6
[INFO] [stdout]     |
[INFO] [stdout] 119 | impl Map {
[INFO] [stdout]     | -------- associated items in this implementation
[INFO] [stdout] 120 |   fn new(tiles: Vec<Vec<Tile>>, start: Coordinate) -> Self {
[INFO] [stdout]     |      ^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |   fn get(&self, coord: Coordinate) -> Option<&Tile> {
[INFO] [stdout]     |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_map` is never used
[INFO] [stdout]    --> src/day_10.rs:132:4
[INFO] [stdout]     |
[INFO] [stdout] 132 | fn parse_map() -> io::Result<Map> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `next_via_pipe` is never used
[INFO] [stdout]    --> src/day_10.rs:157:4
[INFO] [stdout]     |
[INFO] [stdout] 157 | fn next_via_pipe(
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `possible_paths_from_start` is never used
[INFO] [stdout]    --> src/day_10.rs:232:4
[INFO] [stdout]     |
[INFO] [stdout] 232 | fn possible_paths_from_start(map: &Map) -> Vec<Coordinate> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]    --> src/day_10.rs:288:8
[INFO] [stdout]     |
[INFO] [stdout] 288 | pub fn part_1() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_10.rs:337:8
[INFO] [stdout]     |
[INFO] [stdout] 337 | pub fn part_2() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]  --> src/day_11.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn parse_input() -> io::Result<Vec<Vec<char>>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tile` is never constructed
[INFO] [stdout]   --> src/day_11.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct Tile {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_expansion` is never used
[INFO] [stdout]   --> src/day_11.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn handle_expansion(input: &mut Vec<Vec<char>>) -> Vec<Vec<Tile>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_all_galaxies` is never used
[INFO] [stdout]    --> src/day_11.rs:113:4
[INFO] [stdout]     |
[INFO] [stdout] 113 | fn find_all_galaxies(input: &Vec<Vec<Tile>>) -> Vec<(Tile, usize, usize)> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distance_between` is never used
[INFO] [stdout]    --> src/day_11.rs:131:4
[INFO] [stdout]     |
[INFO] [stdout] 131 | fn distance_between(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]    --> src/day_11.rs:161:8
[INFO] [stdout]     |
[INFO] [stdout] 161 | pub fn part_1() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_11.rs:180:8
[INFO] [stdout]     |
[INFO] [stdout] 180 | pub fn part_2() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MemoKey` is never constructed
[INFO] [stdout]  --> src/day_12.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct MemoKey {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/day_12.rs:12:6
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl MemoKey {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 12 |   fn new(conditions: &[u8], damages: &[u64]) -> Self {
[INFO] [stdout]    |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Cache` is never used
[INFO] [stdout]   --> src/day_12.rs:20:6
[INFO] [stdout]    |
[INFO] [stdout] 20 | type Cache = std::collections::HashMap<MemoKey, u64>;
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `go` is never used
[INFO] [stdout]   --> src/day_12.rs:22:4
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn go(cache: &mut Cache, conditions: &[u8], damages: &[u64]) -> u64 {
[INFO] [stdout]    |    ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]    --> src/day_12.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub fn part_1() -> io::Result<u64> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_12.rs:126:8
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub fn part_2() -> io::Result<u64> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Input` is never constructed
[INFO] [stdout]    --> src/day_12.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | struct Input {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_file` and `unfold` are never used
[INFO] [stdout]    --> src/day_12.rs:153:6
[INFO] [stdout]     |
[INFO] [stdout] 152 | impl Input {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 153 |   fn from_file() -> io::Result<Vec<Self>> {
[INFO] [stdout]     |      ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |   fn unfold(&mut self) {
[INFO] [stdout]     |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Tile` is never used
[INFO] [stdout]  --> src/day_13.rs:6:6
[INFO] [stdout]   |
[INFO] [stdout] 6 | enum Tile {
[INFO] [stdout]   |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Map` is never constructed
[INFO] [stdout]   --> src/day_13.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | struct Map {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_file` and `transpose` are never used
[INFO] [stdout]   --> src/day_13.rs:38:6
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl Map {
[INFO] [stdout]    | -------- associated items in this implementation
[INFO] [stdout] 38 |   fn from_file() -> io::Result<Vec<Map>> {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |   fn transpose(&self) -> Self {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_mirror` is never used
[INFO] [stdout]   --> src/day_13.rs:80:4
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn find_mirror(map: &Map, diff: usize) -> Option<usize> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]    --> src/day_13.rs:104:8
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub fn part_1() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_13.rs:120:8
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub fn part_2() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_input` is never used
[INFO] [stdout]  --> src/day_14.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn read_input() -> io::Result<Vec<Vec<char>>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rotate_left` is never used
[INFO] [stdout]   --> src/day_14.rs:12:4
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn rotate_left(matrix: &mut Vec<Vec<char>>) {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rotate_right` is never used
[INFO] [stdout]   --> src/day_14.rs:22:4
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn rotate_right(matrix: &mut Vec<Vec<char>>) {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_left` is never used
[INFO] [stdout]   --> src/day_14.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn push_left(matrix: &Vec<Vec<char>>) -> Vec<Vec<char>> {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_north` is never used
[INFO] [stdout]   --> src/day_14.rs:51:4
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn push_north(matrix: &mut Vec<Vec<char>>) -> Vec<Vec<char>> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_west` is never used
[INFO] [stdout]   --> src/day_14.rs:58:4
[INFO] [stdout]    |
[INFO] [stdout] 58 | fn push_west(matrix: &mut Vec<Vec<char>>) -> Vec<Vec<char>> {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_south` is never used
[INFO] [stdout]   --> src/day_14.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn push_south(matrix: &mut Vec<Vec<char>>) -> Vec<Vec<char>> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_east` is never used
[INFO] [stdout]   --> src/day_14.rs:69:4
[INFO] [stdout]    |
[INFO] [stdout] 69 | fn push_east(matrix: &mut Vec<Vec<char>>) -> Vec<Vec<char>> {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cycle` is never used
[INFO] [stdout]   --> src/day_14.rs:78:4
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn cycle(matrix: &mut Vec<Vec<char>>) -> Vec<Vec<char>> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_matrix` is never used
[INFO] [stdout]   --> src/day_14.rs:87:4
[INFO] [stdout]    |
[INFO] [stdout] 87 | fn print_matrix(matrix: &Vec<Vec<char>>) {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]   --> src/day_14.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub fn part_1() -> io::Result<usize> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_14.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub fn part_2() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hash` is never used
[INFO] [stdout]  --> src/day_15.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn hash(input: &str) -> u64 {
[INFO] [stdout]   |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]   --> src/day_15.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn part_1() -> io::Result<u64> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Entry` is never constructed
[INFO] [stdout]   --> src/day_15.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | struct Entry {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]   --> src/day_15.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn part_2() -> io::Result<usize> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Direction` is never used
[INFO] [stdout]  --> src/day_16.rs:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | enum Direction {
[INFO] [stdout]   |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `moving_horizontally` and `moving_vertically` are never used
[INFO] [stdout]   --> src/day_16.rs:17:6
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Direction {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] 17 |   fn moving_horizontally(&self) -> bool {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |   fn moving_vertically(&self) -> bool {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Position` is never constructed
[INFO] [stdout]   --> src/day_16.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | struct Position {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `move_in_direction` are never used
[INFO] [stdout]   --> src/day_16.rs:39:10
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl Position {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 39 |   pub fn new(x: i64, y: i64) -> Self {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |   pub fn move_in_direction(&self, direction: Direction) -> Self {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Beam` is never constructed
[INFO] [stdout]   --> src/day_16.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | struct Beam {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]   --> src/day_16.rs:59:4
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn solve(matrix: &Vec<Vec<char>>, initial_beam: Beam) -> usize {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]    --> src/day_16.rs:176:8
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub fn part_1() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_16.rs:189:8
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub fn part_2() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]  --> src/day_17.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn parse_input() -> io::Result<Vec<Vec<u32>>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Position` is never constructed
[INFO] [stdout]   --> src/day_17.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | struct Position {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/day_17.rs:29:6
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl Position {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 29 |   fn new(x: i32, y: i32) -> Self {
[INFO] [stdout]    |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Velocity` is never constructed
[INFO] [stdout]   --> src/day_17.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | struct Velocity {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `possible_turns` are never used
[INFO] [stdout]   --> src/day_17.rs:48:6
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl Velocity {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 48 |   fn new(vx: i32, vy: i32) -> Self {
[INFO] [stdout]    |      ^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |   fn possible_turns(&self) -> Vec<Velocity> {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `State` is never constructed
[INFO] [stdout]   --> src/day_17.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | struct State {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `standing_still` is never used
[INFO] [stdout]   --> src/day_17.rs:81:6
[INFO] [stdout]    |
[INFO] [stdout] 80 | impl State {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] 81 |   fn standing_still(&self) -> bool {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]   --> src/day_17.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | struct Node {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]    --> src/day_17.rs:104:8
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub fn part_1() -> io::Result<u32> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_17.rs:207:8
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub fn part_2() -> io::Result<u32> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Direction` is never used
[INFO] [stdout]  --> src/day_18.rs:5:6
[INFO] [stdout]   |
[INFO] [stdout] 5 | enum Direction {
[INFO] [stdout]   |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_single_char` is never used
[INFO] [stdout]   --> src/day_18.rs:13:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Direction {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 13 |   fn from_single_char(c: &char) -> Option<Self> {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]   --> src/day_18.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct Point {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `move_in_direction` are never used
[INFO] [stdout]   --> src/day_18.rs:31:6
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl Point {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 31 |   fn new(x: i64, y: i64) -> Self {
[INFO] [stdout]    |      ^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |   fn move_in_direction(&self, dir: Direction, count: i64) -> Self {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input_part_1` is never used
[INFO] [stdout]   --> src/day_18.rs:46:4
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn parse_input_part_1() -> io::Result<Vec<((Direction, i64), (Direction, i64))>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shoelace_area` is never used
[INFO] [stdout]   --> src/day_18.rs:91:4
[INFO] [stdout]    |
[INFO] [stdout] 91 | fn shoelace_area(points: &Vec<Point>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]    --> src/day_18.rs:102:8
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn part_1() -> io::Result<i64> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_18.rs:127:8
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub fn part_2() -> io::Result<i64> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `all` is never used
[INFO] [stdout]   --> src/day_19.rs:14:6
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Category {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 14 |   fn all() -> Vec<Category> {
[INFO] [stdout]    |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> src/day_19.rs:51:18
[INFO] [stdout]    |
[INFO] [stdout] 51 |   NextWorkflow { name: String },
[INFO] [stdout]    |   ------------   ^^^^
[INFO] [stdout]    |   |
[INFO] [stdout]    |   field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Outcome` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/day_19.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 |   Terminal(Decision),
[INFO] [stdout]    |   -------- ^^^^^^^^
[INFO] [stdout]    |   |
[INFO] [stdout]    |   field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Outcome` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 52 |   Terminal(()),
[INFO] [stdout]    |            ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_category` and `get_outcome` are never used
[INFO] [stdout]   --> src/day_19.rs:75:6
[INFO] [stdout]    |
[INFO] [stdout] 74 | impl Rule {
[INFO] [stdout]    | --------- methods in this implementation
[INFO] [stdout] 75 |   fn get_category(&self) -> Category {
[INFO] [stdout]    |      ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |   fn get_outcome(&self) -> &Outcome {
[INFO] [stdout]    |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x`, `m`, `a`, and `s` are never read
[INFO] [stdout]    --> src/day_19.rs:118:3
[INFO] [stdout]     |
[INFO] [stdout] 117 | struct Part {
[INFO] [stdout]     |        ---- fields in this struct
[INFO] [stdout] 118 |   x: u64,
[INFO] [stdout]     |   ^
[INFO] [stdout] 119 |   m: u64,
[INFO] [stdout]     |   ^
[INFO] [stdout] 120 |   a: u64,
[INFO] [stdout]     |   ^
[INFO] [stdout] 121 |   s: u64,
[INFO] [stdout]     |   ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Part` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_category` is never used
[INFO] [stdout]    --> src/day_19.rs:125:6
[INFO] [stdout]     |
[INFO] [stdout] 124 | impl Part {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] 125 |   fn get_category(&self, category: Category) -> u64 {
[INFO] [stdout]     |      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `rules`, and `fallback` are never read
[INFO] [stdout]    --> src/day_19.rs:166:3
[INFO] [stdout]     |
[INFO] [stdout] 165 | struct Workflow {
[INFO] [stdout]     |        -------- fields in this struct
[INFO] [stdout] 166 |   name: String,
[INFO] [stdout]     |   ^^^^
[INFO] [stdout] 167 |   rules: Vec<Rule>,
[INFO] [stdout]     |   ^^^^^
[INFO] [stdout] 168 |   fallback: Outcome,
[INFO] [stdout]     |   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Workflow` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `outcome_of` is never used
[INFO] [stdout]    --> src/day_19.rs:172:6
[INFO] [stdout]     |
[INFO] [stdout] 171 | impl Workflow {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] 172 |   fn outcome_of(&self, part: &Part) -> Outcome {
[INFO] [stdout]     |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]    --> src/day_19.rs:218:4
[INFO] [stdout]     |
[INFO] [stdout] 218 | fn parse_input() -> io::Result<(Vec<Workflow>, Vec<Part>)> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decision_for_part` is never used
[INFO] [stdout]    --> src/day_19.rs:240:4
[INFO] [stdout]     |
[INFO] [stdout] 240 | fn decision_for_part(workflows: &HashMap<String, Workflow>, part: &Part) -> Decision {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]    --> src/day_19.rs:253:8
[INFO] [stdout]     |
[INFO] [stdout] 253 | pub fn part_1() -> io::Result<u64> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Range` is never constructed
[INFO] [stdout]    --> src/day_19.rs:275:8
[INFO] [stdout]     |
[INFO] [stdout] 275 | struct Range {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `non_empty` are never used
[INFO] [stdout]    --> src/day_19.rs:281:6
[INFO] [stdout]     |
[INFO] [stdout] 280 | impl Range {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 281 |   fn new(min_inclusive: u64, max_inclusive: u64) -> Self {
[INFO] [stdout]     |      ^^^
[INFO] [stdout] ...
[INFO] [stdout] 288 |   fn non_empty(&self) -> bool {
[INFO] [stdout]     |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_accepted_ranges` is never used
[INFO] [stdout]    --> src/day_19.rs:299:4
[INFO] [stdout]     |
[INFO] [stdout] 299 | fn count_accepted_ranges(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_19.rs:367:8
[INFO] [stdout]     |
[INFO] [stdout] 367 | pub fn part_2() -> io::Result<u64> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ParseResult` is never used
[INFO] [stdout]  --> src/day_2.rs:7:6
[INFO] [stdout]   |
[INFO] [stdout] 7 | type ParseResult<A> = Option<(usize, A)>;
[INFO] [stdout]   |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parser_or_else` is never used
[INFO] [stdout]  --> src/day_2.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn parser_or_else<A>(
[INFO] [stdout]   |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parser_and_then` is never used
[INFO] [stdout]   --> src/day_2.rs:16:4
[INFO] [stdout]    |
[INFO] [stdout] 16 | fn parser_and_then<A, B>(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parser_zip_left` is never used
[INFO] [stdout]   --> src/day_2.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn parser_zip_left<A: Clone, B>(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parser_zip` is never used
[INFO] [stdout]   --> src/day_2.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn parser_zip<A: Clone, B>(
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parser_at_least_one` is never used
[INFO] [stdout]   --> src/day_2.rs:39:4
[INFO] [stdout]    |
[INFO] [stdout] 39 | fn parser_at_least_one<A>(parse_result: ParseResult<Vec<A>>) -> ParseResult<Vec<A>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parser_repeatedly_intercalated_with` is never used
[INFO] [stdout]   --> src/day_2.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn parser_repeatedly_intercalated_with<A, B>(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_string` is never used
[INFO] [stdout]   --> src/day_2.rs:78:4
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn parse_string(input: &Vec<char>, index: usize, string: &str) -> ParseResult<String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_spaces` is never used
[INFO] [stdout]   --> src/day_2.rs:95:4
[INFO] [stdout]    |
[INFO] [stdout] 95 | fn parse_spaces(input: &Vec<char>, index: usize) -> ParseResult<()> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_digit` is never used
[INFO] [stdout]    --> src/day_2.rs:108:4
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn parse_digit(input: &Vec<char>, index: usize) -> ParseResult<u32> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_u32` is never used
[INFO] [stdout]    --> src/day_2.rs:113:4
[INFO] [stdout]     |
[INFO] [stdout] 113 | fn parse_u32(input: &Vec<char>, index: usize) -> ParseResult<u32> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_game_count` is never used
[INFO] [stdout]    --> src/day_2.rs:134:4
[INFO] [stdout]     |
[INFO] [stdout] 134 | fn parse_game_count(input: &Vec<char>, index: usize) -> ParseResult<u32> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_red`, `add_blue`, `add_green`, `is_pairwise_less_than_or_equal_to`, and `pair_wise_max` are never used
[INFO] [stdout]    --> src/day_2.rs:155:6
[INFO] [stdout]     |
[INFO] [stdout] 154 | impl RGB {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] 155 |   fn add_red(mut self, red: u32) -> Self {
[INFO] [stdout]     |      ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |   fn add_blue(mut self, blue: u32) -> Self {
[INFO] [stdout]     |      ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |   fn add_green(mut self, green: u32) -> Self {
[INFO] [stdout]     |      ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |   fn is_pairwise_less_than_or_equal_to(&self, other: &RGB) -> bool {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |   fn pair_wise_max(&self, other: &RGB) -> RGB {
[INFO] [stdout]     |      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Color` is never used
[INFO] [stdout]    --> src/day_2.rs:194:6
[INFO] [stdout]     |
[INFO] [stdout] 194 | enum Color {
[INFO] [stdout]     |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_string` is never used
[INFO] [stdout]    --> src/day_2.rs:201:6
[INFO] [stdout]     |
[INFO] [stdout] 200 | impl Color {
[INFO] [stdout]     | ---------- associated function in this implementation
[INFO] [stdout] 201 |   fn from_string(string: &str) -> Option<Color> {
[INFO] [stdout]     |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_color` is never used
[INFO] [stdout]    --> src/day_2.rs:211:4
[INFO] [stdout]     |
[INFO] [stdout] 211 | fn parse_color(input: &Vec<char>, index: usize) -> ParseResult<Color> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_color_with_count` is never used
[INFO] [stdout]    --> src/day_2.rs:219:4
[INFO] [stdout]     |
[INFO] [stdout] 219 | fn parse_color_with_count(input: &Vec<char>, index: usize) -> ParseResult<(u32, Color)> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_rgb` is never used
[INFO] [stdout]    --> src/day_2.rs:227:4
[INFO] [stdout]     |
[INFO] [stdout] 227 | fn parse_rgb(input: &Vec<char>, index: usize) -> ParseResult<RGB> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_rgbs` is never used
[INFO] [stdout]    --> src/day_2.rs:247:4
[INFO] [stdout]     |
[INFO] [stdout] 247 | fn parse_rgbs(input: &Vec<char>, index: usize) -> ParseResult<Vec<RGB>> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Game` is never constructed
[INFO] [stdout]    --> src/day_2.rs:259:8
[INFO] [stdout]     |
[INFO] [stdout] 259 | struct Game {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_game` is never used
[INFO] [stdout]    --> src/day_2.rs:264:4
[INFO] [stdout]     |
[INFO] [stdout] 264 | fn parse_game(input: &Vec<char>, index: usize) -> ParseResult<Game> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]    --> src/day_2.rs:274:8
[INFO] [stdout]     |
[INFO] [stdout] 274 | pub fn part_1() -> io::Result<u32> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_2.rs:304:8
[INFO] [stdout]     |
[INFO] [stdout] 304 | pub fn part_2() -> io::Result<u32> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `High` and `Low` are never constructed
[INFO] [stdout]   --> src/day_20.rs:10:3
[INFO] [stdout]    |
[INFO] [stdout] 9  | enum Signal {
[INFO] [stdout]    |      ------ variants in this enum
[INFO] [stdout] 10 |   High,
[INFO] [stdout]    |   ^^^^
[INFO] [stdout] 11 |   Low,
[INFO] [stdout]    |   ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Signal` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `On` is never constructed
[INFO] [stdout]   --> src/day_20.rs:16:3
[INFO] [stdout]    |
[INFO] [stdout] 15 | enum FlipFlopState {
[INFO] [stdout]    |      ------------- variant in this enum
[INFO] [stdout] 16 |   On,
[INFO] [stdout]    |   ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FlipFlopState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/day_20.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 |   FlipFlop(FlipFlopState),
[INFO] [stdout]    |   -------- ^^^^^^^^^^^^^
[INFO] [stdout]    |   |
[INFO] [stdout]    |   field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ModuleType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 22 |   FlipFlop(()),
[INFO] [stdout]    |            ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/day_20.rs:23:15
[INFO] [stdout]    |
[INFO] [stdout] 23 |   Conjunction(HashMap<String, Signal>),
[INFO] [stdout]    |   ----------- ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |   |
[INFO] [stdout]    |   field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ModuleType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 23 |   Conjunction(()),
[INFO] [stdout]    |               ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Module` is never constructed
[INFO] [stdout]   --> src/day_20.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | struct Module {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/day_20.rs:43:4
[INFO] [stdout]    |
[INFO] [stdout] 43 | fn parse_input() -> io::Result<(Vec<String>, HashMap<String, Module>)> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]    --> src/day_20.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn part_1() -> io::Result<i64> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lcm` is never used
[INFO] [stdout]    --> src/day_20.rs:166:4
[INFO] [stdout]     |
[INFO] [stdout] 166 | fn lcm(first: usize, second: usize) -> usize {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gcd` is never used
[INFO] [stdout]    --> src/day_20.rs:170:4
[INFO] [stdout]     |
[INFO] [stdout] 170 | fn gcd(first: usize, second: usize) -> usize {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_20.rs:190:8
[INFO] [stdout]     |
[INFO] [stdout] 190 | pub fn part_2() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]   --> src/day_21.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct Point {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `up`, `down`, `left`, `right`, and `neighbors` are never used
[INFO] [stdout]   --> src/day_21.rs:16:6
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Point {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 16 |   fn new(x: i32, y: i32) -> Self {
[INFO] [stdout]    |      ^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |   fn up(&self) -> Self {
[INFO] [stdout]    |      ^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |   fn down(&self) -> Self {
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |   fn left(&self) -> Self {
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |   fn right(&self) -> Self {
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |   fn neighbors(&self) -> Vec<Self> {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/day_21.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn parse_input() -> io::Result<(Point, Vec<Vec<char>>)> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bfs_fill` is never used
[INFO] [stdout]   --> src/day_21.rs:68:4
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn bfs_fill(start: Point, grid: &Vec<Vec<char>>, steps: u32) -> usize {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]    --> src/day_21.rs:113:8
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn part_1() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_21.rs:134:8
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub fn part_2() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `height` is never used
[INFO] [stdout]   --> src/day_22.rs:72:6
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl Brick {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 72 |   fn height(&self) -> usize {
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]    --> src/day_22.rs:105:4
[INFO] [stdout]     |
[INFO] [stdout] 105 | fn parse_input() -> io::Result<Vec<Brick>> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_bricks_fall` is never used
[INFO] [stdout]    --> src/day_22.rs:113:4
[INFO] [stdout]     |
[INFO] [stdout] 113 | fn make_bricks_fall(bricks: &mut Vec<Brick>) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `key_supports_values` and `key_is_supported_by_values` are never read
[INFO] [stdout]    --> src/day_22.rs:134:3
[INFO] [stdout]     |
[INFO] [stdout] 133 | struct SupportMaps {
[INFO] [stdout]     |        ----------- fields in this struct
[INFO] [stdout] 134 |   key_supports_values: HashMap<usize, HashSet<usize>>,
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 135 |   key_is_supported_by_values: HashMap<usize, HashSet<usize>>,
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]    --> src/day_22.rs:172:8
[INFO] [stdout]     |
[INFO] [stdout] 172 | pub fn part_1() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_all_collapsing` is never used
[INFO] [stdout]    --> src/day_22.rs:202:4
[INFO] [stdout]     |
[INFO] [stdout] 202 | fn find_all_collapsing(collapsing: &mut HashSet<usize>, support_maps: &SupportMaps, index: usize) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_22.rs:226:8
[INFO] [stdout]     |
[INFO] [stdout] 226 | pub fn part_2() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]   --> src/day_23.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct Point {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `up`, `down`, `left`, `right`, and `neighbors` are never used
[INFO] [stdout]   --> src/day_23.rs:16:6
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Point {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 16 |   fn new(x: i32, y: i32) -> Point {
[INFO] [stdout]    |      ^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |   fn up(&self) -> Point {
[INFO] [stdout]    |      ^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |   fn down(&self) -> Point {
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |   fn left(&self) -> Point {
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |   fn right(&self) -> Point {
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |   fn neighbors(&self) -> Vec<Point> {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/day_23.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn parse_input() -> io::Result<Vec<Vec<char>>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_path` is never used
[INFO] [stdout]   --> src/day_23.rs:52:4
[INFO] [stdout]    |
[INFO] [stdout] 52 | fn find_path(grid: &Vec<Vec<char>>, row: usize) -> Point {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `in_bounds_and_not_rock` is never used
[INFO] [stdout]   --> src/day_23.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn in_bounds_and_not_rock(grid: &Vec<Vec<char>>, point: &Point) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dfs_fill` is never used
[INFO] [stdout]   --> src/day_23.rs:70:4
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn dfs_fill(
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bruteforce_longest_path` is never used
[INFO] [stdout]    --> src/day_23.rs:103:4
[INFO] [stdout]     |
[INFO] [stdout] 103 | fn bruteforce_longest_path(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `edge_contracted_vertices` is never used
[INFO] [stdout]    --> src/day_23.rs:130:4
[INFO] [stdout]     |
[INFO] [stdout] 130 | fn edge_contracted_vertices(grid: &Vec<Vec<char>>) -> HashSet<Point> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]    --> src/day_23.rs:160:8
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub fn part_1() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_23.rs:202:8
[INFO] [stdout]     |
[INFO] [stdout] 202 | pub fn part_2() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CharKind` is never used
[INFO] [stdout]  --> src/day_3.rs:6:6
[INFO] [stdout]   |
[INFO] [stdout] 6 | enum CharKind {
[INFO] [stdout]   |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_char` and `is_potentially_gear` are never used
[INFO] [stdout]   --> src/day_3.rs:13:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl CharKind {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 13 |   fn from_char(c: char) -> Self {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |   fn is_potentially_gear(&self) -> bool {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cell` is never constructed
[INFO] [stdout]   --> src/day_3.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | struct Cell {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `from_char` and `find_number_at` are never used
[INFO] [stdout]   --> src/day_3.rs:38:6
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl Cell {
[INFO] [stdout]    | --------- associated functions in this implementation
[INFO] [stdout] 38 |   fn from_char(c: char) -> Self {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |   fn find_number_at<F>(row: &mut Vec<Cell>, index: usize, flag_fn: F) -> Option<u32>
[INFO] [stdout]    |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `adjacent` is never used
[INFO] [stdout]    --> src/day_3.rs:106:4
[INFO] [stdout]     |
[INFO] [stdout] 106 | fn adjacent(row: usize, col: usize, max_height: usize, max_width: usize) -> Vec<(usize, usize)> {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]    --> src/day_3.rs:128:8
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub fn part_1() -> io::Result<u32> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_3.rs:154:8
[INFO] [stdout]     |
[INFO] [stdout] 154 | pub fn part_2() -> io::Result<u32> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Card` is never constructed
[INFO] [stdout]  --> src/day_4.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct Card {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `winning_points`, `same_card_count`, and `from_string` are never used
[INFO] [stdout]   --> src/day_4.rs:16:6
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Card {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 16 |   fn winning_points(&self) -> u32 {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |   fn same_card_count(&self) -> usize {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |   fn from_string(line: String) -> Option<Card> {
[INFO] [stdout]    |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]   --> src/day_4.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn part_1() -> io::Result<u32> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]   --> src/day_4.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn part_2() -> io::Result<u32> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `intersection` is never used
[INFO] [stdout]   --> src/day_5.rs:18:6
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl Interval {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] 18 |   fn intersection(&self, other: &Interval) -> Option<Interval> {
[INFO] [stdout]    |      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data` is never read
[INFO] [stdout]   --> src/day_5.rs:34:3
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct IntervalSearchTreeNode {
[INFO] [stdout]    |            ---------------------- field in this struct
[INFO] [stdout] 33 |   // Data for interval search
[INFO] [stdout] 34 |   data: Interval,
[INFO] [stdout]    |   ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IntervalSearchTreeNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `insert`, `search`, `insert_from_triplet`, `find_output`, `nodes`, and `remap` are never used
[INFO] [stdout]    --> src/day_5.rs:72:10
[INFO] [stdout]     |
[INFO] [stdout] 52  | impl IntervalSearchTree {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 72  |   pub fn insert(&mut self, left: u64, right: u64, data: Interval) {
[INFO] [stdout]     |          ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97  |   pub fn search(&self, point: u64) -> Option<&IntervalSearchTreeNode> {
[INFO] [stdout]     |          ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |   fn insert_from_triplet(&mut self, out_start: u64, in_start: u64, range_length: u64) {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |   pub fn find_output(&self, point: u64) -> u64 {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |   pub fn nodes(&self) -> Vec<&IntervalSearchTreeNode> {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |   pub fn remap(&self, input: &Interval) -> Vec<Interval> {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/day_5.rs:203:3
[INFO] [stdout]     |
[INFO] [stdout] 202 | struct Input {
[INFO] [stdout]     |        ----- fields in this struct
[INFO] [stdout] 203 |   seeds: Vec<u64>,
[INFO] [stdout]     |   ^^^^^
[INFO] [stdout] 204 |   seed_to_soil: IntervalSearchTree,
[INFO] [stdout]     |   ^^^^^^^^^^^^
[INFO] [stdout] 205 |   soil_to_fertilizer: IntervalSearchTree,
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 206 |   fertilizer_to_water: IntervalSearchTree,
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 207 |   water_to_light: IntervalSearchTree,
[INFO] [stdout]     |   ^^^^^^^^^^^^^^
[INFO] [stdout] 208 |   light_to_temperature: IntervalSearchTree,
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 209 |   temperature_to_humidity: IntervalSearchTree,
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 210 |   humidity_to_location: IntervalSearchTree,
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Input` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `submit` is never used
[INFO] [stdout]    --> src/day_5.rs:214:6
[INFO] [stdout]     |
[INFO] [stdout] 213 | impl Input {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] 214 |   fn submit(&mut self, state: &ParseState, triplet: (u64, u64, u64)) {
[INFO] [stdout]     |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ParseState` is never used
[INFO] [stdout]    --> src/day_5.rs:246:6
[INFO] [stdout]     |
[INFO] [stdout] 246 | enum ParseState {
[INFO] [stdout]     |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `next` is never used
[INFO] [stdout]    --> src/day_5.rs:258:6
[INFO] [stdout]     |
[INFO] [stdout] 257 | impl ParseState {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] 258 |   fn next(&self) -> Option<Self> {
[INFO] [stdout]     |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]    --> src/day_5.rs:272:4
[INFO] [stdout]     |
[INFO] [stdout] 272 | fn parse_input<F>(seed_parser: F) -> io::Result<Input>
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_min_location` is never used
[INFO] [stdout]    --> src/day_5.rs:327:4
[INFO] [stdout]     |
[INFO] [stdout] 327 | fn find_min_location<F>(seed_parser: F) -> io::Result<u64>
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]    --> src/day_5.rs:352:8
[INFO] [stdout]     |
[INFO] [stdout] 352 | pub fn part_1() -> io::Result<u64> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2_bruteforce` is never used
[INFO] [stdout]    --> src/day_5.rs:369:8
[INFO] [stdout]     |
[INFO] [stdout] 369 | pub fn part_2_bruteforce() -> io::Result<u64> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_5.rs:402:8
[INFO] [stdout]     |
[INFO] [stdout] 402 | pub fn part_2() -> io::Result<u64> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Race` is never constructed
[INFO] [stdout]  --> src/day_6.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Race {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input_1` is never used
[INFO] [stdout]   --> src/day_6.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn parse_input_1() -> io::Result<Vec<Race>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input_2` is never used
[INFO] [stdout]   --> src/day_6.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn parse_input_2() -> io::Result<Race> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ints_between` is never used
[INFO] [stdout]   --> src/day_6.rs:66:4
[INFO] [stdout]    |
[INFO] [stdout] 66 | fn ints_between(x: f64, y: f64) -> u64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]   --> src/day_6.rs:78:8
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub fn part_1() -> io::Result<u64> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]   --> src/day_6.rs:98:8
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub fn part_2() -> io::Result<u64> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `HandType` is never used
[INFO] [stdout]   --> src/day_7.rs:94:6
[INFO] [stdout]    |
[INFO] [stdout] 94 | enum HandType {
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `value` and `new` are never used
[INFO] [stdout]    --> src/day_7.rs:111:6
[INFO] [stdout]     |
[INFO] [stdout] 110 | impl HandType {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 111 |   fn value(&self) -> u8 {
[INFO] [stdout]     |      ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |   fn new(cards: &Vec<Card>) -> Self {
[INFO] [stdout]     |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Hand` is never constructed
[INFO] [stdout]    --> src/day_7.rs:164:8
[INFO] [stdout]     |
[INFO] [stdout] 164 | struct Hand {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/day_7.rs:183:6
[INFO] [stdout]     |
[INFO] [stdout] 182 | impl Hand {
[INFO] [stdout]     | --------- associated function in this implementation
[INFO] [stdout] 183 |   fn new(cards: Vec<Card>) -> Self {
[INFO] [stdout]     |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Entry` is never constructed
[INFO] [stdout]    --> src/day_7.rs:215:8
[INFO] [stdout]     |
[INFO] [stdout] 215 | struct Entry {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `from_string_part_1` and `from_string_part_2` are never used
[INFO] [stdout]    --> src/day_7.rs:227:6
[INFO] [stdout]     |
[INFO] [stdout] 226 | impl Entry {
[INFO] [stdout]     | ---------- associated functions in this implementation
[INFO] [stdout] 227 |   fn from_string_part_1(value: String) -> Self {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |   fn from_string_part_2(value: String) -> Self {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `winnings` is never used
[INFO] [stdout]    --> src/day_7.rs:249:4
[INFO] [stdout]     |
[INFO] [stdout] 249 | fn winnings(entries: Vec<Entry>) -> u64 {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]    --> src/day_7.rs:261:8
[INFO] [stdout]     |
[INFO] [stdout] 261 | pub fn part_1() -> io::Result<u64> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_7.rs:271:8
[INFO] [stdout]     |
[INFO] [stdout] 271 | pub fn part_2() -> io::Result<u64> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Left` and `Right` are never constructed
[INFO] [stdout]  --> src/day_8.rs:7:3
[INFO] [stdout]   |
[INFO] [stdout] 6 | enum Direction {
[INFO] [stdout]   |      --------- variants in this enum
[INFO] [stdout] 7 |   Left,
[INFO] [stdout]   |   ^^^^
[INFO] [stdout] 8 |   Right,
[INFO] [stdout]   |   ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Direction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `underlying` is never read
[INFO] [stdout]   --> src/day_8.rs:13:3
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct Directions {
[INFO] [stdout]    |        ---------- field in this struct
[INFO] [stdout] 13 |   underlying: Vec<Direction>,
[INFO] [stdout]    |   ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Directions` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `at` is never used
[INFO] [stdout]   --> src/day_8.rs:17:6
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Directions {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 17 |   fn at(&self, index: usize) -> Direction {
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tree` is never constructed
[INFO] [stdout]   --> src/day_8.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | struct Tree {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `insert`, `get_left`, and `get_right` are never used
[INFO] [stdout]   --> src/day_8.rs:39:6
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl Tree {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 39 |   fn new() -> Self {
[INFO] [stdout]    |      ^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |   fn insert(&mut self, key: String, value: (String, String)) {
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |   fn get_left(&self, key: &str) -> Option<&String> {
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |   fn get_right(&self, key: &str) -> Option<&String> {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Input` is never constructed
[INFO] [stdout]   --> src/day_8.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | struct Input {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/day_8.rs:64:4
[INFO] [stdout]    |
[INFO] [stdout] 64 | fn parse_input() -> io::Result<Input> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]    --> src/day_8.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn part_1() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lcm` is never used
[INFO] [stdout]    --> src/day_8.rs:148:4
[INFO] [stdout]     |
[INFO] [stdout] 148 | fn lcm(first: usize, second: usize) -> usize {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gcd` is never used
[INFO] [stdout]    --> src/day_8.rs:152:4
[INFO] [stdout]     |
[INFO] [stdout] 152 | fn gcd(first: usize, second: usize) -> usize {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_8.rs:172:8
[INFO] [stdout]     |
[INFO] [stdout] 172 | pub fn part_2() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pairwise_diff` is never used
[INFO] [stdout]  --> src/day_9.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn pairwise_diff(numbers: Vec<i64>) -> Vec<i64> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]   --> src/day_9.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn solve<F>(predict: F) -> io::Result<i64>
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]   --> src/day_9.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn part_1() -> io::Result<i64> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]   --> src/day_9.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn part_2() -> io::Result<i64> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 203 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]  --> src/day_1.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn part_1() -> io::Result<u32> {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `SPELLED_OUT_DIGITS_MAP` is never used
[INFO] [stdout]   --> src/day_1.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | static SPELLED_OUT_DIGITS_MAP: Lazy<HashMap<Vec<char>, u32>> = Lazy::new(|| {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_out_digits` is never used
[INFO] [stdout]   --> src/day_1.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn parse_out_digits(line: &String) -> Vec<u32> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]   --> src/day_1.rs:76:8
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub fn part_2() -> io::Result<u32> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/day_10.rs:22:6
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl Coordinate {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 22 |   fn east(&self) -> Option<Self> {
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |   fn west(&self) -> Option<Self> {
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |   fn north(&self) -> Option<Self> {
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |   fn south(&self) -> Option<Self> {
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |   fn is_south_of(&self, other: Coordinate) -> bool {
[INFO] [stdout]    |      ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |   fn is_east_of(&self, other: Coordinate) -> bool {
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |   fn is_west_of(&self, other: Coordinate) -> bool {
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/day_10.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 |   Pipe(PipeType),
[INFO] [stdout]    |   ---- ^^^^^^^^
[INFO] [stdout]    |   |
[INFO] [stdout]    |   field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Tile` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 66 |   Pipe(()),
[INFO] [stdout]    |        ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_char` is never used
[INFO] [stdout]   --> src/day_10.rs:71:6
[INFO] [stdout]    |
[INFO] [stdout] 70 | impl Tile {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 71 |   fn to_char(&self) -> char {
[INFO] [stdout]    |      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Map` is never constructed
[INFO] [stdout]    --> src/day_10.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | struct Map {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get` are never used
[INFO] [stdout]    --> src/day_10.rs:120:6
[INFO] [stdout]     |
[INFO] [stdout] 119 | impl Map {
[INFO] [stdout]     | -------- associated items in this implementation
[INFO] [stdout] 120 |   fn new(tiles: Vec<Vec<Tile>>, start: Coordinate) -> Self {
[INFO] [stdout]     |      ^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |   fn get(&self, coord: Coordinate) -> Option<&Tile> {
[INFO] [stdout]     |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_map` is never used
[INFO] [stdout]    --> src/day_10.rs:132:4
[INFO] [stdout]     |
[INFO] [stdout] 132 | fn parse_map() -> io::Result<Map> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `next_via_pipe` is never used
[INFO] [stdout]    --> src/day_10.rs:157:4
[INFO] [stdout]     |
[INFO] [stdout] 157 | fn next_via_pipe(
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `possible_paths_from_start` is never used
[INFO] [stdout]    --> src/day_10.rs:232:4
[INFO] [stdout]     |
[INFO] [stdout] 232 | fn possible_paths_from_start(map: &Map) -> Vec<Coordinate> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]    --> src/day_10.rs:288:8
[INFO] [stdout]     |
[INFO] [stdout] 288 | pub fn part_1() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_10.rs:337:8
[INFO] [stdout]     |
[INFO] [stdout] 337 | pub fn part_2() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]  --> src/day_11.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn parse_input() -> io::Result<Vec<Vec<char>>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tile` is never constructed
[INFO] [stdout]   --> src/day_11.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct Tile {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_expansion` is never used
[INFO] [stdout]   --> src/day_11.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn handle_expansion(input: &mut Vec<Vec<char>>) -> Vec<Vec<Tile>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_all_galaxies` is never used
[INFO] [stdout]    --> src/day_11.rs:113:4
[INFO] [stdout]     |
[INFO] [stdout] 113 | fn find_all_galaxies(input: &Vec<Vec<Tile>>) -> Vec<(Tile, usize, usize)> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distance_between` is never used
[INFO] [stdout]    --> src/day_11.rs:131:4
[INFO] [stdout]     |
[INFO] [stdout] 131 | fn distance_between(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]    --> src/day_11.rs:161:8
[INFO] [stdout]     |
[INFO] [stdout] 161 | pub fn part_1() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_11.rs:180:8
[INFO] [stdout]     |
[INFO] [stdout] 180 | pub fn part_2() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MemoKey` is never constructed
[INFO] [stdout]  --> src/day_12.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct MemoKey {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/day_12.rs:12:6
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl MemoKey {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 12 |   fn new(conditions: &[u8], damages: &[u64]) -> Self {
[INFO] [stdout]    |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Cache` is never used
[INFO] [stdout]   --> src/day_12.rs:20:6
[INFO] [stdout]    |
[INFO] [stdout] 20 | type Cache = std::collections::HashMap<MemoKey, u64>;
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `go` is never used
[INFO] [stdout]   --> src/day_12.rs:22:4
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn go(cache: &mut Cache, conditions: &[u8], damages: &[u64]) -> u64 {
[INFO] [stdout]    |    ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]    --> src/day_12.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub fn part_1() -> io::Result<u64> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_12.rs:126:8
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub fn part_2() -> io::Result<u64> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_file` is never used
[INFO] [stdout]    --> src/day_12.rs:153:6
[INFO] [stdout]     |
[INFO] [stdout] 152 | impl Input {
[INFO] [stdout]     | ---------- associated function in this implementation
[INFO] [stdout] 153 |   fn from_file() -> io::Result<Vec<Self>> {
[INFO] [stdout]     |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Tile` is never used
[INFO] [stdout]  --> src/day_13.rs:6:6
[INFO] [stdout]   |
[INFO] [stdout] 6 | enum Tile {
[INFO] [stdout]   |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Map` is never constructed
[INFO] [stdout]   --> src/day_13.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | struct Map {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_file` and `transpose` are never used
[INFO] [stdout]   --> src/day_13.rs:38:6
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl Map {
[INFO] [stdout]    | -------- associated items in this implementation
[INFO] [stdout] 38 |   fn from_file() -> io::Result<Vec<Map>> {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |   fn transpose(&self) -> Self {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_mirror` is never used
[INFO] [stdout]   --> src/day_13.rs:80:4
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn find_mirror(map: &Map, diff: usize) -> Option<usize> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]    --> src/day_13.rs:104:8
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub fn part_1() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_13.rs:120:8
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub fn part_2() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_input` is never used
[INFO] [stdout]  --> src/day_14.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn read_input() -> io::Result<Vec<Vec<char>>> {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rotate_left` is never used
[INFO] [stdout]   --> src/day_14.rs:12:4
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn rotate_left(matrix: &mut Vec<Vec<char>>) {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rotate_right` is never used
[INFO] [stdout]   --> src/day_14.rs:22:4
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn rotate_right(matrix: &mut Vec<Vec<char>>) {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_left` is never used
[INFO] [stdout]   --> src/day_14.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn push_left(matrix: &Vec<Vec<char>>) -> Vec<Vec<char>> {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_north` is never used
[INFO] [stdout]   --> src/day_14.rs:51:4
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn push_north(matrix: &mut Vec<Vec<char>>) -> Vec<Vec<char>> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_west` is never used
[INFO] [stdout]   --> src/day_14.rs:58:4
[INFO] [stdout]    |
[INFO] [stdout] 58 | fn push_west(matrix: &mut Vec<Vec<char>>) -> Vec<Vec<char>> {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_south` is never used
[INFO] [stdout]   --> src/day_14.rs:62:4
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn push_south(matrix: &mut Vec<Vec<char>>) -> Vec<Vec<char>> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_east` is never used
[INFO] [stdout]   --> src/day_14.rs:69:4
[INFO] [stdout]    |
[INFO] [stdout] 69 | fn push_east(matrix: &mut Vec<Vec<char>>) -> Vec<Vec<char>> {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cycle` is never used
[INFO] [stdout]   --> src/day_14.rs:78:4
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn cycle(matrix: &mut Vec<Vec<char>>) -> Vec<Vec<char>> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_matrix` is never used
[INFO] [stdout]   --> src/day_14.rs:87:4
[INFO] [stdout]    |
[INFO] [stdout] 87 | fn print_matrix(matrix: &Vec<Vec<char>>) {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]   --> src/day_14.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub fn part_1() -> io::Result<usize> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_14.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub fn part_2() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]   --> src/day_15.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn part_1() -> io::Result<u64> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Entry` is never constructed
[INFO] [stdout]   --> src/day_15.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | struct Entry {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]   --> src/day_15.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn part_2() -> io::Result<usize> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Direction` is never used
[INFO] [stdout]  --> src/day_16.rs:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | enum Direction {
[INFO] [stdout]   |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `moving_horizontally` and `moving_vertically` are never used
[INFO] [stdout]   --> src/day_16.rs:17:6
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Direction {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] 17 |   fn moving_horizontally(&self) -> bool {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |   fn moving_vertically(&self) -> bool {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Position` is never constructed
[INFO] [stdout]   --> src/day_16.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | struct Position {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `move_in_direction` are never used
[INFO] [stdout]   --> src/day_16.rs:39:10
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl Position {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 39 |   pub fn new(x: i64, y: i64) -> Self {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |   pub fn move_in_direction(&self, direction: Direction) -> Self {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Beam` is never constructed
[INFO] [stdout]   --> src/day_16.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | struct Beam {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]   --> src/day_16.rs:59:4
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn solve(matrix: &Vec<Vec<char>>, initial_beam: Beam) -> usize {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]    --> src/day_16.rs:176:8
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub fn part_1() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_16.rs:189:8
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub fn part_2() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]  --> src/day_17.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn parse_input() -> io::Result<Vec<Vec<u32>>> {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Position` is never constructed
[INFO] [stdout]   --> src/day_17.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | struct Position {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/day_17.rs:29:6
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl Position {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 29 |   fn new(x: i32, y: i32) -> Self {
[INFO] [stdout]    |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Velocity` is never constructed
[INFO] [stdout]   --> src/day_17.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | struct Velocity {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `possible_turns` are never used
[INFO] [stdout]   --> src/day_17.rs:48:6
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl Velocity {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 48 |   fn new(vx: i32, vy: i32) -> Self {
[INFO] [stdout]    |      ^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |   fn possible_turns(&self) -> Vec<Velocity> {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `State` is never constructed
[INFO] [stdout]   --> src/day_17.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | struct State {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `standing_still` is never used
[INFO] [stdout]   --> src/day_17.rs:81:6
[INFO] [stdout]    |
[INFO] [stdout] 80 | impl State {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] 81 |   fn standing_still(&self) -> bool {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]   --> src/day_17.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | struct Node {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]    --> src/day_17.rs:104:8
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub fn part_1() -> io::Result<u32> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_17.rs:207:8
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub fn part_2() -> io::Result<u32> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Direction` is never used
[INFO] [stdout]  --> src/day_18.rs:5:6
[INFO] [stdout]   |
[INFO] [stdout] 5 | enum Direction {
[INFO] [stdout]   |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_single_char` is never used
[INFO] [stdout]   --> src/day_18.rs:13:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Direction {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 13 |   fn from_single_char(c: &char) -> Option<Self> {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]   --> src/day_18.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct Point {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `move_in_direction` are never used
[INFO] [stdout]   --> src/day_18.rs:31:6
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl Point {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 31 |   fn new(x: i64, y: i64) -> Self {
[INFO] [stdout]    |      ^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |   fn move_in_direction(&self, dir: Direction, count: i64) -> Self {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input_part_1` is never used
[INFO] [stdout]   --> src/day_18.rs:46:4
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn parse_input_part_1() -> io::Result<Vec<((Direction, i64), (Direction, i64))>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shoelace_area` is never used
[INFO] [stdout]   --> src/day_18.rs:91:4
[INFO] [stdout]    |
[INFO] [stdout] 91 | fn shoelace_area(points: &Vec<Point>) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]    --> src/day_18.rs:102:8
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn part_1() -> io::Result<i64> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_18.rs:127:8
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub fn part_2() -> io::Result<i64> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `all` is never used
[INFO] [stdout]   --> src/day_19.rs:14:6
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Category {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 14 |   fn all() -> Vec<Category> {
[INFO] [stdout]    |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> src/day_19.rs:51:18
[INFO] [stdout]    |
[INFO] [stdout] 51 |   NextWorkflow { name: String },
[INFO] [stdout]    |   ------------   ^^^^
[INFO] [stdout]    |   |
[INFO] [stdout]    |   field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Outcome` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/day_19.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 |   Terminal(Decision),
[INFO] [stdout]    |   -------- ^^^^^^^^
[INFO] [stdout]    |   |
[INFO] [stdout]    |   field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Outcome` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 52 |   Terminal(()),
[INFO] [stdout]    |            ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_category` and `get_outcome` are never used
[INFO] [stdout]   --> src/day_19.rs:75:6
[INFO] [stdout]    |
[INFO] [stdout] 74 | impl Rule {
[INFO] [stdout]    | --------- methods in this implementation
[INFO] [stdout] 75 |   fn get_category(&self) -> Category {
[INFO] [stdout]    |      ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |   fn get_outcome(&self) -> &Outcome {
[INFO] [stdout]    |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x`, `m`, `a`, and `s` are never read
[INFO] [stdout]    --> src/day_19.rs:118:3
[INFO] [stdout]     |
[INFO] [stdout] 117 | struct Part {
[INFO] [stdout]     |        ---- fields in this struct
[INFO] [stdout] 118 |   x: u64,
[INFO] [stdout]     |   ^
[INFO] [stdout] 119 |   m: u64,
[INFO] [stdout]     |   ^
[INFO] [stdout] 120 |   a: u64,
[INFO] [stdout]     |   ^
[INFO] [stdout] 121 |   s: u64,
[INFO] [stdout]     |   ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Part` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_category` is never used
[INFO] [stdout]    --> src/day_19.rs:125:6
[INFO] [stdout]     |
[INFO] [stdout] 124 | impl Part {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] 125 |   fn get_category(&self, category: Category) -> u64 {
[INFO] [stdout]     |      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `rules`, and `fallback` are never read
[INFO] [stdout]    --> src/day_19.rs:166:3
[INFO] [stdout]     |
[INFO] [stdout] 165 | struct Workflow {
[INFO] [stdout]     |        -------- fields in this struct
[INFO] [stdout] 166 |   name: String,
[INFO] [stdout]     |   ^^^^
[INFO] [stdout] 167 |   rules: Vec<Rule>,
[INFO] [stdout]     |   ^^^^^
[INFO] [stdout] 168 |   fallback: Outcome,
[INFO] [stdout]     |   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Workflow` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `outcome_of` is never used
[INFO] [stdout]    --> src/day_19.rs:172:6
[INFO] [stdout]     |
[INFO] [stdout] 171 | impl Workflow {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] 172 |   fn outcome_of(&self, part: &Part) -> Outcome {
[INFO] [stdout]     |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]    --> src/day_19.rs:218:4
[INFO] [stdout]     |
[INFO] [stdout] 218 | fn parse_input() -> io::Result<(Vec<Workflow>, Vec<Part>)> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decision_for_part` is never used
[INFO] [stdout]    --> src/day_19.rs:240:4
[INFO] [stdout]     |
[INFO] [stdout] 240 | fn decision_for_part(workflows: &HashMap<String, Workflow>, part: &Part) -> Decision {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]    --> src/day_19.rs:253:8
[INFO] [stdout]     |
[INFO] [stdout] 253 | pub fn part_1() -> io::Result<u64> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Range` is never constructed
[INFO] [stdout]    --> src/day_19.rs:275:8
[INFO] [stdout]     |
[INFO] [stdout] 275 | struct Range {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `non_empty` are never used
[INFO] [stdout]    --> src/day_19.rs:281:6
[INFO] [stdout]     |
[INFO] [stdout] 280 | impl Range {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 281 |   fn new(min_inclusive: u64, max_inclusive: u64) -> Self {
[INFO] [stdout]     |      ^^^
[INFO] [stdout] ...
[INFO] [stdout] 288 |   fn non_empty(&self) -> bool {
[INFO] [stdout]     |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_accepted_ranges` is never used
[INFO] [stdout]    --> src/day_19.rs:299:4
[INFO] [stdout]     |
[INFO] [stdout] 299 | fn count_accepted_ranges(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_19.rs:367:8
[INFO] [stdout]     |
[INFO] [stdout] 367 | pub fn part_2() -> io::Result<u64> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_pairwise_less_than_or_equal_to` and `pair_wise_max` are never used
[INFO] [stdout]    --> src/day_2.rs:170:6
[INFO] [stdout]     |
[INFO] [stdout] 154 | impl RGB {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 170 |   fn is_pairwise_less_than_or_equal_to(&self, other: &RGB) -> bool {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |   fn pair_wise_max(&self, other: &RGB) -> RGB {
[INFO] [stdout]     |      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]    --> src/day_2.rs:274:8
[INFO] [stdout]     |
[INFO] [stdout] 274 | pub fn part_1() -> io::Result<u32> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_2.rs:304:8
[INFO] [stdout]     |
[INFO] [stdout] 304 | pub fn part_2() -> io::Result<u32> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `High` and `Low` are never constructed
[INFO] [stdout]   --> src/day_20.rs:10:3
[INFO] [stdout]    |
[INFO] [stdout] 9  | enum Signal {
[INFO] [stdout]    |      ------ variants in this enum
[INFO] [stdout] 10 |   High,
[INFO] [stdout]    |   ^^^^
[INFO] [stdout] 11 |   Low,
[INFO] [stdout]    |   ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Signal` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `On` is never constructed
[INFO] [stdout]   --> src/day_20.rs:16:3
[INFO] [stdout]    |
[INFO] [stdout] 15 | enum FlipFlopState {
[INFO] [stdout]    |      ------------- variant in this enum
[INFO] [stdout] 16 |   On,
[INFO] [stdout]    |   ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FlipFlopState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/day_20.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 |   FlipFlop(FlipFlopState),
[INFO] [stdout]    |   -------- ^^^^^^^^^^^^^
[INFO] [stdout]    |   |
[INFO] [stdout]    |   field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ModuleType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 22 |   FlipFlop(()),
[INFO] [stdout]    |            ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/day_20.rs:23:15
[INFO] [stdout]    |
[INFO] [stdout] 23 |   Conjunction(HashMap<String, Signal>),
[INFO] [stdout]    |   ----------- ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |   |
[INFO] [stdout]    |   field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ModuleType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 23 |   Conjunction(()),
[INFO] [stdout]    |               ~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Module` is never constructed
[INFO] [stdout]   --> src/day_20.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | struct Module {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/day_20.rs:43:4
[INFO] [stdout]    |
[INFO] [stdout] 43 | fn parse_input() -> io::Result<(Vec<String>, HashMap<String, Module>)> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]    --> src/day_20.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn part_1() -> io::Result<i64> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lcm` is never used
[INFO] [stdout]    --> src/day_20.rs:166:4
[INFO] [stdout]     |
[INFO] [stdout] 166 | fn lcm(first: usize, second: usize) -> usize {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gcd` is never used
[INFO] [stdout]    --> src/day_20.rs:170:4
[INFO] [stdout]     |
[INFO] [stdout] 170 | fn gcd(first: usize, second: usize) -> usize {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_20.rs:190:8
[INFO] [stdout]     |
[INFO] [stdout] 190 | pub fn part_2() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]   --> src/day_21.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct Point {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `up`, `down`, `left`, `right`, and `neighbors` are never used
[INFO] [stdout]   --> src/day_21.rs:16:6
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Point {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 16 |   fn new(x: i32, y: i32) -> Self {
[INFO] [stdout]    |      ^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |   fn up(&self) -> Self {
[INFO] [stdout]    |      ^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |   fn down(&self) -> Self {
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |   fn left(&self) -> Self {
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |   fn right(&self) -> Self {
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |   fn neighbors(&self) -> Vec<Self> {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/day_21.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn parse_input() -> io::Result<(Point, Vec<Vec<char>>)> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bfs_fill` is never used
[INFO] [stdout]   --> src/day_21.rs:68:4
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn bfs_fill(start: Point, grid: &Vec<Vec<char>>, steps: u32) -> usize {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]    --> src/day_21.rs:113:8
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn part_1() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_21.rs:134:8
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub fn part_2() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `height` is never used
[INFO] [stdout]   --> src/day_22.rs:72:6
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl Brick {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 72 |   fn height(&self) -> usize {
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]    --> src/day_22.rs:105:4
[INFO] [stdout]     |
[INFO] [stdout] 105 | fn parse_input() -> io::Result<Vec<Brick>> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_bricks_fall` is never used
[INFO] [stdout]    --> src/day_22.rs:113:4
[INFO] [stdout]     |
[INFO] [stdout] 113 | fn make_bricks_fall(bricks: &mut Vec<Brick>) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `key_supports_values` and `key_is_supported_by_values` are never read
[INFO] [stdout]    --> src/day_22.rs:134:3
[INFO] [stdout]     |
[INFO] [stdout] 133 | struct SupportMaps {
[INFO] [stdout]     |        ----------- fields in this struct
[INFO] [stdout] 134 |   key_supports_values: HashMap<usize, HashSet<usize>>,
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 135 |   key_is_supported_by_values: HashMap<usize, HashSet<usize>>,
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]    --> src/day_22.rs:172:8
[INFO] [stdout]     |
[INFO] [stdout] 172 | pub fn part_1() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_all_collapsing` is never used
[INFO] [stdout]    --> src/day_22.rs:202:4
[INFO] [stdout]     |
[INFO] [stdout] 202 | fn find_all_collapsing(collapsing: &mut HashSet<usize>, support_maps: &SupportMaps, index: usize) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_22.rs:226:8
[INFO] [stdout]     |
[INFO] [stdout] 226 | pub fn part_2() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]   --> src/day_23.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct Point {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `up`, `down`, `left`, `right`, and `neighbors` are never used
[INFO] [stdout]   --> src/day_23.rs:16:6
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Point {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 16 |   fn new(x: i32, y: i32) -> Point {
[INFO] [stdout]    |      ^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |   fn up(&self) -> Point {
[INFO] [stdout]    |      ^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |   fn down(&self) -> Point {
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |   fn left(&self) -> Point {
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |   fn right(&self) -> Point {
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |   fn neighbors(&self) -> Vec<Point> {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/day_23.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn parse_input() -> io::Result<Vec<Vec<char>>> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_path` is never used
[INFO] [stdout]   --> src/day_23.rs:52:4
[INFO] [stdout]    |
[INFO] [stdout] 52 | fn find_path(grid: &Vec<Vec<char>>, row: usize) -> Point {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `in_bounds_and_not_rock` is never used
[INFO] [stdout]   --> src/day_23.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn in_bounds_and_not_rock(grid: &Vec<Vec<char>>, point: &Point) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dfs_fill` is never used
[INFO] [stdout]   --> src/day_23.rs:70:4
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn dfs_fill(
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bruteforce_longest_path` is never used
[INFO] [stdout]    --> src/day_23.rs:103:4
[INFO] [stdout]     |
[INFO] [stdout] 103 | fn bruteforce_longest_path(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `edge_contracted_vertices` is never used
[INFO] [stdout]    --> src/day_23.rs:130:4
[INFO] [stdout]     |
[INFO] [stdout] 130 | fn edge_contracted_vertices(grid: &Vec<Vec<char>>) -> HashSet<Point> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]    --> src/day_23.rs:160:8
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub fn part_1() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_23.rs:202:8
[INFO] [stdout]     |
[INFO] [stdout] 202 | pub fn part_2() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_potentially_gear` is never used
[INFO] [stdout]   --> src/day_3.rs:23:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl CharKind {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 23 |   fn is_potentially_gear(&self) -> bool {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `adjacent` is never used
[INFO] [stdout]    --> src/day_3.rs:106:4
[INFO] [stdout]     |
[INFO] [stdout] 106 | fn adjacent(row: usize, col: usize, max_height: usize, max_width: usize) -> Vec<(usize, usize)> {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]    --> src/day_3.rs:128:8
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub fn part_1() -> io::Result<u32> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_3.rs:154:8
[INFO] [stdout]     |
[INFO] [stdout] 154 | pub fn part_2() -> io::Result<u32> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `winning_points` and `same_card_count` are never used
[INFO] [stdout]   --> src/day_4.rs:16:6
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Card {
[INFO] [stdout]    | --------- methods in this implementation
[INFO] [stdout] 16 |   fn winning_points(&self) -> u32 {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |   fn same_card_count(&self) -> usize {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]   --> src/day_4.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn part_1() -> io::Result<u32> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]   --> src/day_4.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn part_2() -> io::Result<u32> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `insert_from_triplet` and `find_output` are never used
[INFO] [stdout]    --> src/day_5.rs:122:6
[INFO] [stdout]     |
[INFO] [stdout] 52  | impl IntervalSearchTree {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 122 |   fn insert_from_triplet(&mut self, out_start: u64, in_start: u64, range_length: u64) {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |   pub fn find_output(&self, point: u64) -> u64 {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/day_5.rs:203:3
[INFO] [stdout]     |
[INFO] [stdout] 202 | struct Input {
[INFO] [stdout]     |        ----- fields in this struct
[INFO] [stdout] 203 |   seeds: Vec<u64>,
[INFO] [stdout]     |   ^^^^^
[INFO] [stdout] 204 |   seed_to_soil: IntervalSearchTree,
[INFO] [stdout]     |   ^^^^^^^^^^^^
[INFO] [stdout] 205 |   soil_to_fertilizer: IntervalSearchTree,
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 206 |   fertilizer_to_water: IntervalSearchTree,
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 207 |   water_to_light: IntervalSearchTree,
[INFO] [stdout]     |   ^^^^^^^^^^^^^^
[INFO] [stdout] 208 |   light_to_temperature: IntervalSearchTree,
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 209 |   temperature_to_humidity: IntervalSearchTree,
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 210 |   humidity_to_location: IntervalSearchTree,
[INFO] [stdout]     |   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Input` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `submit` is never used
[INFO] [stdout]    --> src/day_5.rs:214:6
[INFO] [stdout]     |
[INFO] [stdout] 213 | impl Input {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] 214 |   fn submit(&mut self, state: &ParseState, triplet: (u64, u64, u64)) {
[INFO] [stdout]     |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ParseState` is never used
[INFO] [stdout]    --> src/day_5.rs:246:6
[INFO] [stdout]     |
[INFO] [stdout] 246 | enum ParseState {
[INFO] [stdout]     |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `next` is never used
[INFO] [stdout]    --> src/day_5.rs:258:6
[INFO] [stdout]     |
[INFO] [stdout] 257 | impl ParseState {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] 258 |   fn next(&self) -> Option<Self> {
[INFO] [stdout]     |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]    --> src/day_5.rs:272:4
[INFO] [stdout]     |
[INFO] [stdout] 272 | fn parse_input<F>(seed_parser: F) -> io::Result<Input>
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_min_location` is never used
[INFO] [stdout]    --> src/day_5.rs:327:4
[INFO] [stdout]     |
[INFO] [stdout] 327 | fn find_min_location<F>(seed_parser: F) -> io::Result<u64>
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]    --> src/day_5.rs:352:8
[INFO] [stdout]     |
[INFO] [stdout] 352 | pub fn part_1() -> io::Result<u64> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2_bruteforce` is never used
[INFO] [stdout]    --> src/day_5.rs:369:8
[INFO] [stdout]     |
[INFO] [stdout] 369 | pub fn part_2_bruteforce() -> io::Result<u64> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_5.rs:402:8
[INFO] [stdout]     |
[INFO] [stdout] 402 | pub fn part_2() -> io::Result<u64> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Race` is never constructed
[INFO] [stdout]  --> src/day_6.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Race {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input_1` is never used
[INFO] [stdout]   --> src/day_6.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn parse_input_1() -> io::Result<Vec<Race>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input_2` is never used
[INFO] [stdout]   --> src/day_6.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn parse_input_2() -> io::Result<Race> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ints_between` is never used
[INFO] [stdout]   --> src/day_6.rs:66:4
[INFO] [stdout]    |
[INFO] [stdout] 66 | fn ints_between(x: f64, y: f64) -> u64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]   --> src/day_6.rs:78:8
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub fn part_1() -> io::Result<u64> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]   --> src/day_6.rs:98:8
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub fn part_2() -> io::Result<u64> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_string_part_1` is never used
[INFO] [stdout]    --> src/day_7.rs:227:6
[INFO] [stdout]     |
[INFO] [stdout] 226 | impl Entry {
[INFO] [stdout]     | ---------- associated function in this implementation
[INFO] [stdout] 227 |   fn from_string_part_1(value: String) -> Self {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `winnings` is never used
[INFO] [stdout]    --> src/day_7.rs:249:4
[INFO] [stdout]     |
[INFO] [stdout] 249 | fn winnings(entries: Vec<Entry>) -> u64 {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]    --> src/day_7.rs:261:8
[INFO] [stdout]     |
[INFO] [stdout] 261 | pub fn part_1() -> io::Result<u64> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_7.rs:271:8
[INFO] [stdout]     |
[INFO] [stdout] 271 | pub fn part_2() -> io::Result<u64> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Left` and `Right` are never constructed
[INFO] [stdout]  --> src/day_8.rs:7:3
[INFO] [stdout]   |
[INFO] [stdout] 6 | enum Direction {
[INFO] [stdout]   |      --------- variants in this enum
[INFO] [stdout] 7 |   Left,
[INFO] [stdout]   |   ^^^^
[INFO] [stdout] 8 |   Right,
[INFO] [stdout]   |   ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Direction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `underlying` is never read
[INFO] [stdout]   --> src/day_8.rs:13:3
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct Directions {
[INFO] [stdout]    |        ---------- field in this struct
[INFO] [stdout] 13 |   underlying: Vec<Direction>,
[INFO] [stdout]    |   ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Directions` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `at` is never used
[INFO] [stdout]   --> src/day_8.rs:17:6
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Directions {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 17 |   fn at(&self, index: usize) -> Direction {
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tree` is never constructed
[INFO] [stdout]   --> src/day_8.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | struct Tree {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `insert`, `get_left`, and `get_right` are never used
[INFO] [stdout]   --> src/day_8.rs:39:6
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl Tree {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 39 |   fn new() -> Self {
[INFO] [stdout]    |      ^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |   fn insert(&mut self, key: String, value: (String, String)) {
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |   fn get_left(&self, key: &str) -> Option<&String> {
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |   fn get_right(&self, key: &str) -> Option<&String> {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Input` is never constructed
[INFO] [stdout]   --> src/day_8.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | struct Input {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/day_8.rs:64:4
[INFO] [stdout]    |
[INFO] [stdout] 64 | fn parse_input() -> io::Result<Input> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]    --> src/day_8.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn part_1() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lcm` is never used
[INFO] [stdout]    --> src/day_8.rs:148:4
[INFO] [stdout]     |
[INFO] [stdout] 148 | fn lcm(first: usize, second: usize) -> usize {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gcd` is never used
[INFO] [stdout]    --> src/day_8.rs:152:4
[INFO] [stdout]     |
[INFO] [stdout] 152 | fn gcd(first: usize, second: usize) -> usize {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_8.rs:172:8
[INFO] [stdout]     |
[INFO] [stdout] 172 | pub fn part_2() -> io::Result<usize> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pairwise_diff` is never used
[INFO] [stdout]  --> src/day_9.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn pairwise_diff(numbers: Vec<i64>) -> Vec<i64> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]   --> src/day_9.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn solve<F>(predict: F) -> io::Result<i64>
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]   --> src/day_9.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn part_1() -> io::Result<i64> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]   --> src/day_9.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn part_2() -> io::Result<i64> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 169 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 12.55s
[INFO] running `Command { std: "docker" "inspect" "9c49f972aa3b70f1b0cfc403ce12bbcdd3eed3daebe08a43781bf518ceccf2fa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9c49f972aa3b70f1b0cfc403ce12bbcdd3eed3daebe08a43781bf518ceccf2fa", kill_on_drop: false }`
[INFO] [stdout] 9c49f972aa3b70f1b0cfc403ce12bbcdd3eed3daebe08a43781bf518ceccf2fa
