[INFO] cloning repository https://github.com/mahmudsudo/aoc_2024_rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mahmudsudo/aoc_2024_rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmahmudsudo%2Faoc_2024_rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmahmudsudo%2Faoc_2024_rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] b6f14e4968b917acd9116a8ee6e1dab7dbb895d5
[INFO] checking mahmudsudo/aoc_2024_rs against master#36b21637e93b038453924d3c66821089e71d8baa for pr-143164
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmahmudsudo%2Faoc_2024_rs" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/mahmudsudo/aoc_2024_rs
[INFO] finished tweaking git repo https://github.com/mahmudsudo/aoc_2024_rs
[INFO] tweaked toml for git repo https://github.com/mahmudsudo/aoc_2024_rs written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/mahmudsudo/aoc_2024_rs on toolchain 36b21637e93b038453924d3c66821089e71d8baa
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+36b21637e93b038453924d3c66821089e71d8baa" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/mahmudsudo/aoc_2024_rs 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" "+36b21637e93b038453924d3c66821089e71d8baa" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[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:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+36b21637e93b038453924d3c66821089e71d8baa" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] da1b9c1a4243ad666647a17f657a1502db44ce90ee75db264cb0ee7fc768fd30
[INFO] running `Command { std: "docker" "start" "-a" "da1b9c1a4243ad666647a17f657a1502db44ce90ee75db264cb0ee7fc768fd30", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "da1b9c1a4243ad666647a17f657a1502db44ce90ee75db264cb0ee7fc768fd30", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "da1b9c1a4243ad666647a17f657a1502db44ce90ee75db264cb0ee7fc768fd30", kill_on_drop: false }`
[INFO] [stdout] da1b9c1a4243ad666647a17f657a1502db44ce90ee75db264cb0ee7fc768fd30
[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:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+36b21637e93b038453924d3c66821089e71d8baa" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] bb30ab3a1409b457608d66489b43a94f668af3faca3773f11156048be1c9790d
[INFO] running `Command { std: "docker" "start" "-a" "bb30ab3a1409b457608d66489b43a94f668af3faca3773f11156048be1c9790d", kill_on_drop: false }`
[INFO] [stderr]     Checking memchr v2.7.4
[INFO] [stderr]     Checking regex-syntax v0.8.5
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]     Checking regex-automata v0.4.9
[INFO] [stderr]     Checking regex v1.11.1
[INFO] [stderr]     Checking aoc_2024_rs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]  --> src/day4.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VecDeque`
[INFO] [stdout]  --> src/day6.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{HashSet, VecDeque};
[INFO] [stdout]   |                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]  --> src/day4.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VecDeque`
[INFO] [stdout]  --> src/day6.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{HashSet, VecDeque};
[INFO] [stdout]   |                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_dir`
[INFO] [stdout]   --> src/day6.rs:73:21
[INFO] [stdout]    |
[INFO] [stdout] 73 |     let (start_pos, start_dir) = find_starting_info(map);
[INFO] [stdout]    |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_dir`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dx`
[INFO] [stdout]   --> src/day8.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let dx = far.x - near.x;
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_dx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dy`
[INFO] [stdout]   --> src/day8.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let dy = far.y - near.y;
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_dy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_dir`
[INFO] [stdout]   --> src/day6.rs:73:21
[INFO] [stdout]    |
[INFO] [stdout] 73 |     let (start_pos, start_dir) = find_starting_info(map);
[INFO] [stdout]    |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_dir`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dx`
[INFO] [stdout]   --> src/day8.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let dx = far.x - near.x;
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_dx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dy`
[INFO] [stdout]   --> src/day8.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let dy = far.y - near.y;
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_dy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]  --> src/day1.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn solve_part1() -> i64 {
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]  --> src/day1.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn solve_part2()-> i64 {
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_total_distance` is never used
[INFO] [stdout]   --> src/day1.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn calculate_total_distance(input: &str) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_similarity_score` is never used
[INFO] [stdout]   --> src/day1.rs:48:4
[INFO] [stdout]    |
[INFO] [stdout] 48 | fn calculate_similarity_score(input: &str) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]  --> src/day2.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn solve_part1() -> usize{
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]   --> src/day2.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn solve_part2() -> usize{
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_safe` is never used
[INFO] [stdout]   --> src/day2.rs:39:4
[INFO] [stdout]    |
[INFO] [stdout] 39 | fn is_safe(levels: &Vec<i32>) -> bool {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_safe_with_dampener` is never used
[INFO] [stdout]   --> src/day2.rs:71:4
[INFO] [stdout]    |
[INFO] [stdout] 71 | fn is_safe_with_dampener(levels: &Vec<i32>) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]  --> src/day3.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn solve_part1() -> i32 {
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Instruction` is never used
[INFO] [stdout]   --> src/day3.rs:21:6
[INFO] [stdout]    |
[INFO] [stdout] 21 | enum Instruction {
[INFO] [stdout]    |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_instructions` is never used
[INFO] [stdout]   --> src/day3.rs:27:4
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn parse_instructions(input: &str) -> Vec<Instruction> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]   --> src/day3.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn solve_part2() -> i64 {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `Input` is never used
[INFO] [stdout]  --> src/day4.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | const  Input :&str = include_str!("../inputs/day4.txt");
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_xmas` is never used
[INFO] [stdout]  --> src/day4.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn count_xmas(input: &str) -> usize {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_xmas` is never used
[INFO] [stdout]   --> src/day4.rs:39:4
[INFO] [stdout]    |
[INFO] [stdout] 39 | fn check_xmas(grid: &[Vec<char>], i: usize, j: usize, di: i32, dj: i32) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_x_mas` is never used
[INFO] [stdout]   --> src/day4.rs:59:4
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn count_x_mas(input: &str) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_x_mas` is never used
[INFO] [stdout]   --> src/day4.rs:78:4
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn check_x_mas(grid: &[Vec<char>], i: usize, j: usize) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]    --> src/day4.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn solve_part1() -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]    --> src/day4.rs:104:8
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub fn solve_part2() -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]  --> src/day5.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn parse_input(input: &str) -> (Vec<(u32, u32)>, Vec<Vec<u32>>) {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_valid_order` is never used
[INFO] [stdout]   --> src/day5.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn is_valid_order(update: &[u32], rules: &[(u32, u32)]) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `topological_sort` is never used
[INFO] [stdout]   --> src/day5.rs:49:4
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn topological_sort(pages: &[u32], rules: &[(u32, u32)]) -> Vec<u32> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]   --> src/day5.rs:97:8
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub fn solve_part1() -> u32 {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]    --> src/day5.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub fn solve_part2() -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Direction` is never used
[INFO] [stdout]  --> src/day6.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | enum Direction {
[INFO] [stdout]   |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `turn_right` and `move_position` are never used
[INFO] [stdout]   --> src/day6.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl Direction {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] 12 |     fn turn_right(&self) -> Self {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn move_position(&self, (x, y): (i32, i32)) -> (i32, i32) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_guard_patrol` is never used
[INFO] [stdout]   --> src/day6.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn solve_guard_patrol(map: &Vec<Vec<char>>) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_guard_patrol_loop_positions` is never used
[INFO] [stdout]   --> src/day6.rs:72:4
[INFO] [stdout]    |
[INFO] [stdout] 72 | fn solve_guard_patrol_loop_positions(map: &Vec<Vec<char>>) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `creates_loop` is never used
[INFO] [stdout]   --> src/day6.rs:97:4
[INFO] [stdout]    |
[INFO] [stdout] 97 | fn creates_loop(map: &Vec<Vec<char>>) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_starting_info` is never used
[INFO] [stdout]    --> src/day6.rs:135:4
[INFO] [stdout]     |
[INFO] [stdout] 135 | fn find_starting_info(map: &Vec<Vec<char>>) -> ((i32, i32), Direction) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_out_of_bounds` is never used
[INFO] [stdout]    --> src/day6.rs:150:4
[INFO] [stdout]     |
[INFO] [stdout] 150 | fn is_out_of_bounds(map: &Vec<Vec<char>>, (x, y): (i32, i32)) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_blocked` is never used
[INFO] [stdout]    --> src/day6.rs:154:4
[INFO] [stdout]     |
[INFO] [stdout] 154 | fn is_blocked(map: &Vec<Vec<char>>, (x, y): (i32, i32)) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]    --> src/day6.rs:158:4
[INFO] [stdout]     |
[INFO] [stdout] 158 | fn parse_input(input: &str) -> Vec<Vec<char>> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]    --> src/day6.rs:162:8
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub fn solve_part1() -> usize{
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]    --> src/day6.rs:165:8
[INFO] [stdout]     |
[INFO] [stdout] 165 | pub fn solve_part2() -> usize{
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Equation` is never constructed
[INFO] [stdout]  --> src/day7.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct Equation {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `concatenate_numbers` is never used
[INFO] [stdout]   --> src/day7.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn concatenate_numbers(a: i64, b: i64) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_expression` is never used
[INFO] [stdout]   --> src/day7.rs:16:4
[INFO] [stdout]    |
[INFO] [stdout] 16 | fn evaluate_expression(numbers: &[i64], operators: &[char]) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_operator_combinations` is never used
[INFO] [stdout]   --> src/day7.rs:29:4
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn generate_operator_combinations(length: usize) -> Vec<Vec<char>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_equation` is never used
[INFO] [stdout]   --> src/day7.rs:60:4
[INFO] [stdout]    |
[INFO] [stdout] 60 | fn solve_equation(equation: &Equation) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/day7.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn parse_input(filename: &str) -> Vec<Equation> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]   --> src/day7.rs:90:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub fn solve_part1()->i64{
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]    --> src/day7.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn solve_part2()->i64{
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]  --> src/day8.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Point {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/day8.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 9  | impl Point {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] 10 |     fn new(x: i32, y: i32) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_antenna_map` is never used
[INFO] [stdout]   --> src/day8.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn parse_antenna_map(input: &str) -> HashMap<char, Vec<Point>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_antinode` is never used
[INFO] [stdout]   --> src/day8.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn get_antinode(near: Point, far: Point) -> Point {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_antinodes` is never used
[INFO] [stdout]   --> src/day8.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn calculate_antinodes(antennas: &[Point]) -> HashSet<Point> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_antinodes_in_bounds` is never used
[INFO] [stdout]   --> src/day8.rs:68:4
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn count_antinodes_in_bounds(input: &str) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_collinear` is never used
[INFO] [stdout]   --> src/day8.rs:95:4
[INFO] [stdout]    |
[INFO] [stdout] 95 | fn is_collinear(p1: Point, p2: Point, p3: Point) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_antinodes` is never used
[INFO] [stdout]    --> src/day8.rs:102:4
[INFO] [stdout]     |
[INFO] [stdout] 102 | fn find_antinodes(antennas: &[Point], width: i32, height: i32) -> HashSet<Point> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_antinodes_in_bounds2` is never used
[INFO] [stdout]    --> src/day8.rs:129:4
[INFO] [stdout]     |
[INFO] [stdout] 129 | fn count_antinodes_in_bounds2(input: &str) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]    --> src/day8.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn solve_part1() -> usize{
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]    --> src/day8.rs:150:8
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub fn solve_part2() -> usize{
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compact_disk` is never used
[INFO] [stdout]  --> src/day9.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn compact_disk(disk: &mut Vec<Option<usize>>) {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_disk_map` is never used
[INFO] [stdout]   --> src/day9.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn parse_disk_map(input: &str) -> Vec<u32> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `expand_disk_map` is never used
[INFO] [stdout]   --> src/day9.rs:29:4
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn expand_disk_map(lengths: &[u32]) -> Vec<Option<usize>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `File` is never constructed
[INFO] [stdout]   --> src/day9.rs:50:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | struct File {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_files` is never used
[INFO] [stdout]   --> src/day9.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn find_files(disk: &[Option<usize>]) -> Vec<File> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_free_space` is never used
[INFO] [stdout]   --> src/day9.rs:76:4
[INFO] [stdout]    |
[INFO] [stdout] 76 | fn find_free_space(disk: &[Option<usize>], start: usize, needed: usize) -> Option<usize> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compact_disk_whole_files` is never used
[INFO] [stdout]   --> src/day9.rs:97:4
[INFO] [stdout]    |
[INFO] [stdout] 97 | fn compact_disk_whole_files(disk: &mut Vec<Option<usize>>) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_checksum` is never used
[INFO] [stdout]    --> src/day9.rs:112:4
[INFO] [stdout]     |
[INFO] [stdout] 112 | fn calculate_checksum(disk: &[Option<usize>]) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]    --> src/day9.rs:121:9
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub  fn solve_part2() -> usize {
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]    --> src/day9.rs:128:8
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub fn solve_part1() -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]  --> src/day10.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Point {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `neighbors` are never used
[INFO] [stdout]   --> src/day10.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 9  | impl Point {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 10 |     fn new(x: i32, y: i32) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     fn neighbors(&self) -> impl Iterator<Item = Point> + '_ {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Grid` is never constructed
[INFO] [stdout]   --> src/day10.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct Grid {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/day10.rs:27:11
[INFO] [stdout]     |
[INFO] [stdout] 26  | impl Grid {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] 27  |    pub fn from_str(input: &str) -> Self {
[INFO] [stdout]     |           ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45  |     fn get(&self, point: Point) -> Option<u8> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 57  |     fn find_trailheads(&self) -> Vec<Point> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70  |     fn get_valid_neighbors(&self, point: Point) -> impl Iterator<Item = Point> + '_ {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77  |     fn find_reachable_nines(&self, start: Point) -> HashSet<Point> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     fn count_distinct_paths(&self, start: Point) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn solve_part1(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn solve_part2(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CacheKey` is never constructed
[INFO] [stdout]  --> src/day11.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct CacheKey {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blink` is never used
[INFO] [stdout]  --> src/day11.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn blink(stone: u64, n: usize, cache: &mut HashMap<CacheKey, usize>) -> usize {
[INFO] [stdout]   |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/day11.rs:36:4
[INFO] [stdout]    |
[INFO] [stdout] 36 | fn parse_input(input: &str) -> Vec<u64> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]   --> src/day11.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn solve_part1() -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Point` is never used
[INFO] [stdout]  --> src/day12.rs:3:6
[INFO] [stdout]   |
[INFO] [stdout] 3 | type Point = (i32, i32);
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DIRECTIONS` is never used
[INFO] [stdout]  --> src/day12.rs:5:7
[INFO] [stdout]   |
[INFO] [stdout] 5 | const DIRECTIONS: [(i32, i32); 4] = [(1, 0), (0, 1), (-1, 0), (0, -1)];
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CELL_SIZE` is never used
[INFO] [stdout]  --> src/day12.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const CELL_SIZE: usize = 3;
[INFO] [stdout]   |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Region` is never constructed
[INFO] [stdout]  --> src/day12.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | struct Region {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `price`, and `side_price` are never used
[INFO] [stdout]   --> src/day12.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Region {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 16 |     fn new(idx: char, start_position: Point) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     fn price(&self) -> i32 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     fn side_price(&self) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Field` is never constructed
[INFO] [stdout]   --> src/day12.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Field {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/day12.rs:44:11
[INFO] [stdout]     |
[INFO] [stdout] 43  | impl Field {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 44  |    pub fn new(field_map: Vec<Vec<char>>) -> Self {
[INFO] [stdout]     |           ^^^
[INFO] [stdout] ...
[INFO] [stdout] 67  |     fn fill_region(&mut self, start: Point, remaining: &mut HashSet<Point>) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     fn neighbourhood(&self, position: Point) -> Vec<Vec<i32>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     fn count_corners(&self, position: Point) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     fn out_of_bounds(&self, position: Point) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |    pub fn price(&self) -> i32 {
[INFO] [stdout]     |           ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn bulk_price(&self) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `Input` should have an upper case name
[INFO] [stdout]  --> src/day4.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | const  Input :&str = include_str!("../inputs/day4.txt");
[INFO] [stdout]   |        ^^^^^ help: convert the identifier to upper case: `INPUT`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_upper_case_globals)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]  --> src/day1.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn solve_part1() -> i64 {
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]  --> src/day1.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn solve_part2()-> i64 {
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_total_distance` is never used
[INFO] [stdout]   --> src/day1.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn calculate_total_distance(input: &str) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_similarity_score` is never used
[INFO] [stdout]   --> src/day1.rs:48:4
[INFO] [stdout]    |
[INFO] [stdout] 48 | fn calculate_similarity_score(input: &str) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]  --> src/day2.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn solve_part1() -> usize{
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]   --> src/day2.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn solve_part2() -> usize{
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_safe` is never used
[INFO] [stdout]   --> src/day2.rs:39:4
[INFO] [stdout]    |
[INFO] [stdout] 39 | fn is_safe(levels: &Vec<i32>) -> bool {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_safe_with_dampener` is never used
[INFO] [stdout]   --> src/day2.rs:71:4
[INFO] [stdout]    |
[INFO] [stdout] 71 | fn is_safe_with_dampener(levels: &Vec<i32>) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]  --> src/day3.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn solve_part1() -> i32 {
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Instruction` is never used
[INFO] [stdout]   --> src/day3.rs:21:6
[INFO] [stdout]    |
[INFO] [stdout] 21 | enum Instruction {
[INFO] [stdout]    |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_instructions` is never used
[INFO] [stdout]   --> src/day3.rs:27:4
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn parse_instructions(input: &str) -> Vec<Instruction> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]   --> src/day3.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn solve_part2() -> i64 {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `Input` is never used
[INFO] [stdout]  --> src/day4.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | const  Input :&str = include_str!("../inputs/day4.txt");
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_xmas` is never used
[INFO] [stdout]  --> src/day4.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn count_xmas(input: &str) -> usize {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_xmas` is never used
[INFO] [stdout]   --> src/day4.rs:39:4
[INFO] [stdout]    |
[INFO] [stdout] 39 | fn check_xmas(grid: &[Vec<char>], i: usize, j: usize, di: i32, dj: i32) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_x_mas` is never used
[INFO] [stdout]   --> src/day4.rs:59:4
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn count_x_mas(input: &str) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_x_mas` is never used
[INFO] [stdout]   --> src/day4.rs:78:4
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn check_x_mas(grid: &[Vec<char>], i: usize, j: usize) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]    --> src/day4.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn solve_part1() -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]    --> src/day4.rs:104:8
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub fn solve_part2() -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]  --> src/day5.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn parse_input(input: &str) -> (Vec<(u32, u32)>, Vec<Vec<u32>>) {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_valid_order` is never used
[INFO] [stdout]   --> src/day5.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn is_valid_order(update: &[u32], rules: &[(u32, u32)]) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `topological_sort` is never used
[INFO] [stdout]   --> src/day5.rs:49:4
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn topological_sort(pages: &[u32], rules: &[(u32, u32)]) -> Vec<u32> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]   --> src/day5.rs:97:8
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub fn solve_part1() -> u32 {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]    --> src/day5.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub fn solve_part2() -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Direction` is never used
[INFO] [stdout]  --> src/day6.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | enum Direction {
[INFO] [stdout]   |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `turn_right` and `move_position` are never used
[INFO] [stdout]   --> src/day6.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl Direction {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] 12 |     fn turn_right(&self) -> Self {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn move_position(&self, (x, y): (i32, i32)) -> (i32, i32) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_guard_patrol` is never used
[INFO] [stdout]   --> src/day6.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn solve_guard_patrol(map: &Vec<Vec<char>>) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_guard_patrol_loop_positions` is never used
[INFO] [stdout]   --> src/day6.rs:72:4
[INFO] [stdout]    |
[INFO] [stdout] 72 | fn solve_guard_patrol_loop_positions(map: &Vec<Vec<char>>) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `creates_loop` is never used
[INFO] [stdout]   --> src/day6.rs:97:4
[INFO] [stdout]    |
[INFO] [stdout] 97 | fn creates_loop(map: &Vec<Vec<char>>) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_starting_info` is never used
[INFO] [stdout]    --> src/day6.rs:135:4
[INFO] [stdout]     |
[INFO] [stdout] 135 | fn find_starting_info(map: &Vec<Vec<char>>) -> ((i32, i32), Direction) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_out_of_bounds` is never used
[INFO] [stdout]    --> src/day6.rs:150:4
[INFO] [stdout]     |
[INFO] [stdout] 150 | fn is_out_of_bounds(map: &Vec<Vec<char>>, (x, y): (i32, i32)) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_blocked` is never used
[INFO] [stdout]    --> src/day6.rs:154:4
[INFO] [stdout]     |
[INFO] [stdout] 154 | fn is_blocked(map: &Vec<Vec<char>>, (x, y): (i32, i32)) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]    --> src/day6.rs:158:4
[INFO] [stdout]     |
[INFO] [stdout] 158 | fn parse_input(input: &str) -> Vec<Vec<char>> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]    --> src/day6.rs:162:8
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub fn solve_part1() -> usize{
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]    --> src/day6.rs:165:8
[INFO] [stdout]     |
[INFO] [stdout] 165 | pub fn solve_part2() -> usize{
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Equation` is never constructed
[INFO] [stdout]  --> src/day7.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct Equation {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `concatenate_numbers` is never used
[INFO] [stdout]   --> src/day7.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn concatenate_numbers(a: i64, b: i64) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_expression` is never used
[INFO] [stdout]   --> src/day7.rs:16:4
[INFO] [stdout]    |
[INFO] [stdout] 16 | fn evaluate_expression(numbers: &[i64], operators: &[char]) -> i64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_operator_combinations` is never used
[INFO] [stdout]   --> src/day7.rs:29:4
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn generate_operator_combinations(length: usize) -> Vec<Vec<char>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_equation` is never used
[INFO] [stdout]   --> src/day7.rs:60:4
[INFO] [stdout]    |
[INFO] [stdout] 60 | fn solve_equation(equation: &Equation) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/day7.rs:73:4
[INFO] [stdout]    |
[INFO] [stdout] 73 | fn parse_input(filename: &str) -> Vec<Equation> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]   --> src/day7.rs:90:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub fn solve_part1()->i64{
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]    --> src/day7.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn solve_part2()->i64{
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]  --> src/day8.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Point {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/day8.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 9  | impl Point {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] 10 |     fn new(x: i32, y: i32) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_antenna_map` is never used
[INFO] [stdout]   --> src/day8.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn parse_antenna_map(input: &str) -> HashMap<char, Vec<Point>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_antinode` is never used
[INFO] [stdout]   --> src/day8.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn get_antinode(near: Point, far: Point) -> Point {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_antinodes` is never used
[INFO] [stdout]   --> src/day8.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn calculate_antinodes(antennas: &[Point]) -> HashSet<Point> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_antinodes_in_bounds` is never used
[INFO] [stdout]   --> src/day8.rs:68:4
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn count_antinodes_in_bounds(input: &str) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_collinear` is never used
[INFO] [stdout]   --> src/day8.rs:95:4
[INFO] [stdout]    |
[INFO] [stdout] 95 | fn is_collinear(p1: Point, p2: Point, p3: Point) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_antinodes` is never used
[INFO] [stdout]    --> src/day8.rs:102:4
[INFO] [stdout]     |
[INFO] [stdout] 102 | fn find_antinodes(antennas: &[Point], width: i32, height: i32) -> HashSet<Point> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_antinodes_in_bounds2` is never used
[INFO] [stdout]    --> src/day8.rs:129:4
[INFO] [stdout]     |
[INFO] [stdout] 129 | fn count_antinodes_in_bounds2(input: &str) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]    --> src/day8.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn solve_part1() -> usize{
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]    --> src/day8.rs:150:8
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub fn solve_part2() -> usize{
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compact_disk` is never used
[INFO] [stdout]  --> src/day9.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn compact_disk(disk: &mut Vec<Option<usize>>) {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_disk_map` is never used
[INFO] [stdout]   --> src/day9.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn parse_disk_map(input: &str) -> Vec<u32> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `expand_disk_map` is never used
[INFO] [stdout]   --> src/day9.rs:29:4
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn expand_disk_map(lengths: &[u32]) -> Vec<Option<usize>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `File` is never constructed
[INFO] [stdout]   --> src/day9.rs:50:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | struct File {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_files` is never used
[INFO] [stdout]   --> src/day9.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn find_files(disk: &[Option<usize>]) -> Vec<File> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_free_space` is never used
[INFO] [stdout]   --> src/day9.rs:76:4
[INFO] [stdout]    |
[INFO] [stdout] 76 | fn find_free_space(disk: &[Option<usize>], start: usize, needed: usize) -> Option<usize> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compact_disk_whole_files` is never used
[INFO] [stdout]   --> src/day9.rs:97:4
[INFO] [stdout]    |
[INFO] [stdout] 97 | fn compact_disk_whole_files(disk: &mut Vec<Option<usize>>) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_checksum` is never used
[INFO] [stdout]    --> src/day9.rs:112:4
[INFO] [stdout]     |
[INFO] [stdout] 112 | fn calculate_checksum(disk: &[Option<usize>]) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]    --> src/day9.rs:121:9
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub  fn solve_part2() -> usize {
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]    --> src/day9.rs:128:8
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub fn solve_part1() -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]  --> src/day10.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct Point {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `neighbors` are never used
[INFO] [stdout]   --> src/day10.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 9  | impl Point {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 10 |     fn new(x: i32, y: i32) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     fn neighbors(&self) -> impl Iterator<Item = Point> + '_ {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Grid` is never constructed
[INFO] [stdout]   --> src/day10.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct Grid {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/day10.rs:27:11
[INFO] [stdout]     |
[INFO] [stdout] 26  | impl Grid {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] 27  |    pub fn from_str(input: &str) -> Self {
[INFO] [stdout]     |           ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45  |     fn get(&self, point: Point) -> Option<u8> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 57  |     fn find_trailheads(&self) -> Vec<Point> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70  |     fn get_valid_neighbors(&self, point: Point) -> impl Iterator<Item = Point> + '_ {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77  |     fn find_reachable_nines(&self, start: Point) -> HashSet<Point> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     fn count_distinct_paths(&self, start: Point) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn solve_part1(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn solve_part2(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CacheKey` is never constructed
[INFO] [stdout]  --> src/day11.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct CacheKey {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blink` is never used
[INFO] [stdout]  --> src/day11.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn blink(stone: u64, n: usize, cache: &mut HashMap<CacheKey, usize>) -> usize {
[INFO] [stdout]   |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_input` is never used
[INFO] [stdout]   --> src/day11.rs:36:4
[INFO] [stdout]    |
[INFO] [stdout] 36 | fn parse_input(input: &str) -> Vec<u64> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]   --> src/day11.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn solve_part1() -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Point` is never used
[INFO] [stdout]  --> src/day12.rs:3:6
[INFO] [stdout]   |
[INFO] [stdout] 3 | type Point = (i32, i32);
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DIRECTIONS` is never used
[INFO] [stdout]  --> src/day12.rs:5:7
[INFO] [stdout]   |
[INFO] [stdout] 5 | const DIRECTIONS: [(i32, i32); 4] = [(1, 0), (0, 1), (-1, 0), (0, -1)];
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CELL_SIZE` is never used
[INFO] [stdout]  --> src/day12.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const CELL_SIZE: usize = 3;
[INFO] [stdout]   |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Region` is never constructed
[INFO] [stdout]  --> src/day12.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | struct Region {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `price`, and `side_price` are never used
[INFO] [stdout]   --> src/day12.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Region {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 16 |     fn new(idx: char, start_position: Point) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     fn price(&self) -> i32 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     fn side_price(&self) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Field` is never constructed
[INFO] [stdout]   --> src/day12.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Field {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/day12.rs:44:11
[INFO] [stdout]     |
[INFO] [stdout] 43  | impl Field {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 44  |    pub fn new(field_map: Vec<Vec<char>>) -> Self {
[INFO] [stdout]     |           ^^^
[INFO] [stdout] ...
[INFO] [stdout] 67  |     fn fill_region(&mut self, start: Point, remaining: &mut HashSet<Point>) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     fn neighbourhood(&self, position: Point) -> Vec<Vec<i32>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     fn count_corners(&self, position: Point) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     fn out_of_bounds(&self, position: Point) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |    pub fn price(&self) -> i32 {
[INFO] [stdout]     |           ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn bulk_price(&self) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `Input` should have an upper case name
[INFO] [stdout]  --> src/day4.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | const  Input :&str = include_str!("../inputs/day4.txt");
[INFO] [stdout]   |        ^^^^^ help: convert the identifier to upper case: `INPUT`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_upper_case_globals)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.46s
[INFO] running `Command { std: "docker" "inspect" "bb30ab3a1409b457608d66489b43a94f668af3faca3773f11156048be1c9790d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bb30ab3a1409b457608d66489b43a94f668af3faca3773f11156048be1c9790d", kill_on_drop: false }`
[INFO] [stdout] bb30ab3a1409b457608d66489b43a94f668af3faca3773f11156048be1c9790d
