[INFO] cloning repository https://github.com/chadnickbok/aoc_22_rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/chadnickbok/aoc_22_rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fchadnickbok%2Faoc_22_rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fchadnickbok%2Faoc_22_rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 05b150cf52159f5cc1cbc5094208d56de44a4438
[INFO] checking chadnickbok/aoc_22_rust against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fchadnickbok%2Faoc_22_rust" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/chadnickbok/aoc_22_rust
[INFO] finished tweaking git repo https://github.com/chadnickbok/aoc_22_rust
[INFO] tweaked toml for git repo https://github.com/chadnickbok/aoc_22_rust written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/chadnickbok/aoc_22_rust on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/chadnickbok/aoc_22_rust already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] b98130e973c9d4c42321a9c38890f3a703b70d9e17f421858dd7d404d476b593
[INFO] running `Command { std: "docker" "start" "-a" "b98130e973c9d4c42321a9c38890f3a703b70d9e17f421858dd7d404d476b593", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b98130e973c9d4c42321a9c38890f3a703b70d9e17f421858dd7d404d476b593", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b98130e973c9d4c42321a9c38890f3a703b70d9e17f421858dd7d404d476b593", kill_on_drop: false }`
[INFO] [stdout] b98130e973c9d4c42321a9c38890f3a703b70d9e17f421858dd7d404d476b593
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7e9ae68c0052ae02d694f80e24d5f69f0bbff7f6db9d1c4a541a33584f38e4cd
[INFO] running `Command { std: "docker" "start" "-a" "7e9ae68c0052ae02d694f80e24d5f69f0bbff7f6db9d1c4a541a33584f38e4cd", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.47
[INFO] [stderr]    Compiling syn v1.0.105
[INFO] [stderr]    Compiling serde v1.0.150
[INFO] [stderr]    Compiling serde_json v1.0.89
[INFO] [stderr]    Compiling anyhow v1.0.66
[INFO] [stderr]     Checking itoa v1.0.4
[INFO] [stderr]    Compiling quote v1.0.21
[INFO] [stderr]    Compiling thiserror-impl v1.0.37
[INFO] [stderr]     Checking thiserror v1.0.37
[INFO] [stderr]     Checking aoc_22 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `BufRead` and `self`
[INFO] [stdout]  --> src/day1.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: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]   --> src/day1.rs:15:19
[INFO] [stdout]    |
[INFO] [stdout] 15 |             match (usize::from_str(&(raw_cals.trim()))) {
[INFO] [stdout]    |                   ^                                   ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 15 -             match (usize::from_str(&(raw_cals.trim()))) {
[INFO] [stdout] 15 +             match usize::from_str(&(raw_cals.trim()))  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]   --> src/day1.rs:16:17
[INFO] [stdout]    |
[INFO] [stdout] 16 |                 (Ok(cals)) => {
[INFO] [stdout]    |                 ^        ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 16 -                 (Ok(cals)) => {
[INFO] [stdout] 16 +                 Ok(cals)  => {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str::FromStr`
[INFO] [stdout]  --> src/day11.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::str::FromStr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Result as JSONResult`
[INFO] [stdout]  --> src/day13.rs:2:18
[INFO] [stdout]   |
[INFO] [stdout] 2 | use serde_json::{Result as JSONResult, Value};
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow`
[INFO] [stdout]  --> src/day13.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use anyhow::{Result, anyhow};
[INFO] [stdout]   |                      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow`
[INFO] [stdout]  --> src/day14.rs:2:22
[INFO] [stdout]   |
[INFO] [stdout] 2 | use anyhow::{Result, anyhow};
[INFO] [stdout]   |                      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow`
[INFO] [stdout]  --> src/day15.rs:2:22
[INFO] [stdout]   |
[INFO] [stdout] 2 | use anyhow::{Result, anyhow};
[INFO] [stdout]   |                      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp`
[INFO] [stdout]  --> src/day15.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::cmp;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]  --> src/day16.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> src/day2.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fs::File;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufRead` and `self`
[INFO] [stdout]  --> src/day2.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::{self, BufRead};
[INFO] [stdout]   |               ^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str::FromStr`
[INFO] [stdout]  --> src/day2.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::str::FromStr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::VecDeque`
[INFO] [stdout]  --> src/day7.rs:2:25
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{str::FromStr, collections::VecDeque};
[INFO] [stdout]   |                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufRead` and `self`
[INFO] [stdout]  --> src/day1.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: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]   --> src/day1.rs:15:19
[INFO] [stdout]    |
[INFO] [stdout] 15 |             match (usize::from_str(&(raw_cals.trim()))) {
[INFO] [stdout]    |                   ^                                   ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 15 -             match (usize::from_str(&(raw_cals.trim()))) {
[INFO] [stdout] 15 +             match usize::from_str(&(raw_cals.trim()))  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]   --> src/day1.rs:16:17
[INFO] [stdout]    |
[INFO] [stdout] 16 |                 (Ok(cals)) => {
[INFO] [stdout]    |                 ^        ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 16 -                 (Ok(cals)) => {
[INFO] [stdout] 16 +                 Ok(cals)  => {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str::FromStr`
[INFO] [stdout]  --> src/day11.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::str::FromStr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Result as JSONResult`
[INFO] [stdout]  --> src/day13.rs:2:18
[INFO] [stdout]   |
[INFO] [stdout] 2 | use serde_json::{Result as JSONResult, Value};
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow`
[INFO] [stdout]  --> src/day13.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use anyhow::{Result, anyhow};
[INFO] [stdout]   |                      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow`
[INFO] [stdout]  --> src/day14.rs:2:22
[INFO] [stdout]   |
[INFO] [stdout] 2 | use anyhow::{Result, anyhow};
[INFO] [stdout]   |                      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow`
[INFO] [stdout]  --> src/day15.rs:2:22
[INFO] [stdout]   |
[INFO] [stdout] 2 | use anyhow::{Result, anyhow};
[INFO] [stdout]   |                      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp`
[INFO] [stdout]  --> src/day15.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::cmp;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]  --> src/day16.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::collections::HashSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> src/day2.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fs::File;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufRead` and `self`
[INFO] [stdout]  --> src/day2.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::{self, BufRead};
[INFO] [stdout]   |               ^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str::FromStr`
[INFO] [stdout]  --> src/day2.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::str::FromStr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::VecDeque`
[INFO] [stdout]  --> src/day7.rs:2:25
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{str::FromStr, collections::VecDeque};
[INFO] [stdout]   |                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `total` is never read
[INFO] [stdout]  --> src/day10.rs:6:21
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let mut total = 0;
[INFO] [stdout]   |                     ^
[INFO] [stdout]   |
[INFO] [stdout]   = help: maybe it is overwritten before being read?
[INFO] [stdout]   = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `total` is never read
[INFO] [stdout]   --> src/day10.rs:41:21
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let mut total = 0;
[INFO] [stdout]    |                     ^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day11.rs:125:17
[INFO] [stdout]     |
[INFO] [stdout] 125 |             let mut cur_monkey = &mut monkeys[m];
[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: `filename`
[INFO] [stdout]   --> src/day11.rs:37:14
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn star1(filename: &str) -> Result<i64, utils::AocError> {
[INFO] [stdout]    |              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filename`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day12.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |         let mut heights: Vec<char> = line.chars().collect();
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `start` is assigned to, but never used
[INFO] [stdout]   --> src/day12.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 |     let mut start: (usize, usize) = (0, 0);
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_start` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `start` is never read
[INFO] [stdout]   --> src/day12.rs:88:17
[INFO] [stdout]    |
[INFO] [stdout] 88 |                 start = (x, y);
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/day14.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     for y in 0..200 {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/day14.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |         for x in 0..1024 {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `total_len` is never read
[INFO] [stdout]    --> src/day16.rs:124:25
[INFO] [stdout]     |
[INFO] [stdout] 124 |     let mut total_len = 0;
[INFO] [stdout]     |                         ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day16.rs:234:9
[INFO] [stdout]     |
[INFO] [stdout] 234 |     let mut valid_valves = vec![
[INFO] [stdout]     |         ----^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/day16.rs:223:17
[INFO] [stdout]     |
[INFO] [stdout] 223 |             let v = connections.push(name);
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/day2.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let mut score = 0;
[INFO] [stdout]   |         ----^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `score`
[INFO] [stdout]  --> src/day2.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let mut score = 0;
[INFO] [stdout]   |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_score`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day2.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let mut score = 0;
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `score`
[INFO] [stdout]   --> src/day2.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let mut score = 0;
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_score`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `total` is never read
[INFO] [stdout]  --> src/day10.rs:6:21
[INFO] [stdout]   |
[INFO] [stdout] 6 |     let mut total = 0;
[INFO] [stdout]   |                     ^
[INFO] [stdout]   |
[INFO] [stdout]   = help: maybe it is overwritten before being read?
[INFO] [stdout]   = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `total` is never read
[INFO] [stdout]   --> src/day10.rs:41:21
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let mut total = 0;
[INFO] [stdout]    |                     ^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day11.rs:125:17
[INFO] [stdout]     |
[INFO] [stdout] 125 |             let mut cur_monkey = &mut monkeys[m];
[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: `filename`
[INFO] [stdout]   --> src/day11.rs:37:14
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn star1(filename: &str) -> Result<i64, utils::AocError> {
[INFO] [stdout]    |              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filename`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day12.rs:81:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |         let mut heights: Vec<char> = line.chars().collect();
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `start` is assigned to, but never used
[INFO] [stdout]   --> src/day12.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 |     let mut start: (usize, usize) = (0, 0);
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_start` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `start` is never read
[INFO] [stdout]   --> src/day12.rs:88:17
[INFO] [stdout]    |
[INFO] [stdout] 88 |                 start = (x, y);
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day7.rs:99:13
[INFO] [stdout]    |
[INFO] [stdout] 99 |         let mut cur_dir: &mut AocDir = &mut root;
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `total`
[INFO] [stdout]   --> src/day7.rs:93:9
[INFO] [stdout]    |
[INFO] [stdout] 93 |     let total = 0;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_total`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cur_dir`
[INFO] [stdout]   --> src/day7.rs:99:13
[INFO] [stdout]    |
[INFO] [stdout] 99 |         let mut cur_dir: &mut AocDir = &mut root;
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cur_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/day14.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     for y in 0..200 {
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/day14.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |         for x in 0..1024 {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day9.rs:59:13
[INFO] [stdout]    |
[INFO] [stdout] 59 |         for i in 0..1024 {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/day9.rs:117:13
[INFO] [stdout]     |
[INFO] [stdout] 117 |         for i in 0..1024 {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star1` is never used
[INFO] [stdout]  --> src/day1.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn star1(filename: &str) -> usize {
[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 `star1` is never used
[INFO] [stdout]  --> src/day10.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn star1(filename: &str) -> Result<i32, utils::AocError> {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star2` is never used
[INFO] [stdout]   --> src/day10.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn star2(filename: &str) -> Result<i32, utils::AocError> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MONKEY_MODULO` is never used
[INFO] [stdout]  --> src/day11.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const MONKEY_MODULO: i64 = 19 * 7 * 17 * 13 * 11 * 2 * 5 * 3;
[INFO] [stdout]   |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Monkey` is never constructed
[INFO] [stdout]  --> src/day11.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Monkey {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `inspect` is never used
[INFO] [stdout]   --> src/day11.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Monkey {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 16 |     pub fn inspect(&mut self) -> Vec<(usize, i64)> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star1` is never used
[INFO] [stdout]   --> src/day11.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn star1(filename: &str) -> Result<i64, utils::AocError> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `canVisit` is never used
[INFO] [stdout]  --> src/day12.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn canVisit(a: char, b: char) -> bool {
[INFO] [stdout]   |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `findSteps` is never used
[INFO] [stdout]   --> src/day12.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn findSteps(start: (usize, usize), end: (usize, usize), heightMap: &Vec<Vec<char>>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star1` is never used
[INFO] [stdout]   --> src/day12.rs:73:8
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub fn star1(filename: &str) -> Result<usize, utils::AocError> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `in_order` is never used
[INFO] [stdout]  --> src/day13.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn in_order(left: &Value, right: &Value) -> Option<bool> {
[INFO] [stdout]   |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star1` is never used
[INFO] [stdout]   --> src/day13.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub fn star1(filename: &str) -> Result<i32> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star2` is never used
[INFO] [stdout]   --> src/day13.rs:81:8
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub fn star2(filename: &str) -> Result<i32> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_point` is never used
[INFO] [stdout]  --> src/day14.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn parse_point(point: &str) -> (usize, usize) {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star1` is never used
[INFO] [stdout]   --> src/day14.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn star1(filename: &str) -> Result<i32> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Sensor` is never constructed
[INFO] [stdout]  --> src/day15.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | struct Sensor {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distance` is never used
[INFO] [stdout]   --> src/day15.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn distance(a: (i64, i64), b: (i64, i64)) -> usize {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star1` is never used
[INFO] [stdout]   --> src/day15.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn star1(filename: &str) -> Result<i32> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `can_hold_beacon` is never used
[INFO] [stdout]   --> src/day15.rs:74:4
[INFO] [stdout]    |
[INFO] [stdout] 74 | fn can_hold_beacon(pos: (i64, i64), beacons: &HashSet<(i64, i64)>, sensors: &Vec<Sensor>) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_X` is never used
[INFO] [stdout]   --> src/day15.rs:93:7
[INFO] [stdout]    |
[INFO] [stdout] 93 | const MAX_X: i64 = 4000000;
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_Y` is never used
[INFO] [stdout]   --> src/day15.rs:94:7
[INFO] [stdout]    |
[INFO] [stdout] 94 | const MAX_Y: i64 = 4000000;
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sensor_edges` is never used
[INFO] [stdout]   --> src/day15.rs:96:4
[INFO] [stdout]    |
[INFO] [stdout] 96 | fn sensor_edges(s: &Sensor) -> Vec<(i64, i64)> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star2` is never used
[INFO] [stdout]    --> src/day15.rs:130:8
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub fn star2(filename: &str) -> Result<i64> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_game_score_1` is never used
[INFO] [stdout]  --> src/day2.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn get_game_score_1(l: char, r: char) -> usize {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_game_score_2` is never used
[INFO] [stdout]   --> src/day2.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn get_game_score_2(l: char, r: char) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star1` is never used
[INFO] [stdout]   --> src/day2.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn star1(filename: &str) -> usize {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star2` is never used
[INFO] [stdout]   --> src/day2.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn star2(filename: &str) -> usize {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `char_to_score` is never used
[INFO] [stdout]  --> src/day3.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn char_to_score(c: char) -> usize {
[INFO] [stdout]   |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star1` is never used
[INFO] [stdout]   --> src/day3.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn star1(filename: &str) -> usize {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `common_score` is never used
[INFO] [stdout]   --> src/day3.rs:97:4
[INFO] [stdout]    |
[INFO] [stdout] 97 | fn common_score(elf_group: &Vec<String>) -> Option<usize> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star2` is never used
[INFO] [stdout]    --> src/day3.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub fn star2(filename: &str) -> Result<usize, std::io::Error> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Range` is never constructed
[INFO] [stdout]  --> src/day4.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct Range {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `contains`, and `overlaps` are never used
[INFO] [stdout]   --> src/day4.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Range {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 11 |     fn new(raw_range: &str) -> Result<Range> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     fn contains(&self, r2: &Range) -> bool {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     fn overlaps(&self, r2: &Range) -> bool {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star1` is never used
[INFO] [stdout]   --> src/day4.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn star1(filename: &str) -> Result<usize, utils::AocError> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star2` is never used
[INFO] [stdout]   --> src/day4.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn star2(filename: &str) -> Result<usize, utils::AocError> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_stacks` is never used
[INFO] [stdout]  --> src/day5.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn print_stacks(stacks: &Vec<Vec<char>>) {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star1` is never used
[INFO] [stdout]   --> src/day5.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn star1(filename: &str) -> Result<usize> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_unique` is never used
[INFO] [stdout]  --> src/day6.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn is_unique(v: &VecDeque<char>) -> bool {
[INFO] [stdout]   |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star1` is never used
[INFO] [stdout]   --> src/day6.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn star1(filename: &str) -> Result<usize> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AocFile` is never constructed
[INFO] [stdout]  --> src/day7.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct AocFile {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AocDir` is never constructed
[INFO] [stdout]   --> src/day7.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct AocDir {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/day7.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl AocFile {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 18 |     fn new(name: String, size: usize) -> AocFile {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `insert_dir`, `insert_file`, `get_size`, and `gather_sizes` are never used
[INFO] [stdout]   --> src/day7.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl AocDir {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 24 |     fn new(name: String) -> AocDir {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     fn insert_dir(&mut self, path: &Vec<String>, depth: usize, dirname: String) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     fn insert_file(&mut self, path: &Vec<String>, depth: usize, filename: String, filesize: usize) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     fn get_size(&self) -> usize {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     fn gather_sizes(&self, result: &mut Vec<usize>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star1` is never used
[INFO] [stdout]   --> src/day7.rs:91:8
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub fn star1(filename: &str) -> Result<usize, utils::AocError> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_visible` is never used
[INFO] [stdout]  --> src/day8.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn is_visible(trees: &Vec<Vec<usize>>, tree: (usize, usize)) -> bool {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scenic_score` is never used
[INFO] [stdout]   --> src/day8.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn scenic_score(trees: &Vec<Vec<usize>>, tree: (usize, usize)) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star1` is never used
[INFO] [stdout]    --> src/day8.rs:104:8
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub fn star1(filename: &str) -> Result<usize, utils::AocError> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star2` is never used
[INFO] [stdout]    --> src/day8.rs:126:8
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub fn star2(filename: &str) -> Result<usize, utils::AocError> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `move_tail` is never used
[INFO] [stdout]  --> src/day9.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn move_tail(head: (i32, i32), tail: (i32, i32)) -> (i32, i32) {
[INFO] [stdout]   |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star1` is never used
[INFO] [stdout]   --> src/day9.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn star1(filename: &str) -> Result<usize, utils::AocError> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star2` is never used
[INFO] [stdout]    --> src/day9.rs:110:8
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub fn star2(filename: &str) -> Result<usize, utils::AocError> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AocError` is never used
[INFO] [stdout]   --> src/utils/mod.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum AocError {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `inspectionCount` should have a snake case name
[INFO] [stdout]  --> src/day11.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     inspectionCount: usize,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `inspection_count`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `testFn` should have a snake case name
[INFO] [stdout]  --> src/day11.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     testFn: fn(i64) -> bool,
[INFO] [stdout]   |     ^^^^^^ help: convert the identifier to snake case: `test_fn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `trueMonkey` should have a snake case name
[INFO] [stdout]   --> src/day11.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     trueMonkey: usize,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `true_monkey`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `falseMonkey` should have a snake case name
[INFO] [stdout]   --> src/day11.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     falseMonkey: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to snake case: `false_monkey`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `curItems` should have a snake case name
[INFO] [stdout]   --> src/day11.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     curItems: Vec<i64>,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to snake case: `cur_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `newItem` should have a snake case name
[INFO] [stdout]   --> src/day11.rs:21:21
[INFO] [stdout]    |
[INFO] [stdout] 21 |             let mut newItem = (self.op)(*item);
[INFO] [stdout]    |                     ^^^^^^^ help: convert the identifier to snake case: `new_item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `canVisit` should have a snake case name
[INFO] [stdout]  --> src/day12.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn canVisit(a: char, b: char) -> bool {
[INFO] [stdout]   |    ^^^^^^^^ help: convert the identifier to snake case: `can_visit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `findSteps` should have a snake case name
[INFO] [stdout]   --> src/day12.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn findSteps(start: (usize, usize), end: (usize, usize), heightMap: &Vec<Vec<char>>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^ help: convert the identifier to snake case: `find_steps`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `heightMap` should have a snake case name
[INFO] [stdout]   --> src/day12.rs:11:58
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn findSteps(start: (usize, usize), end: (usize, usize), heightMap: &Vec<Vec<char>>) -> i32 {
[INFO] [stdout]    |                                                          ^^^^^^^^^ help: convert the identifier to snake case: `height_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `posQ` should have a snake case name
[INFO] [stdout]   --> src/day12.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let mut posQ: VecDeque<((usize, usize), i32)> = VecDeque::new();
[INFO] [stdout]    |             ^^^^ help: convert the identifier to snake case: `pos_q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `curPath` should have a snake case name
[INFO] [stdout]   --> src/day12.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |         let curPath: ((usize, usize), i32);
[INFO] [stdout]    |             ^^^^^^^ help: convert the identifier to snake case: `cur_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `curHeight` should have a snake case name
[INFO] [stdout]   --> src/day12.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let curHeight = heightMap[curPath.0.1][curPath.0.0];
[INFO] [stdout]    |             ^^^^^^^^^ help: convert the identifier to snake case: `cur_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `heightMap` should have a snake case name
[INFO] [stdout]   --> src/day12.rs:78:13
[INFO] [stdout]    |
[INFO] [stdout] 78 |     let mut heightMap: Vec<Vec<char>> = Vec::new();
[INFO] [stdout]    |             ^^^^^^^^^ help: convert the identifier to snake case: `height_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `minPath` should have a snake case name
[INFO] [stdout]   --> src/day12.rs:98:13
[INFO] [stdout]    |
[INFO] [stdout] 98 |     let mut minPath = 520;
[INFO] [stdout]    |             ^^^^^^^ help: convert the identifier to snake case: `min_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pathLen` should have a snake case name
[INFO] [stdout]    --> src/day12.rs:105:17
[INFO] [stdout]     |
[INFO] [stdout] 105 |             let pathLen = findSteps((x, y), end, &heightMap);
[INFO] [stdout]     |                 ^^^^^^^ help: convert the identifier to snake case: `path_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `lineVec` should have a snake case name
[INFO] [stdout]   --> src/day13.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |     let mut lineVec = Vec::new();
[INFO] [stdout]    |             ^^^^^^^ help: convert the identifier to snake case: `line_vec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `lineVec` should have a snake case name
[INFO] [stdout]   --> src/day13.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 83 |     let mut lineVec: Vec<Value> = Vec::new();
[INFO] [stdout]    |             ^^^^^^^ help: convert the identifier to snake case: `line_vec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `sX` should have a snake case name
[INFO] [stdout]   --> src/day15.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let sX = i64::from_str(&sx_str).expect("bad int");
[INFO] [stdout]    |             ^^ help: convert the identifier to snake case: `s_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `sY` should have a snake case name
[INFO] [stdout]   --> src/day15.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let sY = i64::from_str(&sy_str).expect("bad int");
[INFO] [stdout]    |             ^^ help: convert the identifier to snake case: `s_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `bX` should have a snake case name
[INFO] [stdout]   --> src/day15.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let bX = i64::from_str(&bx_str).expect("bad int");
[INFO] [stdout]    |             ^^ help: convert the identifier to snake case: `b_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `bY` should have a snake case name
[INFO] [stdout]   --> src/day15.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 38 |         let bY = i64::from_str(&by_str).expect("bad int");
[INFO] [stdout]    |             ^^ help: convert the identifier to snake case: `b_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `sX` should have a snake case name
[INFO] [stdout]    --> src/day15.rs:139:13
[INFO] [stdout]     |
[INFO] [stdout] 139 |         let sX = i64::from_str(&sx_str).expect("bad int");
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case: `s_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `sY` should have a snake case name
[INFO] [stdout]    --> src/day15.rs:142:13
[INFO] [stdout]     |
[INFO] [stdout] 142 |         let sY = i64::from_str(&sy_str).expect("bad int");
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case: `s_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `bX` should have a snake case name
[INFO] [stdout]    --> src/day15.rs:145:13
[INFO] [stdout]     |
[INFO] [stdout] 145 |         let bX = i64::from_str(&bx_str).expect("bad int");
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case: `b_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `bY` should have a snake case name
[INFO] [stdout]    --> src/day15.rs:148:13
[INFO] [stdout]     |
[INFO] [stdout] 148 |         let bY = i64::from_str(&by_str).expect("bad int");
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case: `b_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `total_len` is never read
[INFO] [stdout]    --> src/day16.rs:124:25
[INFO] [stdout]     |
[INFO] [stdout] 124 |     let mut total_len = 0;
[INFO] [stdout]     |                         ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day16.rs:234:9
[INFO] [stdout]     |
[INFO] [stdout] 234 |     let mut valid_valves = vec![
[INFO] [stdout]     |         ----^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/day16.rs:223:17
[INFO] [stdout]     |
[INFO] [stdout] 223 |             let v = connections.push(name);
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/day2.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let mut score = 0;
[INFO] [stdout]   |         ----^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `score`
[INFO] [stdout]  --> src/day2.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let mut score = 0;
[INFO] [stdout]   |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_score`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day2.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let mut score = 0;
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `score`
[INFO] [stdout]   --> src/day2.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let mut score = 0;
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_score`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day7.rs:99:13
[INFO] [stdout]    |
[INFO] [stdout] 99 |         let mut cur_dir: &mut AocDir = &mut root;
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `total`
[INFO] [stdout]   --> src/day7.rs:93:9
[INFO] [stdout]    |
[INFO] [stdout] 93 |     let total = 0;
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_total`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cur_dir`
[INFO] [stdout]   --> src/day7.rs:99:13
[INFO] [stdout]    |
[INFO] [stdout] 99 |         let mut cur_dir: &mut AocDir = &mut root;
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cur_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/day9.rs:59:13
[INFO] [stdout]    |
[INFO] [stdout] 59 |         for i in 0..1024 {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/day9.rs:117:13
[INFO] [stdout]     |
[INFO] [stdout] 117 |         for i in 0..1024 {
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star1` is never used
[INFO] [stdout]  --> src/day1.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn star1(filename: &str) -> usize {
[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 `star1` is never used
[INFO] [stdout]  --> src/day10.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn star1(filename: &str) -> Result<i32, utils::AocError> {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star2` is never used
[INFO] [stdout]   --> src/day10.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn star2(filename: &str) -> Result<i32, utils::AocError> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MONKEY_MODULO` is never used
[INFO] [stdout]  --> src/day11.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const MONKEY_MODULO: i64 = 19 * 7 * 17 * 13 * 11 * 2 * 5 * 3;
[INFO] [stdout]   |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Monkey` is never constructed
[INFO] [stdout]  --> src/day11.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Monkey {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `inspect` is never used
[INFO] [stdout]   --> src/day11.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Monkey {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 16 |     pub fn inspect(&mut self) -> Vec<(usize, i64)> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star1` is never used
[INFO] [stdout]   --> src/day11.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn star1(filename: &str) -> Result<i64, utils::AocError> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `canVisit` is never used
[INFO] [stdout]  --> src/day12.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn canVisit(a: char, b: char) -> bool {
[INFO] [stdout]   |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `findSteps` is never used
[INFO] [stdout]   --> src/day12.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn findSteps(start: (usize, usize), end: (usize, usize), heightMap: &Vec<Vec<char>>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star1` is never used
[INFO] [stdout]   --> src/day12.rs:73:8
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub fn star1(filename: &str) -> Result<usize, utils::AocError> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `in_order` is never used
[INFO] [stdout]  --> src/day13.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn in_order(left: &Value, right: &Value) -> Option<bool> {
[INFO] [stdout]   |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star1` is never used
[INFO] [stdout]   --> src/day13.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub fn star1(filename: &str) -> Result<i32> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star2` is never used
[INFO] [stdout]   --> src/day13.rs:81:8
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub fn star2(filename: &str) -> Result<i32> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_point` is never used
[INFO] [stdout]  --> src/day14.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn parse_point(point: &str) -> (usize, usize) {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star1` is never used
[INFO] [stdout]   --> src/day14.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn star1(filename: &str) -> Result<i32> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Sensor` is never constructed
[INFO] [stdout]  --> src/day15.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | struct Sensor {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distance` is never used
[INFO] [stdout]   --> src/day15.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn distance(a: (i64, i64), b: (i64, i64)) -> usize {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star1` is never used
[INFO] [stdout]   --> src/day15.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn star1(filename: &str) -> Result<i32> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `can_hold_beacon` is never used
[INFO] [stdout]   --> src/day15.rs:74:4
[INFO] [stdout]    |
[INFO] [stdout] 74 | fn can_hold_beacon(pos: (i64, i64), beacons: &HashSet<(i64, i64)>, sensors: &Vec<Sensor>) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_X` is never used
[INFO] [stdout]   --> src/day15.rs:93:7
[INFO] [stdout]    |
[INFO] [stdout] 93 | const MAX_X: i64 = 4000000;
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_Y` is never used
[INFO] [stdout]   --> src/day15.rs:94:7
[INFO] [stdout]    |
[INFO] [stdout] 94 | const MAX_Y: i64 = 4000000;
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sensor_edges` is never used
[INFO] [stdout]   --> src/day15.rs:96:4
[INFO] [stdout]    |
[INFO] [stdout] 96 | fn sensor_edges(s: &Sensor) -> Vec<(i64, i64)> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star2` is never used
[INFO] [stdout]    --> src/day15.rs:130:8
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub fn star2(filename: &str) -> Result<i64> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_game_score_1` is never used
[INFO] [stdout]  --> src/day2.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn get_game_score_1(l: char, r: char) -> usize {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_game_score_2` is never used
[INFO] [stdout]   --> src/day2.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn get_game_score_2(l: char, r: char) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star1` is never used
[INFO] [stdout]   --> src/day2.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn star1(filename: &str) -> usize {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star2` is never used
[INFO] [stdout]   --> src/day2.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn star2(filename: &str) -> usize {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `char_to_score` is never used
[INFO] [stdout]  --> src/day3.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn char_to_score(c: char) -> usize {
[INFO] [stdout]   |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star1` is never used
[INFO] [stdout]   --> src/day3.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn star1(filename: &str) -> usize {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `common_score` is never used
[INFO] [stdout]   --> src/day3.rs:97:4
[INFO] [stdout]    |
[INFO] [stdout] 97 | fn common_score(elf_group: &Vec<String>) -> Option<usize> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star2` is never used
[INFO] [stdout]    --> src/day3.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub fn star2(filename: &str) -> Result<usize, std::io::Error> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Range` is never constructed
[INFO] [stdout]  --> src/day4.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct Range {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `contains`, and `overlaps` are never used
[INFO] [stdout]   --> src/day4.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Range {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 11 |     fn new(raw_range: &str) -> Result<Range> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     fn contains(&self, r2: &Range) -> bool {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     fn overlaps(&self, r2: &Range) -> bool {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star1` is never used
[INFO] [stdout]   --> src/day4.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn star1(filename: &str) -> Result<usize, utils::AocError> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star2` is never used
[INFO] [stdout]   --> src/day4.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn star2(filename: &str) -> Result<usize, utils::AocError> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_stacks` is never used
[INFO] [stdout]  --> src/day5.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn print_stacks(stacks: &Vec<Vec<char>>) {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star1` is never used
[INFO] [stdout]   --> src/day5.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn star1(filename: &str) -> Result<usize> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_unique` is never used
[INFO] [stdout]  --> src/day6.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn is_unique(v: &VecDeque<char>) -> bool {
[INFO] [stdout]   |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star1` is never used
[INFO] [stdout]   --> src/day6.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn star1(filename: &str) -> Result<usize> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AocFile` is never constructed
[INFO] [stdout]  --> src/day7.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct AocFile {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AocDir` is never constructed
[INFO] [stdout]   --> src/day7.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct AocDir {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/day7.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl AocFile {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 18 |     fn new(name: String, size: usize) -> AocFile {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `insert_dir`, `insert_file`, `get_size`, and `gather_sizes` are never used
[INFO] [stdout]   --> src/day7.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl AocDir {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 24 |     fn new(name: String) -> AocDir {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     fn insert_dir(&mut self, path: &Vec<String>, depth: usize, dirname: String) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     fn insert_file(&mut self, path: &Vec<String>, depth: usize, filename: String, filesize: usize) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     fn get_size(&self) -> usize {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     fn gather_sizes(&self, result: &mut Vec<usize>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star1` is never used
[INFO] [stdout]   --> src/day7.rs:91:8
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub fn star1(filename: &str) -> Result<usize, utils::AocError> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_visible` is never used
[INFO] [stdout]  --> src/day8.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn is_visible(trees: &Vec<Vec<usize>>, tree: (usize, usize)) -> bool {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scenic_score` is never used
[INFO] [stdout]   --> src/day8.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn scenic_score(trees: &Vec<Vec<usize>>, tree: (usize, usize)) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star1` is never used
[INFO] [stdout]    --> src/day8.rs:104:8
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub fn star1(filename: &str) -> Result<usize, utils::AocError> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star2` is never used
[INFO] [stdout]    --> src/day8.rs:126:8
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub fn star2(filename: &str) -> Result<usize, utils::AocError> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `move_tail` is never used
[INFO] [stdout]  --> src/day9.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn move_tail(head: (i32, i32), tail: (i32, i32)) -> (i32, i32) {
[INFO] [stdout]   |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star1` is never used
[INFO] [stdout]   --> src/day9.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn star1(filename: &str) -> Result<usize, utils::AocError> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `star2` is never used
[INFO] [stdout]    --> src/day9.rs:110:8
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub fn star2(filename: &str) -> Result<usize, utils::AocError> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AocError` is never used
[INFO] [stdout]   --> src/utils/mod.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum AocError {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `inspectionCount` should have a snake case name
[INFO] [stdout]  --> src/day11.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     inspectionCount: usize,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `inspection_count`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `testFn` should have a snake case name
[INFO] [stdout]  --> src/day11.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     testFn: fn(i64) -> bool,
[INFO] [stdout]   |     ^^^^^^ help: convert the identifier to snake case: `test_fn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `trueMonkey` should have a snake case name
[INFO] [stdout]   --> src/day11.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     trueMonkey: usize,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `true_monkey`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `falseMonkey` should have a snake case name
[INFO] [stdout]   --> src/day11.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     falseMonkey: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to snake case: `false_monkey`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `curItems` should have a snake case name
[INFO] [stdout]   --> src/day11.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     curItems: Vec<i64>,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to snake case: `cur_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `newItem` should have a snake case name
[INFO] [stdout]   --> src/day11.rs:21:21
[INFO] [stdout]    |
[INFO] [stdout] 21 |             let mut newItem = (self.op)(*item);
[INFO] [stdout]    |                     ^^^^^^^ help: convert the identifier to snake case: `new_item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `canVisit` should have a snake case name
[INFO] [stdout]  --> src/day12.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn canVisit(a: char, b: char) -> bool {
[INFO] [stdout]   |    ^^^^^^^^ help: convert the identifier to snake case: `can_visit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `findSteps` should have a snake case name
[INFO] [stdout]   --> src/day12.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn findSteps(start: (usize, usize), end: (usize, usize), heightMap: &Vec<Vec<char>>) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^ help: convert the identifier to snake case: `find_steps`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `heightMap` should have a snake case name
[INFO] [stdout]   --> src/day12.rs:11:58
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn findSteps(start: (usize, usize), end: (usize, usize), heightMap: &Vec<Vec<char>>) -> i32 {
[INFO] [stdout]    |                                                          ^^^^^^^^^ help: convert the identifier to snake case: `height_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `posQ` should have a snake case name
[INFO] [stdout]   --> src/day12.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let mut posQ: VecDeque<((usize, usize), i32)> = VecDeque::new();
[INFO] [stdout]    |             ^^^^ help: convert the identifier to snake case: `pos_q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `curPath` should have a snake case name
[INFO] [stdout]   --> src/day12.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |         let curPath: ((usize, usize), i32);
[INFO] [stdout]    |             ^^^^^^^ help: convert the identifier to snake case: `cur_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `curHeight` should have a snake case name
[INFO] [stdout]   --> src/day12.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let curHeight = heightMap[curPath.0.1][curPath.0.0];
[INFO] [stdout]    |             ^^^^^^^^^ help: convert the identifier to snake case: `cur_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `heightMap` should have a snake case name
[INFO] [stdout]   --> src/day12.rs:78:13
[INFO] [stdout]    |
[INFO] [stdout] 78 |     let mut heightMap: Vec<Vec<char>> = Vec::new();
[INFO] [stdout]    |             ^^^^^^^^^ help: convert the identifier to snake case: `height_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `minPath` should have a snake case name
[INFO] [stdout]   --> src/day12.rs:98:13
[INFO] [stdout]    |
[INFO] [stdout] 98 |     let mut minPath = 520;
[INFO] [stdout]    |             ^^^^^^^ help: convert the identifier to snake case: `min_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `pathLen` should have a snake case name
[INFO] [stdout]    --> src/day12.rs:105:17
[INFO] [stdout]     |
[INFO] [stdout] 105 |             let pathLen = findSteps((x, y), end, &heightMap);
[INFO] [stdout]     |                 ^^^^^^^ help: convert the identifier to snake case: `path_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `lineVec` should have a snake case name
[INFO] [stdout]   --> src/day13.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |     let mut lineVec = Vec::new();
[INFO] [stdout]    |             ^^^^^^^ help: convert the identifier to snake case: `line_vec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `lineVec` should have a snake case name
[INFO] [stdout]   --> src/day13.rs:83:13
[INFO] [stdout]    |
[INFO] [stdout] 83 |     let mut lineVec: Vec<Value> = Vec::new();
[INFO] [stdout]    |             ^^^^^^^ help: convert the identifier to snake case: `line_vec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `sX` should have a snake case name
[INFO] [stdout]   --> src/day15.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let sX = i64::from_str(&sx_str).expect("bad int");
[INFO] [stdout]    |             ^^ help: convert the identifier to snake case: `s_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `sY` should have a snake case name
[INFO] [stdout]   --> src/day15.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let sY = i64::from_str(&sy_str).expect("bad int");
[INFO] [stdout]    |             ^^ help: convert the identifier to snake case: `s_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `bX` should have a snake case name
[INFO] [stdout]   --> src/day15.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let bX = i64::from_str(&bx_str).expect("bad int");
[INFO] [stdout]    |             ^^ help: convert the identifier to snake case: `b_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `bY` should have a snake case name
[INFO] [stdout]   --> src/day15.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 38 |         let bY = i64::from_str(&by_str).expect("bad int");
[INFO] [stdout]    |             ^^ help: convert the identifier to snake case: `b_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `sX` should have a snake case name
[INFO] [stdout]    --> src/day15.rs:139:13
[INFO] [stdout]     |
[INFO] [stdout] 139 |         let sX = i64::from_str(&sx_str).expect("bad int");
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case: `s_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `sY` should have a snake case name
[INFO] [stdout]    --> src/day15.rs:142:13
[INFO] [stdout]     |
[INFO] [stdout] 142 |         let sY = i64::from_str(&sy_str).expect("bad int");
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case: `s_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `bX` should have a snake case name
[INFO] [stdout]    --> src/day15.rs:145:13
[INFO] [stdout]     |
[INFO] [stdout] 145 |         let bX = i64::from_str(&bx_str).expect("bad int");
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case: `b_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `bY` should have a snake case name
[INFO] [stdout]    --> src/day15.rs:148:13
[INFO] [stdout]     |
[INFO] [stdout] 148 |         let bY = i64::from_str(&by_str).expect("bad int");
[INFO] [stdout]     |             ^^ help: convert the identifier to snake case: `b_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.63s
[INFO] running `Command { std: "docker" "inspect" "7e9ae68c0052ae02d694f80e24d5f69f0bbff7f6db9d1c4a541a33584f38e4cd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7e9ae68c0052ae02d694f80e24d5f69f0bbff7f6db9d1c4a541a33584f38e4cd", kill_on_drop: false }`
[INFO] [stdout] 7e9ae68c0052ae02d694f80e24d5f69f0bbff7f6db9d1c4a541a33584f38e4cd
