[INFO] cloning repository https://github.com/davidfaulkner12/aoc2024
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/davidfaulkner12/aoc2024" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdavidfaulkner12%2Faoc2024", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdavidfaulkner12%2Faoc2024'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 942832325a1c2179077e61d0d2ac132316cd34f8
[INFO] checking davidfaulkner12/aoc2024 against try#66388cc165a6c4ac98c074dc9f0281ff23528c55 for pr-150727
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdavidfaulkner12%2Faoc2024" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/davidfaulkner12/aoc2024
[INFO] finished tweaking git repo https://github.com/davidfaulkner12/aoc2024
[INFO] tweaked toml for git repo https://github.com/davidfaulkner12/aoc2024 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/davidfaulkner12/aoc2024 on toolchain 66388cc165a6c4ac98c074dc9f0281ff23528c55
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+66388cc165a6c4ac98c074dc9f0281ff23528c55" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/davidfaulkner12/aoc2024 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" "+66388cc165a6c4ac98c074dc9f0281ff23528c55" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded linkme v0.3.31
[INFO] [stderr]   Downloaded enum-iterator v2.1.0
[INFO] [stderr]   Downloaded sorted-vec v0.8.5
[INFO] [stderr]   Downloaded linkme-impl v0.3.31
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+66388cc165a6c4ac98c074dc9f0281ff23528c55" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] b6a7d738336206e0efdaf316d2d3a3744b5937ab206258b4ac9b34e7bd9e673b
[INFO] running `Command { std: "docker" "start" "-a" "b6a7d738336206e0efdaf316d2d3a3744b5937ab206258b4ac9b34e7bd9e673b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b6a7d738336206e0efdaf316d2d3a3744b5937ab206258b4ac9b34e7bd9e673b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b6a7d738336206e0efdaf316d2d3a3744b5937ab206258b4ac9b34e7bd9e673b", kill_on_drop: false }`
[INFO] [stdout] b6a7d738336206e0efdaf316d2d3a3744b5937ab206258b4ac9b34e7bd9e673b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+66388cc165a6c4ac98c074dc9f0281ff23528c55" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1ae3eae3b0a206ae2d0968fbb732b84927898ee5bd62e1d20bd0021fedd66ecd
[INFO] running `Command { std: "docker" "start" "-a" "1ae3eae3b0a206ae2d0968fbb732b84927898ee5bd62e1d20bd0021fedd66ecd", kill_on_drop: false }`
[INFO] [stderr]    Compiling cc v1.2.2
[INFO] [stderr]    Compiling libc v0.2.167
[INFO] [stderr]     Checking zerocopy v0.7.35
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]    Compiling linkme-impl v0.3.31
[INFO] [stderr]     Checking once_cell v1.20.2
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]     Checking either v1.13.0
[INFO] [stderr]     Checking sorted-vec v0.8.5
[INFO] [stderr]    Compiling syn v2.0.90
[INFO] [stderr]     Checking itertools v0.13.0
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking regex-automata v0.4.9
[INFO] [stderr]    Compiling psm v0.1.24
[INFO] [stderr]    Compiling stacker v0.1.17
[INFO] [stderr]     Checking chumsky v0.9.3
[INFO] [stderr]    Compiling enum-iterator-derive v1.4.0
[INFO] [stderr]     Checking regex v1.11.1
[INFO] [stderr]     Checking enum-iterator v2.1.0
[INFO] [stderr]     Checking linkme v0.3.31
[INFO] [stderr]     Checking aoc2024 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `explode_point`
[INFO] [stdout]  --> src/day10.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 |     day4::{explode_point, find_char_in_puzzle, TextPoint},
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `char_matrix`
[INFO] [stdout]  --> src/day12.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 |     day4::{char_matrix, TextPoint},
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::day4::char_matrix`
[INFO] [stdout]  --> src/day16.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::day4::char_matrix;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/day18.rs:2:45
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::{BinaryHeap, HashMap, HashSet};
[INFO] [stdout]   |                                             ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::day4::char_matrix`
[INFO] [stdout]  --> src/day18.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::day4::char_matrix;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EitherOrBoth`
[INFO] [stdout]  --> src/day19.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use itertools::{EitherOrBoth, Itertools};
[INFO] [stdout]   |                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter`
[INFO] [stdout]  --> src/day7.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::iter;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]  --> src/day8.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use itertools::Itertools;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `explode_point`
[INFO] [stdout]  --> src/day10.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 |     day4::{explode_point, find_char_in_puzzle, TextPoint},
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::HashMap`
[INFO] [stdout]    --> src/day10.rs:112:15
[INFO] [stdout]     |
[INFO] [stdout] 112 |     use std::{collections::HashMap, fs};
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `convert::identity`
[INFO] [stdout]   --> src/day11.rs:72:15
[INFO] [stdout]    |
[INFO] [stdout] 72 |     use std::{convert::identity, fs};
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::time`
[INFO] [stdout]   --> src/day14.rs:84:9
[INFO] [stdout]    |
[INFO] [stdout] 84 |     use core::time;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thread`
[INFO] [stdout]   --> src/day14.rs:85:19
[INFO] [stdout]    |
[INFO] [stdout] 85 |     use std::{fs, thread};
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::time`
[INFO] [stdout]    --> src/day16.rs:221:9
[INFO] [stdout]     |
[INFO] [stdout] 221 |     use core::time;
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thread`
[INFO] [stdout]    --> src/day16.rs:222:19
[INFO] [stdout]     |
[INFO] [stdout] 222 |     use std::{fs, thread};
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::time`
[INFO] [stdout]   --> src/day17.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     use core::time;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `fs`, `num`, and `thread`
[INFO] [stdout]   --> src/day17.rs:73:15
[INFO] [stdout]    |
[INFO] [stdout] 73 |     use std::{fs, num, thread};
[INFO] [stdout]    |               ^^  ^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::day4::find_char_in_puzzle`
[INFO] [stdout]   --> src/day17.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 |     use crate::day4::find_char_in_puzzle;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/day18.rs:2:45
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::{BinaryHeap, HashMap, HashSet};
[INFO] [stdout]   |                                             ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::day4::char_matrix`
[INFO] [stdout]  --> src/day18.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::day4::char_matrix;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::time`
[INFO] [stdout]    --> src/day18.rs:174:9
[INFO] [stdout]     |
[INFO] [stdout] 174 |     use core::time;
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thread`
[INFO] [stdout]    --> src/day18.rs:175:19
[INFO] [stdout]     |
[INFO] [stdout] 175 |     use std::{fs, thread};
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EitherOrBoth`
[INFO] [stdout]  --> src/day19.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use itertools::{EitherOrBoth, Itertools};
[INFO] [stdout]   |                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::time`
[INFO] [stdout]    --> src/day19.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |     use core::time;
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thread`
[INFO] [stdout]    --> src/day19.rs:103:19
[INFO] [stdout]     |
[INFO] [stdout] 103 |     use std::{fs, thread};
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `fs` and `ops::Deref`
[INFO] [stdout]    --> src/day21.rs:146:15
[INFO] [stdout]     |
[INFO] [stdout] 146 |     use std::{fs, ops::Deref};
[INFO] [stdout]     |               ^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter`
[INFO] [stdout]  --> src/day7.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::iter;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `collections::HashSet` and `convert::identity`
[INFO] [stdout]   --> src/day7.rs:82:15
[INFO] [stdout]    |
[INFO] [stdout] 82 |     use std::{collections::HashSet, convert::identity, fs};
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `collections::HashSet` and `convert::identity`
[INFO] [stdout]    --> src/day9.rs:131:15
[INFO] [stdout]     |
[INFO] [stdout] 131 |     use std::{collections::HashSet, convert::identity, fs};
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Itertools`
[INFO] [stdout]  --> src/day19.rs:3:31
[INFO] [stdout]   |
[INFO] [stdout] 3 | use itertools::{EitherOrBoth, Itertools};
[INFO] [stdout]   |                               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `climb_trail` is never used
[INFO] [stdout]  --> src/day10.rs:8:4
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn climb_trail(map: &Vec<Vec<u8>>, start: TextPoint) -> HashSet<(TextPoint, TextPoint)> {
[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 `climb_all_trail` is never used
[INFO] [stdout]   --> src/day10.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn climb_all_trail(map: &Vec<Vec<u8>>, start: TextPoint) -> Vec<(TextPoint, TextPoint)> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_unique_trails` is never used
[INFO] [stdout]   --> src/day10.rs:92:4
[INFO] [stdout]    |
[INFO] [stdout] 92 | fn find_unique_trails(map: &Vec<Vec<u8>>) -> Vec<(TextPoint, usize)> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_all_trails` is never used
[INFO] [stdout]    --> src/day10.rs:101:4
[INFO] [stdout]     |
[INFO] [stdout] 101 | fn find_all_trails(map: &Vec<Vec<u8>>) -> Vec<(TextPoint, usize)> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `maybe_split_even` is never used
[INFO] [stdout]  --> src/day11.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn maybe_split_even(i: usize) -> Option<Vec<usize>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `maybe_replace_zero` is never used
[INFO] [stdout]   --> src/day11.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn maybe_replace_zero(i: usize) -> Option<Vec<usize>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `always_multiply_by_2024` is never used
[INFO] [stdout]   --> src/day11.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn always_multiply_by_2024(i: usize) -> Option<Vec<usize>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_rules` is never used
[INFO] [stdout]   --> src/day11.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn apply_rules(i: usize) -> Vec<usize> {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blink` is never used
[INFO] [stdout]   --> src/day11.rs:39:4
[INFO] [stdout]    |
[INFO] [stdout] 39 | fn blink(ns: Vec<usize>) -> Vec<usize> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blink25` is never used
[INFO] [stdout]   --> src/day11.rs:43:4
[INFO] [stdout]    |
[INFO] [stdout] 43 | fn blink25(ns: Vec<usize>) -> Vec<usize> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blink_with_counts` is never used
[INFO] [stdout]   --> src/day11.rs:51:4
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn blink_with_counts(counts: &HashMap<usize, usize>) -> HashMap<usize, usize> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blink75` is never used
[INFO] [stdout]   --> src/day11.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn blink75(ns: Vec<usize>) -> HashMap<usize, usize> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `garden` is never used
[INFO] [stdout]  --> src/day12.rs:8:4
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn garden(cm: &Vec<Vec<u8>>) -> BTreeSet<BTreeSet<TextPoint>> {
[INFO] [stdout]   |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve` is never used
[INFO] [stdout]  --> src/day13.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn solve(x1: i64, x2: i64, xp: i64, y1: i64, y2: i64, yp: i64) -> Option<(i64, i64)> {
[INFO] [stdout]   |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse` is never used
[INFO] [stdout]   --> src/day13.rs:19:4
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn parse(data: &str) -> Vec<[i64; 6]> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cost` is never used
[INFO] [stdout]   --> src/day13.rs:36:4
[INFO] [stdout]    |
[INFO] [stdout] 36 | fn cost(ns: [i64; 6]) -> Option<i64> {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]  --> src/day14.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Point(i64, i64);
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Velocity` is never constructed
[INFO] [stdout]  --> src/day14.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct Velocity(i64, i64);
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Robot` is never constructed
[INFO] [stdout]   --> src/day14.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct Robot(Point, Velocity);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `wrap` is never used
[INFO] [stdout]   --> src/day14.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn wrap(value: i64, limit: i64) -> i64 {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `score` is never used
[INFO] [stdout]   --> src/day14.rs:22:4
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn score(rs: Vec<Robot>, corner: Point) -> i64 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `tick` is never used
[INFO] [stdout]   --> src/day14.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | impl Robot {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] 44 |     fn tick(&self, corner: Point) -> Robot {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse` is never used
[INFO] [stdout]   --> src/day14.rs:53:4
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn parse(data: &str) -> Vec<Robot> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_robots` is never used
[INFO] [stdout]   --> src/day14.rs:67:4
[INFO] [stdout]    |
[INFO] [stdout] 67 | fn print_robots(rs: &Vec<Robot>, corner: Point) {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `State` is never constructed
[INFO] [stdout]  --> src/day16.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct State {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_edges` is never used
[INFO] [stdout]   --> src/day16.rs:36:4
[INFO] [stdout]    |
[INFO] [stdout] 36 | fn find_edges(
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shortest_path` is never used
[INFO] [stdout]   --> src/day16.rs:70:4
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn shortest_path(
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Computer` is never constructed
[INFO] [stdout]  --> src/day17.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | struct Computer {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `is_done`, `step`, and `combo` are never used
[INFO] [stdout]   --> src/day17.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl Computer {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 12 |     fn new(program: Vec<u8>, ar: i64, br: i64, cr: i64) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     fn is_done(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     fn step(&self) -> Self {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     fn combo(&self, op: u8) -> i64 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `State` is never constructed
[INFO] [stdout]  --> src/day18.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct State {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_edges` is never used
[INFO] [stdout]   --> src/day18.rs:36:4
[INFO] [stdout]    |
[INFO] [stdout] 36 | fn find_edges(graph: &Vec<Vec<u8>>, position: TextPoint) -> Vec<(usize, TextPoint)> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shortest_path` is never used
[INFO] [stdout]   --> src/day18.rs:66:4
[INFO] [stdout]    |
[INFO] [stdout] 66 | fn shortest_path(graph: &Vec<Vec<u8>>) -> Option<usize> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse` is never used
[INFO] [stdout]    --> src/day18.rs:127:4
[INFO] [stdout]     |
[INFO] [stdout] 127 | fn parse(data: &str) -> Vec<(usize, usize)> {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_graph` is never used
[INFO] [stdout]    --> src/day18.rs:139:4
[INFO] [stdout]     |
[INFO] [stdout] 139 | fn build_graph(rows: usize, cols: usize, blobs: &[(usize, usize)]) -> Vec<Vec<u8>> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_map_with_costs` is never used
[INFO] [stdout]    --> src/day18.rs:156:4
[INFO] [stdout]     |
[INFO] [stdout] 156 | fn print_map_with_costs(g: &Vec<Vec<u8>>, dist: &HashMap<TextPoint, usize>) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse` is never used
[INFO] [stdout]  --> src/day19.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn parse(data: &str) -> (Vec<Vec<u8>>, Vec<Vec<u8>>) {
[INFO] [stdout]   |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_as_string` is never used
[INFO] [stdout]   --> src/day19.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn parse_as_string(data: &str) -> (Vec<String>, Vec<String>) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `search` is never used
[INFO] [stdout]   --> src/day19.rs:45:4
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn search(towels: &Vec<Vec<u8>>, pattern: &Vec<u8>, path: &Vec<Vec<u8>>) -> Option<Vec<Vec<u8>>> {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `search_combos` is never used
[INFO] [stdout]   --> src/day19.rs:74:4
[INFO] [stdout]    |
[INFO] [stdout] 74 | fn search_combos(
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `NUMERIC_PAD` is never used
[INFO] [stdout]   --> src/day21.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | static NUMERIC_PAD: LazyLock<Vec<Vec<u8>>> = LazyLock::new(|| {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DIR_PAD` is never used
[INFO] [stdout]   --> src/day21.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | static DIR_PAD: LazyLock<Vec<Vec<u8>>> = LazyLock::new(|| {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `walk_parents` is never used
[INFO] [stdout]   --> src/day21.rs:27:4
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn walk_parents(
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_adjacent` is never used
[INFO] [stdout]   --> src/day21.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn find_adjacent(graph: &Vec<Vec<u8>>, p: TextPoint) -> Vec<(Direction, TextPoint)> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bfs` is never used
[INFO] [stdout]   --> src/day21.rs:64:4
[INFO] [stdout]    |
[INFO] [stdout] 64 | fn bfs(graph: &Vec<Vec<u8>>, start: TextPoint, end: TextPoint) -> Vec<Direction> {
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_numeric_route` is never used
[INFO] [stdout]   --> src/day21.rs:92:4
[INFO] [stdout]    |
[INFO] [stdout] 92 | fn find_numeric_route(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_third_order_route` is never used
[INFO] [stdout]    --> src/day21.rs:134:4
[INFO] [stdout]     |
[INFO] [stdout] 134 | fn find_third_order_route(target: &[u8]) -> Vec<u8> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Direction` is never used
[INFO] [stdout]  --> src/day6.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum Direction {
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `rotate_right` and `rotate_left` are never used
[INFO] [stdout]   --> src/day6.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Direction {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] 19 |     pub fn rotate_right(&self) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn rotate_left(&self) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `explode_point_with_directions` is never used
[INFO] [stdout]   --> src/day6.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn explode_point_with_directions(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `explode_point_with_cardinal_directions` is never used
[INFO] [stdout]   --> src/day6.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn explode_point_with_cardinal_directions(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GuardMap` is never constructed
[INFO] [stdout]   --> src/day6.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 71 | struct GuardMap {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `tick` is never used
[INFO] [stdout]   --> src/day6.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 76 | impl GuardMap {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] 77 |     fn tick(&mut self) -> Option<TextPoint> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse` is never used
[INFO] [stdout]    --> src/day6.rs:110:4
[INFO] [stdout]     |
[INFO] [stdout] 110 | fn parse(data: &str) -> GuardMap {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `replace_char_in_puzzle` is never used
[INFO] [stdout]    --> src/day6.rs:123:4
[INFO] [stdout]     |
[INFO] [stdout] 123 | fn replace_char_in_puzzle(puzzle: &Vec<Vec<u8>>, p: TextPoint, new: u8) -> Vec<Vec<u8>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `product_with_repeat` is never used
[INFO] [stdout]  --> src/day7.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn product_with_repeat<T: Clone>(
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse` is never used
[INFO] [stdout]   --> src/day7.rs:16:4
[INFO] [stdout]    |
[INFO] [stdout] 16 | fn parse(data: &str) -> Vec<(i64, Vec<i64>)> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `BinOp` is never used
[INFO] [stdout]   --> src/day7.rs:34:7
[INFO] [stdout]    |
[INFO] [stdout] 34 | trait BinOp {
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Op` is never used
[INFO] [stdout]   --> src/day7.rs:39:6
[INFO] [stdout]    |
[INFO] [stdout] 39 | enum Op {
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `eval` is never used
[INFO] [stdout]   --> src/day7.rs:53:4
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn eval<T: BinOp>(mut ops: Vec<T>, mut operands: Vec<i64>) -> i64 {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ExtendedOp` is never used
[INFO] [stdout]   --> src/day7.rs:64:6
[INFO] [stdout]    |
[INFO] [stdout] 64 | enum ExtendedOp {
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TextDifference` is never constructed
[INFO] [stdout]  --> src/day8.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct TextDifference {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `apply`, `apply_with_corner`, and `flip` are never used
[INFO] [stdout]   --> src/day8.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl TextDifference {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] 11 |     fn apply(&self, other: TextPoint) -> Option<TextPoint> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     fn apply_with_corner(&self, other: TextPoint, corner: TextPoint) -> Option<TextPoint> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     fn flip(&self) -> TextDifference {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `point_distance` is never used
[INFO] [stdout]   --> src/day8.rs:41:4
[INFO] [stdout]    |
[INFO] [stdout] 41 | fn point_distance(a: TextPoint, b: TextPoint) -> TextDifference {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileId` is never constructed
[INFO] [stdout]  --> src/day9.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | struct FileId(usize);
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockIndex` is never constructed
[INFO] [stdout]  --> src/day9.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct BlockIndex(usize);
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `File` is never constructed
[INFO] [stdout]  --> src/day9.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | struct File {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Disk` is never constructed
[INFO] [stdout]   --> src/day9.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct Disk {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `checksum` is never used
[INFO] [stdout]   --> src/day9.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn checksum(disk: &Disk) -> usize {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `defrag` is never used
[INFO] [stdout]   --> src/day9.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn defrag(disk: &mut Disk) {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `smart_defrag` is never used
[INFO] [stdout]   --> src/day9.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn smart_defrag(disk: &mut Disk) {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse` is never used
[INFO] [stdout]    --> src/day9.rs:105:4
[INFO] [stdout]     |
[INFO] [stdout] 105 | fn parse(data: &str) -> Disk {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/day5.rs:78:23
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub fn successors(&self, source: NodeIndex) -> Successors {
[INFO] [stdout]    |                       ^^^^^                        ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub fn successors(&self, source: NodeIndex) -> Successors<'_> {
[INFO] [stdout]    |                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Itertools`
[INFO] [stdout]  --> src/day19.rs:3:31
[INFO] [stdout]   |
[INFO] [stdout] 3 | use itertools::{EitherOrBoth, Itertools};
[INFO] [stdout]   |                               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_robots` is never used
[INFO] [stdout]   --> src/day14.rs:67:4
[INFO] [stdout]    |
[INFO] [stdout] 67 | fn print_robots(rs: &Vec<Robot>, corner: Point) {
[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 `heuristic` is never used
[INFO] [stdout]    --> src/day14.rs:158:8
[INFO] [stdout]     |
[INFO] [stdout] 158 |     fn heuristic(rs: &Vec<Robot>) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TEST_DATA` is never used
[INFO] [stdout]   --> src/day17.rs:79:11
[INFO] [stdout]    |
[INFO] [stdout] 79 |     const TEST_DATA: &str = "";
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_map_with_costs` is never used
[INFO] [stdout]    --> src/day18.rs:156:4
[INFO] [stdout]     |
[INFO] [stdout] 156 | fn print_map_with_costs(g: &Vec<Vec<u8>>, dist: &HashMap<TextPoint, usize>) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TEST_DATA` is never used
[INFO] [stdout]   --> src/day8.rs:60:11
[INFO] [stdout]    |
[INFO] [stdout] 60 |     const TEST_DATA: &str = "............
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `File` is never constructed
[INFO] [stdout]  --> src/day9.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | struct File {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIMPLE_DATA` is never used
[INFO] [stdout]    --> src/day9.rs:135:11
[INFO] [stdout]     |
[INFO] [stdout] 135 |     const SIMPLE_DATA: &str = "12345";
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/day5.rs:78:23
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub fn successors(&self, source: NodeIndex) -> Successors {
[INFO] [stdout]    |                       ^^^^^                        ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub fn successors(&self, source: NodeIndex) -> Successors<'_> {
[INFO] [stdout]    |                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.28s
[INFO] running `Command { std: "docker" "inspect" "1ae3eae3b0a206ae2d0968fbb732b84927898ee5bd62e1d20bd0021fedd66ecd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1ae3eae3b0a206ae2d0968fbb732b84927898ee5bd62e1d20bd0021fedd66ecd", kill_on_drop: false }`
[INFO] [stdout] 1ae3eae3b0a206ae2d0968fbb732b84927898ee5bd62e1d20bd0021fedd66ecd
