[INFO] cloning repository https://github.com/kyegupov/aoc2021
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kyegupov/aoc2021" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkyegupov%2Faoc2021", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkyegupov%2Faoc2021'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] af35b6f64384a084110ffc985b6feb48b0fa200c
[INFO] checking kyegupov/aoc2021 against try#7dabc88a3b6768751847baeb49983f31ac5f20e2 for pr-155945
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkyegupov%2Faoc2021" "/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/kyegupov/aoc2021
[INFO] finished tweaking git repo https://github.com/kyegupov/aoc2021
[INFO] tweaked toml for git repo https://github.com/kyegupov/aoc2021 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/kyegupov/aoc2021 on toolchain 7dabc88a3b6768751847baeb49983f31ac5f20e2
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+7dabc88a3b6768751847baeb49983f31ac5f20e2" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/kyegupov/aoc2021 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" "+7dabc88a3b6768751847baeb49983f31ac5f20e2" "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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+7dabc88a3b6768751847baeb49983f31ac5f20e2" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ae1b24ab1610ebd94ac4c70e013f7dbd957124033befc719bdf11651bb197fe3
[INFO] running `Command { std: "docker" "start" "-a" "ae1b24ab1610ebd94ac4c70e013f7dbd957124033befc719bdf11651bb197fe3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ae1b24ab1610ebd94ac4c70e013f7dbd957124033befc719bdf11651bb197fe3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ae1b24ab1610ebd94ac4c70e013f7dbd957124033befc719bdf11651bb197fe3", kill_on_drop: false }`
[INFO] [stdout] ae1b24ab1610ebd94ac4c70e013f7dbd957124033befc719bdf11651bb197fe3
[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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+7dabc88a3b6768751847baeb49983f31ac5f20e2" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 07432820929cb2da012731538bae44b8d4afad2729c455a0570bb432b67000b9
[INFO] running `Command { std: "docker" "start" "-a" "07432820929cb2da012731538bae44b8d4afad2729c455a0570bb432b67000b9", kill_on_drop: false }`
[INFO] [stderr]     Checking itertools v0.10.1
[INFO] [stderr]     Checking nom v7.1.1
[INFO] [stderr]     Checking aoc2021 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `nom::branch::alt`
[INFO] [stdout]  --> src/main19a.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use nom::branch::alt;
[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: `nom::character::complete::digit0`
[INFO] [stdout]  --> src/main19a.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use nom::character::complete::digit0;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::combinator::map`
[INFO] [stdout]  --> src/main19a.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use nom::combinator::map;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ordering`, `max`, and `min`
[INFO] [stdout]  --> src/main19a.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                ^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BinaryHeap`, `LinkedList`, and `VecDeque`
[INFO] [stdout]  --> src/main19a.rs:6:44
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList, VecDeque};
[INFO] [stdout]   |                                            ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt`
[INFO] [stdout]  --> src/main19a.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::fmt;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/main19a.rs:124:52
[INFO] [stdout]     |
[INFO] [stdout] 124 | ...                   conversions.insert((i2), (i1, *orientation, offs));
[INFO] [stdout]     |                                          ^  ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 124 -                                 conversions.insert((i2), (i1, *orientation, offs));
[INFO] [stdout] 124 +                                 conversions.insert(i2 , (i1, *orientation, offs));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `max` and `min`
[INFO] [stdout]  --> src/main11a.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min};
[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: `nom::branch::alt`
[INFO] [stdout]  --> src/main20b.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use nom::branch::alt;
[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: `nom::character::complete::digit0`
[INFO] [stdout]  --> src/main20b.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use nom::character::complete::digit0;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::combinator::map`
[INFO] [stdout]  --> src/main20b.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use nom::combinator::map;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ordering`, `max`, and `min`
[INFO] [stdout]  --> src/main20b.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                ^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap`, `BTreeSet`, `BinaryHeap`, `LinkedList`, and `VecDeque`
[INFO] [stdout]  --> src/main20b.rs:6:24
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList, VecDeque};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt`
[INFO] [stdout]  --> src/main20b.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::fmt;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main17a.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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 imports: `Ordering`, `max`, and `min`
[INFO] [stdout]  --> src/main17a.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                ^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap`, `BTreeSet`, `BinaryHeap`, and `LinkedList`
[INFO] [stdout]  --> src/main17a.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::read_to_string`
[INFO] [stdout]  --> src/main17a.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::fs::read_to_string;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]   --> src/main19a.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |     for offset in 0..3 {
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]  --> src/main11a.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Orientation` is never used
[INFO] [stdout]   --> src/main20b.rs:11:6
[INFO] [stdout]    |
[INFO] [stdout] 11 | type Orientation = ((usize, usize, usize), Coords);
[INFO] [stdout]    |      ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Coords` is never used
[INFO] [stdout]   --> src/main20b.rs:12:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | type Coords = (i64, i64, i64);
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `File`
[INFO] [stdout]  --> src/main01a.rs:2:31
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fs::{read_to_string, File};
[INFO] [stdout]   |                               ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/main01a.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::{self, BufRead};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/main01a.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main08a.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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 imports: `max` and `min`
[INFO] [stdout]  --> src/main08a.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap` and `BTreeSet`
[INFO] [stdout]  --> src/main08a.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufRead`
[INFO] [stdout]  --> src/main01a.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::{self, BufRead};
[INFO] [stdout]   |                     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main07a.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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 imports: `max` and `min`
[INFO] [stdout]  --> src/main07a.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap` and `BTreeSet`
[INFO] [stdout]  --> src/main07a.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/main07a.rs:15:21
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let mut range = (*crabs.iter().min().unwrap()..=*crabs.iter().max().unwrap());
[INFO] [stdout]    |                     ^                                                           ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 15 -     let mut range = (*crabs.iter().min().unwrap()..=*crabs.iter().max().unwrap());
[INFO] [stdout] 15 +     let mut range = *crabs.iter().min().unwrap()..=*crabs.iter().max().unwrap() ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]  --> src/main21a.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools;
[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: `nom::branch::alt`
[INFO] [stdout]  --> src/main21a.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use nom::branch::alt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::character::complete::digit0`
[INFO] [stdout]  --> src/main21a.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use nom::character::complete::digit0;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::combinator::map`
[INFO] [stdout]  --> src/main21a.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use nom::combinator::map;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ordering` and `max`
[INFO] [stdout]  --> src/main21a.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                ^^^       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap`, `BTreeSet`, `BinaryHeap`, `LinkedList`, and `VecDeque`
[INFO] [stdout]  --> src/main21a.rs:6:24
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList, VecDeque};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt`
[INFO] [stdout]  --> src/main21a.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::fmt;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `max` and `min`
[INFO] [stdout]  --> src/main13b.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min};
[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: `BTreeMap`
[INFO] [stdout]  --> src/main13b.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main07a.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let mut crabs: Vec<i64> = lines[0].split(',').map(|x| x.parse().unwrap()).collect();
[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: variable does not need to be mutable
[INFO] [stdout]   --> src/main07a.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let mut range = (*crabs.iter().min().unwrap()..=*crabs.iter().max().unwrap());
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main21a.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         for i in 0..3 {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main21a.rs:44:13
[INFO] [stdout]    |
[INFO] [stdout] 44 |         for i in 0..3 {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Orientation` is never used
[INFO] [stdout]   --> src/main21a.rs:11:6
[INFO] [stdout]    |
[INFO] [stdout] 11 | type Orientation = ((usize, usize, usize), Coords);
[INFO] [stdout]    |      ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Coords` is never used
[INFO] [stdout]   --> src/main21a.rs:12:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | type Coords = (i64, i64, i64);
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::branch::alt`
[INFO] [stdout]  --> src/main23.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use nom::branch::alt;
[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 imports: `is_a` and `tag`
[INFO] [stdout]  --> src/main23.rs:4:28
[INFO] [stdout]   |
[INFO] [stdout] 4 | use nom::bytes::complete::{is_a, tag};
[INFO] [stdout]   |                            ^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `alpha1` and `digit0`
[INFO] [stdout]  --> src/main23.rs:5:32
[INFO] [stdout]   |
[INFO] [stdout] 5 | use nom::character::complete::{alpha1, digit0};
[INFO] [stdout]   |                                ^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `map_res` and `map`
[INFO] [stdout]  --> src/main23.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | use nom::combinator::{map, map_res};
[INFO] [stdout]   |                       ^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::error`
[INFO] [stdout]  --> src/main23.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use nom::error;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `preceded`, `terminated`, and `tuple`
[INFO] [stdout]  --> src/main23.rs:8:21
[INFO] [stdout]   |
[INFO] [stdout] 8 | use nom::sequence::{preceded, terminated, tuple};
[INFO] [stdout]   |                     ^^^^^^^^  ^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ordering`, `max`, and `min`
[INFO] [stdout]  --> src/main23.rs:9:16
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                ^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeSet`, `BinaryHeap`, `LinkedList`, and `VecDeque`
[INFO] [stdout]   --> src/main23.rs:10:34
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList, VecDeque};
[INFO] [stdout]    |                                  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fmt`
[INFO] [stdout]   --> src/main23.rs:13:16
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::{env, fmt};
[INFO] [stdout]    |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main18b.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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 imports: `Ordering`, `max`, and `min`
[INFO] [stdout]  --> src/main18b.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                ^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap`, `BTreeSet`, `BinaryHeap`, and `LinkedList`
[INFO] [stdout]  --> src/main18b.rs:6:24
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList, VecDeque};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/main23.rs:45:24
[INFO] [stdout]    |
[INFO] [stdout] 45 |             let c = if (y > 0 && !matches!(x, 2 | 4 | 6 | 8)) {
[INFO] [stdout]    |                        ^                                    ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 45 -             let c = if (y > 0 && !matches!(x, 2 | 4 | 6 | 8)) {
[INFO] [stdout] 45 +             let c = if y > 0 && !matches!(x, 2 | 4 | 6 | 8)  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main07b.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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 imports: `max` and `min`
[INFO] [stdout]  --> src/main07b.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap` and `BTreeSet`
[INFO] [stdout]  --> src/main07b.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/main07b.rs:17:21
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let mut range = (*crabs.iter().min().unwrap()..=*crabs.iter().max().unwrap());
[INFO] [stdout]    |                     ^                                                           ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 17 -     let mut range = (*crabs.iter().min().unwrap()..=*crabs.iter().max().unwrap());
[INFO] [stdout] 17 +     let mut range = *crabs.iter().min().unwrap()..=*crabs.iter().max().unwrap() ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/main23.rs:97:55
[INFO] [stdout]    |
[INFO] [stdout] 97 |             for (&(x, y), &c) in ps.iter().filter(|(&(x, y), &c)| y > 0) {
[INFO] [stdout]    |                                                       ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]   --> src/main23.rs:97:63
[INFO] [stdout]    |
[INFO] [stdout] 97 |             for (&(x, y), &c) in ps.iter().filter(|(&(x, y), &c)| y > 0) {
[INFO] [stdout]    |                                                               ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/main23.rs:72:51
[INFO] [stdout]    |
[INFO] [stdout] 72 |         for (&(x, y), &c) in ps.iter().filter(|(&(x, y), &c)| y == 0) {
[INFO] [stdout]    |                                                   ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]   --> src/main23.rs:72:59
[INFO] [stdout]    |
[INFO] [stdout] 72 |         for (&(x, y), &c) in ps.iter().filter(|(&(x, y), &c)| y == 0) {
[INFO] [stdout]    |                                                           ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print` is never used
[INFO] [stdout]   --> src/main23.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn print(p: &Positions, maxy: usize) {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main07a.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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: `core::panic`
[INFO] [stdout]  --> src/main25.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::panic;
[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 imports: `max` and `min`
[INFO] [stdout]  --> src/main07a.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::branch::alt`
[INFO] [stdout]  --> src/main25.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use nom::branch::alt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `is_a` and `tag`
[INFO] [stdout]  --> src/main25.rs:4:28
[INFO] [stdout]   |
[INFO] [stdout] 4 | use nom::bytes::complete::{is_a, tag};
[INFO] [stdout]   |                            ^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `alpha1` and `digit0`
[INFO] [stdout]  --> src/main25.rs:5:32
[INFO] [stdout]   |
[INFO] [stdout] 5 | use nom::character::complete::{alpha1, digit0};
[INFO] [stdout]   |                                ^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `map_res` and `map`
[INFO] [stdout]  --> src/main25.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | use nom::combinator::{map, map_res};
[INFO] [stdout]   |                       ^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::error`
[INFO] [stdout]  --> src/main25.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use nom::error;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::branch::alt`
[INFO] [stdout]  --> src/main20a.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use nom::branch::alt;
[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 imports: `preceded`, `terminated`, and `tuple`
[INFO] [stdout]  --> src/main25.rs:8:21
[INFO] [stdout]   |
[INFO] [stdout] 8 | use nom::sequence::{preceded, terminated, tuple};
[INFO] [stdout]   |                     ^^^^^^^^  ^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::character::complete::digit0`
[INFO] [stdout]  --> src/main20a.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use nom::character::complete::digit0;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ordering`, `max`, and `min`
[INFO] [stdout]  --> src/main25.rs:9:16
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                ^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::combinator::map`
[INFO] [stdout]  --> src/main20a.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use nom::combinator::map;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap`, `BTreeSet`, `BinaryHeap`, `LinkedList`, and `VecDeque`
[INFO] [stdout]   --> src/main25.rs:10:24
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList, VecDeque};
[INFO] [stdout]    |                        ^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ordering`, `max`, and `min`
[INFO] [stdout]  --> src/main20a.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                ^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fmt`
[INFO] [stdout]   --> src/main25.rs:13:16
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::{env, fmt};
[INFO] [stdout]    |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main17a.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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: `nom::branch::alt`
[INFO] [stdout]  --> src/main20a.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use nom::branch::alt;
[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 imports: `Ordering`, `max`, and `min`
[INFO] [stdout]  --> src/main17a.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                ^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap`, `BTreeSet`, `BinaryHeap`, and `LinkedList`
[INFO] [stdout]  --> src/main17a.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::read_to_string`
[INFO] [stdout]  --> src/main17a.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::fs::read_to_string;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::character::complete::digit0`
[INFO] [stdout]  --> src/main20a.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use nom::character::complete::digit0;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::combinator::map`
[INFO] [stdout]  --> src/main20a.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use nom::combinator::map;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ordering`, `max`, and `min`
[INFO] [stdout]  --> src/main20a.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                ^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap`, `BTreeSet`, `BinaryHeap`, `LinkedList`, and `VecDeque`
[INFO] [stdout]  --> src/main20a.rs:6:24
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList, VecDeque};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt`
[INFO] [stdout]  --> src/main20a.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::fmt;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap`, `BTreeSet`, `BinaryHeap`, `LinkedList`, and `VecDeque`
[INFO] [stdout]  --> src/main20a.rs:6:24
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList, VecDeque};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt`
[INFO] [stdout]  --> src/main20a.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::fmt;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `max` and `min`
[INFO] [stdout]  --> src/main13a.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min};
[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: `BTreeMap`
[INFO] [stdout]  --> src/main13a.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap` and `BTreeSet`
[INFO] [stdout]  --> src/main07a.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/main07a.rs:15:21
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let mut range = (*crabs.iter().min().unwrap()..=*crabs.iter().max().unwrap());
[INFO] [stdout]    |                     ^                                                           ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 15 -     let mut range = (*crabs.iter().min().unwrap()..=*crabs.iter().max().unwrap());
[INFO] [stdout] 15 +     let mut range = *crabs.iter().min().unwrap()..=*crabs.iter().max().unwrap() ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main07a.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let mut crabs: Vec<i64> = lines[0].split(',').map(|x| x.parse().unwrap()).collect();
[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: variable does not need to be mutable
[INFO] [stdout]   --> src/main07a.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let mut range = (*crabs.iter().min().unwrap()..=*crabs.iter().max().unwrap());
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Orientation` is never used
[INFO] [stdout]   --> src/main20a.rs:11:6
[INFO] [stdout]    |
[INFO] [stdout] 11 | type Orientation = ((usize, usize, usize), Coords);
[INFO] [stdout]    |      ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Coords` is never used
[INFO] [stdout]   --> src/main20a.rs:12:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | type Coords = (i64, i64, i64);
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `part2`
[INFO] [stdout]   --> src/main25.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let part2 = env::args().any(|x| x == "2");
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_part2`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main07b.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let mut crabs: Vec<i64> = lines[0].split(',').map(|x| x.parse().unwrap()).collect();
[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: variable does not need to be mutable
[INFO] [stdout]   --> src/main07b.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let mut range = (*crabs.iter().min().unwrap()..=*crabs.iter().max().unwrap());
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `max` and `min`
[INFO] [stdout]  --> src/main14a.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min};
[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 imports: `BTreeSet` and `LinkedList`
[INFO] [stdout]  --> src/main14a.rs:3:34
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet, LinkedList};
[INFO] [stdout]   |                                  ^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main09a.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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 imports: `max` and `min`
[INFO] [stdout]  --> src/main09a.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BTreeSet`
[INFO] [stdout]  --> src/main09a.rs:3:34
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main06a.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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 imports: `max` and `min`
[INFO] [stdout]  --> src/main06a.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap` and `BTreeSet`
[INFO] [stdout]  --> src/main06a.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main02b.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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: `nom::branch::alt`
[INFO] [stdout]  --> src/main21b.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use nom::branch::alt;
[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: `nom::character::complete::digit0`
[INFO] [stdout]  --> src/main21b.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use nom::character::complete::digit0;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::combinator::map`
[INFO] [stdout]  --> src/main21b.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use nom::combinator::map;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ordering` and `min`
[INFO] [stdout]  --> src/main21b.rs:5:21
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                     ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeSet`, `BinaryHeap`, `LinkedList`, and `VecDeque`
[INFO] [stdout]  --> src/main21b.rs:6:34
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList, VecDeque};
[INFO] [stdout]   |                                  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt`
[INFO] [stdout]  --> src/main21b.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::fmt;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Orientation` is never used
[INFO] [stdout]   --> src/main20a.rs:11:6
[INFO] [stdout]    |
[INFO] [stdout] 11 | type Orientation = ((usize, usize, usize), Coords);
[INFO] [stdout]    |      ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Coords` is never used
[INFO] [stdout]   --> src/main20a.rs:12:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | type Coords = (i64, i64, i64);
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `max` and `min`
[INFO] [stdout]  --> src/main14b.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min};
[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 imports: `BTreeSet` and `LinkedList`
[INFO] [stdout]  --> src/main14b.rs:3:34
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet, LinkedList};
[INFO] [stdout]   |                                  ^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main18b.rs:163:9
[INFO] [stdout]     |
[INFO] [stdout] 163 |     let mut nums: VecDeque<SnailNum> = read_to_string("input18.txt")?
[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 import: `BTreeSet`
[INFO] [stdout]  --> src/main05b.rs:3:34
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet};
[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: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main09a.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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 imports: `max` and `min`
[INFO] [stdout]  --> src/main09a.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BTreeSet`
[INFO] [stdout]  --> src/main09a.rs:3:34
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `max` and `min`
[INFO] [stdout]  --> src/main10b.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min};
[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 imports: `BTreeMap` and `BTreeSet`
[INFO] [stdout]  --> src/main10b.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `File`
[INFO] [stdout]  --> src/main01a.rs:2:31
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fs::{read_to_string, File};
[INFO] [stdout]   |                               ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/main01a.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::{self, BufRead};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/main01a.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufRead`
[INFO] [stdout]  --> src/main01a.rs:3:21
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::{self, BufRead};
[INFO] [stdout]   |                     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]  --> src/main10b.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `max` and `min`
[INFO] [stdout]  --> src/main13b.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min};
[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: `BTreeMap`
[INFO] [stdout]  --> src/main13b.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `score`
[INFO] [stdout]   --> src/main10b.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let score = [3, 57, 1197, 25137];
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_score`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `res` is never read
[INFO] [stdout]   --> src/main10b.rs:17:19
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let mut res = 0;
[INFO] [stdout]    |                   ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 48 |     res = scores[scores.len() / 2];
[INFO] [stdout]    |     ------------------------------ `res` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main02a.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main18b.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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 imports: `Ordering`, `max`, and `min`
[INFO] [stdout]  --> src/main18b.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                ^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap`, `BTreeSet`, `BinaryHeap`, and `LinkedList`
[INFO] [stdout]  --> src/main18b.rs:6:24
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList, VecDeque};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::panic`
[INFO] [stdout]  --> src/main25.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::panic;
[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: `nom::branch::alt`
[INFO] [stdout]  --> src/main25.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use nom::branch::alt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `is_a` and `tag`
[INFO] [stdout]  --> src/main25.rs:4:28
[INFO] [stdout]   |
[INFO] [stdout] 4 | use nom::bytes::complete::{is_a, tag};
[INFO] [stdout]   |                            ^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `alpha1` and `digit0`
[INFO] [stdout]  --> src/main25.rs:5:32
[INFO] [stdout]   |
[INFO] [stdout] 5 | use nom::character::complete::{alpha1, digit0};
[INFO] [stdout]   |                                ^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `map_res` and `map`
[INFO] [stdout]  --> src/main25.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | use nom::combinator::{map, map_res};
[INFO] [stdout]   |                       ^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::error`
[INFO] [stdout]  --> src/main25.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use nom::error;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `preceded`, `terminated`, and `tuple`
[INFO] [stdout]  --> src/main25.rs:8:21
[INFO] [stdout]   |
[INFO] [stdout] 8 | use nom::sequence::{preceded, terminated, tuple};
[INFO] [stdout]   |                     ^^^^^^^^  ^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ordering`, `max`, and `min`
[INFO] [stdout]  --> src/main25.rs:9:16
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                ^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap`, `BTreeSet`, `BinaryHeap`, `LinkedList`, and `VecDeque`
[INFO] [stdout]   --> src/main25.rs:10:24
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList, VecDeque};
[INFO] [stdout]    |                        ^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fmt`
[INFO] [stdout]   --> src/main25.rs:13:16
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::{env, fmt};
[INFO] [stdout]    |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `part2`
[INFO] [stdout]   --> src/main25.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let part2 = env::args().any(|x| x == "2");
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_part2`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `max` and `min`
[INFO] [stdout]  --> src/main14b.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min};
[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 imports: `BTreeSet` and `LinkedList`
[INFO] [stdout]  --> src/main14b.rs:3:34
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet, LinkedList};
[INFO] [stdout]   |                                  ^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main09b.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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: `maplit::btreeset`
[INFO] [stdout]  --> src/main09b.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use maplit::btreeset;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BTreeSet`
[INFO] [stdout]  --> src/main09b.rs:4:34
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]  --> src/main08b.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[macro_use]
[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 imports: `max` and `min`
[INFO] [stdout]  --> src/main08b.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::cmp::{max, min};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]  --> src/main21a.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools;
[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: `nom::branch::alt`
[INFO] [stdout]  --> src/main21a.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use nom::branch::alt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::character::complete::digit0`
[INFO] [stdout]  --> src/main21a.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use nom::character::complete::digit0;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::combinator::map`
[INFO] [stdout]  --> src/main21a.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use nom::combinator::map;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ordering` and `max`
[INFO] [stdout]  --> src/main21a.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                ^^^       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap`, `BTreeSet`, `BinaryHeap`, `LinkedList`, and `VecDeque`
[INFO] [stdout]  --> src/main21a.rs:6:24
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList, VecDeque};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt`
[INFO] [stdout]  --> src/main21a.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::fmt;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main06b.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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 imports: `max` and `min`
[INFO] [stdout]  --> src/main06b.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BTreeSet`
[INFO] [stdout]  --> src/main06b.rs:3:34
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::slice::SliceIndex`
[INFO] [stdout]  --> src/main09b.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::slice::SliceIndex;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main21a.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         for i in 0..3 {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main21a.rs:44:13
[INFO] [stdout]    |
[INFO] [stdout] 44 |         for i in 0..3 {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Orientation` is never used
[INFO] [stdout]   --> src/main21a.rs:11:6
[INFO] [stdout]    |
[INFO] [stdout] 11 | type Orientation = ((usize, usize, usize), Coords);
[INFO] [stdout]    |      ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Coords` is never used
[INFO] [stdout]   --> src/main21a.rs:12:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | type Coords = (i64, i64, i64);
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main09b.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let mut res = 0;
[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: `dirs`
[INFO] [stdout]   --> src/main09b.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let dirs = [(1isize, 0isize), (0, 1), (-1, 0), (0, -1)];
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_dirs`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]   --> src/main09b.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let mut res = 0;
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]   --> src/main09b.rs:73:10
[INFO] [stdout]    |
[INFO] [stdout] 73 |     for (k, b) in basins.iter() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main18b.rs:163:9
[INFO] [stdout]     |
[INFO] [stdout] 163 |     let mut nums: VecDeque<SnailNum> = read_to_string("input18.txt")?
[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 import: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main07b.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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 imports: `max` and `min`
[INFO] [stdout]  --> src/main07b.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap` and `BTreeSet`
[INFO] [stdout]  --> src/main07b.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/main07b.rs:17:21
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let mut range = (*crabs.iter().min().unwrap()..=*crabs.iter().max().unwrap());
[INFO] [stdout]    |                     ^                                                           ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 17 -     let mut range = (*crabs.iter().min().unwrap()..=*crabs.iter().max().unwrap());
[INFO] [stdout] 17 +     let mut range = *crabs.iter().min().unwrap()..=*crabs.iter().max().unwrap() ;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main07b.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let mut crabs: Vec<i64> = lines[0].split(',').map(|x| x.parse().unwrap()).collect();
[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: variable does not need to be mutable
[INFO] [stdout]   --> src/main07b.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let mut range = (*crabs.iter().min().unwrap()..=*crabs.iter().max().unwrap());
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main09b.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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: `maplit::btreeset`
[INFO] [stdout]  --> src/main09b.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use maplit::btreeset;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BTreeSet`
[INFO] [stdout]  --> src/main09b.rs:4:34
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::branch::alt`
[INFO] [stdout]  --> src/main20b.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use nom::branch::alt;
[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: `nom::character::complete::digit0`
[INFO] [stdout]  --> src/main20b.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use nom::character::complete::digit0;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::combinator::map`
[INFO] [stdout]  --> src/main20b.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use nom::combinator::map;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ordering`, `max`, and `min`
[INFO] [stdout]  --> src/main20b.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                ^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap`, `BTreeSet`, `BinaryHeap`, `LinkedList`, and `VecDeque`
[INFO] [stdout]  --> src/main20b.rs:6:24
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList, VecDeque};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt`
[INFO] [stdout]  --> src/main20b.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::fmt;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::slice::SliceIndex`
[INFO] [stdout]  --> src/main09b.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::slice::SliceIndex;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::branch::alt`
[INFO] [stdout]  --> src/main19b.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use nom::branch::alt;
[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: `nom::character::complete::digit0`
[INFO] [stdout]  --> src/main19b.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use nom::character::complete::digit0;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::combinator::map`
[INFO] [stdout]  --> src/main19b.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use nom::combinator::map;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ordering`, `max`, and `min`
[INFO] [stdout]  --> src/main19b.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                ^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BinaryHeap`, `LinkedList`, and `VecDeque`
[INFO] [stdout]  --> src/main19b.rs:6:44
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList, VecDeque};
[INFO] [stdout]   |                                            ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt`
[INFO] [stdout]  --> src/main19b.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::fmt;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main16a.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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 imports: `Ordering`, `max`, and `min`
[INFO] [stdout]  --> src/main16a.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                ^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap`, `BTreeSet`, `BinaryHeap`, and `LinkedList`
[INFO] [stdout]  --> src/main16a.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BTreeSet`
[INFO] [stdout]  --> src/main05a.rs:3:34
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                                  ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/main19b.rs:124:52
[INFO] [stdout]     |
[INFO] [stdout] 124 | ...                   conversions.insert((i2), (i1, *orientation, offs));
[INFO] [stdout]     |                                          ^  ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 124 -                                 conversions.insert((i2), (i1, *orientation, offs));
[INFO] [stdout] 124 +                                 conversions.insert(i2 , (i1, *orientation, offs));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main09b.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let mut res = 0;
[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: `dirs`
[INFO] [stdout]   --> src/main09b.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |     let dirs = [(1isize, 0isize), (0, 1), (-1, 0), (0, -1)];
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_dirs`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]   --> src/main09b.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let mut res = 0;
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]   --> src/main09b.rs:73:10
[INFO] [stdout]    |
[INFO] [stdout] 73 |     for (k, b) in basins.iter() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `max` and `min`
[INFO] [stdout]  --> src/main14a.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min};
[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 imports: `BTreeSet` and `LinkedList`
[INFO] [stdout]  --> src/main14a.rs:3:34
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet, LinkedList};
[INFO] [stdout]   |                                  ^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Orientation` is never used
[INFO] [stdout]   --> src/main20b.rs:11:6
[INFO] [stdout]    |
[INFO] [stdout] 11 | type Orientation = ((usize, usize, usize), Coords);
[INFO] [stdout]    |      ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Coords` is never used
[INFO] [stdout]   --> src/main20b.rs:12:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | type Coords = (i64, i64, i64);
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main12b.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main18a.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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 label
[INFO] [stdout]   --> src/main04b.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     'out: for n in numbers {
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_labels)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `max` and `min`
[INFO] [stdout]  --> src/main12b.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ordering`, `max`, and `min`
[INFO] [stdout]  --> src/main18a.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                ^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap`, `BTreeSet`, `BinaryHeap`, and `LinkedList`
[INFO] [stdout]  --> src/main18a.rs:6:24
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList, VecDeque};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main18a.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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 imports: `Ordering`, `max`, and `min`
[INFO] [stdout]  --> src/main18a.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                ^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap`, `BTreeSet`, `BinaryHeap`, and `LinkedList`
[INFO] [stdout]  --> src/main18a.rs:6:24
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList, VecDeque};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main15b.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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 imports: `max` and `min`
[INFO] [stdout]  --> src/main15b.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeSet` and `LinkedList`
[INFO] [stdout]  --> src/main15b.rs:3:34
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList};
[INFO] [stdout]   |                                  ^^^^^^^^              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main06a.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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 imports: `max` and `min`
[INFO] [stdout]  --> src/main06a.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap` and `BTreeSet`
[INFO] [stdout]  --> src/main06a.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]   --> src/main12b.rs:22:40
[INFO] [stdout]    |
[INFO] [stdout] 22 |         .filter(|x| visited_small.get(x.clone()).unwrap_or(&0) < &limit)
[INFO] [stdout]    |                                        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]  --> src/main08b.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[macro_use]
[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 imports: `max` and `min`
[INFO] [stdout]  --> src/main08b.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::cmp::{max, min};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::branch::alt`
[INFO] [stdout]  --> src/main19a.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use nom::branch::alt;
[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: `nom::character::complete::digit0`
[INFO] [stdout]  --> src/main19a.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use nom::character::complete::digit0;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::combinator::map`
[INFO] [stdout]  --> src/main19a.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use nom::combinator::map;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ordering`, `max`, and `min`
[INFO] [stdout]  --> src/main19a.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                ^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BinaryHeap`, `LinkedList`, and `VecDeque`
[INFO] [stdout]  --> src/main19a.rs:6:44
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList, VecDeque};
[INFO] [stdout]   |                                            ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt`
[INFO] [stdout]  --> src/main19a.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::fmt;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/main19a.rs:124:52
[INFO] [stdout]     |
[INFO] [stdout] 124 | ...                   conversions.insert((i2), (i1, *orientation, offs));
[INFO] [stdout]     |                                          ^  ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 124 -                                 conversions.insert((i2), (i1, *orientation, offs));
[INFO] [stdout] 124 +                                 conversions.insert(i2 , (i1, *orientation, offs));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]   --> src/main19b.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |     for offset in 0..3 {
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s1`
[INFO] [stdout]    --> src/main19b.rs:146:14
[INFO] [stdout]     |
[INFO] [stdout] 146 |     for (i1, s1) in scanners.iter().enumerate() {
[INFO] [stdout]     |              ^^ help: if this is intentional, prefix it with an underscore: `_s1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]   --> src/main19a.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |     for offset in 0..3 {
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::branch::alt`
[INFO] [stdout]  --> src/main19b.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use nom::branch::alt;
[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: `nom::character::complete::digit0`
[INFO] [stdout]  --> src/main19b.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use nom::character::complete::digit0;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::combinator::map`
[INFO] [stdout]  --> src/main19b.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use nom::combinator::map;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ordering`, `max`, and `min`
[INFO] [stdout]  --> src/main19b.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                ^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BinaryHeap`, `LinkedList`, and `VecDeque`
[INFO] [stdout]  --> src/main19b.rs:6:44
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList, VecDeque};
[INFO] [stdout]   |                                            ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt`
[INFO] [stdout]  --> src/main19b.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::fmt;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/main19b.rs:124:52
[INFO] [stdout]     |
[INFO] [stdout] 124 | ...                   conversions.insert((i2), (i1, *orientation, offs));
[INFO] [stdout]     |                                          ^  ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 124 -                                 conversions.insert((i2), (i1, *orientation, offs));
[INFO] [stdout] 124 +                                 conversions.insert(i2 , (i1, *orientation, offs));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main08a.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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 imports: `max` and `min`
[INFO] [stdout]  --> src/main08a.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap` and `BTreeSet`
[INFO] [stdout]  --> src/main08a.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::branch::alt`
[INFO] [stdout]  --> src/main24.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use nom::branch::alt;
[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 imports: `is_a` and `tag`
[INFO] [stdout]  --> src/main24.rs:4:28
[INFO] [stdout]   |
[INFO] [stdout] 4 | use nom::bytes::complete::{is_a, tag};
[INFO] [stdout]   |                            ^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `alpha1` and `digit0`
[INFO] [stdout]  --> src/main24.rs:5:32
[INFO] [stdout]   |
[INFO] [stdout] 5 | use nom::character::complete::{alpha1, digit0};
[INFO] [stdout]   |                                ^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `map_res` and `map`
[INFO] [stdout]  --> src/main24.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | use nom::combinator::{map, map_res};
[INFO] [stdout]   |                       ^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::error`
[INFO] [stdout]  --> src/main24.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use nom::error;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `preceded`, `terminated`, and `tuple`
[INFO] [stdout]  --> src/main24.rs:8:21
[INFO] [stdout]   |
[INFO] [stdout] 8 | use nom::sequence::{preceded, terminated, tuple};
[INFO] [stdout]   |                     ^^^^^^^^  ^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ordering`, `max`, and `min`
[INFO] [stdout]  --> src/main24.rs:9:16
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                ^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeSet`, `BinaryHeap`, `LinkedList`, and `VecDeque`
[INFO] [stdout]   --> src/main24.rs:10:34
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList, VecDeque};
[INFO] [stdout]    |                                  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fmt`
[INFO] [stdout]   --> src/main24.rs:13:16
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::{env, fmt};
[INFO] [stdout]    |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around `if` condition
[INFO] [stdout]   --> src/main24.rs:90:32
[INFO] [stdout]    |
[INFO] [stdout] 90 | ...                   if { val(&state, w, Operand::Reg(cmd.op1)) == val(&state, w, cmd.op2) }
[INFO] [stdout]    |                          ^^                                                                ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_braces)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these braces
[INFO] [stdout]    |
[INFO] [stdout] 90 -                             if { val(&state, w, Operand::Reg(cmd.op1)) == val(&state, w, cmd.op2) }
[INFO] [stdout] 90 +                             if val(&state, w, Operand::Reg(cmd.op1)) == val(&state, w, cmd.op2) 
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::branch::alt`
[INFO] [stdout]  --> src/main22.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use nom::branch::alt;
[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: `digit0`
[INFO] [stdout]  --> src/main22.rs:4:40
[INFO] [stdout]   |
[INFO] [stdout] 4 | use nom::character::complete::{alpha1, digit0};
[INFO] [stdout]   |                                        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ordering`, `max`, and `min`
[INFO] [stdout]  --> src/main22.rs:8:16
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                ^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BinaryHeap`, `LinkedList`, and `VecDeque`
[INFO] [stdout]  --> src/main22.rs:9:44
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList, VecDeque};
[INFO] [stdout]   |                                            ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fmt`
[INFO] [stdout]   --> src/main22.rs:12:16
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::{env, fmt};
[INFO] [stdout]    |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]   --> src/main19b.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |     for offset in 0..3 {
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s1`
[INFO] [stdout]    --> src/main19b.rs:146:14
[INFO] [stdout]     |
[INFO] [stdout] 146 |     for (i1, s1) in scanners.iter().enumerate() {
[INFO] [stdout]     |              ^^ help: if this is intentional, prefix it with an underscore: `_s1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::branch::alt`
[INFO] [stdout]  --> src/main23.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use nom::branch::alt;
[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 imports: `is_a` and `tag`
[INFO] [stdout]  --> src/main23.rs:4:28
[INFO] [stdout]   |
[INFO] [stdout] 4 | use nom::bytes::complete::{is_a, tag};
[INFO] [stdout]   |                            ^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `alpha1` and `digit0`
[INFO] [stdout]  --> src/main23.rs:5:32
[INFO] [stdout]   |
[INFO] [stdout] 5 | use nom::character::complete::{alpha1, digit0};
[INFO] [stdout]   |                                ^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `map_res` and `map`
[INFO] [stdout]  --> src/main23.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | use nom::combinator::{map, map_res};
[INFO] [stdout]   |                       ^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::error`
[INFO] [stdout]  --> src/main23.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use nom::error;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `preceded`, `terminated`, and `tuple`
[INFO] [stdout]  --> src/main23.rs:8:21
[INFO] [stdout]   |
[INFO] [stdout] 8 | use nom::sequence::{preceded, terminated, tuple};
[INFO] [stdout]   |                     ^^^^^^^^  ^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ordering`, `max`, and `min`
[INFO] [stdout]  --> src/main23.rs:9:16
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                ^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeSet`, `BinaryHeap`, `LinkedList`, and `VecDeque`
[INFO] [stdout]   --> src/main23.rs:10:34
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList, VecDeque};
[INFO] [stdout]    |                                  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fmt`
[INFO] [stdout]   --> src/main23.rs:13:16
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::{env, fmt};
[INFO] [stdout]    |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/main23.rs:45:24
[INFO] [stdout]    |
[INFO] [stdout] 45 |             let c = if (y > 0 && !matches!(x, 2 | 4 | 6 | 8)) {
[INFO] [stdout]    |                        ^                                    ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 45 -             let c = if (y > 0 && !matches!(x, 2 | 4 | 6 | 8)) {
[INFO] [stdout] 45 +             let c = if y > 0 && !matches!(x, 2 | 4 | 6 | 8)  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main16b.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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 imports: `Ordering`, `max`, and `min`
[INFO] [stdout]  --> src/main16b.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                ^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap`, `BTreeSet`, `BinaryHeap`, and `LinkedList`
[INFO] [stdout]  --> src/main16b.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::branch::alt`
[INFO] [stdout]  --> src/main24.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use nom::branch::alt;
[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 imports: `is_a` and `tag`
[INFO] [stdout]  --> src/main24.rs:4:28
[INFO] [stdout]   |
[INFO] [stdout] 4 | use nom::bytes::complete::{is_a, tag};
[INFO] [stdout]   |                            ^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `alpha1` and `digit0`
[INFO] [stdout]  --> src/main24.rs:5:32
[INFO] [stdout]   |
[INFO] [stdout] 5 | use nom::character::complete::{alpha1, digit0};
[INFO] [stdout]   |                                ^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `map_res` and `map`
[INFO] [stdout]  --> src/main24.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | use nom::combinator::{map, map_res};
[INFO] [stdout]   |                       ^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::error`
[INFO] [stdout]  --> src/main24.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use nom::error;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `preceded`, `terminated`, and `tuple`
[INFO] [stdout]  --> src/main24.rs:8:21
[INFO] [stdout]   |
[INFO] [stdout] 8 | use nom::sequence::{preceded, terminated, tuple};
[INFO] [stdout]   |                     ^^^^^^^^  ^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ordering`, `max`, and `min`
[INFO] [stdout]  --> src/main24.rs:9:16
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                ^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeSet`, `BinaryHeap`, `LinkedList`, and `VecDeque`
[INFO] [stdout]   --> src/main24.rs:10:34
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList, VecDeque};
[INFO] [stdout]    |                                  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fmt`
[INFO] [stdout]   --> src/main24.rs:13:16
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::{env, fmt};
[INFO] [stdout]    |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around `if` condition
[INFO] [stdout]   --> src/main24.rs:90:32
[INFO] [stdout]    |
[INFO] [stdout] 90 | ...                   if { val(&state, w, Operand::Reg(cmd.op1)) == val(&state, w, cmd.op2) }
[INFO] [stdout]    |                          ^^                                                                ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_braces)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these braces
[INFO] [stdout]    |
[INFO] [stdout] 90 -                             if { val(&state, w, Operand::Reg(cmd.op1)) == val(&state, w, cmd.op2) }
[INFO] [stdout] 90 +                             if val(&state, w, Operand::Reg(cmd.op1)) == val(&state, w, cmd.op2) 
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `max` and `min`
[INFO] [stdout]  --> src/main10b.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min};
[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 imports: `BTreeMap` and `BTreeSet`
[INFO] [stdout]  --> src/main10b.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BTreeSet`
[INFO] [stdout]  --> src/main05a.rs:3:34
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet};
[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 label
[INFO] [stdout]   --> src/main04b.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     'out: for n in numbers {
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_labels)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]  --> src/main10b.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]  --> src/main22.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `score`
[INFO] [stdout]   --> src/main10b.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let score = [3, 57, 1197, 25137];
[INFO] [stdout]    |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_score`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `res` is never read
[INFO] [stdout]   --> src/main10b.rs:17:19
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let mut res = 0;
[INFO] [stdout]    |                   ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 48 |     res = scores[scores.len() / 2];
[INFO] [stdout]    |     ------------------------------ `res` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `max` and `min`
[INFO] [stdout]  --> src/main11b.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min};
[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 variable: `x`
[INFO] [stdout]   --> src/main23.rs:97:55
[INFO] [stdout]    |
[INFO] [stdout] 97 |             for (&(x, y), &c) in ps.iter().filter(|(&(x, y), &c)| y > 0) {
[INFO] [stdout]    |                                                       ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]   --> src/main23.rs:97:63
[INFO] [stdout]    |
[INFO] [stdout] 97 |             for (&(x, y), &c) in ps.iter().filter(|(&(x, y), &c)| y > 0) {
[INFO] [stdout]    |                                                               ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/main23.rs:72:51
[INFO] [stdout]    |
[INFO] [stdout] 72 |         for (&(x, y), &c) in ps.iter().filter(|(&(x, y), &c)| y == 0) {
[INFO] [stdout]    |                                                   ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]   --> src/main23.rs:72:59
[INFO] [stdout]    |
[INFO] [stdout] 72 |         for (&(x, y), &c) in ps.iter().filter(|(&(x, y), &c)| y == 0) {
[INFO] [stdout]    |                                                           ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print` is never used
[INFO] [stdout]   --> src/main23.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn print(p: &Positions, maxy: usize) {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]  --> src/main11b.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::branch::alt`
[INFO] [stdout]  --> src/main22.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use nom::branch::alt;
[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: `digit0`
[INFO] [stdout]  --> src/main22.rs:4:40
[INFO] [stdout]   |
[INFO] [stdout] 4 | use nom::character::complete::{alpha1, digit0};
[INFO] [stdout]   |                                        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ordering`, `max`, and `min`
[INFO] [stdout]  --> src/main22.rs:8:16
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                ^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BinaryHeap`, `LinkedList`, and `VecDeque`
[INFO] [stdout]  --> src/main22.rs:9:44
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList, VecDeque};
[INFO] [stdout]   |                                            ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fmt`
[INFO] [stdout]   --> src/main22.rs:12:16
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::{env, fmt};
[INFO] [stdout]    |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main15a.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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 imports: `max` and `min`
[INFO] [stdout]  --> src/main15a.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeSet` and `LinkedList`
[INFO] [stdout]  --> src/main15a.rs:3:34
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList};
[INFO] [stdout]   |                                  ^^^^^^^^              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main22.rs:33:10
[INFO] [stdout]    |
[INFO] [stdout] 33 |     for (i, line) in read_to_string("input22.txt")?.lines().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]  --> src/main22.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `max` and `min`
[INFO] [stdout]  --> src/main13a.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min};
[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: `BTreeMap`
[INFO] [stdout]  --> src/main13a.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `max` and `min`
[INFO] [stdout]  --> src/main12a.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min};
[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: `nom::branch::alt`
[INFO] [stdout]  --> src/main21b.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use nom::branch::alt;
[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: `nom::character::complete::digit0`
[INFO] [stdout]  --> src/main21b.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use nom::character::complete::digit0;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::combinator::map`
[INFO] [stdout]  --> src/main21b.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use nom::combinator::map;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ordering` and `min`
[INFO] [stdout]  --> src/main21b.rs:5:21
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                     ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeSet`, `BinaryHeap`, `LinkedList`, and `VecDeque`
[INFO] [stdout]  --> src/main21b.rs:6:34
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList, VecDeque};
[INFO] [stdout]   |                                  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt`
[INFO] [stdout]  --> src/main21b.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::fmt;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/main22.rs:33:10
[INFO] [stdout]    |
[INFO] [stdout] 33 |     for (i, line) in read_to_string("input22.txt")?.lines().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main17b.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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 imports: `Ordering`, `max`, and `min`
[INFO] [stdout]  --> src/main17b.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                ^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap`, `BinaryHeap`, and `LinkedList`
[INFO] [stdout]  --> src/main17b.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList};
[INFO] [stdout]   |                        ^^^^^^^^            ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::read_to_string`
[INFO] [stdout]  --> src/main17b.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::fs::read_to_string;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `max` and `min`
[INFO] [stdout]  --> src/main10a.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min};
[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 imports: `BTreeMap` and `BTreeSet`
[INFO] [stdout]  --> src/main10a.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main12b.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main16a.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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 imports: `Ordering`, `max`, and `min`
[INFO] [stdout]  --> src/main16a.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                ^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap`, `BTreeSet`, `BinaryHeap`, and `LinkedList`
[INFO] [stdout]  --> src/main16a.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `max` and `min`
[INFO] [stdout]  --> src/main12b.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]  --> src/main12a.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `max` and `min`
[INFO] [stdout]  --> src/main10a.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min};
[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 imports: `BTreeMap` and `BTreeSet`
[INFO] [stdout]  --> src/main10a.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]  --> src/main10a.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]  --> src/main10a.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main02a.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best` is never read
[INFO] [stdout]   --> src/main17b.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let mut best = (0, 0);
[INFO] [stdout]    |                    ^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 36 |                         best = (dx0, dy0);
[INFO] [stdout]    |                         ----------------- `best` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main03b.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main15a.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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 imports: `max` and `min`
[INFO] [stdout]  --> src/main15a.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeSet` and `LinkedList`
[INFO] [stdout]  --> src/main15a.rs:3:34
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList};
[INFO] [stdout]   |                                  ^^^^^^^^              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main06b.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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 imports: `max` and `min`
[INFO] [stdout]  --> src/main06b.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BTreeSet`
[INFO] [stdout]  --> src/main06b.rs:3:34
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]   --> src/main12a.rs:20:46
[INFO] [stdout]    |
[INFO] [stdout] 20 |         .filter(|x| !visited_small.contains(x.clone()))
[INFO] [stdout]    |                                              ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main15b.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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 imports: `max` and `min`
[INFO] [stdout]  --> src/main15b.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeSet` and `LinkedList`
[INFO] [stdout]  --> src/main15b.rs:3:34
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList};
[INFO] [stdout]   |                                  ^^^^^^^^              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main16b.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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 imports: `Ordering`, `max`, and `min`
[INFO] [stdout]  --> src/main16b.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                ^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap`, `BTreeSet`, `BinaryHeap`, and `LinkedList`
[INFO] [stdout]  --> src/main16b.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `max` and `min`
[INFO] [stdout]  --> src/main11a.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min};
[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: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main03b.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]   --> src/main12b.rs:22:40
[INFO] [stdout]    |
[INFO] [stdout] 22 |         .filter(|x| visited_small.get(x.clone()).unwrap_or(&0) < &limit)
[INFO] [stdout]    |                                        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BTreeSet`
[INFO] [stdout]  --> src/main05b.rs:3:34
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet};
[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 imports: `max` and `min`
[INFO] [stdout]  --> src/main11b.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min};
[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: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main02b.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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: `itertools::Itertools as _`
[INFO] [stdout]  --> src/main17b.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[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 imports: `Ordering`, `max`, and `min`
[INFO] [stdout]  --> src/main17b.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min, Ordering};
[INFO] [stdout]   |                ^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BTreeMap`, `BinaryHeap`, and `LinkedList`
[INFO] [stdout]  --> src/main17b.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList};
[INFO] [stdout]   |                        ^^^^^^^^            ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::read_to_string`
[INFO] [stdout]  --> src/main17b.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::fs::read_to_string;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `best` is never read
[INFO] [stdout]   --> src/main17b.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let mut best = (0, 0);
[INFO] [stdout]    |                    ^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 36 |                         best = (dx0, dy0);
[INFO] [stdout]    |                         ----------------- `best` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]  --> src/main11b.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `itertools::Itertools`
[INFO] [stdout]  --> src/main11a.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `max` and `min`
[INFO] [stdout]  --> src/main12a.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cmp::{max, min};
[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: `itertools::Itertools`
[INFO] [stdout]  --> src/main12a.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use itertools::Itertools as _;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&String` instead of cloning the inner type
[INFO] [stdout]   --> src/main12a.rs:20:46
[INFO] [stdout]    |
[INFO] [stdout] 20 |         .filter(|x| !visited_small.contains(x.clone()))
[INFO] [stdout]    |                                              ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.27s
[INFO] running `Command { std: "docker" "inspect" "07432820929cb2da012731538bae44b8d4afad2729c455a0570bb432b67000b9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "07432820929cb2da012731538bae44b8d4afad2729c455a0570bb432b67000b9", kill_on_drop: false }`
[INFO] [stdout] 07432820929cb2da012731538bae44b8d4afad2729c455a0570bb432b67000b9
