[INFO] cloning repository https://github.com/gearhand/advent_of_code_2022_2024
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/gearhand/advent_of_code_2022_2024" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgearhand%2Fadvent_of_code_2022_2024", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgearhand%2Fadvent_of_code_2022_2024'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] cdcdcab27caf90f2ccffb2bca7f7188230e712fe
[INFO] checking gearhand/advent_of_code_2022_2024 against a5689b034ad287112f709693384a37f1377eb9cc for pr-129249-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgearhand%2Fadvent_of_code_2022_2024" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/gearhand/advent_of_code_2022_2024
[INFO] finished tweaking git repo https://github.com/gearhand/advent_of_code_2022_2024
[INFO] tweaked toml for git repo https://github.com/gearhand/advent_of_code_2022_2024 written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/gearhand/advent_of_code_2022_2024 on toolchain a5689b034ad287112f709693384a37f1377eb9cc
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/gearhand/advent_of_code_2022_2024 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" "+a5689b034ad287112f709693384a37f1377eb9cc" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 7e8ac68c8c426f7f4840db4eda1a4e884b367ec091ceb6e018022c95d38c23dd
[INFO] running `Command { std: "docker" "start" "7e8ac68c8c426f7f4840db4eda1a4e884b367ec091ceb6e018022c95d38c23dd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7e8ac68c8c426f7f4840db4eda1a4e884b367ec091ceb6e018022c95d38c23dd", 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" "7e8ac68c8c426f7f4840db4eda1a4e884b367ec091ceb6e018022c95d38c23dd" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7e8ac68c8c426f7f4840db4eda1a4e884b367ec091ceb6e018022c95d38c23dd", 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" "7e8ac68c8c426f7f4840db4eda1a4e884b367ec091ceb6e018022c95d38c23dd" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.70
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]     Checking memchr v2.6.4
[INFO] [stderr]     Checking anstyle v1.0.4
[INFO] [stderr]     Checking anstyle-query v1.0.0
[INFO] [stderr]     Checking regex-syntax v0.8.4
[INFO] [stderr]     Checking clap_lex v0.6.0
[INFO] [stderr]    Compiling phf_shared v0.11.2
[INFO] [stderr]     Checking anstyle-parse v0.2.2
[INFO] [stderr]     Checking strsim v0.10.0
[INFO] [stderr]     Checking anstream v0.6.4
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]     Checking clap_builder v4.4.9
[INFO] [stderr]     Checking aho-corasick v1.1.2
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]    Compiling phf_generator v0.11.2
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]    Compiling quote v1.0.33
[INFO] [stderr]    Compiling syn v2.0.39
[INFO] [stderr]     Checking ndarray v0.16.1
[INFO] [stderr]     Checking regex-automata v0.4.7
[INFO] [stderr]     Checking regex v1.10.6
[INFO] [stderr]    Compiling clap_derive v4.4.7
[INFO] [stderr]    Compiling phf_macros v0.11.2
[INFO] [stderr]     Checking phf v0.11.2
[INFO] [stderr]     Checking clap v4.4.10
[INFO] [stderr]     Checking advent_of_code_2022_2023 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]    --> src/sub_2023/fertilizer.rs:123:52
[INFO] [stdout]     |
[INFO] [stdout] 123 |                 Ok(v.into_iter().flat_map(|(s, l)| (s..(s + l))).collect())
[INFO] [stdout]     |                                                    ^          ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 123 -                 Ok(v.into_iter().flat_map(|(s, l)| (s..(s + l))).collect())
[INFO] [stdout] 123 +                 Ok(v.into_iter().flat_map(|(s, l)| s..(s + l)).collect())
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DefaultHasher`, `Hash`, and `Hasher`
[INFO] [stdout]  --> src/sub_2023/hot_springs.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::hash::{Hash, Hasher, DefaultHasher};
[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: `regex`
[INFO] [stdout]  --> src/sub_2023/hot_springs.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use regex;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Axis` and `arr2`
[INFO] [stdout]  --> src/sub_2024/guard_gallivant.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ndarray::{arr2, Array2, ArrayView2, Axis, Ix, s};
[INFO] [stdout]   |               ^^^^                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DOWN`, `LEFT`, and `RIGHT`
[INFO] [stdout]  --> src/sub_2024/guard_gallivant.rs:4:51
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::sub_2024::guard_gallivant::Direction::{DOWN, LEFT, RIGHT};
[INFO] [stdout]   |                                                   ^^^^  ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]    --> src/sub_2023/fertilizer.rs:123:52
[INFO] [stdout]     |
[INFO] [stdout] 123 |                 Ok(v.into_iter().flat_map(|(s, l)| (s..(s + l))).collect())
[INFO] [stdout]     |                                                    ^          ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 123 -                 Ok(v.into_iter().flat_map(|(s, l)| (s..(s + l))).collect())
[INFO] [stdout] 123 +                 Ok(v.into_iter().flat_map(|(s, l)| s..(s + l)).collect())
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DefaultHasher`, `Hash`, and `Hasher`
[INFO] [stdout]  --> src/sub_2023/hot_springs.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::hash::{Hash, Hasher, DefaultHasher};
[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: `regex`
[INFO] [stdout]  --> src/sub_2023/hot_springs.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use regex;
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Axis`
[INFO] [stdout]  --> src/sub_2024/guard_gallivant.rs:3:41
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ndarray::{arr2, Array2, ArrayView2, Axis, Ix, s};
[INFO] [stdout]   |                                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DOWN`, `LEFT`, and `RIGHT`
[INFO] [stdout]  --> src/sub_2024/guard_gallivant.rs:4:51
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::sub_2024::guard_gallivant::Direction::{DOWN, LEFT, RIGHT};
[INFO] [stdout]   |                                                   ^^^^  ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/sub_2023/hot_springs.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let mut cache = RefCell::new(HashMap::new());
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/sub_2023/hot_springs.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 67 |     let mut offset = 0;
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `len`
[INFO] [stdout]   --> src/sub_2024/printing_queue.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let len = update.len();
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_len`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lines`
[INFO] [stdout]    --> src/sub_2024/guard_gallivant.rs:148:18
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub fn process_b(lines: Vec<String>) {
[INFO] [stdout]     |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_lines`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trace` is never used
[INFO] [stdout]   --> src/sub_2023/fertilizer.rs:99:4
[INFO] [stdout]    |
[INFO] [stdout] 99 | fn trace(data: &Vec<u32>, mapping: &Vec<Mapping>) -> Vec<u32> {
[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 `cmps` is never used
[INFO] [stdout]   --> src/sub_2023/haunted_wasteland.rs:53:4
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn cmps<A, B, C>(f1: impl Fn(A) -> B, f2: impl Fn(B) -> C) -> impl Fn(A) -> C {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `evolve_partial` is never used
[INFO] [stdout]    --> src/sub_2023/haunted_wasteland.rs:211:8
[INFO] [stdout]     |
[INFO] [stdout] 193 | impl<'a, 'b> EvolutionThread<'a, 'b> {
[INFO] [stdout]     | ------------------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 211 |     fn evolve_partial(&mut self, (start, steps): (&'a str, i32)) -> (&'a str, i32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/sub_2023/mirage_maintenance.rs:181:8
[INFO] [stdout]     |
[INFO] [stdout] 179 | impl<T> Pool<T> {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] 180 |
[INFO] [stdout] 181 |     fn new() -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `count` is never used
[INFO] [stdout]   --> src/sub_2024/guard_gallivant.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl Position {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] 30 |     fn count(&self, rhs: &Self) -> usize {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `&str`
[INFO] [stdout]   --> src/sub_2023/haunted_wasteland.rs:23:43
[INFO] [stdout]    |
[INFO] [stdout] 23 |         Ok((_, (key, (left, right)))) => (key.into(), (left.into(), right.into())),
[INFO] [stdout]    |                                           ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 23 -         Ok((_, (key, (left, right)))) => (key.into(), (left.into(), right.into())),
[INFO] [stdout] 23 +         Ok((_, (key, (left, right)))) => (key, (left.into(), right.into())),
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 23 -         Ok((_, (key, (left, right)))) => (key.into(), (left.into(), right.into())),
[INFO] [stdout] 23 +         Ok((_, (key, (left, right)))) => (<&str as Into<_>>::into(key), (left.into(), right.into())),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `&str`
[INFO] [stdout]   --> src/sub_2023/haunted_wasteland.rs:23:56
[INFO] [stdout]    |
[INFO] [stdout] 23 |         Ok((_, (key, (left, right)))) => (key.into(), (left.into(), right.into())),
[INFO] [stdout]    |                                                        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 23 -         Ok((_, (key, (left, right)))) => (key.into(), (left.into(), right.into())),
[INFO] [stdout] 23 +         Ok((_, (key, (left, right)))) => (key.into(), (left, right.into())),
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 23 -         Ok((_, (key, (left, right)))) => (key.into(), (left.into(), right.into())),
[INFO] [stdout] 23 +         Ok((_, (key, (left, right)))) => (key.into(), (<&str as Into<_>>::into(left), right.into())),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `&str`
[INFO] [stdout]   --> src/sub_2023/haunted_wasteland.rs:23:69
[INFO] [stdout]    |
[INFO] [stdout] 23 |         Ok((_, (key, (left, right)))) => (key.into(), (left.into(), right.into())),
[INFO] [stdout]    |                                                                     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 23 -         Ok((_, (key, (left, right)))) => (key.into(), (left.into(), right.into())),
[INFO] [stdout] 23 +         Ok((_, (key, (left, right)))) => (key.into(), (left.into(), right)),
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 23 -         Ok((_, (key, (left, right)))) => (key.into(), (left.into(), right.into())),
[INFO] [stdout] 23 +         Ok((_, (key, (left, right)))) => (key.into(), (left.into(), <&str as Into<_>>::into(right))),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `U32` should have a snake case name
[INFO] [stdout]   --> src/sub_2023/cube_conundrum.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let U32 = nom::character::complete::u32::<&str, nom::error::Error<&str>>;
[INFO] [stdout]    |         ^^^ help: convert the identifier to snake case (notice the capitalization): `u32`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `U32` should have a snake case name
[INFO] [stdout]   --> src/sub_2023/cube_conundrum.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let U32 = nom::character::complete::u32::<&str, nom::error::Error<&str>>;
[INFO] [stdout]    |         ^^^ help: convert the identifier to snake case (notice the capitalization): `u32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `U8` should have a snake case name
[INFO] [stdout]   --> src/sub_2023/scratchcards.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let U8 = nom::character::complete::u8::<_, VerboseError<_>>;
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case (notice the capitalization): `u8`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `U8` should have a snake case name
[INFO] [stdout]   --> src/sub_2023/scratchcards.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let U8 = nom::character::complete::u8::<_, VerboseError<_>>;
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case (notice the capitalization): `u8`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `U32` should have a snake case name
[INFO] [stdout]   --> src/sub_2023/fertilizer.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let U32 = nom::character::complete::u32::<_, nom::error::Error<_>>;
[INFO] [stdout]    |         ^^^ help: convert the identifier to snake case (notice the capitalization): `u32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `U32` should have a snake case name
[INFO] [stdout]    --> src/sub_2023/fertilizer.rs:108:9
[INFO] [stdout]     |
[INFO] [stdout] 108 |     let U32 = nom::character::complete::u32::<_, nom::error::Error<_>>;
[INFO] [stdout]     |         ^^^ help: convert the identifier to snake case (notice the capitalization): `u32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `U32` should have a snake case name
[INFO] [stdout]   --> src/sub_2023/wait_for_it.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let U32 = nom::character::complete::u32::<_, nom::error::Error<_>>;
[INFO] [stdout]    |         ^^^ help: convert the identifier to snake case (notice the capitalization): `u32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `U32` should have a snake case name
[INFO] [stdout]    --> src/sub_2023/camel_cards.rs:141:9
[INFO] [stdout]     |
[INFO] [stdout] 141 |     let U32 = nom::character::complete::u32::<_, nom::error::Error<_>>;
[INFO] [stdout]     |         ^^^ help: convert the identifier to snake case (notice the capitalization): `u32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `U32` should have a snake case name
[INFO] [stdout]    --> src/sub_2023/camel_cards.rs:156:9
[INFO] [stdout]     |
[INFO] [stdout] 156 |     let U32 = nom::character::complete::u32::<_, nom::error::Error<_>>;
[INFO] [stdout]     |         ^^^ help: convert the identifier to snake case (notice the capitalization): `u32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/sub_2023/hot_springs.rs:32:77
[INFO] [stdout]    |
[INFO] [stdout] 32 |         println!("Total result is {result}, time elapsed {elapsed:?}, hits {HIT_COUNTER}, misses {MISS_COUNTER}");
[INFO] [stdout]    |                                                                             ^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/sub_2023/hot_springs.rs:32:99
[INFO] [stdout]    |
[INFO] [stdout] 32 |         println!("Total result is {result}, time elapsed {elapsed:?}, hits {HIT_COUNTER}, misses {MISS_COUNTER}");
[INFO] [stdout]    |                                                                                                   ^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/sub_2023/hot_springs.rs:61:77
[INFO] [stdout]    |
[INFO] [stdout] 61 |         println!("Total result is {result}, time elapsed {elapsed:?}, hits {HIT_COUNTER}, misses {MISS_COUNTER}");
[INFO] [stdout]    |                                                                             ^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/sub_2023/hot_springs.rs:61:99
[INFO] [stdout]    |
[INFO] [stdout] 61 |         println!("Total result is {result}, time elapsed {elapsed:?}, hits {HIT_COUNTER}, misses {MISS_COUNTER}");
[INFO] [stdout]    |                                                                                                   ^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `advent_of_code_2022_2023` (lib) due to 3 previous errors; 27 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/sub_2023/cosmic_expansion.rs:109:42
[INFO] [stdout]     |
[INFO] [stdout] 109 |     assert!(test_rows.iter().fold(true, |b, x| empty_rows.contains(x)));
[INFO] [stdout]     |                                          ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/sub_2023/cosmic_expansion.rs:107:42
[INFO] [stdout]     |
[INFO] [stdout] 107 |     assert!(test_cols.iter().fold(true, |b, x| empty_cols.contains(x)));
[INFO] [stdout]     |                                          ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/sub_2023/hot_springs.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let mut cache = RefCell::new(HashMap::new());
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/sub_2023/hot_springs.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 67 |     let mut offset = 0;
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current`
[INFO] [stdout]    --> src/sub_2023/hot_springs.rs:204:9
[INFO] [stdout]     |
[INFO] [stdout] 204 |     let current = 94;
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `len`
[INFO] [stdout]   --> src/sub_2024/printing_queue.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let len = update.len();
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lines`
[INFO] [stdout]    --> src/sub_2024/guard_gallivant.rs:148:18
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub fn process_b(lines: Vec<String>) {
[INFO] [stdout]     |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_lines`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trace` is never used
[INFO] [stdout]   --> src/sub_2023/fertilizer.rs:99:4
[INFO] [stdout]    |
[INFO] [stdout] 99 | fn trace(data: &Vec<u32>, mapping: &Vec<Mapping>) -> Vec<u32> {
[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 `cmps` is never used
[INFO] [stdout]   --> src/sub_2023/haunted_wasteland.rs:53:4
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn cmps<A, B, C>(f1: impl Fn(A) -> B, f2: impl Fn(B) -> C) -> impl Fn(A) -> C {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `evolve_partial` is never used
[INFO] [stdout]    --> src/sub_2023/haunted_wasteland.rs:211:8
[INFO] [stdout]     |
[INFO] [stdout] 193 | impl<'a, 'b> EvolutionThread<'a, 'b> {
[INFO] [stdout]     | ------------------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 211 |     fn evolve_partial(&mut self, (start, steps): (&'a str, i32)) -> (&'a str, i32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/sub_2023/mirage_maintenance.rs:181:8
[INFO] [stdout]     |
[INFO] [stdout] 179 | impl<T> Pool<T> {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] 180 |
[INFO] [stdout] 181 |     fn new() -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `count` is never used
[INFO] [stdout]   --> src/sub_2024/guard_gallivant.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl Position {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] 30 |     fn count(&self, rhs: &Self) -> usize {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `&str`
[INFO] [stdout]   --> src/sub_2023/haunted_wasteland.rs:23:43
[INFO] [stdout]    |
[INFO] [stdout] 23 |         Ok((_, (key, (left, right)))) => (key.into(), (left.into(), right.into())),
[INFO] [stdout]    |                                           ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 23 -         Ok((_, (key, (left, right)))) => (key.into(), (left.into(), right.into())),
[INFO] [stdout] 23 +         Ok((_, (key, (left, right)))) => (key, (left.into(), right.into())),
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 23 -         Ok((_, (key, (left, right)))) => (key.into(), (left.into(), right.into())),
[INFO] [stdout] 23 +         Ok((_, (key, (left, right)))) => (<&str as Into<_>>::into(key), (left.into(), right.into())),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `&str`
[INFO] [stdout]   --> src/sub_2023/haunted_wasteland.rs:23:56
[INFO] [stdout]    |
[INFO] [stdout] 23 |         Ok((_, (key, (left, right)))) => (key.into(), (left.into(), right.into())),
[INFO] [stdout]    |                                                        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 23 -         Ok((_, (key, (left, right)))) => (key.into(), (left.into(), right.into())),
[INFO] [stdout] 23 +         Ok((_, (key, (left, right)))) => (key.into(), (left, right.into())),
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 23 -         Ok((_, (key, (left, right)))) => (key.into(), (left.into(), right.into())),
[INFO] [stdout] 23 +         Ok((_, (key, (left, right)))) => (key.into(), (<&str as Into<_>>::into(left), right.into())),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `&str`
[INFO] [stdout]   --> src/sub_2023/haunted_wasteland.rs:23:69
[INFO] [stdout]    |
[INFO] [stdout] 23 |         Ok((_, (key, (left, right)))) => (key.into(), (left.into(), right.into())),
[INFO] [stdout]    |                                                                     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 23 -         Ok((_, (key, (left, right)))) => (key.into(), (left.into(), right.into())),
[INFO] [stdout] 23 +         Ok((_, (key, (left, right)))) => (key.into(), (left.into(), right)),
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 23 -         Ok((_, (key, (left, right)))) => (key.into(), (left.into(), right.into())),
[INFO] [stdout] 23 +         Ok((_, (key, (left, right)))) => (key.into(), (left.into(), <&str as Into<_>>::into(right))),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `U32` should have a snake case name
[INFO] [stdout]   --> src/sub_2023/cube_conundrum.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let U32 = nom::character::complete::u32::<&str, nom::error::Error<&str>>;
[INFO] [stdout]    |         ^^^ help: convert the identifier to snake case (notice the capitalization): `u32`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `U32` should have a snake case name
[INFO] [stdout]   --> src/sub_2023/cube_conundrum.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let U32 = nom::character::complete::u32::<&str, nom::error::Error<&str>>;
[INFO] [stdout]    |         ^^^ help: convert the identifier to snake case (notice the capitalization): `u32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `U8` should have a snake case name
[INFO] [stdout]   --> src/sub_2023/scratchcards.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let U8 = nom::character::complete::u8::<_, VerboseError<_>>;
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case (notice the capitalization): `u8`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `U8` should have a snake case name
[INFO] [stdout]   --> src/sub_2023/scratchcards.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let U8 = nom::character::complete::u8::<_, VerboseError<_>>;
[INFO] [stdout]    |         ^^ help: convert the identifier to snake case (notice the capitalization): `u8`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `U32` should have a snake case name
[INFO] [stdout]   --> src/sub_2023/fertilizer.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let U32 = nom::character::complete::u32::<_, nom::error::Error<_>>;
[INFO] [stdout]    |         ^^^ help: convert the identifier to snake case (notice the capitalization): `u32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `U32` should have a snake case name
[INFO] [stdout]    --> src/sub_2023/fertilizer.rs:108:9
[INFO] [stdout]     |
[INFO] [stdout] 108 |     let U32 = nom::character::complete::u32::<_, nom::error::Error<_>>;
[INFO] [stdout]     |         ^^^ help: convert the identifier to snake case (notice the capitalization): `u32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `U32` should have a snake case name
[INFO] [stdout]   --> src/sub_2023/wait_for_it.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let U32 = nom::character::complete::u32::<_, nom::error::Error<_>>;
[INFO] [stdout]    |         ^^^ help: convert the identifier to snake case (notice the capitalization): `u32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `U32` should have a snake case name
[INFO] [stdout]    --> src/sub_2023/camel_cards.rs:141:9
[INFO] [stdout]     |
[INFO] [stdout] 141 |     let U32 = nom::character::complete::u32::<_, nom::error::Error<_>>;
[INFO] [stdout]     |         ^^^ help: convert the identifier to snake case (notice the capitalization): `u32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `U32` should have a snake case name
[INFO] [stdout]    --> src/sub_2023/camel_cards.rs:156:9
[INFO] [stdout]     |
[INFO] [stdout] 156 |     let U32 = nom::character::complete::u32::<_, nom::error::Error<_>>;
[INFO] [stdout]     |         ^^^ help: convert the identifier to snake case (notice the capitalization): `u32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/sub_2023/hot_springs.rs:32:77
[INFO] [stdout]    |
[INFO] [stdout] 32 |         println!("Total result is {result}, time elapsed {elapsed:?}, hits {HIT_COUNTER}, misses {MISS_COUNTER}");
[INFO] [stdout]    |                                                                             ^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/sub_2023/hot_springs.rs:32:99
[INFO] [stdout]    |
[INFO] [stdout] 32 |         println!("Total result is {result}, time elapsed {elapsed:?}, hits {HIT_COUNTER}, misses {MISS_COUNTER}");
[INFO] [stdout]    |                                                                                                   ^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/sub_2023/hot_springs.rs:61:77
[INFO] [stdout]    |
[INFO] [stdout] 61 |         println!("Total result is {result}, time elapsed {elapsed:?}, hits {HIT_COUNTER}, misses {MISS_COUNTER}");
[INFO] [stdout]    |                                                                             ^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/sub_2023/hot_springs.rs:61:99
[INFO] [stdout]    |
[INFO] [stdout] 61 |         println!("Total result is {result}, time elapsed {elapsed:?}, hits {HIT_COUNTER}, misses {MISS_COUNTER}");
[INFO] [stdout]    |                                                                                                   ^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = help: use a type that relies on "interior mutability" instead; to read more on this, visit <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `advent_of_code_2022_2023` (lib test) due to 3 previous errors; 30 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "7e8ac68c8c426f7f4840db4eda1a4e884b367ec091ceb6e018022c95d38c23dd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7e8ac68c8c426f7f4840db4eda1a4e884b367ec091ceb6e018022c95d38c23dd", kill_on_drop: false }`
[INFO] [stdout] 7e8ac68c8c426f7f4840db4eda1a4e884b367ec091ceb6e018022c95d38c23dd
