[INFO] cloning repository https://github.com/VidVrbnjak/aoc2023
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/VidVrbnjak/aoc2023" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FVidVrbnjak%2Faoc2023", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FVidVrbnjak%2Faoc2023'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c6c57db647faa7a4558c0be2cf7d8ae317f81a7d
[INFO] checking VidVrbnjak/aoc2023 against try#4f260f0f20b3133d20cfb50353c0221943af5796+rustflags=-Dunmustuse_in_always_ok for pr-148577
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FVidVrbnjak%2Faoc2023" "/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/VidVrbnjak/aoc2023
[INFO] finished tweaking git repo https://github.com/VidVrbnjak/aoc2023
[INFO] tweaked toml for git repo https://github.com/VidVrbnjak/aoc2023 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/VidVrbnjak/aoc2023 on toolchain 4f260f0f20b3133d20cfb50353c0221943af5796
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/VidVrbnjak/aoc2023 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" "+4f260f0f20b3133d20cfb50353c0221943af5796" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] 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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 38c4a9db1d1b33db49d51c3907aa77423a0db8e3bfad8caa676afb287bb58cdb
[INFO] running `Command { std: "docker" "start" "-a" "38c4a9db1d1b33db49d51c3907aa77423a0db8e3bfad8caa676afb287bb58cdb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "38c4a9db1d1b33db49d51c3907aa77423a0db8e3bfad8caa676afb287bb58cdb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "38c4a9db1d1b33db49d51c3907aa77423a0db8e3bfad8caa676afb287bb58cdb", kill_on_drop: false }`
[INFO] [stdout] 38c4a9db1d1b33db49d51c3907aa77423a0db8e3bfad8caa676afb287bb58cdb
[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 -Dunmustuse_in_always_ok" "-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d6a538302d47175477ed7433b578a3c10a4e769b1df59a42bb0a7504b518201c
[INFO] running `Command { std: "docker" "start" "-a" "d6a538302d47175477ed7433b578a3c10a4e769b1df59a42bb0a7504b518201c", kill_on_drop: false }`
[INFO] [stderr]     Checking aoc2023 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `usize::MAX`
[INFO] [stdout]  --> src/day_12.rs:1:47
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, fmt::Display, usize::MAX};
[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: `std::str::FromStr`
[INFO] [stdout]  --> src/day_15.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::str::FromStr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/day_20.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{HashMap, HashSet, VecDeque};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Add`
[INFO] [stdout]  --> src/day_5.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::{Add, Range};
[INFO] [stdout]   |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Add`
[INFO] [stdout]  --> src/day_5_p2.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::Add;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `usize::MAX`
[INFO] [stdout]  --> src/day_12.rs:1:47
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, fmt::Display, usize::MAX};
[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: `std::str::FromStr`
[INFO] [stdout]  --> src/day_15.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::str::FromStr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/day_20.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{HashMap, HashSet, VecDeque};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Add`
[INFO] [stdout]  --> src/day_5.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::{Add, Range};
[INFO] [stdout]   |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Add`
[INFO] [stdout]  --> src/day_5_p2.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::Add;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/day_16.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     return;
[INFO] [stdout]    |     ------ any code following this expression is unreachable
[INFO] [stdout] 22 |     let contraption = parse_contraption(input);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/day_17.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     return;
[INFO] [stdout]    |     ------ any code following this expression is unreachable
[INFO] [stdout] 11 |     let map = Map::from_str(input).unwrap();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/day_17.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     return;
[INFO] [stdout]    |     ------ any code following this expression is unreachable
[INFO] [stdout] 24 |     let map = Map::from_str(input).unwrap();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/day_18.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     return;
[INFO] [stdout]    |     ------ any code following this expression is unreachable
[INFO] [stdout] 21 |     let dp = DigPlan::from_str(input).unwrap().correct();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]  --> src/day_19.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     return;
[INFO] [stdout]   |     ------ any code following this expression is unreachable
[INFO] [stdout] 6 |
[INFO] [stdout] 7 |     let workflows = parse_workflows(input);
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/day_19.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     return;
[INFO] [stdout]    |     ------ any code following this expression is unreachable
[INFO] [stdout] 43 |     assert!(Parts::all().count() == 256_000_000_000_000);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/day_16.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     return;
[INFO] [stdout]    |     ------ any code following this expression is unreachable
[INFO] [stdout] 22 |     let contraption = parse_contraption(input);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/day_17.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     return;
[INFO] [stdout]    |     ------ any code following this expression is unreachable
[INFO] [stdout] 11 |     let map = Map::from_str(input).unwrap();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/day_17.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     return;
[INFO] [stdout]    |     ------ any code following this expression is unreachable
[INFO] [stdout] 24 |     let map = Map::from_str(input).unwrap();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/day_18.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     return;
[INFO] [stdout]    |     ------ any code following this expression is unreachable
[INFO] [stdout] 21 |     let dp = DigPlan::from_str(input).unwrap().correct();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]  --> src/day_19.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     return;
[INFO] [stdout]   |     ------ any code following this expression is unreachable
[INFO] [stdout] 6 |
[INFO] [stdout] 7 |     let workflows = parse_workflows(input);
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/day_19.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     return;
[INFO] [stdout]    |     ------ any code following this expression is unreachable
[INFO] [stdout] 43 |     assert!(Parts::all().count() == 256_000_000_000_000);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day_11.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let mut min_dx = usize::MAX;
[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: `min_dx`
[INFO] [stdout]   --> src/day_11.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let mut min_dx = usize::MAX;
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_min_dx`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `old`
[INFO] [stdout]   --> src/day_11.rs:87:32
[INFO] [stdout]    |
[INFO] [stdout] 87 |     let map = map.iter().map(|(old, new)| new).collect::<Vec<_>>();
[INFO] [stdout]    |                                ^^^ help: if this is intentional, prefix it with an underscore: `_old`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `top`
[INFO] [stdout]   --> src/day_13.rs:13:46
[INFO] [stdout]    |
[INFO] [stdout] 13 |                     Reflection::Horizontal { top, bottom } => bottom * 100,
[INFO] [stdout]    |                                              ^^^ help: try ignoring the field: `top: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left`
[INFO] [stdout]   --> src/day_13.rs:14:44
[INFO] [stdout]    |
[INFO] [stdout] 14 |                     Reflection::Vertical { left, right } => *right,
[INFO] [stdout]    |                                            ^^^^ help: try ignoring the field: `left: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `top`
[INFO] [stdout]   --> src/day_13.rs:35:46
[INFO] [stdout]    |
[INFO] [stdout] 35 |                     Reflection::Horizontal { top, bottom } => {
[INFO] [stdout]    |                                              ^^^ help: try ignoring the field: `top: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left`
[INFO] [stdout]   --> src/day_13.rs:43:44
[INFO] [stdout]    |
[INFO] [stdout] 43 |                     Reflection::Vertical { left, right } => {
[INFO] [stdout]    |                                            ^^^^ help: try ignoring the field: `left: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `summary`
[INFO] [stdout]   --> src/day_13.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let summary = patterns
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_summary`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/day_11.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let mut min_dx = usize::MAX;
[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: `min_dx`
[INFO] [stdout]   --> src/day_11.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let mut min_dx = usize::MAX;
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_min_dx`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `old`
[INFO] [stdout]   --> src/day_11.rs:87:32
[INFO] [stdout]    |
[INFO] [stdout] 87 |     let map = map.iter().map(|(old, new)| new).collect::<Vec<_>>();
[INFO] [stdout]    |                                ^^^ help: if this is intentional, prefix it with an underscore: `_old`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `org_reflection`
[INFO] [stdout]    --> src/day_13.rs:137:9
[INFO] [stdout]     |
[INFO] [stdout] 137 |     let org_reflection = find_reflections(pattern)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_org_reflection`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `org_pattern`
[INFO] [stdout]    --> src/day_13.rs:162:17
[INFO] [stdout]     |
[INFO] [stdout] 162 |             let org_pattern = pattern.clone();
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_org_pattern`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `top`
[INFO] [stdout]   --> src/day_13.rs:13:46
[INFO] [stdout]    |
[INFO] [stdout] 13 |                     Reflection::Horizontal { top, bottom } => bottom * 100,
[INFO] [stdout]    |                                              ^^^ help: try ignoring the field: `top: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left`
[INFO] [stdout]   --> src/day_13.rs:14:44
[INFO] [stdout]    |
[INFO] [stdout] 14 |                     Reflection::Vertical { left, right } => *right,
[INFO] [stdout]    |                                            ^^^^ help: try ignoring the field: `left: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `top`
[INFO] [stdout]   --> src/day_13.rs:35:46
[INFO] [stdout]    |
[INFO] [stdout] 35 |                     Reflection::Horizontal { top, bottom } => {
[INFO] [stdout]    |                                              ^^^ help: try ignoring the field: `top: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left`
[INFO] [stdout]   --> src/day_13.rs:43:44
[INFO] [stdout]    |
[INFO] [stdout] 43 |                     Reflection::Vertical { left, right } => {
[INFO] [stdout]    |                                            ^^^^ help: try ignoring the field: `left: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `summary`
[INFO] [stdout]   --> src/day_13.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let summary = patterns
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_summary`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/day_16.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn p2(input: &str) {
[INFO] [stdout]    |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `contraption`
[INFO] [stdout]   --> src/day_16.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let contraption = parse_contraption(input);
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_contraption`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `best`
[INFO] [stdout]   --> src/day_16.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |     let mut best = (
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_best`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ridx`
[INFO] [stdout]   --> src/day_16.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     for ridx in 0..contraption.rows {
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_ridx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]   --> src/day_16.rs:31:13
[INFO] [stdout]    |
[INFO] [stdout] 31 |         let start = Beam {
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mem`
[INFO] [stdout]   --> src/day_16.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let mem = run_beam(start.clone(), &contraption);
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_mem`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]   --> src/day_16.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let start = Beam {
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mem`
[INFO] [stdout]   --> src/day_16.rs:44:13
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let mem = run_beam(start.clone(), &contraption);
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_mem`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cidx`
[INFO] [stdout]   --> src/day_16.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     for cidx in 0..contraption.cols {
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_cidx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]   --> src/day_16.rs:51:13
[INFO] [stdout]    |
[INFO] [stdout] 51 |         let start = Beam {
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mem`
[INFO] [stdout]   --> src/day_16.rs:55:13
[INFO] [stdout]    |
[INFO] [stdout] 55 |         let mem = run_beam(start.clone(), &contraption);
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_mem`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]   --> src/day_16.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let start = Beam {
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mem`
[INFO] [stdout]   --> src/day_16.rs:64:13
[INFO] [stdout]    |
[INFO] [stdout] 64 |         let mem = run_beam(start.clone(), &contraption);
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_mem`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/day_17.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn p1(input: &str) {
[INFO] [stdout]   |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `map`
[INFO] [stdout]   --> src/day_17.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let map = Map::from_str(input).unwrap();
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `steps`
[INFO] [stdout]   --> src/day_17.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let steps = find_shortest_path(&map, (0, 0), (map.rows - 1, map.cols - 1), 3, 1);
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_steps`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/day_17.rs:21:11
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn p2(input: &str) {
[INFO] [stdout]    |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `map`
[INFO] [stdout]   --> src/day_17.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let map = Map::from_str(input).unwrap();
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `steps`
[INFO] [stdout]   --> src/day_17.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let steps = find_shortest_path(&map, (0, 0), (map.rows - 1, map.cols - 1), 10, 4);
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_steps`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `org_reflection`
[INFO] [stdout]    --> src/day_13.rs:137:9
[INFO] [stdout]     |
[INFO] [stdout] 137 |     let org_reflection = find_reflections(pattern)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_org_reflection`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `org_pattern`
[INFO] [stdout]    --> src/day_13.rs:162:17
[INFO] [stdout]     |
[INFO] [stdout] 162 |             let org_pattern = pattern.clone();
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_org_pattern`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/day_18.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn p2(input: &str) {
[INFO] [stdout]    |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dp`
[INFO] [stdout]   --> src/day_18.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let dp = DigPlan::from_str(input).unwrap().correct();
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_dp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enclosed_area`
[INFO] [stdout]   --> src/day_18.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let enclosed_area = trench_enclosed_area_fast(&dp);
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enclosed_area`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/day_16.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn p2(input: &str) {
[INFO] [stdout]    |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `contraption`
[INFO] [stdout]   --> src/day_16.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let contraption = parse_contraption(input);
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_contraption`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `best`
[INFO] [stdout]   --> src/day_16.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |     let mut best = (
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_best`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ridx`
[INFO] [stdout]   --> src/day_16.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |     for ridx in 0..contraption.rows {
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_ridx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]   --> src/day_16.rs:31:13
[INFO] [stdout]    |
[INFO] [stdout] 31 |         let start = Beam {
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mem`
[INFO] [stdout]   --> src/day_16.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let mem = run_beam(start.clone(), &contraption);
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_mem`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]   --> src/day_16.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let start = Beam {
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mem`
[INFO] [stdout]   --> src/day_16.rs:44:13
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let mem = run_beam(start.clone(), &contraption);
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_mem`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cidx`
[INFO] [stdout]   --> src/day_16.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 50 |     for cidx in 0..contraption.cols {
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_cidx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]   --> src/day_16.rs:51:13
[INFO] [stdout]    |
[INFO] [stdout] 51 |         let start = Beam {
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mem`
[INFO] [stdout]   --> src/day_16.rs:55:13
[INFO] [stdout]    |
[INFO] [stdout] 55 |         let mem = run_beam(start.clone(), &contraption);
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_mem`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]   --> src/day_16.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let start = Beam {
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mem`
[INFO] [stdout]   --> src/day_16.rs:64:13
[INFO] [stdout]    |
[INFO] [stdout] 64 |         let mem = run_beam(start.clone(), &contraption);
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_mem`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/day_19.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn p1(input: &str) {
[INFO] [stdout]   |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `workflows`
[INFO] [stdout]  --> src/day_19.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let workflows = parse_workflows(input);
[INFO] [stdout]   |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workflows`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parts`
[INFO] [stdout]  --> src/day_19.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let parts = parse_parts(input);
[INFO] [stdout]   |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_parts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sum`
[INFO] [stdout]   --> src/day_19.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let mut sum = 0;
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sum`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `part`
[INFO] [stdout]   --> src/day_19.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     for part in parts.iter() {
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_part`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `wf_res`
[INFO] [stdout]   --> src/day_19.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |         let mut wf_res = PartCmd::GoToWorkflow("in".to_string());
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_wf_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `wf_name`
[INFO] [stdout]   --> src/day_19.rs:22:39
[INFO] [stdout]    |
[INFO] [stdout] 22 |                 PartCmd::GoToWorkflow(ref wf_name) => {
[INFO] [stdout]    |                                       ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_wf_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `wf`
[INFO] [stdout]   --> src/day_19.rs:23:25
[INFO] [stdout]    |
[INFO] [stdout] 23 |                     let wf = workflows.get(wf_name).unwrap();
[INFO] [stdout]    |                         ^^ help: if this is intentional, prefix it with an underscore: `_wf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cond_range`
[INFO] [stdout]   --> src/day_19.rs:24:27
[INFO] [stdout]    |
[INFO] [stdout] 24 |                     for ((cond_range, cond_part), res) in wf {
[INFO] [stdout]    |                           ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cond_range`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cond_part`
[INFO] [stdout]   --> src/day_19.rs:24:39
[INFO] [stdout]    |
[INFO] [stdout] 24 |                     for ((cond_range, cond_part), res) in wf {
[INFO] [stdout]    |                                       ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cond_part`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]   --> src/day_19.rs:24:51
[INFO] [stdout]    |
[INFO] [stdout] 24 |                     for ((cond_range, cond_part), res) in wf {
[INFO] [stdout]    |                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/day_19.rs:40:11
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn p2(input: &str) {
[INFO] [stdout]    |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `workflows`
[INFO] [stdout]   --> src/day_19.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let workflows = wf2(parse_workflows(input));
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workflows`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `q`
[INFO] [stdout]   --> src/day_19.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let mut q = vec![(Parts::all(), Cmd2::Wf("in".to_string(), 0))];
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `accepted`
[INFO] [stdout]   --> src/day_19.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |     let mut accepted = Vec::new();
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_accepted`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rejected`
[INFO] [stdout]   --> src/day_19.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |     let mut rejected = Vec::new();
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rejected`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parts`
[INFO] [stdout]   --> src/day_19.rs:50:21
[INFO] [stdout]    |
[INFO] [stdout] 50 |     while let Some((parts, cmd)) = q.pop() {
[INFO] [stdout]    |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_parts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cmd`
[INFO] [stdout]   --> src/day_19.rs:50:28
[INFO] [stdout]    |
[INFO] [stdout] 50 |     while let Some((parts, cmd)) = q.pop() {
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `wf`
[INFO] [stdout]   --> src/day_19.rs:58:22
[INFO] [stdout]    |
[INFO] [stdout] 58 |             Cmd2::Wf(wf, step) => {
[INFO] [stdout]    |                      ^^ help: if this is intentional, prefix it with an underscore: `_wf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `step`
[INFO] [stdout]   --> src/day_19.rs:58:26
[INFO] [stdout]    |
[INFO] [stdout] 58 |             Cmd2::Wf(wf, step) => {
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_step`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filter`
[INFO] [stdout]   --> src/day_19.rs:59:22
[INFO] [stdout]    |
[INFO] [stdout] 59 |                 let (filter, cmd) = workflows.get(wf.as_str()).unwrap().get(step).unwrap();
[INFO] [stdout]    |                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_filter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cmd`
[INFO] [stdout]   --> src/day_19.rs:59:30
[INFO] [stdout]    |
[INFO] [stdout] 59 |                 let (filter, cmd) = workflows.get(wf.as_str()).unwrap().get(step).unwrap();
[INFO] [stdout]    |                              ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filtered`
[INFO] [stdout]   --> src/day_19.rs:60:21
[INFO] [stdout]    |
[INFO] [stdout] 60 |                 let filtered = filter_parts(&parts, filter);
[INFO] [stdout]    |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filtered`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/day_17.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn p1(input: &str) {
[INFO] [stdout]   |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `map`
[INFO] [stdout]   --> src/day_17.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let map = Map::from_str(input).unwrap();
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `steps`
[INFO] [stdout]   --> src/day_17.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let steps = find_shortest_path(&map, (0, 0), (map.rows - 1, map.cols - 1), 3, 1);
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_steps`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/day_17.rs:21:11
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn p2(input: &str) {
[INFO] [stdout]    |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `map`
[INFO] [stdout]   --> src/day_17.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let map = Map::from_str(input).unwrap();
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `steps`
[INFO] [stdout]   --> src/day_17.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let steps = find_shortest_path(&map, (0, 0), (map.rows - 1, map.cols - 1), 10, 4);
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_steps`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/day_18.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn p2(input: &str) {
[INFO] [stdout]    |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dp`
[INFO] [stdout]   --> src/day_18.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let dp = DigPlan::from_str(input).unwrap().correct();
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_dp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enclosed_area`
[INFO] [stdout]   --> src/day_18.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let enclosed_area = trench_enclosed_area_fast(&dp);
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enclosed_area`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `on`
[INFO] [stdout]   --> src/day_20.rs:29:40
[INFO] [stdout]    |
[INFO] [stdout] 29 |                     Module::FlipFlop { on, targets } => {
[INFO] [stdout]    |                                        ^^ help: try ignoring the field: `on: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inputs`
[INFO] [stdout]   --> src/day_20.rs:34:43
[INFO] [stdout]    |
[INFO] [stdout] 34 |                     Module::Conjunction { inputs, targets } => {
[INFO] [stdout]    |                                           ^^^^^^ help: try ignoring the field: `inputs: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `on`
[INFO] [stdout]   --> src/day_20.rs:95:40
[INFO] [stdout]    |
[INFO] [stdout] 95 |                     Module::FlipFlop { on, targets } => {
[INFO] [stdout]    |                                        ^^ help: try ignoring the field: `on: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inputs`
[INFO] [stdout]    --> src/day_20.rs:100:43
[INFO] [stdout]     |
[INFO] [stdout] 100 |                     Module::Conjunction { inputs, targets } => {
[INFO] [stdout]     |                                           ^^^^^^ help: try ignoring the field: `inputs: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> src/day_19.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn p1(input: &str) {
[INFO] [stdout]   |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `workflows`
[INFO] [stdout]  --> src/day_19.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let workflows = parse_workflows(input);
[INFO] [stdout]   |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workflows`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parts`
[INFO] [stdout]  --> src/day_19.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let parts = parse_parts(input);
[INFO] [stdout]   |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_parts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `on`
[INFO] [stdout]    --> src/day_20.rs:199:32
[INFO] [stdout]     |
[INFO] [stdout] 199 |             Module::FlipFlop { on, targets } => {
[INFO] [stdout]     |                                ^^ help: try ignoring the field: `on: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sum`
[INFO] [stdout]   --> src/day_19.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let mut sum = 0;
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sum`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `targets`
[INFO] [stdout]    --> src/day_20.rs:202:55
[INFO] [stdout]     |
[INFO] [stdout] 202 |                         Module::Conjunction { inputs, targets } => {
[INFO] [stdout]     |                                                       ^^^^^^^ help: try ignoring the field: `targets: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `part`
[INFO] [stdout]   --> src/day_19.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     for part in parts.iter() {
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_part`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inputs`
[INFO] [stdout]    --> src/day_20.rs:209:35
[INFO] [stdout]     |
[INFO] [stdout] 209 |             Module::Conjunction { inputs, targets } => {
[INFO] [stdout]     |                                   ^^^^^^ help: try ignoring the field: `inputs: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `wf_res`
[INFO] [stdout]   --> src/day_19.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |         let mut wf_res = PartCmd::GoToWorkflow("in".to_string());
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_wf_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `targets`
[INFO] [stdout]    --> src/day_20.rs:212:60
[INFO] [stdout]     |
[INFO] [stdout] 212 |                         Some(Module::Conjunction { inputs, targets }) => {
[INFO] [stdout]     |                                                            ^^^^^^^ help: try ignoring the field: `targets: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `wf_name`
[INFO] [stdout]   --> src/day_19.rs:22:39
[INFO] [stdout]    |
[INFO] [stdout] 22 |                 PartCmd::GoToWorkflow(ref wf_name) => {
[INFO] [stdout]    |                                       ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_wf_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `targets`
[INFO] [stdout]    --> src/day_20.rs:222:55
[INFO] [stdout]     |
[INFO] [stdout] 222 |                         Module::Conjunction { inputs, targets } => {
[INFO] [stdout]     |                                                       ^^^^^^^ help: try ignoring the field: `targets: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `targets`
[INFO] [stdout]    --> src/day_20.rs:232:55
[INFO] [stdout]     |
[INFO] [stdout] 232 |                         Module::Conjunction { inputs, targets } => {
[INFO] [stdout]     |                                                       ^^^^^^^ help: try ignoring the field: `targets: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `wf`
[INFO] [stdout]   --> src/day_19.rs:23:25
[INFO] [stdout]    |
[INFO] [stdout] 23 |                     let wf = workflows.get(wf_name).unwrap();
[INFO] [stdout]    |                         ^^ help: if this is intentional, prefix it with an underscore: `_wf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cond_range`
[INFO] [stdout]   --> src/day_19.rs:24:27
[INFO] [stdout]    |
[INFO] [stdout] 24 |                     for ((cond_range, cond_part), res) in wf {
[INFO] [stdout]    |                           ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cond_range`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `targets`
[INFO] [stdout]    --> src/day_20.rs:248:32
[INFO] [stdout]     |
[INFO] [stdout] 248 |         Module::FlipFlop { on, targets } => {
[INFO] [stdout]     |                                ^^^^^^^ help: try ignoring the field: `targets: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `targets`
[INFO] [stdout]    --> src/day_20.rs:260:39
[INFO] [stdout]     |
[INFO] [stdout] 260 |         Module::Conjunction { inputs, targets } => {
[INFO] [stdout]     |                                       ^^^^^^^ help: try ignoring the field: `targets: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cond_part`
[INFO] [stdout]   --> src/day_19.rs:24:39
[INFO] [stdout]    |
[INFO] [stdout] 24 |                     for ((cond_range, cond_part), res) in wf {
[INFO] [stdout]    |                                       ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cond_part`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `targets`
[INFO] [stdout]    --> src/day_20.rs:268:29
[INFO] [stdout]     |
[INFO] [stdout] 268 |         Module::Broadcast { targets } => Some(pulse),
[INFO] [stdout]     |                             ^^^^^^^ help: try ignoring the field: `targets: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]   --> src/day_19.rs:24:51
[INFO] [stdout]    |
[INFO] [stdout] 24 |                     for ((cond_range, cond_part), res) in wf {
[INFO] [stdout]    |                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `targets`
[INFO] [stdout]    --> src/day_20.rs:269:26
[INFO] [stdout]     |
[INFO] [stdout] 269 |         Module::Button { targets } => Some(Pulse::Low),
[INFO] [stdout]     |                          ^^^^^^^ help: try ignoring the field: `targets: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/day_19.rs:40:11
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn p2(input: &str) {
[INFO] [stdout]    |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `workflows`
[INFO] [stdout]   --> src/day_19.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let workflows = wf2(parse_workflows(input));
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workflows`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `q`
[INFO] [stdout]   --> src/day_19.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let mut q = vec![(Parts::all(), Cmd2::Wf("in".to_string(), 0))];
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `accepted`
[INFO] [stdout]   --> src/day_19.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |     let mut accepted = Vec::new();
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_accepted`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rejected`
[INFO] [stdout]   --> src/day_19.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |     let mut rejected = Vec::new();
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rejected`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parts`
[INFO] [stdout]   --> src/day_19.rs:50:21
[INFO] [stdout]    |
[INFO] [stdout] 50 |     while let Some((parts, cmd)) = q.pop() {
[INFO] [stdout]    |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_parts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cmd`
[INFO] [stdout]   --> src/day_19.rs:50:28
[INFO] [stdout]    |
[INFO] [stdout] 50 |     while let Some((parts, cmd)) = q.pop() {
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `wf`
[INFO] [stdout]   --> src/day_19.rs:58:22
[INFO] [stdout]    |
[INFO] [stdout] 58 |             Cmd2::Wf(wf, step) => {
[INFO] [stdout]    |                      ^^ help: if this is intentional, prefix it with an underscore: `_wf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `step`
[INFO] [stdout]   --> src/day_19.rs:58:26
[INFO] [stdout]    |
[INFO] [stdout] 58 |             Cmd2::Wf(wf, step) => {
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_step`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filter`
[INFO] [stdout]   --> src/day_19.rs:59:22
[INFO] [stdout]    |
[INFO] [stdout] 59 |                 let (filter, cmd) = workflows.get(wf.as_str()).unwrap().get(step).unwrap();
[INFO] [stdout]    |                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_filter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cmd`
[INFO] [stdout]   --> src/day_19.rs:59:30
[INFO] [stdout]    |
[INFO] [stdout] 59 |                 let (filter, cmd) = workflows.get(wf.as_str()).unwrap().get(step).unwrap();
[INFO] [stdout]    |                              ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filtered`
[INFO] [stdout]   --> src/day_19.rs:60:21
[INFO] [stdout]    |
[INFO] [stdout] 60 |                 let filtered = filter_parts(&parts, filter);
[INFO] [stdout]    |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filtered`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dr`
[INFO] [stdout]   --> src/day_5.rs:36:21
[INFO] [stdout]    |
[INFO] [stdout] 36 |             .find(|(dr, sr)| sr.contains(&nr))
[INFO] [stdout]    |                     ^^ help: if this is intentional, prefix it with an underscore: `_dr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `seed_range_starts`
[INFO] [stdout]   --> src/day_5.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |     let seed_range_starts = seeds
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_seed_range_starts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `seed_range_lengths`
[INFO] [stdout]   --> src/day_5.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 56 |     let seed_range_lengths = seeds
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_seed_range_lengths`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `on`
[INFO] [stdout]   --> src/day_20.rs:29:40
[INFO] [stdout]    |
[INFO] [stdout] 29 |                     Module::FlipFlop { on, targets } => {
[INFO] [stdout]    |                                        ^^ help: try ignoring the field: `on: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inputs`
[INFO] [stdout]   --> src/day_20.rs:34:43
[INFO] [stdout]    |
[INFO] [stdout] 34 |                     Module::Conjunction { inputs, targets } => {
[INFO] [stdout]    |                                           ^^^^^^ help: try ignoring the field: `inputs: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `on`
[INFO] [stdout]   --> src/day_20.rs:95:40
[INFO] [stdout]    |
[INFO] [stdout] 95 |                     Module::FlipFlop { on, targets } => {
[INFO] [stdout]    |                                        ^^ help: try ignoring the field: `on: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inputs`
[INFO] [stdout]    --> src/day_20.rs:100:43
[INFO] [stdout]     |
[INFO] [stdout] 100 |                     Module::Conjunction { inputs, targets } => {
[INFO] [stdout]     |                                           ^^^^^^ help: try ignoring the field: `inputs: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `on`
[INFO] [stdout]    --> src/day_20.rs:199:32
[INFO] [stdout]     |
[INFO] [stdout] 199 |             Module::FlipFlop { on, targets } => {
[INFO] [stdout]     |                                ^^ help: try ignoring the field: `on: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `targets`
[INFO] [stdout]    --> src/day_20.rs:202:55
[INFO] [stdout]     |
[INFO] [stdout] 202 |                         Module::Conjunction { inputs, targets } => {
[INFO] [stdout]     |                                                       ^^^^^^^ help: try ignoring the field: `targets: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inputs`
[INFO] [stdout]    --> src/day_20.rs:209:35
[INFO] [stdout]     |
[INFO] [stdout] 209 |             Module::Conjunction { inputs, targets } => {
[INFO] [stdout]     |                                   ^^^^^^ help: try ignoring the field: `inputs: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `targets`
[INFO] [stdout]    --> src/day_20.rs:212:60
[INFO] [stdout]     |
[INFO] [stdout] 212 |                         Some(Module::Conjunction { inputs, targets }) => {
[INFO] [stdout]     |                                                            ^^^^^^^ help: try ignoring the field: `targets: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `targets`
[INFO] [stdout]    --> src/day_20.rs:222:55
[INFO] [stdout]     |
[INFO] [stdout] 222 |                         Module::Conjunction { inputs, targets } => {
[INFO] [stdout]     |                                                       ^^^^^^^ help: try ignoring the field: `targets: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `targets`
[INFO] [stdout]    --> src/day_20.rs:232:55
[INFO] [stdout]     |
[INFO] [stdout] 232 |                         Module::Conjunction { inputs, targets } => {
[INFO] [stdout]     |                                                       ^^^^^^^ help: try ignoring the field: `targets: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `targets`
[INFO] [stdout]    --> src/day_20.rs:248:32
[INFO] [stdout]     |
[INFO] [stdout] 248 |         Module::FlipFlop { on, targets } => {
[INFO] [stdout]     |                                ^^^^^^^ help: try ignoring the field: `targets: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `targets`
[INFO] [stdout]    --> src/day_20.rs:260:39
[INFO] [stdout]     |
[INFO] [stdout] 260 |         Module::Conjunction { inputs, targets } => {
[INFO] [stdout]     |                                       ^^^^^^^ help: try ignoring the field: `targets: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `targets`
[INFO] [stdout]    --> src/day_20.rs:268:29
[INFO] [stdout]     |
[INFO] [stdout] 268 |         Module::Broadcast { targets } => Some(pulse),
[INFO] [stdout]     |                             ^^^^^^^ help: try ignoring the field: `targets: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `targets`
[INFO] [stdout]    --> src/day_20.rs:269:26
[INFO] [stdout]     |
[INFO] [stdout] 269 |         Module::Button { targets } => Some(Pulse::Low),
[INFO] [stdout]     |                          ^^^^^^^ help: try ignoring the field: `targets: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dr`
[INFO] [stdout]   --> src/day_5.rs:36:21
[INFO] [stdout]    |
[INFO] [stdout] 36 |             .find(|(dr, sr)| sr.contains(&nr))
[INFO] [stdout]    |                     ^^ help: if this is intentional, prefix it with an underscore: `_dr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `seed_range_starts`
[INFO] [stdout]   --> src/day_5.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |     let seed_range_starts = seeds
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_seed_range_starts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `seed_range_lengths`
[INFO] [stdout]   --> src/day_5.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 56 |     let seed_range_lengths = seeds
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_seed_range_lengths`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print` is never used
[INFO] [stdout]    --> src/day_11.rs:121:4
[INFO] [stdout]     |
[INFO] [stdout] 121 | fn print(map: &Vec<Vec<Option<Galaxy>>>) {
[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 `pos_distance` is never used
[INFO] [stdout]    --> src/day_11.rs:186:4
[INFO] [stdout]     |
[INFO] [stdout] 186 | fn pos_distance(p1: &POS, p2: &POS) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_pattern` is never used
[INFO] [stdout]    --> src/day_13.rs:229:4
[INFO] [stdout]     |
[INFO] [stdout] 229 | fn print_pattern(pattern: &Vec<Vec<char>>) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rocks_to_str` is never used
[INFO] [stdout]    --> src/day_14.rs:103:4
[INFO] [stdout]     |
[INFO] [stdout] 103 | fn rocks_to_str(rocks: &Vec<Vec<Option<Rock>>>) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_energized` is never used
[INFO] [stdout]    --> src/day_16.rs:268:4
[INFO] [stdout]     |
[INFO] [stdout] 268 | fn print_energized(contraption: &Contraption, mem: &HashMap<POS, HashSet<Direction>>) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `area` is never used
[INFO] [stdout]    --> src/day_17.rs:218:14
[INFO] [stdout]     |
[INFO] [stdout] 217 | impl Map {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] 218 |     const fn area(&self) -> usize {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_steps_on_map` is never used
[INFO] [stdout]    --> src/day_17.rs:309:4
[INFO] [stdout]     |
[INFO] [stdout] 309 | fn print_steps_on_map(map: &Map, steps: &Vec<Position>) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Vertical` is never used
[INFO] [stdout]    --> src/day_18.rs:246:6
[INFO] [stdout]     |
[INFO] [stdout] 246 | enum Vertical {
[INFO] [stdout]     |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Horizontal` is never used
[INFO] [stdout]    --> src/day_18.rs:251:6
[INFO] [stdout]     |
[INFO] [stdout] 251 | enum Horizontal {
[INFO] [stdout]     |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Dir` is never constructed
[INFO] [stdout]    --> src/day_18.rs:256:8
[INFO] [stdout]     |
[INFO] [stdout] 256 | struct Dir {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `nr` is never read
[INFO] [stdout]   --> src/day_4.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | struct Card {
[INFO] [stdout]    |        ---- field in this struct
[INFO] [stdout] 32 |     nr: u32,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/day_13.rs:57:39
[INFO] [stdout]    |
[INFO] [stdout] 57 |         println!("Static SUMMARY {}", SUMMARY.get_mut().unwrap());
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/day_13.rs:171:18
[INFO] [stdout]     |
[INFO] [stdout] 171 |                 *SUMMARY.get_mut().unwrap() += bottom_idx * 100;
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/day_13.rs:202:18
[INFO] [stdout]     |
[INFO] [stdout] 202 |                 *SUMMARY.get_mut().unwrap() += rhs_idx;
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print` is never used
[INFO] [stdout]    --> src/day_11.rs:121:4
[INFO] [stdout]     |
[INFO] [stdout] 121 | fn print(map: &Vec<Vec<Option<Galaxy>>>) {
[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 `pos_distance` is never used
[INFO] [stdout]    --> src/day_11.rs:186:4
[INFO] [stdout]     |
[INFO] [stdout] 186 | fn pos_distance(p1: &POS, p2: &POS) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_pattern` is never used
[INFO] [stdout]    --> src/day_13.rs:229:4
[INFO] [stdout]     |
[INFO] [stdout] 229 | fn print_pattern(pattern: &Vec<Vec<char>>) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_energized` is never used
[INFO] [stdout]    --> src/day_16.rs:268:4
[INFO] [stdout]     |
[INFO] [stdout] 268 | fn print_energized(contraption: &Contraption, mem: &HashMap<POS, HashSet<Direction>>) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `area` is never used
[INFO] [stdout]    --> src/day_17.rs:218:14
[INFO] [stdout]     |
[INFO] [stdout] 217 | impl Map {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] 218 |     const fn area(&self) -> usize {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_steps_on_map` is never used
[INFO] [stdout]    --> src/day_17.rs:309:4
[INFO] [stdout]     |
[INFO] [stdout] 309 | fn print_steps_on_map(map: &Map, steps: &Vec<Position>) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Vertical` is never used
[INFO] [stdout]    --> src/day_18.rs:246:6
[INFO] [stdout]     |
[INFO] [stdout] 246 | enum Vertical {
[INFO] [stdout]     |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Horizontal` is never used
[INFO] [stdout]    --> src/day_18.rs:251:6
[INFO] [stdout]     |
[INFO] [stdout] 251 | enum Horizontal {
[INFO] [stdout]     |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Dir` is never constructed
[INFO] [stdout]    --> src/day_18.rs:256:8
[INFO] [stdout]     |
[INFO] [stdout] 256 | struct Dir {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `nr` is never read
[INFO] [stdout]   --> src/day_4.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | struct Card {
[INFO] [stdout]    |        ---- field in this struct
[INFO] [stdout] 32 |     nr: u32,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/day_13.rs:57:39
[INFO] [stdout]    |
[INFO] [stdout] 57 |         println!("Static SUMMARY {}", SUMMARY.get_mut().unwrap());
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/day_13.rs:171:18
[INFO] [stdout]     |
[INFO] [stdout] 171 |                 *SUMMARY.get_mut().unwrap() += bottom_idx * 100;
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]    --> src/day_13.rs:202:18
[INFO] [stdout]     |
[INFO] [stdout] 202 |                 *SUMMARY.get_mut().unwrap() += rhs_idx;
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]    --> src/main.rs:183:9
[INFO] [stdout]     |
[INFO] [stdout] 182 |     struct Game {
[INFO] [stdout]     |            ---- field in this struct
[INFO] [stdout] 183 |         id: u32,
[INFO] [stdout]     |         ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Game` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]    --> src/main.rs:183:9
[INFO] [stdout]     |
[INFO] [stdout] 182 |     struct Game {
[INFO] [stdout]     |            ---- field in this struct
[INFO] [stdout] 183 |         id: u32,
[INFO] [stdout]     |         ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Game` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.74s
[INFO] running `Command { std: "docker" "inspect" "d6a538302d47175477ed7433b578a3c10a4e769b1df59a42bb0a7504b518201c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d6a538302d47175477ed7433b578a3c10a4e769b1df59a42bb0a7504b518201c", kill_on_drop: false }`
[INFO] [stdout] d6a538302d47175477ed7433b578a3c10a4e769b1df59a42bb0a7504b518201c
