[INFO] cloning repository https://github.com/kevincal1226/aoc-2023
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kevincal1226/aoc-2023" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkevincal1226%2Faoc-2023", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkevincal1226%2Faoc-2023'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2ccd32338f7a5925c51059e60bafefa1e0803c31
[INFO] checking kevincal1226/aoc-2023 against 79c0559184f27f4433a6fbc260b950d06d4a4889 for pr-162233-crater-rollup
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkevincal1226%2Faoc-2023" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/kevincal1226/aoc-2023
[INFO] finished tweaking git repo https://github.com/kevincal1226/aoc-2023
[INFO] tweaked toml for git repo https://github.com/kevincal1226/aoc-2023 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/kevincal1226/aoc-2023 on toolchain 79c0559184f27f4433a6fbc260b950d06d4a4889
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+79c0559184f27f4433a6fbc260b950d06d4a4889" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/kevincal1226/aoc-2023 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" "+79c0559184f27f4433a6fbc260b950d06d4a4889" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] checking kevincal1226/aoc-2023 against 79c0559184f27f4433a6fbc260b950d06d4a4889 for pr-162233-crater-rollup
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkevincal1226%2Faoc-2023" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/kevincal1226/aoc-2023
[INFO] finished tweaking git repo https://github.com/kevincal1226/aoc-2023
[INFO] tweaked toml for git repo https://github.com/kevincal1226/aoc-2023 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/kevincal1226/aoc-2023 on toolchain 79c0559184f27f4433a6fbc260b950d06d4a4889
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+79c0559184f27f4433a6fbc260b950d06d4a4889" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/kevincal1226/aoc-2023 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" "+79c0559184f27f4433a6fbc260b950d06d4a4889" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded bytemuck v1.19.0
[INFO] [stderr]   Downloaded wide v0.7.28
[INFO] [stderr]   Downloaded syn v2.0.85
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 45d24f7bdd6dda19d8f421692d9a6293fee075f20c56a398a2d576cf785ec242
[INFO] running `Command { std: "docker" "start" "45d24f7bdd6dda19d8f421692d9a6293fee075f20c56a398a2d576cf785ec242", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "45d24f7bdd6dda19d8f421692d9a6293fee075f20c56a398a2d576cf785ec242", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "45d24f7bdd6dda19d8f421692d9a6293fee075f20c56a398a2d576cf785ec242" "/opt/rustwide/cargo-home/bin/cargo" "+79c0559184f27f4433a6fbc260b950d06d4a4889" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "45d24f7bdd6dda19d8f421692d9a6293fee075f20c56a398a2d576cf785ec242", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "45d24f7bdd6dda19d8f421692d9a6293fee075f20c56a398a2d576cf785ec242" "/opt/rustwide/cargo-home/bin/cargo" "+79c0559184f27f4433a6fbc260b950d06d4a4889" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.89
[INFO] [stderr]    Compiling unicode-ident v1.0.13
[INFO] [stderr]     Checking bytemuck v1.19.0
[INFO] [stderr]    Compiling siphasher v0.3.11
[INFO] [stderr]    Compiling matrixmultiply v0.3.9
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking phf_shared v0.11.2
[INFO] [stderr]     Checking safe_arch v0.7.2
[INFO] [stderr]    Compiling phf_generator v0.11.2
[INFO] [stderr]     Checking wide v0.7.28
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]    Compiling syn v2.0.85
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking num-iter v0.1.45
[INFO] [stderr]     Checking simba v0.9.0
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking num v0.4.3
[INFO] [stderr]    Compiling phf_macros v0.11.2
[INFO] [stderr]    Compiling nalgebra-macros v0.2.2
[INFO] [stderr]     Checking phf v0.11.2
[INFO] [stderr]     Checking nalgebra v0.33.2
[INFO] [stderr]     Checking aoc v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/day_10.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::{self, BufRead};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/day_21.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::{self, BufRead};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/day_10.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::{self, BufRead};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nalgebra::base`
[INFO] [stdout]  --> src/day_24.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use nalgebra::base;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BTreeSet`
[INFO] [stdout]  --> src/day_25.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{BTreeSet, HashMap, HashSet};
[INFO] [stdout]   |                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]  --> src/day_25.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::Deref;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/day_21.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::{self, BufRead};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/day_4.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::{self, BufRead, BufReader};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nalgebra::base`
[INFO] [stdout]  --> src/day_24.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use nalgebra::base;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/day_6.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::{self, BufRead};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/day_7.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::{self, BufRead};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/day_9.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::{self, BufRead};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BTreeSet`
[INFO] [stdout]  --> src/day_25.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{BTreeSet, HashMap, HashSet};
[INFO] [stdout]   |                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]  --> src/day_25.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::Deref;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/day_4.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::{self, BufRead, BufReader};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/day_6.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::{self, BufRead};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/day_7.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::{self, BufRead};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/day_9.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::{self, BufRead};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `grid`
[INFO] [stdout]    --> src/day_23.rs:101:16
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn merge_edges(grid: &Vec<Vec<bool>>, adjlist: &mut Vec<Vec<Vertex>>, row: usize, col: usize) {}
[INFO] [stdout]     |                ^^^^ help: if this is intentional, prefix it with an underscore: `_grid`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `adjlist`
[INFO] [stdout]    --> src/day_23.rs:101:39
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn merge_edges(grid: &Vec<Vec<bool>>, adjlist: &mut Vec<Vec<Vertex>>, row: usize, col: usize) {}
[INFO] [stdout]     |                                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_adjlist`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row`
[INFO] [stdout]    --> src/day_23.rs:101:71
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn merge_edges(grid: &Vec<Vec<bool>>, adjlist: &mut Vec<Vec<Vertex>>, row: usize, col: usize) {}
[INFO] [stdout]     |                                                                       ^^^ help: if this is intentional, prefix it with an underscore: `_row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `col`
[INFO] [stdout]    --> src/day_23.rs:101:83
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn merge_edges(grid: &Vec<Vec<bool>>, adjlist: &mut Vec<Vec<Vertex>>, row: usize, col: usize) {}
[INFO] [stdout]     |                                                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day_23.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 114 |     let mut adjlist: Vec<Vec<Vertex>> = vec![Vec::new(); grid.len() * grid[0].len()];
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `adjlist`
[INFO] [stdout]    --> src/day_23.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 114 |     let mut adjlist: Vec<Vec<Vertex>> = vec![Vec::new(); grid.len() * grid[0].len()];
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_adjlist`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `grid`
[INFO] [stdout]    --> src/day_23.rs:101:16
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn merge_edges(grid: &Vec<Vec<bool>>, adjlist: &mut Vec<Vec<Vertex>>, row: usize, col: usize) {}
[INFO] [stdout]     |                ^^^^ help: if this is intentional, prefix it with an underscore: `_grid`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `adjlist`
[INFO] [stdout]    --> src/day_23.rs:101:39
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn merge_edges(grid: &Vec<Vec<bool>>, adjlist: &mut Vec<Vec<Vertex>>, row: usize, col: usize) {}
[INFO] [stdout]     |                                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_adjlist`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row`
[INFO] [stdout]    --> src/day_23.rs:101:71
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn merge_edges(grid: &Vec<Vec<bool>>, adjlist: &mut Vec<Vec<Vertex>>, row: usize, col: usize) {}
[INFO] [stdout]     |                                                                       ^^^ help: if this is intentional, prefix it with an underscore: `_row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `col`
[INFO] [stdout]    --> src/day_23.rs:101:83
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn merge_edges(grid: &Vec<Vec<bool>>, adjlist: &mut Vec<Vec<Vertex>>, row: usize, col: usize) {}
[INFO] [stdout]     |                                                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day_23.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 114 |     let mut adjlist: Vec<Vec<Vertex>> = vec![Vec::new(); grid.len() * grid[0].len()];
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `adjlist`
[INFO] [stdout]    --> src/day_23.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 114 |     let mut adjlist: Vec<Vec<Vertex>> = vec![Vec::new(); grid.len() * grid[0].len()];
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_adjlist`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line`
[INFO] [stdout]  --> src/day_5.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 |     reader.lines().for_each(|line| {});
[INFO] [stdout]   |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_line`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `line`
[INFO] [stdout]  --> src/day_5.rs:5:30
[INFO] [stdout]   |
[INFO] [stdout] 5 |     reader.lines().for_each(|line| {});
[INFO] [stdout]   |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_line`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day_8.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 56 |     let mut curr_nodes: Vec<String> = edges
[INFO] [stdout]    |         ----^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ENGLISH_NUMBERS` is never used
[INFO] [stdout]  --> src/day_1.rs:5:7
[INFO] [stdout]   |
[INFO] [stdout] 5 | const ENGLISH_NUMBERS: phf::Map<&str, i32> = phf_map! {
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `helper` is never used
[INFO] [stdout]   --> src/day_1.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn helper(str: &str) -> i32 {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day1` is never used
[INFO] [stdout]   --> src/day_1.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn day1() -> i32 {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]  --> src/day_10.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Point {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]   --> src/day_10.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn part_1() -> usize {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_10.rs:176:8
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub fn part_2() -> usize {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]  --> src/day_11.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn part_1() -> i64 {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]   --> src/day_11.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub fn part_2() -> i64 {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_if_valid` is never used
[INFO] [stdout]  --> src/day_12.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn check_if_valid(springs: &[char], groups: &[usize]) -> usize {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_perm` is never used
[INFO] [stdout]   --> src/day_12.rs:22:4
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn check_perm(springs: &mut [char], groups: &[usize], index: usize) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]   --> src/day_12.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn part_1() -> usize {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]   --> src/day_12.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn part_2() -> usize {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day2` is never used
[INFO] [stdout]  --> src/day_2.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn day2() -> u64 {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PointAndSteps` is never constructed
[INFO] [stdout]  --> src/day_21.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct PointAndSteps {
[INFO] [stdout]   |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]   --> src/day_21.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct Point {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day21_part1` is never used
[INFO] [stdout]   --> src/day_21.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn day21_part1() -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day21_part2` is never used
[INFO] [stdout]    --> src/day_21.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn day21_part2() -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dfs_1` is never used
[INFO] [stdout]  --> src/day_23.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn dfs_1(
[INFO] [stdout]   |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dfs_2` is never used
[INFO] [stdout]   --> src/day_23.rs:39:4
[INFO] [stdout]    |
[INFO] [stdout] 39 | fn dfs_2(
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day23_part1` is never used
[INFO] [stdout]   --> src/day_23.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub fn day23_part1() -> u64 {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vertex` is never constructed
[INFO] [stdout]   --> src/day_23.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | struct Vertex {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/day_23.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 85 | impl Vertex {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 86 |     pub fn new(id_in: usize, edge_in: usize) -> Vertex {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_num_connections` is never used
[INFO] [stdout]   --> src/day_23.rs:94:4
[INFO] [stdout]    |
[INFO] [stdout] 94 | fn get_num_connections(grid: &Vec<Vec<bool>>, row: usize, col: usize) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `merge_edges` is never used
[INFO] [stdout]    --> src/day_23.rs:101:4
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn merge_edges(grid: &Vec<Vec<bool>>, adjlist: &mut Vec<Vec<Vertex>>, row: usize, col: usize) {}
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day23_part2` is never used
[INFO] [stdout]    --> src/day_23.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub fn day23_part2() -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Hail` is never constructed
[INFO] [stdout]  --> src/day_24.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Hail {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_XY` is never used
[INFO] [stdout]   --> src/day_24.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const MIN_XY: f64 = 200000000000000.0;
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_XY` is never used
[INFO] [stdout]   --> src/day_24.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const MAX_XY: f64 = 400000000000000.0;
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `in_range` is never used
[INFO] [stdout]   --> src/day_24.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn in_range(p1: f64, v1: f64, t1: f64, p2: f64, v2: f64, t2: f64, dependent: bool) -> bool {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rref` is never used
[INFO] [stdout]   --> src/day_24.rs:26:4
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn rref(a: &mut [[f64; 2]; 2], b_col: &mut [f64; 2]) -> (f64, f64, bool, bool) {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calc_time` is never used
[INFO] [stdout]   --> src/day_24.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn calc_time(a: &mut [[f64; 2]; 2], b_col: &mut [f64; 2]) -> (f64, f64, bool, bool) {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_xy_intersection` is never used
[INFO] [stdout]   --> src/day_24.rs:65:4
[INFO] [stdout]    |
[INFO] [stdout] 65 | fn has_xy_intersection(x1: &Hail, x2: &Hail) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_from_str` is never used
[INFO] [stdout]   --> src/day_24.rs:90:4
[INFO] [stdout]    |
[INFO] [stdout] 90 | fn parse_from_str(line: &str) -> Hail {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day24_part1` is never used
[INFO] [stdout]    --> src/day_24.rs:102:8
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn day24_part1() -> i128 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day24_part2` is never used
[INFO] [stdout]    --> src/day_24.rs:120:8
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub fn day24_part2() -> i128 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_find` is never used
[INFO] [stdout]  --> src/day_25.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn set_find(vertex: &mut String, reps: &mut HashMap<String, String>) -> String {
[INFO] [stdout]   |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_union` is never used
[INFO] [stdout]   --> src/day_25.rs:22:4
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn set_union(vertex_a: &mut String, vertex_b: &mut String, reps: &mut HashMap<String, String>) {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_comps` is never used
[INFO] [stdout]   --> src/day_25.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn count_comps(edges: &HashSet<(String, String)>, reps: &mut HashMap<String, String>) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day25_part1` is never used
[INFO] [stdout]   --> src/day_25.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn day25_part1() -> u64 {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DIRECTIONS` is never used
[INFO] [stdout]  --> src/day_3.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const DIRECTIONS: &[(i32, i32)] = &[
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_part_number` is never used
[INFO] [stdout]   --> src/day_3.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn is_part_number(input: &Vec<Vec<char>>, i: i32, j: i32) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `edit_string` is never used
[INFO] [stdout]   --> src/day_3.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn edit_string(s: String) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_value` is never used
[INFO] [stdout]   --> src/day_3.rs:31:4
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn get_value(input: &mut Vec<Vec<char>>, i: usize, mut j: usize) -> (u64, bool) {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_gear_ratio` is never used
[INFO] [stdout]   --> src/day_3.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn get_gear_ratio(input: &Vec<Vec<char>>, i: i32, j: i32) -> u64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day3_part1` is never used
[INFO] [stdout]   --> src/day_3.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn day3_part1() -> u32 {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day3_part2` is never used
[INFO] [stdout]    --> src/day_3.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub fn day3_part2() -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day4_part1` is never used
[INFO] [stdout]  --> src/day_4.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn day4_part1() -> u64 {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day4_part1_cursed` is never used
[INFO] [stdout]   --> src/day_4.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn day4_part1_cursed() -> u64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day4_part2` is never used
[INFO] [stdout]   --> src/day_4.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub fn day4_part2() -> u64 {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day5_part1` is never used
[INFO] [stdout]  --> src/day_5.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn day5_part1() -> u64 {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day5_part2` is never used
[INFO] [stdout]  --> src/day_5.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn day5_part2() -> u64 {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]  --> src/day_6.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn part_1() -> usize {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]   --> src/day_6.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn part_2() -> u64 {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_score` is never used
[INFO] [stdout]  --> src/day_7.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn get_score(cards: &String) -> usize {
[INFO] [stdout]   |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]   --> src/day_7.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn part_1() -> usize {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_score_joker` is never used
[INFO] [stdout]   --> src/day_7.rs:87:4
[INFO] [stdout]    |
[INFO] [stdout] 87 | fn get_score_joker(cards: &String) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_7.rs:162:8
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub fn part_2() -> usize {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]  --> src/day_8.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn part_1() -> usize {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]   --> src/day_8.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn part_2() -> usize {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]  --> src/day_9.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn part_1() -> i64 {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]   --> src/day_9.rs:39:8
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn part_2() -> i64 {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day_8.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 56 |     let mut curr_nodes: Vec<String> = edges
[INFO] [stdout]    |         ----^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ENGLISH_NUMBERS` is never used
[INFO] [stdout]  --> src/day_1.rs:5:7
[INFO] [stdout]   |
[INFO] [stdout] 5 | const ENGLISH_NUMBERS: phf::Map<&str, i32> = phf_map! {
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `helper` is never used
[INFO] [stdout]   --> src/day_1.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn helper(str: &str) -> i32 {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day1` is never used
[INFO] [stdout]   --> src/day_1.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn day1() -> i32 {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]  --> src/day_10.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Point {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]   --> src/day_10.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn part_1() -> usize {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_10.rs:176:8
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub fn part_2() -> usize {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]  --> src/day_11.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn part_1() -> i64 {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]   --> src/day_11.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub fn part_2() -> i64 {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_if_valid` is never used
[INFO] [stdout]  --> src/day_12.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn check_if_valid(springs: &[char], groups: &[usize]) -> usize {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_perm` is never used
[INFO] [stdout]   --> src/day_12.rs:22:4
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn check_perm(springs: &mut [char], groups: &[usize], index: usize) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]   --> src/day_12.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn part_1() -> usize {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]   --> src/day_12.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn part_2() -> usize {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day2` is never used
[INFO] [stdout]  --> src/day_2.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn day2() -> u64 {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PointAndSteps` is never constructed
[INFO] [stdout]  --> src/day_21.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct PointAndSteps {
[INFO] [stdout]   |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]   --> src/day_21.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct Point {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day21_part1` is never used
[INFO] [stdout]   --> src/day_21.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn day21_part1() -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day21_part2` is never used
[INFO] [stdout]    --> src/day_21.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn day21_part2() -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dfs_1` is never used
[INFO] [stdout]  --> src/day_23.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn dfs_1(
[INFO] [stdout]   |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dfs_2` is never used
[INFO] [stdout]   --> src/day_23.rs:39:4
[INFO] [stdout]    |
[INFO] [stdout] 39 | fn dfs_2(
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day23_part1` is never used
[INFO] [stdout]   --> src/day_23.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub fn day23_part1() -> u64 {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vertex` is never constructed
[INFO] [stdout]   --> src/day_23.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | struct Vertex {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/day_23.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 85 | impl Vertex {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] 86 |     pub fn new(id_in: usize, edge_in: usize) -> Vertex {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_num_connections` is never used
[INFO] [stdout]   --> src/day_23.rs:94:4
[INFO] [stdout]    |
[INFO] [stdout] 94 | fn get_num_connections(grid: &Vec<Vec<bool>>, row: usize, col: usize) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `merge_edges` is never used
[INFO] [stdout]    --> src/day_23.rs:101:4
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn merge_edges(grid: &Vec<Vec<bool>>, adjlist: &mut Vec<Vec<Vertex>>, row: usize, col: usize) {}
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day23_part2` is never used
[INFO] [stdout]    --> src/day_23.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub fn day23_part2() -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Hail` is never constructed
[INFO] [stdout]  --> src/day_24.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Hail {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_XY` is never used
[INFO] [stdout]   --> src/day_24.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const MIN_XY: f64 = 200000000000000.0;
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_XY` is never used
[INFO] [stdout]   --> src/day_24.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const MAX_XY: f64 = 400000000000000.0;
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `in_range` is never used
[INFO] [stdout]   --> src/day_24.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn in_range(p1: f64, v1: f64, t1: f64, p2: f64, v2: f64, t2: f64, dependent: bool) -> bool {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rref` is never used
[INFO] [stdout]   --> src/day_24.rs:26:4
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn rref(a: &mut [[f64; 2]; 2], b_col: &mut [f64; 2]) -> (f64, f64, bool, bool) {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calc_time` is never used
[INFO] [stdout]   --> src/day_24.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn calc_time(a: &mut [[f64; 2]; 2], b_col: &mut [f64; 2]) -> (f64, f64, bool, bool) {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_xy_intersection` is never used
[INFO] [stdout]   --> src/day_24.rs:65:4
[INFO] [stdout]    |
[INFO] [stdout] 65 | fn has_xy_intersection(x1: &Hail, x2: &Hail) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_from_str` is never used
[INFO] [stdout]   --> src/day_24.rs:90:4
[INFO] [stdout]    |
[INFO] [stdout] 90 | fn parse_from_str(line: &str) -> Hail {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day24_part1` is never used
[INFO] [stdout]    --> src/day_24.rs:102:8
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn day24_part1() -> i128 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day24_part2` is never used
[INFO] [stdout]    --> src/day_24.rs:120:8
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub fn day24_part2() -> i128 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_find` is never used
[INFO] [stdout]  --> src/day_25.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn set_find(vertex: &mut String, reps: &mut HashMap<String, String>) -> String {
[INFO] [stdout]   |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_union` is never used
[INFO] [stdout]   --> src/day_25.rs:22:4
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn set_union(vertex_a: &mut String, vertex_b: &mut String, reps: &mut HashMap<String, String>) {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_comps` is never used
[INFO] [stdout]   --> src/day_25.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn count_comps(edges: &HashSet<(String, String)>, reps: &mut HashMap<String, String>) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day25_part1` is never used
[INFO] [stdout]   --> src/day_25.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn day25_part1() -> u64 {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DIRECTIONS` is never used
[INFO] [stdout]  --> src/day_3.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const DIRECTIONS: &[(i32, i32)] = &[
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_part_number` is never used
[INFO] [stdout]   --> src/day_3.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn is_part_number(input: &Vec<Vec<char>>, i: i32, j: i32) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `edit_string` is never used
[INFO] [stdout]   --> src/day_3.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn edit_string(s: String) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_value` is never used
[INFO] [stdout]   --> src/day_3.rs:31:4
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn get_value(input: &mut Vec<Vec<char>>, i: usize, mut j: usize) -> (u64, bool) {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_gear_ratio` is never used
[INFO] [stdout]   --> src/day_3.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn get_gear_ratio(input: &Vec<Vec<char>>, i: i32, j: i32) -> u64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day3_part1` is never used
[INFO] [stdout]   --> src/day_3.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn day3_part1() -> u32 {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day3_part2` is never used
[INFO] [stdout]    --> src/day_3.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub fn day3_part2() -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day4_part1` is never used
[INFO] [stdout]  --> src/day_4.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn day4_part1() -> u64 {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day4_part1_cursed` is never used
[INFO] [stdout]   --> src/day_4.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn day4_part1_cursed() -> u64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day4_part2` is never used
[INFO] [stdout]   --> src/day_4.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub fn day4_part2() -> u64 {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day5_part1` is never used
[INFO] [stdout]  --> src/day_5.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn day5_part1() -> u64 {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `day5_part2` is never used
[INFO] [stdout]  --> src/day_5.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn day5_part2() -> u64 {
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]  --> src/day_6.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn part_1() -> usize {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]   --> src/day_6.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn part_2() -> u64 {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_score` is never used
[INFO] [stdout]  --> src/day_7.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn get_score(cards: &String) -> usize {
[INFO] [stdout]   |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]   --> src/day_7.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn part_1() -> usize {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_score_joker` is never used
[INFO] [stdout]   --> src/day_7.rs:87:4
[INFO] [stdout]    |
[INFO] [stdout] 87 | fn get_score_joker(cards: &String) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]    --> src/day_7.rs:162:8
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub fn part_2() -> usize {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]  --> src/day_8.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn part_1() -> usize {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]   --> src/day_8.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn part_2() -> usize {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_1` is never used
[INFO] [stdout]  --> src/day_9.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn part_1() -> i64 {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `part_2` is never used
[INFO] [stdout]   --> src/day_9.rs:39:8
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn part_2() -> i64 {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 9.92s
[INFO] running `Command { std: "docker" "inspect" "45d24f7bdd6dda19d8f421692d9a6293fee075f20c56a398a2d576cf785ec242", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "45d24f7bdd6dda19d8f421692d9a6293fee075f20c56a398a2d576cf785ec242", kill_on_drop: false }`
[INFO] [stdout] 45d24f7bdd6dda19d8f421692d9a6293fee075f20c56a398a2d576cf785ec242
