[INFO] cloning repository https://github.com/thallada/advent-of-code-2018
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/thallada/advent-of-code-2018" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fthallada%2Fadvent-of-code-2018", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fthallada%2Fadvent-of-code-2018'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e85f9131becde6650c296c977e6c33bf4d09b0d7
[INFO] checking thallada/advent-of-code-2018 against try#14e4661efa5acbf985e4fe564baae04683366cc1 for pr-157696
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fthallada%2Fadvent-of-code-2018" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/thallada/advent-of-code-2018
[INFO] finished tweaking git repo https://github.com/thallada/advent-of-code-2018
[INFO] tweaked toml for git repo https://github.com/thallada/advent-of-code-2018 written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/thallada/advent-of-code-2018 on toolchain 14e4661efa5acbf985e4fe564baae04683366cc1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+14e4661efa5acbf985e4fe564baae04683366cc1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/thallada/advent-of-code-2018 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" "+14e4661efa5acbf985e4fe564baae04683366cc1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 12a7c467b02c2fed1c2b1ff88b02602e5b31d12fd9e5c2f692c7d7163b01c912
[INFO] running `Command { std: "docker" "start" "12a7c467b02c2fed1c2b1ff88b02602e5b31d12fd9e5c2f692c7d7163b01c912", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "12a7c467b02c2fed1c2b1ff88b02602e5b31d12fd9e5c2f692c7d7163b01c912" "/opt/rustwide/cargo-home/bin/cargo" "+14e4661efa5acbf985e4fe564baae04683366cc1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "12a7c467b02c2fed1c2b1ff88b02602e5b31d12fd9e5c2f692c7d7163b01c912", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "12a7c467b02c2fed1c2b1ff88b02602e5b31d12fd9e5c2f692c7d7163b01c912" "/opt/rustwide/cargo-home/bin/cargo" "+14e4661efa5acbf985e4fe564baae04683366cc1" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.45
[INFO] [stderr]     Checking cfg-if v0.1.6
[INFO] [stderr]     Checking lazy_static v1.2.0
[INFO] [stderr]    Compiling version_check v0.1.5
[INFO] [stderr]    Compiling semver-parser v0.7.0
[INFO] [stderr]    Compiling byteorder v1.3.2
[INFO] [stderr]    Compiling serde v1.0.98
[INFO] [stderr]    Compiling arrayvec v0.4.11
[INFO] [stderr]    Compiling num-traits v0.2.6
[INFO] [stderr]    Compiling ryu v1.0.0
[INFO] [stderr]     Checking nodrop v0.1.13
[INFO] [stderr]     Checking scopeguard v1.0.0
[INFO] [stderr]    Compiling bitflags v1.1.0
[INFO] [stderr]     Checking rand_core v0.4.0
[INFO] [stderr]    Compiling num-integer v0.1.39
[INFO] [stderr]     Checking either v1.5.2
[INFO] [stderr]     Checking itoa v0.4.4
[INFO] [stderr]     Checking crossbeam-utils v0.6.6
[INFO] [stderr]    Compiling rayon-core v1.5.0
[INFO] [stderr]    Compiling syn v0.15.42
[INFO] [stderr]    Compiling semver v0.9.0
[INFO] [stderr]     Checking unicode-width v0.1.5
[INFO] [stderr]    Compiling regex v1.1.0
[INFO] [stderr]     Checking ucd-util v0.1.3
[INFO] [stderr]     Checking textwrap v0.11.0
[INFO] [stderr]     Checking crossbeam-queue v0.1.2
[INFO] [stderr]     Checking rand_core v0.3.1
[INFO] [stderr]     Checking itertools v0.8.0
[INFO] [stderr]     Checking thread_local v0.3.6
[INFO] [stderr]     Checking regex-syntax v0.6.4
[INFO] [stderr]     Checking regex-automata v0.1.8
[INFO] [stderr]     Checking same-file v1.0.5
[INFO] [stderr]     Checking utf8-ranges v1.0.2
[INFO] [stderr]     Checking cast v0.2.2
[INFO] [stderr]     Checking walkdir v2.2.9
[INFO] [stderr]     Checking rand_xoshiro v0.1.0
[INFO] [stderr]     Checking clap v2.33.0
[INFO] [stderr]    Compiling memchr v2.1.2
[INFO] [stderr]     Checking num_cpus v1.10.1
[INFO] [stderr]     Checking time v0.1.41
[INFO] [stderr]    Compiling rustc_version v0.2.3
[INFO] [stderr]     Checking atty v0.2.13
[INFO] [stderr]     Checking rand_os v0.1.3
[INFO] [stderr]     Checking criterion-plot v0.3.1
[INFO] [stderr]     Checking aho-corasick v0.6.9
[INFO] [stderr]     Checking csv-core v0.1.6
[INFO] [stderr]    Compiling memoffset v0.5.1
[INFO] [stderr]     Checking crossbeam-epoch v0.7.2
[INFO] [stderr]     Checking crossbeam-deque v0.6.3
[INFO] [stderr]     Checking chrono v0.4.6
[INFO] [stderr]     Checking rayon v1.1.0
[INFO] [stderr]     Checking advent-of-code-2018 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling serde_derive v1.0.98
[INFO] [stdout] warning: unknown lint: `clippy`
[INFO] [stdout]  --> src/main.rs:1:9
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![warn(clippy)]
[INFO] [stdout]   |         ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unknown_lints)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/day3.rs:7:33
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter::FromIterator`
[INFO] [stdout]  --> src/day3.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::iter::FromIterator;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/day4.rs:8:33
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter::FromIterator`
[INFO] [stdout]   --> src/day4.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::iter::FromIterator;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/day1.rs:9:41
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn solve_part1() -> Result<i32, Box<Error>> {
[INFO] [stdout]   |                                         ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]   = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn solve_part1() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]   |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day1.rs:13:49
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn solve_part2() -> Result<Option<i32>, Box<Error>> {
[INFO] [stdout]    |                                                 ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn solve_part2() -> Result<Option<i32>, Box<dyn Error>> {
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day1.rs:17:69
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn calculate_resulting_frequency(filename: &str) -> Result<i32, Box<Error>> {
[INFO] [stdout]    |                                                                     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn calculate_resulting_frequency(filename: &str) -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]    |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day1.rs:27:72
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn find_repeating_frequency(filename: &str) -> Result<Option<i32>, Box<Error>> {
[INFO] [stdout]    |                                                                        ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn find_repeating_frequency(filename: &str) -> Result<Option<i32>, Box<dyn Error>> {
[INFO] [stdout]    |                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day1.rs:46:61
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn read_frequencies(filename: &str) -> Result<Vec<i32>, Box<Error>> {
[INFO] [stdout]    |                                                             ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn read_frequencies(filename: &str) -> Result<Vec<i32>, Box<dyn Error>> {
[INFO] [stdout]    |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/day2.rs:8:43
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn solve_part1() -> Result<usize, Box<Error>> {
[INFO] [stdout]   |                                           ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn solve_part1() -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]   |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day2.rs:12:52
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn solve_part2() -> Result<Option<String>, Box<Error>> {
[INFO] [stdout]    |                                                    ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn solve_part2() -> Result<Option<String>, Box<dyn Error>> {
[INFO] [stdout]    |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day2.rs:16:60
[INFO] [stdout]    |
[INFO] [stdout] 16 | fn calculate_checksum(filename: &str) -> Result<usize, Box<Error>> {
[INFO] [stdout]    |                                                            ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 16 | fn calculate_checksum(filename: &str) -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]    |                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day2.rs:37:78
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn find_most_common_id_overlap(filename: &str) -> Result<Option<String>, Box<Error>> {
[INFO] [stdout]    |                                                                              ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn find_most_common_id_overlap(filename: &str) -> Result<Option<String>, Box<dyn Error>> {
[INFO] [stdout]    |                                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking bstr v0.2.6
[INFO] [stderr]     Checking serde_json v1.0.40
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day3.rs:52:41
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn solve_part1() -> Result<u32, Box<Error>> {
[INFO] [stdout]    |                                         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn solve_part1() -> Result<u32, Box<dyn Error>> {
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day3.rs:56:49
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn solve_part2() -> Result<Option<u32>, Box<Error>> {
[INFO] [stdout]    |                                                 ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn solve_part2() -> Result<Option<u32>, Box<dyn Error>> {
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/day3.rs:104:58
[INFO] [stdout]     |
[INFO] [stdout] 104 | fn read_claims(filename: &str) -> Result<Vec<Claim>, Box<Error>> {
[INFO] [stdout]     |                                                          ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 104 | fn read_claims(filename: &str) -> Result<Vec<Claim>, Box<dyn Error>> {
[INFO] [stdout]     |                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/day3.rs:129:76
[INFO] [stdout]     |
[INFO] [stdout] 129 | fn get_captured_field(captures: &Captures, field: &str) -> Result<u32, Box<Error>> {
[INFO] [stdout]     |                                                                            ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 129 | fn get_captured_field(captures: &Captures, field: &str) -> Result<u32, Box<dyn Error>> {
[INFO] [stdout]     |                                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day4.rs:64:41
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub fn solve_part1() -> Result<u32, Box<Error>> {
[INFO] [stdout]    |                                         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub fn solve_part1() -> Result<u32, Box<dyn Error>> {
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day4.rs:68:41
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn solve_part2() -> Result<u32, Box<Error>> {
[INFO] [stdout]    |                                         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn solve_part2() -> Result<u32, Box<dyn Error>> {
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day4.rs:72:49
[INFO] [stdout]    |
[INFO] [stdout] 72 | fn get_part1(filename: &str) -> Result<u32, Box<Error>> {
[INFO] [stdout]    |                                                 ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 72 | fn get_part1(filename: &str) -> Result<u32, Box<dyn Error>> {
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day4.rs:80:49
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn get_part2(filename: &str) -> Result<u32, Box<Error>> {
[INFO] [stdout]    |                                                 ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn get_part2(filename: &str) -> Result<u32, Box<dyn Error>> {
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/day4.rs:129:60
[INFO] [stdout]     |
[INFO] [stdout] 129 | fn read_records(filename: &str) -> Result<Vec<Record>, Box<Error>> {
[INFO] [stdout]     |                                                            ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 129 | fn read_records(filename: &str) -> Result<Vec<Record>, Box<dyn Error>> {
[INFO] [stdout]     |                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/day4.rs:167:79
[INFO] [stdout]     |
[INFO] [stdout] 167 | fn get_captured_field(captures: &Captures, field: &str) -> Result<String, Box<Error>> {
[INFO] [stdout]     |                                                                               ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 167 | fn get_captured_field(captures: &Captures, field: &str) -> Result<String, Box<dyn Error>> {
[INFO] [stdout]     |                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/day4.rs:176:77
[INFO] [stdout]     |
[INFO] [stdout] 176 | fn has_captured_field(captures: &Captures, field: &str) -> Result<bool, Box<Error>> {
[INFO] [stdout]     |                                                                             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 176 | fn has_captured_field(captures: &Captures, field: &str) -> Result<bool, Box<dyn Error>> {
[INFO] [stdout]     |                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day5.rs:13:43
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn solve_part1() -> Result<usize, Box<Error>> {
[INFO] [stdout]    |                                           ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn solve_part1() -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]    |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day5.rs:18:43
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn solve_part2() -> Result<usize, Box<Error>> {
[INFO] [stdout]    |                                           ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn solve_part2() -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]    |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day5.rs:23:55
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn read_polymer(filename: &str) -> Result<String, Box<Error>> {
[INFO] [stdout]    |                                                       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn read_polymer(filename: &str) -> Result<String, Box<dyn Error>> {
[INFO] [stdout]    |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/day6.rs:108:41
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub fn solve_part1() -> Result<u32, Box<Error>> {
[INFO] [stdout]     |                                         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub fn solve_part1() -> Result<u32, Box<dyn Error>> {
[INFO] [stdout]     |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/day6.rs:117:41
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn solve_part2() -> Result<u32, Box<Error>> {
[INFO] [stdout]     |                                         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn solve_part2() -> Result<u32, Box<dyn Error>> {
[INFO] [stdout]     |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/day6.rs:124:68
[INFO] [stdout]     |
[INFO] [stdout] 124 | fn read_coordinates(filename: &str) -> Result<Vec<Coordinate>, Box<Error>> {
[INFO] [stdout]     |                                                                    ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 124 | fn read_coordinates(filename: &str) -> Result<Vec<Coordinate>, Box<dyn Error>> {
[INFO] [stdout]     |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/day6.rs:148:79
[INFO] [stdout]     |
[INFO] [stdout] 148 | fn get_captured_field(captures: &Captures, field: &str) -> Result<String, Box<Error>> {
[INFO] [stdout]     |                                                                               ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 148 | fn get_captured_field(captures: &Captures, field: &str) -> Result<String, Box<dyn Error>> {
[INFO] [stdout]     |                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/day6.rs:183:31
[INFO] [stdout]     |
[INFO] [stdout] 183 | ) -> Result<&'a mut Grid, Box<Error>> {
[INFO] [stdout]     |                               ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 183 | ) -> Result<&'a mut Grid, Box<dyn Error>> {
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/day6.rs:199:28
[INFO] [stdout]     |
[INFO] [stdout] 199 | ) -> Result<&mut Grid, Box<Error>> {
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 199 | ) -> Result<&mut Grid, Box<dyn Error>> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day7.rs:12:40
[INFO] [stdout]    |
[INFO] [stdout] 12 | type Result<T> = result::Result<T, Box<Error>>;
[INFO] [stdout]    |                                        ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 12 | type Result<T> = result::Result<T, Box<dyn Error>>;
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/day8.rs:5:40
[INFO] [stdout]   |
[INFO] [stdout] 5 | type Result<T> = result::Result<T, Box<Error>>;
[INFO] [stdout]   |                                        ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 5 | type Result<T> = result::Result<T, Box<dyn Error>>;
[INFO] [stdout]   |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day9.rs:12:40
[INFO] [stdout]    |
[INFO] [stdout] 12 | type Result<T> = result::Result<T, Box<Error>>;
[INFO] [stdout]    |                                        ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 12 | type Result<T> = result::Result<T, Box<dyn Error>>;
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day9.rs:23:20
[INFO] [stdout]    |
[INFO] [stdout] 23 |     type Err = Box<Error>;
[INFO] [stdout]    |                    ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 23 |     type Err = Box<dyn Error>;
[INFO] [stdout]    |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day10.rs:12:40
[INFO] [stdout]    |
[INFO] [stdout] 12 | type Result<T> = result::Result<T, Box<Error>>;
[INFO] [stdout]    |                                        ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 12 | type Result<T> = result::Result<T, Box<dyn Error>>;
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day10.rs:29:20
[INFO] [stdout]    |
[INFO] [stdout] 29 |     type Err = Box<Error>;
[INFO] [stdout]    |                    ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 29 |     type Err = Box<dyn Error>;
[INFO] [stdout]    |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day10.rs:66:20
[INFO] [stdout]    |
[INFO] [stdout] 66 |     type Err = Box<Error>;
[INFO] [stdout]    |                    ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 66 |     type Err = Box<dyn Error>;
[INFO] [stdout]    |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/day11.rs:6:40
[INFO] [stdout]   |
[INFO] [stdout] 6 | type Result<T> = result::Result<T, Box<Error>>;
[INFO] [stdout]   |                                        ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 6 | type Result<T> = result::Result<T, Box<dyn Error>>;
[INFO] [stdout]   |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day12.rs:12:40
[INFO] [stdout]    |
[INFO] [stdout] 12 | type Result<T> = result::Result<T, Box<Error>>;
[INFO] [stdout]    |                                        ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 12 | type Result<T> = result::Result<T, Box<dyn Error>>;
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day12.rs:79:20
[INFO] [stdout]    |
[INFO] [stdout] 79 |     type Err = Box<Error>;
[INFO] [stdout]    |                    ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 79 |     type Err = Box<dyn Error>;
[INFO] [stdout]    |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/day13.rs:7:40
[INFO] [stdout]   |
[INFO] [stdout] 7 | type Result<T> = result::Result<T, Box<Error>>;
[INFO] [stdout]   |                                        ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 | type Result<T> = result::Result<T, Box<dyn Error>>;
[INFO] [stdout]   |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day13.rs:56:20
[INFO] [stdout]    |
[INFO] [stdout] 56 |     type Err = Box<Error>;
[INFO] [stdout]    |                    ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 56 |     type Err = Box<dyn Error>;
[INFO] [stdout]    |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/day14.rs:6:40
[INFO] [stdout]   |
[INFO] [stdout] 6 | type Result<T> = result::Result<T, Box<Error>>;
[INFO] [stdout]   |                                        ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 6 | type Result<T> = result::Result<T, Box<dyn Error>>;
[INFO] [stdout]   |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day7.rs:124:13
[INFO] [stdout]     |
[INFO] [stdout] 124 |         for mut worker in worker_pool.available() {
[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: `index`
[INFO] [stdout]    --> src/day12.rs:137:14
[INFO] [stdout]     |
[INFO] [stdout] 137 |         for (index, pot_window) in pots_slice.windows(5).enumerate() {
[INFO] [stdout]     |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INPUT` is never used
[INFO] [stdout]  --> src/day1.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const INPUT: &str = "inputs/1.txt";
[INFO] [stdout]   |       ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOOP_LIMIT` is never used
[INFO] [stdout]  --> src/day1.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const LOOP_LIMIT: u16 = 1000;
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]  --> src/day1.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn solve_part1() -> Result<i32, Box<Error>> {
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]   --> src/day1.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn solve_part2() -> Result<Option<i32>, Box<Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_resulting_frequency` is never used
[INFO] [stdout]   --> src/day1.rs:17:4
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn calculate_resulting_frequency(filename: &str) -> Result<i32, Box<Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_repeating_frequency` is never used
[INFO] [stdout]   --> src/day1.rs:27:4
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn find_repeating_frequency(filename: &str) -> Result<Option<i32>, Box<Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_frequencies` is never used
[INFO] [stdout]   --> src/day1.rs:46:4
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn read_frequencies(filename: &str) -> Result<Vec<i32>, Box<Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INPUT` is never used
[INFO] [stdout]  --> src/day2.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const INPUT: &str = "inputs/2.txt";
[INFO] [stdout]   |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]  --> src/day2.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn solve_part1() -> Result<usize, Box<Error>> {
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]   --> src/day2.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn solve_part2() -> Result<Option<String>, Box<Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_checksum` is never used
[INFO] [stdout]   --> src/day2.rs:16:4
[INFO] [stdout]    |
[INFO] [stdout] 16 | fn calculate_checksum(filename: &str) -> Result<usize, Box<Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_most_common_id_overlap` is never used
[INFO] [stdout]   --> src/day2.rs:37:4
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn find_most_common_id_overlap(filename: &str) -> Result<Option<String>, Box<Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ids_are_diff_by_n` is never used
[INFO] [stdout]   --> src/day2.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn ids_are_diff_by_n(first: &String, second: &String, n: usize) -> Option<String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INPUT` is never used
[INFO] [stdout]   --> src/day3.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const INPUT: &str = "inputs/3.txt";
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Claim` is never constructed
[INFO] [stdout]   --> src/day3.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | struct Claim {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]   --> src/day3.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | struct Point {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MalformedClaim` is never constructed
[INFO] [stdout]   --> src/day3.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | struct MalformedClaim {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/day3.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl MalformedClaim {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 35 |     fn new(msg: &str) -> MalformedClaim {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]   --> src/day3.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn solve_part1() -> Result<u32, Box<Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]   --> src/day3.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn solve_part2() -> Result<Option<u32>, Box<Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_overlapping_claimed_points` is never used
[INFO] [stdout]   --> src/day3.rs:60:4
[INFO] [stdout]    |
[INFO] [stdout] 60 | fn count_overlapping_claimed_points(claims: Vec<Claim>) -> u32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_non_overlapping_claim` is never used
[INFO] [stdout]   --> src/day3.rs:70:4
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn find_non_overlapping_claim(claims: Vec<Claim>) -> Option<u32> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_claimed_points` is never used
[INFO] [stdout]   --> src/day3.rs:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | fn get_claimed_points(claims: &Vec<Claim>) -> HashMap<Point, u32> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_points_in_claim` is never used
[INFO] [stdout]   --> src/day3.rs:94:4
[INFO] [stdout]    |
[INFO] [stdout] 94 | fn list_points_in_claim(claim: &Claim) -> Vec<Point> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_claims` is never used
[INFO] [stdout]    --> src/day3.rs:104:4
[INFO] [stdout]     |
[INFO] [stdout] 104 | fn read_claims(filename: &str) -> Result<Vec<Claim>, Box<Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_captured_field` is never used
[INFO] [stdout]    --> src/day3.rs:129:4
[INFO] [stdout]     |
[INFO] [stdout] 129 | fn get_captured_field(captures: &Captures, field: &str) -> Result<u32, Box<Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INPUT` is never used
[INFO] [stdout]   --> src/day4.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const INPUT: &str = "inputs/4.txt";
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Record` is never used
[INFO] [stdout]   --> src/day4.rs:18:6
[INFO] [stdout]    |
[INFO] [stdout] 18 | enum Record {
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `time` is never used
[INFO] [stdout]   --> src/day4.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl Record {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 32 |     fn time(&self) -> NaiveDateTime {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MalformedRecord` is never constructed
[INFO] [stdout]   --> src/day4.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | struct MalformedRecord {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/day4.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl MalformedRecord {
[INFO] [stdout]    | -------------------- associated function in this implementation
[INFO] [stdout] 47 |     fn new(msg: &str) -> MalformedRecord {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]   --> src/day4.rs:64:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub fn solve_part1() -> Result<u32, Box<Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]   --> src/day4.rs:68:8
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn solve_part2() -> Result<u32, Box<Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_part1` is never used
[INFO] [stdout]   --> src/day4.rs:72:4
[INFO] [stdout]    |
[INFO] [stdout] 72 | fn get_part1(filename: &str) -> Result<u32, Box<Error>> {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_part2` is never used
[INFO] [stdout]   --> src/day4.rs:80:4
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn get_part2(filename: &str) -> Result<u32, Box<Error>> {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mode` is never used
[INFO] [stdout]   --> src/day4.rs:96:4
[INFO] [stdout]    |
[INFO] [stdout] 96 | fn mode(numbers: &[u32]) -> u32 {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `minutes_asleep_per_guard` is never used
[INFO] [stdout]    --> src/day4.rs:108:4
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn minutes_asleep_per_guard(mut records: Vec<Record>) -> HashMap<u32, Vec<u32>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_records` is never used
[INFO] [stdout]    --> src/day4.rs:129:4
[INFO] [stdout]     |
[INFO] [stdout] 129 | fn read_records(filename: &str) -> Result<Vec<Record>, Box<Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_captured_field` is never used
[INFO] [stdout]    --> src/day4.rs:167:4
[INFO] [stdout]     |
[INFO] [stdout] 167 | fn get_captured_field(captures: &Captures, field: &str) -> Result<String, Box<Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_captured_field` is never used
[INFO] [stdout]    --> src/day4.rs:176:4
[INFO] [stdout]     |
[INFO] [stdout] 176 | fn has_captured_field(captures: &Captures, field: &str) -> Result<bool, Box<Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INPUT` is never used
[INFO] [stdout]   --> src/day5.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const INPUT: &str = "inputs/5.txt";
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNITS` is never used
[INFO] [stdout]   --> src/day5.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const UNITS: &str = "abcdefghijklmnopqrstuvwxyz";
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]   --> src/day5.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn solve_part1() -> Result<usize, Box<Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]   --> src/day5.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn solve_part2() -> Result<usize, Box<Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_polymer` is never used
[INFO] [stdout]   --> src/day5.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn read_polymer(filename: &str) -> Result<String, Box<Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reduce_polymer` is never used
[INFO] [stdout]   --> src/day5.rs:29:4
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn reduce_polymer(polymer: &String) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reduce_polymer_completely` is never used
[INFO] [stdout]   --> src/day5.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn reduce_polymer_completely(polymer: String) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_shortest_unit_eliminated_polymer` is never used
[INFO] [stdout]   --> src/day5.rs:49:4
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn find_shortest_unit_eliminated_polymer(polymer: String) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `ALPHABET` is never used
[INFO] [stdout]   --> src/day6.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | static ALPHABET: [char; 52] = [
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INPUT` is never used
[INFO] [stdout]   --> src/day6.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const INPUT: &str = "inputs/6.txt";
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Coordinate` is never constructed
[INFO] [stdout]   --> src/day6.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | struct Coordinate {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GridPoint` is never used
[INFO] [stdout]   --> src/day6.rs:29:6
[INFO] [stdout]    |
[INFO] [stdout] 29 | enum GridPoint {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Grid` is never constructed
[INFO] [stdout]   --> src/day6.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | struct Grid {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MalformedCoordinate` is never constructed
[INFO] [stdout]   --> src/day6.rs:86:8
[INFO] [stdout]    |
[INFO] [stdout] 86 | struct MalformedCoordinate {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/day6.rs:91:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | impl MalformedCoordinate {
[INFO] [stdout]    | ------------------------ associated function in this implementation
[INFO] [stdout] 91 |     fn new(msg: &str) -> MalformedCoordinate {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]    --> src/day6.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub fn solve_part1() -> Result<u32, Box<Error>> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]    --> src/day6.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn solve_part2() -> Result<u32, Box<Error>> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_coordinates` is never used
[INFO] [stdout]    --> src/day6.rs:124:4
[INFO] [stdout]     |
[INFO] [stdout] 124 | fn read_coordinates(filename: &str) -> Result<Vec<Coordinate>, Box<Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_captured_field` is never used
[INFO] [stdout]    --> src/day6.rs:148:4
[INFO] [stdout]     |
[INFO] [stdout] 148 | fn get_captured_field(captures: &Captures, field: &str) -> Result<String, Box<Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_boundary_coordinate` is never used
[INFO] [stdout]    --> src/day6.rs:157:4
[INFO] [stdout]     |
[INFO] [stdout] 157 | fn get_boundary_coordinate(coords: &Vec<Coordinate>) -> Coordinate {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_grid` is never used
[INFO] [stdout]    --> src/day6.rs:170:4
[INFO] [stdout]     |
[INFO] [stdout] 170 | fn create_grid(boundary_coord: Coordinate) -> Grid {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fill_grid` is never used
[INFO] [stdout]    --> src/day6.rs:180:4
[INFO] [stdout]     |
[INFO] [stdout] 180 | fn fill_grid<'a>(
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fill_grid_with_coordinate` is never used
[INFO] [stdout]    --> src/day6.rs:195:4
[INFO] [stdout]     |
[INFO] [stdout] 195 | fn fill_grid_with_coordinate(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `manhattan_dist` is never used
[INFO] [stdout]    --> src/day6.rs:245:4
[INFO] [stdout]     |
[INFO] [stdout] 245 | fn manhattan_dist(x1: u32, y1: u32, x2: u32, y2: u32) -> u32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_largest_coord_area` is never used
[INFO] [stdout]    --> src/day6.rs:249:4
[INFO] [stdout]     |
[INFO] [stdout] 249 | fn find_largest_coord_area(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `region_closest_to_coordinates_size` is never used
[INFO] [stdout]    --> src/day6.rs:274:4
[INFO] [stdout]     |
[INFO] [stdout] 274 | fn region_closest_to_coordinates_size(grid: Grid, coords: Vec<Coordinate>) -> u32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]   --> src/day7.rs:12:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | type Result<T> = result::Result<T, Box<Error>>;
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Instructions` is never used
[INFO] [stdout]   --> src/day7.rs:14:6
[INFO] [stdout]    |
[INFO] [stdout] 14 | type Instructions = HashMap<char, Vec<char>>;
[INFO] [stdout]    |      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INPUT` is never used
[INFO] [stdout]   --> src/day7.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const INPUT: &str = "inputs/7.txt";
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `ALPHABET` is never used
[INFO] [stdout]   --> src/day7.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | static ALPHABET: [char; 26] = [
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]   --> src/day7.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn solve_part1() -> Result<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]   --> src/day7.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn solve_part2() -> Result<u32> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_instructions` is never used
[INFO] [stdout]   --> src/day7.rs:33:4
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn read_instructions(filename: &str) -> Result<Instructions> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_captured_field` is never used
[INFO] [stdout]   --> src/day7.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn get_captured_field(captures: &Captures, field: &str) -> Result<char> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_step_sequence` is never used
[INFO] [stdout]   --> src/day7.rs:77:4
[INFO] [stdout]    |
[INFO] [stdout] 77 | fn get_step_sequence(instructions: &mut Instructions) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_parallel_step_sequence_seconds` is never used
[INFO] [stdout]    --> src/day7.rs:102:4
[INFO] [stdout]     |
[INFO] [stdout] 102 | fn get_parallel_step_sequence_seconds(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_seconds_for_step` is never used
[INFO] [stdout]    --> src/day7.rs:138:4
[INFO] [stdout]     |
[INFO] [stdout] 138 | fn get_seconds_for_step(step_letter: char) -> u8 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Worker` is never constructed
[INFO] [stdout]    --> src/day7.rs:143:8
[INFO] [stdout]     |
[INFO] [stdout] 143 | struct Worker {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Status` is never used
[INFO] [stdout]    --> src/day7.rs:149:6
[INFO] [stdout]     |
[INFO] [stdout] 149 | enum Status {
[INFO] [stdout]     |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkerPool` is never constructed
[INFO] [stdout]    --> src/day7.rs:155:8
[INFO] [stdout]     |
[INFO] [stdout] 155 | struct WorkerPool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `available`, `all_idle`, `run_one_second`, and `assign_worker` are never used
[INFO] [stdout]    --> src/day7.rs:160:8
[INFO] [stdout]     |
[INFO] [stdout] 159 | impl WorkerPool {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 160 |     fn new(count: u8) -> WorkerPool {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     fn available(&self) -> Vec<Worker> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     fn all_idle(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     fn run_one_second(&mut self, instructions: &mut Instructions, sequence: &mut String) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     fn assign_worker(&mut self, id: u8, step: char) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]  --> src/day8.rs:5:6
[INFO] [stdout]   |
[INFO] [stdout] 5 | type Result<T> = result::Result<T, Box<Error>>;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INPUT` is never used
[INFO] [stdout]  --> src/day8.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const INPUT: &str = "inputs/8.txt";
[INFO] [stdout]   |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]  --> src/day8.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn solve_part1() -> Result<u32> {
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]   --> src/day8.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn solve_part2() -> Result<u32> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_license` is never used
[INFO] [stdout]   --> src/day8.rs:19:4
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn read_license(filename: &str) -> Result<Vec<u32>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sum_metadata` is never used
[INFO] [stdout]   --> src/day8.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn sum_metadata(license: &[u32], mut index: usize, mut sum_acc: u32) -> (u32, usize) {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sum_metadata_with_indices` is never used
[INFO] [stdout]   --> src/day8.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn sum_metadata_with_indices(license: &[u32], mut index: usize) -> (u32, usize) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]   --> src/day9.rs:12:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | type Result<T> = result::Result<T, Box<Error>>;
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INPUT` is never used
[INFO] [stdout]   --> src/day9.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const INPUT: &str = "inputs/9.txt";
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GameParameters` is never constructed
[INFO] [stdout]   --> src/day9.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | struct GameParameters {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GameState` is never constructed
[INFO] [stdout]   --> src/day9.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | struct GameState {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/day9.rs:57:8
[INFO] [stdout]     |
[INFO] [stdout]  56 | impl GameState {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  57 |     fn new(parameters: GameParameters) -> GameState {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     fn rotate_clockwise(&mut self, steps: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  74 |     fn rotate_counter_clockwise(&mut self, steps: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     fn play_until_marble(&mut self, last_marble: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     fn place_next_marble(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     fn place_23rd_marble(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     fn highest_score(&mut self) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]    --> src/day9.rs:136:8
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub fn solve_part1() -> Result<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]    --> src/day9.rs:141:8
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub fn solve_part2() -> Result<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_game_parameters` is never used
[INFO] [stdout]    --> src/day9.rs:147:4
[INFO] [stdout]     |
[INFO] [stdout] 147 | fn read_game_parameters(filename: &str) -> Result<GameParameters> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_highest_score_for_game` is never used
[INFO] [stdout]    --> src/day9.rs:152:4
[INFO] [stdout]     |
[INFO] [stdout] 152 | fn get_highest_score_for_game(game_params: GameParameters) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]   --> src/day10.rs:12:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | type Result<T> = result::Result<T, Box<Error>>;
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INPUT` is never used
[INFO] [stdout]   --> src/day10.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const INPUT: &str = "inputs/10.txt";
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vector` is never constructed
[INFO] [stdout]   --> src/day10.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | struct Vector {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]   --> src/day10.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | struct Point {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Sky` is never constructed
[INFO] [stdout]   --> src/day10.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | struct Sky {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `point_spread` and `move_points` are never used
[INFO] [stdout]    --> src/day10.rs:80:8
[INFO] [stdout]     |
[INFO] [stdout]  79 | impl Sky {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout]  80 |     fn point_spread(&self) -> (Vector, Vector) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     fn move_points(&mut self, seconds: i32) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_parts` is never used
[INFO] [stdout]    --> src/day10.rs:134:8
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub fn solve_parts() -> Result<(String, u32)> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_points_file` is never used
[INFO] [stdout]    --> src/day10.rs:164:4
[INFO] [stdout]     |
[INFO] [stdout] 164 | fn read_points_file(filename: &str) -> Result<Sky> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]  --> src/day11.rs:6:6
[INFO] [stdout]   |
[INFO] [stdout] 6 | type Result<T> = result::Result<T, Box<Error>>;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INPUT` is never used
[INFO] [stdout]  --> src/day11.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const INPUT: &str = "inputs/11.txt";
[INFO] [stdout]   |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GRID_SIZE` is never used
[INFO] [stdout]  --> src/day11.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const GRID_SIZE: usize = 300;
[INFO] [stdout]   |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cells` is never constructed
[INFO] [stdout]   --> src/day11.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct Cells([[i32; GRID_SIZE + 1]; GRID_SIZE + 1]);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Grid` is never constructed
[INFO] [stdout]   --> src/day11.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | struct Grid {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Coordinate` is never constructed
[INFO] [stdout]   --> src/day11.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct Coordinate {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Subsection` is never constructed
[INFO] [stdout]   --> src/day11.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct Subsection {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `top_left` is never used
[INFO] [stdout]   --> src/day11.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl Subsection {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 53 |     fn top_left(&self) -> Subsection {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `power_at_cell`, `fill_sums`, `power_of_subsection`, and `highest_power_subsection` are never used
[INFO] [stdout]   --> src/day11.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | impl Grid {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 65 |     fn new(serial_number: usize) -> Grid {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     fn power_at_cell(&self, coord: &Coordinate) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     fn fill_sums(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 91 |     fn power_of_subsection(&mut self, subsection: &Subsection) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 98 |     fn highest_power_subsection(&mut self, size: usize) -> (Subsection, i32) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_serial_number_file` is never used
[INFO] [stdout]    --> src/day11.rs:124:4
[INFO] [stdout]     |
[INFO] [stdout] 124 | fn read_serial_number_file(filename: &str) -> Result<usize> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]    --> src/day11.rs:129:8
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub fn solve_part1() -> Result<Subsection> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]    --> src/day11.rs:136:8
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub fn solve_part2() -> Result<Subsection> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]   --> src/day12.rs:12:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | type Result<T> = result::Result<T, Box<Error>>;
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INPUT` is never used
[INFO] [stdout]   --> src/day12.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const INPUT: &str = "inputs/12.txt";
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Pots` is never constructed
[INFO] [stdout]   --> src/day12.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | struct Pots(VecDeque<bool>);
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SpreadRules` is never constructed
[INFO] [stdout]   --> src/day12.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | struct SpreadRules(HashMap<[bool; 5], bool>);
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GrowthSimulation` is never constructed
[INFO] [stdout]   --> src/day12.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | struct GrowthSimulation {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `advance_generation` and `sum_plant_indices` are never used
[INFO] [stdout]    --> src/day12.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 131 | impl GrowthSimulation {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] 132 |     fn advance_generation(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     fn sum_plant_indices(&self) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_initial_state_and_rules` is never used
[INFO] [stdout]    --> src/day12.rs:163:4
[INFO] [stdout]     |
[INFO] [stdout] 163 | fn read_initial_state_and_rules(filename: &str) -> Result<GrowthSimulation> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]    --> src/day12.rs:168:8
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub fn solve_part1() -> Result<i32> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]    --> src/day12.rs:176:8
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub fn solve_part2() -> Result<i32> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]  --> src/day13.rs:7:6
[INFO] [stdout]   |
[INFO] [stdout] 7 | type Result<T> = result::Result<T, Box<Error>>;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INPUT` is never used
[INFO] [stdout]  --> src/day13.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const INPUT: &str = "inputs/13.txt";
[INFO] [stdout]   |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Vector` is never constructed
[INFO] [stdout]   --> src/day13.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Vector {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Turn` is never used
[INFO] [stdout]   --> src/day13.rs:18:6
[INFO] [stdout]    |
[INFO] [stdout] 18 | enum Turn {
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INTER_SEQ` is never used
[INFO] [stdout]   --> src/day13.rs:25:7
[INFO] [stdout]    |
[INFO] [stdout] 25 | const INTER_SEQ: [Turn; 3] = [Turn::Left, Turn::Straight, Turn::Right];
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Direction` is never used
[INFO] [stdout]   --> src/day13.rs:28:6
[INFO] [stdout]    |
[INFO] [stdout] 28 | enum Direction {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cart` is never constructed
[INFO] [stdout]   --> src/day13.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | struct Cart {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Track` is never constructed
[INFO] [stdout]   --> src/day13.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | struct Track {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Collision` is never constructed
[INFO] [stdout]   --> src/day13.rs:50:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | struct Collision {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `turn` is never used
[INFO] [stdout]    --> src/day13.rs:173:8
[INFO] [stdout]     |
[INFO] [stdout] 172 | impl Direction {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 173 |     fn turn(self, turn: Turn) -> Direction {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `turn` and `follow_turn` are never used
[INFO] [stdout]    --> src/day13.rs:199:8
[INFO] [stdout]     |
[INFO] [stdout] 198 | impl Cart {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] 199 |     fn turn(&mut self, turn: Turn) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 203 |     fn follow_turn(&mut self, turn_arms: (Direction, Direction)) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `run_tick`, `find_first_collision`, and `find_last_cart` are never used
[INFO] [stdout]    --> src/day13.rs:217:8
[INFO] [stdout]     |
[INFO] [stdout] 216 | impl Track {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] 217 |     fn run_tick(&mut self, find_final_cart: bool) -> Option<Vector> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 272 |     fn find_first_collision(&mut self) -> Vector {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 280 |     fn find_last_cart(&mut self) -> &Cart {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_track` is never used
[INFO] [stdout]    --> src/day13.rs:288:4
[INFO] [stdout]     |
[INFO] [stdout] 288 | fn read_track(filename: &str) -> Result<Track> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]    --> src/day13.rs:293:8
[INFO] [stdout]     |
[INFO] [stdout] 293 | pub fn solve_part1() -> Result<Vector> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]    --> src/day13.rs:298:8
[INFO] [stdout]     |
[INFO] [stdout] 298 | pub fn solve_part2() -> Result<Vector> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `initial_state_regex` should have an upper case name
[INFO] [stdout]   --> src/day12.rs:88:24
[INFO] [stdout]    |
[INFO] [stdout] 88 |             static ref initial_state_regex: Regex =
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 88 -             static ref initial_state_regex: Regex =
[INFO] [stdout] 88 +             static ref INITIAL_STATE_REGEX: Regex =
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `spread_rules_regex` should have an upper case name
[INFO] [stdout]   --> src/day12.rs:90:24
[INFO] [stdout]    |
[INFO] [stdout] 90 |             static ref spread_rules_regex: Regex =
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 90 -             static ref spread_rules_regex: Regex =
[INFO] [stdout] 90 +             static ref SPREAD_RULES_REGEX: Regex =
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking csv v1.1.1
[INFO] [stderr]     Checking tinytemplate v1.0.2
[INFO] [stderr]     Checking criterion v0.2.11
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> benches/../src/day11.rs:154:9
[INFO] [stdout]     |
[INFO] [stdout] 154 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> benches/../src/day11.rs:6:40
[INFO] [stdout]   |
[INFO] [stdout] 6 | type Result<T> = result::Result<T, Box<Error>>;
[INFO] [stdout]   |                                        ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]   = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 6 | type Result<T> = result::Result<T, Box<dyn Error>>;
[INFO] [stdout]   |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]    --> benches/../src/day11.rs:129:8
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub fn solve_part1() -> Result<Subsection> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unknown lint: `clippy`
[INFO] [stdout]  --> src/main.rs:1:9
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![warn(clippy)]
[INFO] [stdout]   |         ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unknown_lints)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/day3.rs:7:33
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter::FromIterator`
[INFO] [stdout]  --> src/day3.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::iter::FromIterator;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/day4.rs:8:33
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter::FromIterator`
[INFO] [stdout]   --> src/day4.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::iter::FromIterator;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/day1.rs:9:41
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn solve_part1() -> Result<i32, Box<Error>> {
[INFO] [stdout]   |                                         ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]   = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn solve_part1() -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]   |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day1.rs:13:49
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn solve_part2() -> Result<Option<i32>, Box<Error>> {
[INFO] [stdout]    |                                                 ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn solve_part2() -> Result<Option<i32>, Box<dyn Error>> {
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day1.rs:17:69
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn calculate_resulting_frequency(filename: &str) -> Result<i32, Box<Error>> {
[INFO] [stdout]    |                                                                     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn calculate_resulting_frequency(filename: &str) -> Result<i32, Box<dyn Error>> {
[INFO] [stdout]    |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day1.rs:27:72
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn find_repeating_frequency(filename: &str) -> Result<Option<i32>, Box<Error>> {
[INFO] [stdout]    |                                                                        ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn find_repeating_frequency(filename: &str) -> Result<Option<i32>, Box<dyn Error>> {
[INFO] [stdout]    |                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day1.rs:46:61
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn read_frequencies(filename: &str) -> Result<Vec<i32>, Box<Error>> {
[INFO] [stdout]    |                                                             ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 46 | fn read_frequencies(filename: &str) -> Result<Vec<i32>, Box<dyn Error>> {
[INFO] [stdout]    |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/day2.rs:8:43
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn solve_part1() -> Result<usize, Box<Error>> {
[INFO] [stdout]   |                                           ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn solve_part1() -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]   |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day2.rs:12:52
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn solve_part2() -> Result<Option<String>, Box<Error>> {
[INFO] [stdout]    |                                                    ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn solve_part2() -> Result<Option<String>, Box<dyn Error>> {
[INFO] [stdout]    |                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day2.rs:16:60
[INFO] [stdout]    |
[INFO] [stdout] 16 | fn calculate_checksum(filename: &str) -> Result<usize, Box<Error>> {
[INFO] [stdout]    |                                                            ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 16 | fn calculate_checksum(filename: &str) -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]    |                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day2.rs:37:78
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn find_most_common_id_overlap(filename: &str) -> Result<Option<String>, Box<Error>> {
[INFO] [stdout]    |                                                                              ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn find_most_common_id_overlap(filename: &str) -> Result<Option<String>, Box<dyn Error>> {
[INFO] [stdout]    |                                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day3.rs:52:41
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn solve_part1() -> Result<u32, Box<Error>> {
[INFO] [stdout]    |                                         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn solve_part1() -> Result<u32, Box<dyn Error>> {
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day3.rs:56:49
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn solve_part2() -> Result<Option<u32>, Box<Error>> {
[INFO] [stdout]    |                                                 ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn solve_part2() -> Result<Option<u32>, Box<dyn Error>> {
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/day3.rs:104:58
[INFO] [stdout]     |
[INFO] [stdout] 104 | fn read_claims(filename: &str) -> Result<Vec<Claim>, Box<Error>> {
[INFO] [stdout]     |                                                          ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 104 | fn read_claims(filename: &str) -> Result<Vec<Claim>, Box<dyn Error>> {
[INFO] [stdout]     |                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/day3.rs:129:76
[INFO] [stdout]     |
[INFO] [stdout] 129 | fn get_captured_field(captures: &Captures, field: &str) -> Result<u32, Box<Error>> {
[INFO] [stdout]     |                                                                            ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 129 | fn get_captured_field(captures: &Captures, field: &str) -> Result<u32, Box<dyn Error>> {
[INFO] [stdout]     |                                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day4.rs:64:41
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub fn solve_part1() -> Result<u32, Box<Error>> {
[INFO] [stdout]    |                                         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub fn solve_part1() -> Result<u32, Box<dyn Error>> {
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day4.rs:68:41
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn solve_part2() -> Result<u32, Box<Error>> {
[INFO] [stdout]    |                                         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn solve_part2() -> Result<u32, Box<dyn Error>> {
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day4.rs:72:49
[INFO] [stdout]    |
[INFO] [stdout] 72 | fn get_part1(filename: &str) -> Result<u32, Box<Error>> {
[INFO] [stdout]    |                                                 ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 72 | fn get_part1(filename: &str) -> Result<u32, Box<dyn Error>> {
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day4.rs:80:49
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn get_part2(filename: &str) -> Result<u32, Box<Error>> {
[INFO] [stdout]    |                                                 ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn get_part2(filename: &str) -> Result<u32, Box<dyn Error>> {
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/day4.rs:129:60
[INFO] [stdout]     |
[INFO] [stdout] 129 | fn read_records(filename: &str) -> Result<Vec<Record>, Box<Error>> {
[INFO] [stdout]     |                                                            ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 129 | fn read_records(filename: &str) -> Result<Vec<Record>, Box<dyn Error>> {
[INFO] [stdout]     |                                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/day4.rs:167:79
[INFO] [stdout]     |
[INFO] [stdout] 167 | fn get_captured_field(captures: &Captures, field: &str) -> Result<String, Box<Error>> {
[INFO] [stdout]     |                                                                               ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 167 | fn get_captured_field(captures: &Captures, field: &str) -> Result<String, Box<dyn Error>> {
[INFO] [stdout]     |                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/day4.rs:176:77
[INFO] [stdout]     |
[INFO] [stdout] 176 | fn has_captured_field(captures: &Captures, field: &str) -> Result<bool, Box<Error>> {
[INFO] [stdout]     |                                                                             ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 176 | fn has_captured_field(captures: &Captures, field: &str) -> Result<bool, Box<dyn Error>> {
[INFO] [stdout]     |                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day5.rs:13:43
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn solve_part1() -> Result<usize, Box<Error>> {
[INFO] [stdout]    |                                           ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn solve_part1() -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]    |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day5.rs:18:43
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn solve_part2() -> Result<usize, Box<Error>> {
[INFO] [stdout]    |                                           ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn solve_part2() -> Result<usize, Box<dyn Error>> {
[INFO] [stdout]    |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day5.rs:23:55
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn read_polymer(filename: &str) -> Result<String, Box<Error>> {
[INFO] [stdout]    |                                                       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn read_polymer(filename: &str) -> Result<String, Box<dyn Error>> {
[INFO] [stdout]    |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/day6.rs:108:41
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub fn solve_part1() -> Result<u32, Box<Error>> {
[INFO] [stdout]     |                                         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub fn solve_part1() -> Result<u32, Box<dyn Error>> {
[INFO] [stdout]     |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/day6.rs:117:41
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn solve_part2() -> Result<u32, Box<Error>> {
[INFO] [stdout]     |                                         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn solve_part2() -> Result<u32, Box<dyn Error>> {
[INFO] [stdout]     |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/day6.rs:124:68
[INFO] [stdout]     |
[INFO] [stdout] 124 | fn read_coordinates(filename: &str) -> Result<Vec<Coordinate>, Box<Error>> {
[INFO] [stdout]     |                                                                    ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 124 | fn read_coordinates(filename: &str) -> Result<Vec<Coordinate>, Box<dyn Error>> {
[INFO] [stdout]     |                                                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/day6.rs:148:79
[INFO] [stdout]     |
[INFO] [stdout] 148 | fn get_captured_field(captures: &Captures, field: &str) -> Result<String, Box<Error>> {
[INFO] [stdout]     |                                                                               ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 148 | fn get_captured_field(captures: &Captures, field: &str) -> Result<String, Box<dyn Error>> {
[INFO] [stdout]     |                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/day6.rs:183:31
[INFO] [stdout]     |
[INFO] [stdout] 183 | ) -> Result<&'a mut Grid, Box<Error>> {
[INFO] [stdout]     |                               ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 183 | ) -> Result<&'a mut Grid, Box<dyn Error>> {
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/day6.rs:199:28
[INFO] [stdout]     |
[INFO] [stdout] 199 | ) -> Result<&mut Grid, Box<Error>> {
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 199 | ) -> Result<&mut Grid, Box<dyn Error>> {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day7.rs:12:40
[INFO] [stdout]    |
[INFO] [stdout] 12 | type Result<T> = result::Result<T, Box<Error>>;
[INFO] [stdout]    |                                        ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 12 | type Result<T> = result::Result<T, Box<dyn Error>>;
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/day8.rs:5:40
[INFO] [stdout]   |
[INFO] [stdout] 5 | type Result<T> = result::Result<T, Box<Error>>;
[INFO] [stdout]   |                                        ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 5 | type Result<T> = result::Result<T, Box<dyn Error>>;
[INFO] [stdout]   |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day9.rs:12:40
[INFO] [stdout]    |
[INFO] [stdout] 12 | type Result<T> = result::Result<T, Box<Error>>;
[INFO] [stdout]    |                                        ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 12 | type Result<T> = result::Result<T, Box<dyn Error>>;
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day9.rs:23:20
[INFO] [stdout]    |
[INFO] [stdout] 23 |     type Err = Box<Error>;
[INFO] [stdout]    |                    ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 23 |     type Err = Box<dyn Error>;
[INFO] [stdout]    |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day10.rs:12:40
[INFO] [stdout]    |
[INFO] [stdout] 12 | type Result<T> = result::Result<T, Box<Error>>;
[INFO] [stdout]    |                                        ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 12 | type Result<T> = result::Result<T, Box<dyn Error>>;
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day10.rs:29:20
[INFO] [stdout]    |
[INFO] [stdout] 29 |     type Err = Box<Error>;
[INFO] [stdout]    |                    ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 29 |     type Err = Box<dyn Error>;
[INFO] [stdout]    |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day10.rs:66:20
[INFO] [stdout]    |
[INFO] [stdout] 66 |     type Err = Box<Error>;
[INFO] [stdout]    |                    ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 66 |     type Err = Box<dyn Error>;
[INFO] [stdout]    |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/day11.rs:6:40
[INFO] [stdout]   |
[INFO] [stdout] 6 | type Result<T> = result::Result<T, Box<Error>>;
[INFO] [stdout]   |                                        ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 6 | type Result<T> = result::Result<T, Box<dyn Error>>;
[INFO] [stdout]   |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day12.rs:12:40
[INFO] [stdout]    |
[INFO] [stdout] 12 | type Result<T> = result::Result<T, Box<Error>>;
[INFO] [stdout]    |                                        ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 12 | type Result<T> = result::Result<T, Box<dyn Error>>;
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day12.rs:79:20
[INFO] [stdout]    |
[INFO] [stdout] 79 |     type Err = Box<Error>;
[INFO] [stdout]    |                    ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 79 |     type Err = Box<dyn Error>;
[INFO] [stdout]    |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/day13.rs:7:40
[INFO] [stdout]   |
[INFO] [stdout] 7 | type Result<T> = result::Result<T, Box<Error>>;
[INFO] [stdout]   |                                        ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 7 | type Result<T> = result::Result<T, Box<dyn Error>>;
[INFO] [stdout]   |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/day13.rs:56:20
[INFO] [stdout]    |
[INFO] [stdout] 56 |     type Err = Box<Error>;
[INFO] [stdout]    |                    ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 56 |     type Err = Box<dyn Error>;
[INFO] [stdout]    |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/day14.rs:6:40
[INFO] [stdout]   |
[INFO] [stdout] 6 | type Result<T> = result::Result<T, Box<Error>>;
[INFO] [stdout]   |                                        ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 6 | type Result<T> = result::Result<T, Box<dyn Error>>;
[INFO] [stdout]   |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/day3.rs:160:24
[INFO] [stdout]     |
[INFO] [stdout] 160 |                 (*err).description(),
[INFO] [stdout]     |                        ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/day4.rs:275:24
[INFO] [stdout]     |
[INFO] [stdout] 275 |                 (*err).description(),
[INFO] [stdout]     |                        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/day7.rs:124:13
[INFO] [stdout]     |
[INFO] [stdout] 124 |         for mut worker in worker_pool.available() {
[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: `index`
[INFO] [stdout]    --> src/day12.rs:137:14
[INFO] [stdout]     |
[INFO] [stdout] 137 |         for (index, pot_window) in pots_slice.windows(5).enumerate() {
[INFO] [stdout]     |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INPUT` is never used
[INFO] [stdout]  --> src/day1.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const INPUT: &str = "inputs/1.txt";
[INFO] [stdout]   |       ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]  --> src/day1.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn solve_part1() -> Result<i32, Box<Error>> {
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]   --> src/day1.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn solve_part2() -> Result<Option<i32>, Box<Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INPUT` is never used
[INFO] [stdout]  --> src/day2.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const INPUT: &str = "inputs/2.txt";
[INFO] [stdout]   |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]  --> src/day2.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn solve_part1() -> Result<usize, Box<Error>> {
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]   --> src/day2.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn solve_part2() -> Result<Option<String>, Box<Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INPUT` is never used
[INFO] [stdout]   --> src/day3.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const INPUT: &str = "inputs/3.txt";
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/day3.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl MalformedClaim {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 35 |     fn new(msg: &str) -> MalformedClaim {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]   --> src/day3.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn solve_part1() -> Result<u32, Box<Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]   --> src/day3.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn solve_part2() -> Result<Option<u32>, Box<Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INPUT` is never used
[INFO] [stdout]   --> src/day4.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const INPUT: &str = "inputs/4.txt";
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/day4.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl MalformedRecord {
[INFO] [stdout]    | -------------------- associated function in this implementation
[INFO] [stdout] 47 |     fn new(msg: &str) -> MalformedRecord {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]   --> src/day4.rs:64:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub fn solve_part1() -> Result<u32, Box<Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]   --> src/day4.rs:68:8
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn solve_part2() -> Result<u32, Box<Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INPUT` is never used
[INFO] [stdout]   --> src/day5.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const INPUT: &str = "inputs/5.txt";
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]   --> src/day5.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn solve_part1() -> Result<usize, Box<Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]   --> src/day5.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn solve_part2() -> Result<usize, Box<Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INPUT` is never used
[INFO] [stdout]   --> src/day6.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const INPUT: &str = "inputs/6.txt";
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/day6.rs:91:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | impl MalformedCoordinate {
[INFO] [stdout]    | ------------------------ associated function in this implementation
[INFO] [stdout] 91 |     fn new(msg: &str) -> MalformedCoordinate {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]    --> src/day6.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub fn solve_part1() -> Result<u32, Box<Error>> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]    --> src/day6.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn solve_part2() -> Result<u32, Box<Error>> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `region_closest_to_coordinates_size` is never used
[INFO] [stdout]    --> src/day6.rs:274:4
[INFO] [stdout]     |
[INFO] [stdout] 274 | fn region_closest_to_coordinates_size(grid: Grid, coords: Vec<Coordinate>) -> u32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INPUT` is never used
[INFO] [stdout]   --> src/day7.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const INPUT: &str = "inputs/7.txt";
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]   --> src/day7.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn solve_part1() -> Result<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]   --> src/day7.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn solve_part2() -> Result<u32> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INPUT` is never used
[INFO] [stdout]  --> src/day8.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const INPUT: &str = "inputs/8.txt";
[INFO] [stdout]   |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]  --> src/day8.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn solve_part1() -> Result<u32> {
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]   --> src/day8.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn solve_part2() -> Result<u32> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INPUT` is never used
[INFO] [stdout]   --> src/day9.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const INPUT: &str = "inputs/9.txt";
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]    --> src/day9.rs:136:8
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub fn solve_part1() -> Result<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]    --> src/day9.rs:141:8
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub fn solve_part2() -> Result<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INPUT` is never used
[INFO] [stdout]   --> src/day10.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const INPUT: &str = "inputs/10.txt";
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_parts` is never used
[INFO] [stdout]    --> src/day10.rs:134:8
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub fn solve_parts() -> Result<(String, u32)> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]  --> src/day11.rs:6:6
[INFO] [stdout]   |
[INFO] [stdout] 6 | type Result<T> = result::Result<T, Box<Error>>;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INPUT` is never used
[INFO] [stdout]  --> src/day11.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const INPUT: &str = "inputs/11.txt";
[INFO] [stdout]   |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_serial_number_file` is never used
[INFO] [stdout]    --> src/day11.rs:124:4
[INFO] [stdout]     |
[INFO] [stdout] 124 | fn read_serial_number_file(filename: &str) -> Result<usize> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]    --> src/day11.rs:129:8
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub fn solve_part1() -> Result<Subsection> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]    --> src/day11.rs:136:8
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub fn solve_part2() -> Result<Subsection> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INPUT` is never used
[INFO] [stdout]   --> src/day12.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const INPUT: &str = "inputs/12.txt";
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]    --> src/day12.rs:168:8
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub fn solve_part1() -> Result<i32> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]    --> src/day12.rs:176:8
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub fn solve_part2() -> Result<i32> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INPUT` is never used
[INFO] [stdout]  --> src/day13.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const INPUT: &str = "inputs/13.txt";
[INFO] [stdout]   |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Collision` is never constructed
[INFO] [stdout]   --> src/day13.rs:50:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | struct Collision {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `find_last_cart` is never used
[INFO] [stdout]    --> src/day13.rs:280:8
[INFO] [stdout]     |
[INFO] [stdout] 216 | impl Track {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 280 |     fn find_last_cart(&mut self) -> &Cart {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part1` is never used
[INFO] [stdout]    --> src/day13.rs:293:8
[INFO] [stdout]     |
[INFO] [stdout] 293 | pub fn solve_part1() -> Result<Vector> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `solve_part2` is never used
[INFO] [stdout]    --> src/day13.rs:298:8
[INFO] [stdout]     |
[INFO] [stdout] 298 | pub fn solve_part2() -> Result<Vector> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `initial_state_regex` should have an upper case name
[INFO] [stdout]   --> src/day12.rs:88:24
[INFO] [stdout]    |
[INFO] [stdout] 88 |             static ref initial_state_regex: Regex =
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 88 -             static ref initial_state_regex: Regex =
[INFO] [stdout] 88 +             static ref INITIAL_STATE_REGEX: Regex =
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `spread_rules_regex` should have an upper case name
[INFO] [stdout]   --> src/day12.rs:90:24
[INFO] [stdout]    |
[INFO] [stdout] 90 |             static ref spread_rules_regex: Regex =
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 90 -             static ref spread_rules_regex: Regex =
[INFO] [stdout] 90 +             static ref SPREAD_RULES_REGEX: Regex =
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 15.91s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: criterion v0.2.11
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] running `Command { std: "docker" "inspect" "12a7c467b02c2fed1c2b1ff88b02602e5b31d12fd9e5c2f692c7d7163b01c912", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "12a7c467b02c2fed1c2b1ff88b02602e5b31d12fd9e5c2f692c7d7163b01c912", kill_on_drop: false }`
[INFO] [stdout] 12a7c467b02c2fed1c2b1ff88b02602e5b31d12fd9e5c2f692c7d7163b01c912
