[INFO] cloning repository https://github.com/FooVoo/rust-basics
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/FooVoo/rust-basics" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FFooVoo%2Frust-basics", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FFooVoo%2Frust-basics'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 533a598260b2f635e5cbe9ef65f7e7d28799a6ef
[INFO] testing FooVoo/rust-basics against master#f9988fefd3add01f414f52b414308e7872622fee for pr-155114
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FFooVoo%2Frust-basics" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/FooVoo/rust-basics
[INFO] finished tweaking git repo https://github.com/FooVoo/rust-basics
[INFO] tweaked toml for git repo https://github.com/FooVoo/rust-basics written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/FooVoo/rust-basics on toolchain f9988fefd3add01f414f52b414308e7872622fee
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/FooVoo/rust-basics 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" "+f9988fefd3add01f414f52b414308e7872622fee" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded syn v2.0.116
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ec132eb4d1847b2722c9155e08669a5a4ace34d0ff12d043ec89cea8511f9ee8
[INFO] running `Command { std: "docker" "start" "-a" "ec132eb4d1847b2722c9155e08669a5a4ace34d0ff12d043ec89cea8511f9ee8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ec132eb4d1847b2722c9155e08669a5a4ace34d0ff12d043ec89cea8511f9ee8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ec132eb4d1847b2722c9155e08669a5a4ace34d0ff12d043ec89cea8511f9ee8", kill_on_drop: false }`
[INFO] [stdout] ec132eb4d1847b2722c9155e08669a5a4ace34d0ff12d043ec89cea8511f9ee8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5fa7656babfd16796280dd0e5e4e95826bdbc82e8348cd443c7ea20dba92f840
[INFO] running `Command { std: "docker" "start" "-a" "5fa7656babfd16796280dd0e5e4e95826bdbc82e8348cd443c7ea20dba92f840", kill_on_drop: false }`
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling syn v2.0.116
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling Rusts-Basics v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Ordering`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_22.rs:10:38
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::sync::atomic::{AtomicUsize, Ordering};
[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: `Write`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_23.rs:10:21
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::io::{self, Write};
[INFO] [stdout]    |                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_23.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::path::Path;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/exercises/iterators/exercise_27.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `sleep`
[INFO] [stdout]  --> src/exercises/async_rust/exercise_02.rs:9:19
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::time::{sleep, Duration};
[INFO] [stdout]   |                   ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::task`
[INFO] [stdout]  --> src/exercises/async_rust/exercise_04.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::task;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `sleep`
[INFO] [stdout]  --> src/exercises/async_rust/exercise_05.rs:9:19
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::time::{sleep, Duration};
[INFO] [stdout]   |                   ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration`, `sleep`, and `timeout`
[INFO] [stdout]  --> src/exercises/async_rust/exercise_06.rs:9:19
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::time::{sleep, timeout, Duration};
[INFO] [stdout]   |                   ^^^^^  ^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `sleep`
[INFO] [stdout]  --> src/exercises/async_rust/exercise_09.rs:9:19
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::time::{sleep, Duration};
[INFO] [stdout]   |                   ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::mpsc`
[INFO] [stdout]  --> src/exercises/async_rust/exercise_10.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::sync::mpsc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::Mutex`
[INFO] [stdout]  --> src/exercises/async_rust/exercise_11.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::sync::Mutex;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_11.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `sleep`
[INFO] [stdout]  --> src/exercises/async_rust/exercise_12.rs:9:19
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::time::{sleep, Duration};
[INFO] [stdout]   |                   ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `sleep`
[INFO] [stdout]  --> src/exercises/async_rust/exercise_14.rs:9:19
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::time::{sleep, Duration};
[INFO] [stdout]   |                   ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::RwLock`
[INFO] [stdout]  --> src/exercises/async_rust/exercise_15.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::sync::RwLock;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_15.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::Semaphore`
[INFO] [stdout]  --> src/exercises/async_rust/exercise_16.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::sync::Semaphore;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `sleep`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_16.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 | use tokio::time::{sleep, Duration};
[INFO] [stdout]    |                   ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_16.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::Barrier`
[INFO] [stdout]  --> src/exercises/async_rust/exercise_17.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::sync::Barrier;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `sleep`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_17.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 | use tokio::time::{sleep, Duration};
[INFO] [stdout]    |                   ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_17.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::Notify`
[INFO] [stdout]  --> src/exercises/async_rust/exercise_18.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::sync::Notify;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `sleep`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_18.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 | use tokio::time::{sleep, Duration};
[INFO] [stdout]    |                   ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_18.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::watch`
[INFO] [stdout]  --> src/exercises/async_rust/exercise_19.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::sync::watch;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `sleep`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_19.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 | use tokio::time::{sleep, Duration};
[INFO] [stdout]    |                   ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::oneshot`
[INFO] [stdout]  --> src/exercises/async_rust/exercise_20.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::sync::oneshot;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `sleep`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_20.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 | use tokio::time::{sleep, Duration};
[INFO] [stdout]    |                   ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `StreamExt` and `self`
[INFO] [stdout]  --> src/exercises/async_rust/exercise_21.rs:9:23
[INFO] [stdout]   |
[INFO] [stdout] 9 | use futures::stream::{self, StreamExt};
[INFO] [stdout]   |                       ^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `StreamExt` and `self`
[INFO] [stdout]  --> src/exercises/async_rust/exercise_22.rs:9:23
[INFO] [stdout]   |
[INFO] [stdout] 9 | use futures::stream::{self, StreamExt};
[INFO] [stdout]   |                       ^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `sleep`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_22.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 | use tokio::time::{sleep, Duration};
[INFO] [stdout]    |                   ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `sleep`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_24.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 | use tokio::time::{sleep, Duration};
[INFO] [stdout]    |                   ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::task::JoinSet`
[INFO] [stdout]  --> src/exercises/async_rust/exercise_25.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::task::JoinSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `sleep`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_25.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 | use tokio::time::{sleep, Duration};
[INFO] [stdout]    |                   ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `sleep`
[INFO] [stdout]  --> src/exercises/async_rust/exercise_26.rs:9:19
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::time::{sleep, Duration};
[INFO] [stdout]   |                   ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `sleep`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_28.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 | use tokio::time::{sleep, Duration};
[INFO] [stdout]    |                   ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sleep`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_29.rs:13:19
[INFO] [stdout]    |
[INFO] [stdout] 13 | use tokio::time::{sleep, Duration, Instant};
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `sleep`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_30.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 | use tokio::time::{sleep, Duration};
[INFO] [stdout]    |                   ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/exercises/threads/exercise_01.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/exercises/threads/exercise_02.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/exercises/threads/exercise_03.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]   --> src/exercises/threads/exercise_03.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::time::Duration;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::mpsc`
[INFO] [stdout]  --> src/exercises/threads/exercise_04.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::sync::mpsc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]   --> src/exercises/threads/exercise_04.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::mpsc`
[INFO] [stdout]  --> src/exercises/threads/exercise_05.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::sync::mpsc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]   --> src/exercises/threads/exercise_05.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/exercises/threads/exercise_06.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/exercises/threads/exercise_07.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::mpsc`
[INFO] [stdout]  --> src/exercises/threads/exercise_08.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::sync::mpsc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]   --> src/exercises/threads/exercise_08.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]   --> src/exercises/threads/exercise_08.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::time::Duration;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc` and `Mutex`
[INFO] [stdout]  --> src/exercises/threads/exercise_09.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                 ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]   --> src/exercises/threads/exercise_09.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc` and `Mutex`
[INFO] [stdout]  --> src/exercises/threads/exercise_10.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                 ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]   --> src/exercises/threads/exercise_10.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::mpsc`
[INFO] [stdout]  --> src/exercises/threads/exercise_11.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::sync::mpsc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc` and `Mutex`
[INFO] [stdout]   --> src/exercises/threads/exercise_11.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::sync::{Arc, Mutex};
[INFO] [stdout]    |                 ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]   --> src/exercises/threads/exercise_11.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc` and `RwLock`
[INFO] [stdout]  --> src/exercises/threads/exercise_12.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::sync::{Arc, RwLock};
[INFO] [stdout]   |                 ^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]   --> src/exercises/threads/exercise_12.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::mpsc`
[INFO] [stdout]  --> src/exercises/threads/exercise_13.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::sync::mpsc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]   --> src/exercises/threads/exercise_13.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/exercises/threads/exercise_14.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/exercises/threads/exercise_15.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/exercises/threads/exercise_16.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]   --> src/exercises/threads/exercise_17.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::mpsc`
[INFO] [stdout]  --> src/exercises/threads/exercise_18.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::sync::mpsc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]   --> src/exercises/threads/exercise_18.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc` and `RwLock`
[INFO] [stdout]  --> src/exercises/threads/exercise_19.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::sync::{Arc, RwLock};
[INFO] [stdout]   |                 ^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]   --> src/exercises/threads/exercise_19.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/exercises/threads/exercise_20.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]   --> src/exercises/threads/exercise_20.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::time::Duration;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc`, `Barrier`, and `Mutex`
[INFO] [stdout]  --> src/exercises/threads/exercise_21.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::sync::{Arc, Barrier, Mutex};
[INFO] [stdout]   |                 ^^^  ^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]   --> src/exercises/threads/exercise_21.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc`, `Condvar`, and `Mutex`
[INFO] [stdout]  --> src/exercises/threads/exercise_22.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::sync::{Arc, Condvar, Mutex};
[INFO] [stdout]   |                 ^^^  ^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]   --> src/exercises/threads/exercise_22.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicUsize` and `Ordering`
[INFO] [stdout]  --> src/exercises/threads/exercise_23.rs:9:25
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::sync::atomic::{AtomicUsize, Ordering};
[INFO] [stdout]   |                         ^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/exercises/threads/exercise_23.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]   --> src/exercises/threads/exercise_23.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicUsize` and `Ordering`
[INFO] [stdout]  --> src/exercises/threads/exercise_24.rs:9:25
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::sync::atomic::{AtomicUsize, Ordering};
[INFO] [stdout]   |                         ^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/exercises/threads/exercise_24.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]   --> src/exercises/threads/exercise_24.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::mpsc`
[INFO] [stdout]   --> src/exercises/threads/exercise_25.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::sync::mpsc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]   --> src/exercises/threads/exercise_25.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicUsize` and `Ordering`
[INFO] [stdout]  --> src/exercises/threads/exercise_26.rs:9:37
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering};
[INFO] [stdout]   |                                     ^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/exercises/threads/exercise_26.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]   --> src/exercises/threads/exercise_26.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicUsize` and `Ordering`
[INFO] [stdout]  --> src/exercises/threads/exercise_27.rs:9:25
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::sync::atomic::{AtomicUsize, Ordering};
[INFO] [stdout]   |                         ^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/exercises/threads/exercise_27.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]   --> src/exercises/threads/exercise_27.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicBool`, `AtomicUsize`, and `Ordering`
[INFO] [stdout]  --> src/exercises/threads/exercise_28.rs:9:25
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering};
[INFO] [stdout]   |                         ^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/exercises/threads/exercise_28.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]   --> src/exercises/threads/exercise_28.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr`
[INFO] [stdout]   --> src/exercises/threads/exercise_29.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::ptr;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ordering`
[INFO] [stdout]   --> src/exercises/threads/exercise_29.rs:11:36
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::sync::atomic::{AtomicPtr, Ordering};
[INFO] [stdout]    |                                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ordering`
[INFO] [stdout]   --> src/exercises/threads/exercise_30.rs:10:38
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::sync::atomic::{AtomicUsize, Ordering};
[INFO] [stdout]    |                                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/exercises/threads/exercise_30.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]   --> src/exercises/threads/exercise_30.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ordering`
[INFO] [stdout]  --> src/exercises/smart_pointers/exercise_07.rs:9:38
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::sync::atomic::{AtomicUsize, Ordering};
[INFO] [stdout]   |                                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ordering`
[INFO] [stdout]  --> src/exercises/smart_pointers/exercise_23.rs:9:38
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::sync::atomic::{AtomicUsize, Ordering};
[INFO] [stdout]   |                                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `alloc` and `dealloc`
[INFO] [stdout]  --> src/exercises/smart_pointers/exercise_26.rs:9:18
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::alloc::{alloc, dealloc, Layout};
[INFO] [stdout]   |                  ^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ordering`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_26.rs:11:38
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::sync::atomic::{AtomicUsize, Ordering};
[INFO] [stdout]    |                                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::mem`
[INFO] [stdout]   --> src/exercises/enums/exercise_29.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::mem;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/exercises/async_rust/exercise_14.rs:12:53
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn retry<F, Fut, T, E>(max_attempts: u32, mut operation: F) -> Result<T, E>
[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/exercises/async_rust/exercise_14.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     mut operation: F,
[INFO] [stdout]    |     ----^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/exercises/async_rust/exercise_28.rs:34:35
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub async fn process_with_context(mut ctx: RequestContext, value: i32) -> (RequestContext, i32) {
[INFO] [stdout]    |                                   ----^^^
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_01.rs:11:21
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn parse_number(s: &str) -> Result<i32, String> {
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `age`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_02.rs:11:21
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn validate_age(age: i32) -> Result<i32, String> {
[INFO] [stdout]    |                     ^^^ help: if this is intentional, prefix it with an underscore: `_age`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opt`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_03.rs:10:28
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn option_to_result<T>(opt: Option<T>, error_msg: &str) -> Result<T, String> {
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_opt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error_msg`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_03.rs:10:44
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn option_to_result<T>(opt: Option<T>, error_msg: &str) -> Result<T, String> {
[INFO] [stdout]    |                                            ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_error_msg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_04.rs:11:20
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn safe_divide(a: f64, b: f64) -> Result<f64, String> {
[INFO] [stdout]    |                    ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_04.rs:11:28
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn safe_divide(a: f64, b: f64) -> Result<f64, String> {
[INFO] [stdout]    |                            ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slice`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_05.rs:11:27
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn safe_get<T: Clone>(slice: &[T], index: usize) -> Result<T, String> {
[INFO] [stdout]    |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_slice`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_05.rs:11:40
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn safe_get<T: Clone>(slice: &[T], index: usize) -> Result<T, String> {
[INFO] [stdout]    |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_06.rs:11:22
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn parse_and_add(a: &str, b: &str) -> Result<i32, String> {
[INFO] [stdout]    |                      ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_06.rs:11:31
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn parse_and_add(a: &str, b: &str) -> Result<i32, String> {
[INFO] [stdout]    |                               ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `username`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_07.rs:11:26
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn validate_username(username: &str) -> Result<String, String> {
[INFO] [stdout]    |                          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_username`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filename`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_08.rs:11:32
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn validate_file_extension(filename: &str, allowed: &[&str]) -> Result<String, String> {
[INFO] [stdout]    |                                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filename`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `allowed`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_08.rs:11:48
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn validate_file_extension(filename: &str, allowed: &[&str]) -> Result<String, String> {
[INFO] [stdout]    |                                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_allowed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_09.rs:19:19
[INFO] [stdout]    |
[INFO] [stdout] 19 |     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_09.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn sqrt(x: f64) -> Result<f64, MathError> {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_09.rs:34:23
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn checked_divide(a: i32, b: i32) -> Result<i32, MathError> {
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_09.rs:34:31
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn checked_divide(a: i32, b: i32) -> Result<i32, MathError> {
[INFO] [stdout]    |                               ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_10.rs:18:16
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn new(input: impl Into<String>, reason: impl Into<String>) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reason`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_10.rs:18:42
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn new(input: impl Into<String>, reason: impl Into<String>) -> Self {
[INFO] [stdout]    |                                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_reason`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_10.rs:24:19
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_10.rs:32:27
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn parse_with_context(s: &str) -> Result<i32, ParseError> {
[INFO] [stdout]    |                           ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_10.rs:37:23
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn parse_multiple(strings: &[&str]) -> Result<Vec<i32>, Vec<ParseError>> {
[INFO] [stdout]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_11.rs:10:27
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn parse_and_multiply(a: &str, b: &str, c: &str) -> Result<i32, String> {
[INFO] [stdout]    |                           ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_11.rs:10:36
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn parse_and_multiply(a: &str, b: &str, c: &str) -> Result<i32, String> {
[INFO] [stdout]    |                                    ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_11.rs:10:45
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn parse_and_multiply(a: &str, b: &str, c: &str) -> Result<i32, String> {
[INFO] [stdout]    |                                             ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r1`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_11.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     r1: Result<T, E>,
[INFO] [stdout]    |     ^^ help: if this is intentional, prefix it with an underscore: `_r1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r2`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_11.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     r2: Result<T, E>,
[INFO] [stdout]    |     ^^ help: if this is intentional, prefix it with an underscore: `_r2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_11.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     f: F,
[INFO] [stdout]    |     ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_12.rs:20:19
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `email`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_12.rs:27:23
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn validate_email(email: &str) -> Result<String, EmailError> {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_email`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_13.rs:10:25
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn parse_and_double(s: &str) -> Result<i32, String> {
[INFO] [stdout]    |                         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_13.rs:15:31
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn parse_double_stringify(s: &str) -> Result<String, String> {
[INFO] [stdout]    |                               ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_13.rs:20:31
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn parse_and_transform<F>(s: &str, f: F) -> Result<i32, String>
[INFO] [stdout]    |                               ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_13.rs:20:40
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn parse_and_transform<F>(s: &str, f: F) -> Result<i32, String>
[INFO] [stdout]    |                                        ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_14.rs:20:19
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `password`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_14.rs:27:26
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn validate_password(password: &str) -> Result<(), Vec<PasswordError>> {
[INFO] [stdout]    |                          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_password`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_15.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn from(err: ParseIntError) -> Self {
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_15.rs:24:19
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_15.rs:32:20
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn parse_to_u8(s: &str) -> Result<u8, ConversionError> {
[INFO] [stdout]    |                    ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_15.rs:37:22
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn parse_many_u8(strings: &[&str]) -> Result<Vec<u8>, ConversionError> {
[INFO] [stdout]    |                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_16.rs:19:19
[INFO] [stdout]    |
[INFO] [stdout] 19 |     fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_16.rs:34:19
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn parse_user(data: &HashMap<String, String>) -> Result<User, JsonError> {
[INFO] [stdout]    |                   ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_17.rs:16:16
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn new(id: u32, balance: i64) -> Self {
[INFO] [stdout]    |                ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `balance`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_17.rs:16:25
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn new(id: u32, balance: i64) -> Self {
[INFO] [stdout]    |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_balance`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_17.rs:30:19
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_17.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     from: &mut Account,
[INFO] [stdout]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_17.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 |     to: &mut Account,
[INFO] [stdout]    |     ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `amount`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_17.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     amount: i64,
[INFO] [stdout]    |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_amount`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `account`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_17.rs:48:17
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn withdraw(account: &mut Account, amount: i64) -> Result<(), TransactionError> {
[INFO] [stdout]    |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `amount`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_17.rs:48:40
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn withdraw(account: &mut Account, amount: i64) -> Result<(), TransactionError> {
[INFO] [stdout]    |                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_amount`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `account`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_17.rs:53:16
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn deposit(account: &mut Account, amount: i64) -> Result<(), TransactionError> {
[INFO] [stdout]    |                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `amount`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_17.rs:53:39
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn deposit(account: &mut Account, amount: i64) -> Result<(), TransactionError> {
[INFO] [stdout]    |                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_amount`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_18.rs:34:19
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_18.rs:42:21
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn parse_config(data: &HashMap<String, String>) -> Result<Config, ConfigError> {
[INFO] [stdout]    |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_19.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/exercises/error_handling/exercise_19.rs:25:23
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn retry<T, E, F>(mut f: F, max_attempts: usize) -> Result<T, RetryError<E>>
[INFO] [stdout]    |                       ----^
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_19.rs:25:23
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn retry<T, E, F>(mut f: F, max_attempts: usize) -> Result<T, RetryError<E>>
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_attempts`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_19.rs:25:33
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn retry<T, E, F>(mut f: F, max_attempts: usize) -> Result<T, RetryError<E>>
[INFO] [stdout]    |                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_attempts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/exercises/error_handling/exercise_19.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     mut f: F,
[INFO] [stdout]    |     ----^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_19.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     mut f: F,
[INFO] [stdout]    |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_attempts`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_19.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     max_attempts: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_attempts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_retryable`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_19.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     is_retryable: P,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_retryable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `field`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_20.rs:16:16
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn new(field: impl Into<String>, message: impl Into<String>) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_field`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `message`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_20.rs:16:42
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn new(field: impl Into<String>, message: impl Into<String>) -> Self {
[INFO] [stdout]    |                                          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_20.rs:22:19
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_20.rs:35:16
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn new(value: T) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/exercises/error_handling/exercise_20.rs:40:24
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn validate<F>(mut self, field: &str, predicate: F, message: &str) -> Self
[INFO] [stdout]    |                        ----^^^^
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `field`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_20.rs:40:34
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn validate<F>(mut self, field: &str, predicate: F, message: &str) -> Self
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_field`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `predicate`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_20.rs:40:47
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn validate<F>(mut self, field: &str, predicate: F, message: &str) -> Self
[INFO] [stdout]    |                                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_predicate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `message`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_20.rs:40:61
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn validate<F>(mut self, field: &str, predicate: F, message: &str) -> Self
[INFO] [stdout]    |                                                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_20.rs:54:25
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub fn validate_product(name: &str, price: f64) -> Result<(String, f64), Vec<ValidationError>> {
[INFO] [stdout]    |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `price`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_20.rs:54:37
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub fn validate_product(name: &str, price: f64) -> Result<(String, f64), Vec<ValidationError>> {
[INFO] [stdout]    |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_price`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_21.rs:19:19
[INFO] [stdout]    |
[INFO] [stdout] 19 |     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_21.rs:34:19
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_21.rs:46:13
[INFO] [stdout]    |
[INFO] [stdout] 46 |     fn from(err: DatabaseError) -> Self {
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `success`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_21.rs:52:23
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn database_query(success: bool) -> Result<String, DatabaseError> {
[INFO] [stdout]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_success`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_21.rs:57:19
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub fn fetch_user(id: u32, db_success: bool) -> Result<String, ServiceError> {
[INFO] [stdout]    |                   ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `db_success`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_21.rs:57:28
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub fn fetch_user(id: u32, db_success: bool) -> Result<String, ServiceError> {
[INFO] [stdout]    |                            ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_db_success`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_21.rs:62:26
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn error_chain_depth(err: &dyn Error) -> usize {
[INFO] [stdout]    |                          ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_22.rs:23:19
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `primary`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_22.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     primary: F1,
[INFO] [stdout]    |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_primary`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fallback`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_22.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fallback: F2,
[INFO] [stdout]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fallback`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sources`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_22.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 44 |     sources: Vec<fn() -> Result<Data, FetchError>>,
[INFO] [stdout]    |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sources`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fetcher`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_22.rs:50:28
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn fetch_or_default<F>(fetcher: F, default: Data) -> Data
[INFO] [stdout]    |                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fetcher`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `default`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_22.rs:50:40
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn fetch_or_default<F>(fetcher: F, default: Data) -> Data
[INFO] [stdout]    |                                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fetchers`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_22.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fetchers: Vec<F>,
[INFO] [stdout]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fetchers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `message`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_23.rs:18:16
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn new(message: impl Into<String>) -> Self {
[INFO] [stdout]    |                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/exercises/error_handling/exercise_23.rs:22:20
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn context(mut self, ctx: impl Into<String>) -> Self {
[INFO] [stdout]    |                    ----^^^^
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_23.rs:22:30
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn context(mut self, ctx: impl Into<String>) -> Self {
[INFO] [stdout]    |                              ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_23.rs:26:28
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub fn with_context<F>(result: Result<(), String>, ctx: F) -> Result<(), Self>
[INFO] [stdout]    |                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_23.rs:26:56
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub fn with_context<F>(result: Result<(), String>, ctx: F) -> Result<(), Self>
[INFO] [stdout]    |                                                        ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_23.rs:35:19
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_23.rs:43:14
[INFO] [stdout]    |
[INFO] [stdout] 43 | fn read_file(path: &str) -> Result<String, ContextError> {
[INFO] [stdout]    |              ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_23.rs:48:21
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn parse_config(path: &str) -> Result<String, ContextError> {
[INFO] [stdout]    |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config_path`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_23.rs:53:23
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn initialize_app(config_path: &str) -> Result<String, ContextError> {
[INFO] [stdout]    |                       ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_config_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `paths`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_23.rs:58:22
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn process_batch(paths: &[&str]) -> Result<Vec<String>, Vec<ContextError>> {
[INFO] [stdout]    |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_paths`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_24.rs:26:19
[INFO] [stdout]    |
[INFO] [stdout] 26 |     fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_24.rs:40:16
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn new(id: u32) -> Self {
[INFO] [stdout]    |                ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_state`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_24.rs:45:34
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub fn transition(&mut self, new_state: OrderState) -> Result<(), StateError> {
[INFO] [stdout]    |                                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_25.rs:18:19
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_25.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     data: &HashMap<String, HashMap<String, String>>,
[INFO] [stdout]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `outer_key`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_25.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     outer_key: &str,
[INFO] [stdout]    |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_outer_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inner_key`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_25.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     inner_key: &str,
[INFO] [stdout]    |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_inner_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_25.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     data: &HashMap<String, HashMap<String, String>>,
[INFO] [stdout]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `outer_key`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_25.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     outer_key: &str,
[INFO] [stdout]    |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_outer_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inner_key`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_25.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     inner_key: &str,
[INFO] [stdout]    |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_inner_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_25.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 45 |     data: &HashMap<String, HashMap<String, String>>,
[INFO] [stdout]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `queries`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_25.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 |     queries: &[(&str, &str)],
[INFO] [stdout]    |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_queries`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_25.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 53 |     data: &HashMap<String, HashMap<String, String>>,
[INFO] [stdout]    |     ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `outer1`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_25.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 54 |     outer1: &str,
[INFO] [stdout]    |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_outer1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inner1`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_25.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 55 |     inner1: &str,
[INFO] [stdout]    |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_inner1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `outer2`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_25.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 56 |     outer2: &str,
[INFO] [stdout]    |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_outer2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inner2`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_25.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 57 |     inner2: &str,
[INFO] [stdout]    |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_inner2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_26.rs:19:19
[INFO] [stdout]    |
[INFO] [stdout] 19 |     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_26.rs:34:16
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub fn new(name: impl Into<String>) -> Self {
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `resource`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_26.rs:57:20
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn acquire(resource: &'a mut TrackedResource) -> Result<Self, ResourceError> {
[INFO] [stdout]    |                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_resource`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `should_fail`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_26.rs:61:41
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub fn perform_operation(&mut self, should_fail: bool) -> Result<(), ResourceError> {
[INFO] [stdout]    |                                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_should_fail`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `resource`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_26.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 74 |     resource: &mut TrackedResource,
[INFO] [stdout]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_resource`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `operation`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_26.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 |     operation: F,
[INFO] [stdout]    |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `message`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_27.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         message: impl Into<String>,
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `severity`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_27.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |         severity: ErrorSeverity,
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_severity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `location`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_27.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 31 |         location: impl Into<String>,
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_location`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_27.rs:38:19
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `log`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_27.rs:57:27
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn log(&mut self, log: ErrorLog) {
[INFO] [stdout]    |                           ^^^ help: if this is intentional, prefix it with an underscore: `_log`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `severity`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_27.rs:65:37
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub fn count_by_severity(&self, severity: ErrorSeverity) -> usize {
[INFO] [stdout]    |                                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_severity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `logger`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_27.rs:80:5
[INFO] [stdout]    |
[INFO] [stdout] 80 |     logger: &mut ErrorLogger,
[INFO] [stdout]    |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_logger`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `location`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_27.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 81 |     location: &str,
[INFO] [stdout]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_location`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `operation`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_27.rs:82:5
[INFO] [stdout]    |
[INFO] [stdout] 82 |     operation: F,
[INFO] [stdout]    |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_27.rs:91:21
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub fn parse_logged(s: &str, logger: &mut ErrorLogger) -> LoggedResult<i32> {
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `logger`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_27.rs:91:30
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub fn parse_logged(s: &str, logger: &mut ErrorLogger) -> LoggedResult<i32> {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_logger`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_27.rs:96:22
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub fn divide_logged(a: i32, b: i32, logger: &mut ErrorLogger) -> LoggedResult<i32> {
[INFO] [stdout]    |                      ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_27.rs:96:30
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub fn divide_logged(a: i32, b: i32, logger: &mut ErrorLogger) -> LoggedResult<i32> {
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `logger`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_27.rs:96:38
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub fn divide_logged(a: i32, b: i32, logger: &mut ErrorLogger) -> LoggedResult<i32> {
[INFO] [stdout]    |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_logger`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_28.rs:20:19
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_28.rs:35:19
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_28.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 |     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_28.rs:63:13
[INFO] [stdout]    |
[INFO] [stdout] 63 |     fn from(err: IoError) -> Self {
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_28.rs:69:13
[INFO] [stdout]    |
[INFO] [stdout] 69 |     fn from(err: ValidationError) -> Self {
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_28.rs:75:13
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn from(err: ParseIntError) -> Self {
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_28.rs:81:22
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub fn process_input(input: &str) -> Result<i32, ApplicationError> {
[INFO] [stdout]    |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_28.rs:86:25
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub fn load_and_process(path: &str, content: Option<&str>) -> Result<i32, ApplicationError> {
[INFO] [stdout]    |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `content`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_28.rs:86:37
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub fn load_and_process(path: &str, content: Option<&str>) -> Result<i32, ApplicationError> {
[INFO] [stdout]    |                                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inputs`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_28.rs:91:22
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub fn batch_process(inputs: &[&str]) -> Result<Vec<i32>, Vec<ApplicationError>> {
[INFO] [stdout]    |                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_inputs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_29.rs:20:16
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn new(result: Result<T, E>) -> Self {
[INFO] [stdout]    |                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/exercises/error_handling/exercise_29.rs:24:25
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn with_context(mut self, context: impl Into<String>) -> Self {
[INFO] [stdout]    |                         ----^^^^
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_29.rs:24:35
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn with_context(mut self, context: impl Into<String>) -> Self {
[INFO] [stdout]    |                                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_29.rs:38:19
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_29.rs:51:22
[INFO] [stdout]    |
[INFO] [stdout] 51 |     fn handle(&self, error: E) -> String {
[INFO] [stdout]    |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_29.rs:59:22
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn handle(&self, error: E) -> String {
[INFO] [stdout]    |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `operation`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_29.rs:65:33
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn with_handler<T, E, F, H>(operation: F, handler: &H) -> Result<T, String>
[INFO] [stdout]    |                                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handler`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_29.rs:65:47
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn with_handler<T, E, F, H>(operation: F, handler: &H) -> Result<T, String>
[INFO] [stdout]    |                                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_handler`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_29.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 |     result: Result<T, E1>,
[INFO] [stdout]    |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mapper`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_29.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 76 |     mapper: F,
[INFO] [stdout]    |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_mapper`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `results`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_29.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 86 |     results: Vec<Result<T, E1>>,
[INFO] [stdout]    |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_results`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transformer`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_29.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 87 |     transformer: F,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transformer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/exercises/error_handling/exercise_29.rs:97:5
[INFO] [stdout]    |
[INFO] [stdout] 97 |     mut operation: F,
[INFO] [stdout]    |     ----^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `operation`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_29.rs:97:5
[INFO] [stdout]    |
[INFO] [stdout] 97 |     mut operation: F,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_attempts`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_29.rs:98:5
[INFO] [stdout]    |
[INFO] [stdout] 98 |     max_attempts: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_attempts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error_mapper`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_29.rs:99:5
[INFO] [stdout]    |
[INFO] [stdout] 99 |     error_mapper: M,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_error_mapper`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_30.rs:22:27
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn add(&mut self, error: E) {
[INFO] [stdout]    |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `errors`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_30.rs:26:30
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub fn extend(&mut self, errors: Vec<E>) {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_errors`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_30.rs:38:33
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn into_result<T>(self, value: T) -> Result<T, Vec<E>> {
[INFO] [stdout]    |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `category`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_30.rs:58:27
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn add(&mut self, category: K, error: E) {
[INFO] [stdout]    |                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_category`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_30.rs:58:40
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn add(&mut self, category: K, error: E) {
[INFO] [stdout]    |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `category`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_30.rs:62:32
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn get_category(&self, category: &K) -> Option<&Vec<E>> {
[INFO] [stdout]    |                                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_category`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_30.rs:78:33
[INFO] [stdout]    |
[INFO] [stdout] 78 |     pub fn into_result<T>(self, value: T) -> Result<T, HashMap<K, Vec<E>>> {
[INFO] [stdout]    |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/error_handling/exercise_30.rs:97:18
[INFO] [stdout]    |
[INFO] [stdout] 97 |     pub fn valid(value: T) -> Self {
[INFO] [stdout]    |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `errors`
[INFO] [stdout]    --> src/exercises/error_handling/exercise_30.rs:101:20
[INFO] [stdout]     |
[INFO] [stdout] 101 |     pub fn invalid(errors: Vec<String>) -> Self {
[INFO] [stdout]     |                    ^^^^^^ help: if this is intentional, prefix it with an underscore: `_errors`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> src/exercises/error_handling/exercise_30.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout] 120 |     value: T,
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `validators`
[INFO] [stdout]    --> src/exercises/error_handling/exercise_30.rs:121:5
[INFO] [stdout]     |
[INFO] [stdout] 121 |     validators: Vec<(String, F)>,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_validators`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `operations`
[INFO] [stdout]    --> src/exercises/error_handling/exercise_30.rs:132:5
[INFO] [stdout]     |
[INFO] [stdout] 132 |     operations: Vec<F>,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operations`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]    --> src/exercises/error_handling/exercise_30.rs:142:5
[INFO] [stdout]     |
[INFO] [stdout] 142 |     items: Vec<T>,
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `processor`
[INFO] [stdout]    --> src/exercises/error_handling/exercise_30.rs:143:5
[INFO] [stdout]     |
[INFO] [stdout] 143 |     processor: F,
[INFO] [stdout]     |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_processor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_01.rs:10:23
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn take_ownership(s: String) -> usize {
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_01.rs:20:27
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn take_and_give_back(s: String) -> String {
[INFO] [stdout]    |                           ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_02.rs:10:25
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn calculate_length(s: &String) -> usize {
[INFO] [stdout]    |                         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_02.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn starts_with(s: &String, prefix: &str) -> bool {
[INFO] [stdout]    |                    ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prefix`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_02.rs:15:32
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn starts_with(s: &String, prefix: &str) -> bool {
[INFO] [stdout]    |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_prefix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_02.rs:20:19
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn first_char(s: &String) -> Option<char> {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_03.rs:10:22
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn append_string(s: &mut String, suffix: &str) {
[INFO] [stdout]    |                      ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suffix`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_03.rs:10:38
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn append_string(s: &mut String, suffix: &str) {
[INFO] [stdout]    |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_suffix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_03.rs:15:21
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn clear_string(s: &mut String) {
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_03.rs:20:27
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn uppercase_in_place(s: &mut String) {
[INFO] [stdout]    |                           ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_04.rs:10:25
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn clone_and_modify(s: &String, suffix: &str) -> String {
[INFO] [stdout]    |                         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suffix`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_04.rs:10:37
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn clone_and_modify(s: &String, suffix: &str) -> String {
[INFO] [stdout]    |                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_suffix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_04.rs:15:18
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn clone_all(strings: &[String]) -> Vec<String> {
[INFO] [stdout]    |                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_04.rs:20:28
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn count_char_in_clone(s: &String, ch: char) -> usize {
[INFO] [stdout]    |                            ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ch`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_04.rs:20:40
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn count_char_in_clone(s: &String, ch: char) -> usize {
[INFO] [stdout]    |                                        ^^ help: if this is intentional, prefix it with an underscore: `_ch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_05.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn first_word(s: &str) -> &str {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_05.rs:15:18
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn get_slice(v: &[i32], start: usize, end: usize) -> &[i32] {
[INFO] [stdout]    |                  ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_05.rs:15:29
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn get_slice(v: &[i32], start: usize, end: usize) -> &[i32] {
[INFO] [stdout]    |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_05.rs:15:43
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn get_slice(v: &[i32], start: usize, end: usize) -> &[i32] {
[INFO] [stdout]    |                                           ^^^ help: if this is intentional, prefix it with an underscore: `_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_05.rs:20:20
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn count_words(s: &str) -> usize {
[INFO] [stdout]    |                    ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_06.rs:10:24
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn describe_number(n: &i32) -> String {
[INFO] [stdout]    |                        ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_06.rs:15:19
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn first_even(numbers: &[i32]) -> Option<i32> {
[INFO] [stdout]    |                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_06.rs:20:27
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn classify_by_length(s: &str) -> &'static str {
[INFO] [stdout]    |                           ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_07.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn add_element(v: &mut Vec<i32>, element: i32) {
[INFO] [stdout]    |                    ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `element`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_07.rs:10:38
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn add_element(v: &mut Vec<i32>, element: i32) {
[INFO] [stdout]    |                                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_element`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_07.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn remove_last(v: &mut Vec<i32>) -> Option<i32> {
[INFO] [stdout]    |                    ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_07.rs:20:22
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn double_values(v: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |                      ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_07.rs:25:19
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn sum_vector(v: &[i32]) -> i32 {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_08.rs:16:16
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn new(name: String, age: u32) -> Self {
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `age`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_08.rs:16:30
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn new(name: String, age: u32) -> Self {
[INFO] [stdout]    |                              ^^^ help: if this is intentional, prefix it with an underscore: `_age`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_08.rs:34:22
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn create_person(name: &str, age: u32) -> Person {
[INFO] [stdout]    |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `age`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_08.rs:34:34
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn create_person(name: &str, age: u32) -> Person {
[INFO] [stdout]    |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_age`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `person`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_08.rs:39:24
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn describe_person(person: &Person) -> String {
[INFO] [stdout]    |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_person`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_09.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
[INFO] [stdout]    |                    ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_09.rs:10:32
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
[INFO] [stdout]    |                                ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slice`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_09.rs:15:29
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn first_element<'a, T>(slice: &'a [T]) -> Option<&'a T> {
[INFO] [stdout]    |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_slice`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_09.rs:20:28
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn concat_with_sep<'a>(a: &'a str, b: &'a str, sep: &str) -> String {
[INFO] [stdout]    |                            ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_09.rs:20:40
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn concat_with_sep<'a>(a: &'a str, b: &'a str, sep: &str) -> String {
[INFO] [stdout]    |                                        ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sep`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_09.rs:20:52
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn concat_with_sep<'a>(a: &'a str, b: &'a str, sep: &str) -> String {
[INFO] [stdout]    |                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_sep`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `text`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_10.rs:15:16
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn new(text: &'a str) -> Self {
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_text`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `text`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_10.rs:29:27
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn create_excerpt<'a>(text: &'a str, start: usize, end: usize) -> Excerpt<'a> {
[INFO] [stdout]    |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_text`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_10.rs:29:42
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn create_excerpt<'a>(text: &'a str, start: usize, end: usize) -> Excerpt<'a> {
[INFO] [stdout]    |                                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_10.rs:29:56
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn create_excerpt<'a>(text: &'a str, start: usize, end: usize) -> Excerpt<'a> {
[INFO] [stdout]    |                                                        ^^^ help: if this is intentional, prefix it with an underscore: `_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `excerpts`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_10.rs:34:28
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn longest_excerpt<'a>(excerpts: &'a [Excerpt<'a>]) -> Option<&'a Excerpt<'a>> {
[INFO] [stdout]    |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_excerpts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slice`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_11.rs:10:21
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn find_max<'a>(slice: &'a [i32]) -> Option<&'a i32> {
[INFO] [stdout]    |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_slice`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slice`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_11.rs:15:25
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn find_min_max<'a>(slice: &'a [i32]) -> Option<(&'a i32, &'a i32)> {
[INFO] [stdout]    |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_slice`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_11.rs:20:24
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn filter_even<'a>(numbers: &'a [i32]) -> Vec<&'a i32> {
[INFO] [stdout]    |                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slice`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_11.rs:25:30
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn first_and_last<'a, T>(slice: &'a [T]) -> Option<(&'a T, &'a T)> {
[INFO] [stdout]    |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_slice`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `use_static`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_12.rs:15:26
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn choose_string<'a>(use_static: bool, dynamic: &'a str) -> &'a str {
[INFO] [stdout]    |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_use_static`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dynamic`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_12.rs:15:44
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn choose_string<'a>(use_static: bool, dynamic: &'a str) -> &'a str {
[INFO] [stdout]    |                                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dynamic`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_12.rs:20:20
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn format_name(first: &str, last: &str) -> String {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_first`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `last`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_12.rs:20:33
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn format_name(first: &str, last: &str) -> String {
[INFO] [stdout]    |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_last`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `code`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_12.rs:25:26
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn get_error_message(code: i32) -> &'static str {
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_13.rs:10:29
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn find_with_prefix<'a>(strings: &'a [String], prefix: &str) -> Vec<&'a String> {
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prefix`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_13.rs:10:52
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn find_with_prefix<'a>(strings: &'a [String], prefix: &str) -> Vec<&'a String> {
[INFO] [stdout]    |                                                    ^^^^^^ help: if this is intentional, prefix it with an underscore: `_prefix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_13.rs:15:24
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn longer_than<'a>(strings: &'a [String], min_len: usize) -> Vec<&'a String> {
[INFO] [stdout]    |                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min_len`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_13.rs:15:47
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn longer_than<'a>(strings: &'a [String], min_len: usize) -> Vec<&'a String> {
[INFO] [stdout]    |                                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_min_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_13.rs:20:20
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn first_chars(strings: &[String]) -> Vec<Option<char>> {
[INFO] [stdout]    |                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_13.rs:25:26
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn count_matching<F>(strings: &[String], predicate: F) -> usize
[INFO] [stdout]    |                          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `predicate`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_13.rs:25:46
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn count_matching<F>(strings: &[String], predicate: F) -> usize
[INFO] [stdout]    |                                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_predicate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `amount`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_14.rs:26:27
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub fn add(&mut self, amount: i32) {
[INFO] [stdout]    |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_amount`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `counter`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_14.rs:32:26
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn increment_and_get(counter: &mut Counter) -> i32 {
[INFO] [stdout]    |                          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_counter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `counter`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_14.rs:37:16
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn add_all(counter: &mut Counter, values: &[i32]) {
[INFO] [stdout]    |                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_counter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `values`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_14.rs:37:39
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn add_all(counter: &mut Counter, values: &[i32]) {
[INFO] [stdout]    |                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_14.rs:42:21
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn double_evens(numbers: &mut Vec<i32>) {
[INFO] [stdout]    |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_15.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn trim_spaces(s: &str) -> &str {
[INFO] [stdout]    |                    ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_15.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn take_prefix(s: &str, n: usize) -> &str {
[INFO] [stdout]    |                    ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_15.rs:15:29
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn take_prefix(s: &str, n: usize) -> &str {
[INFO] [stdout]    |                             ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_15.rs:20:28
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn extract_between<'a>(s: &'a str, start: &str, end: &str) -> Option<&'a str> {
[INFO] [stdout]    |                            ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_15.rs:20:40
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn extract_between<'a>(s: &'a str, start: &str, end: &str) -> Option<&'a str> {
[INFO] [stdout]    |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_15.rs:20:53
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn extract_between<'a>(s: &'a str, start: &str, end: &str) -> Option<&'a str> {
[INFO] [stdout]    |                                                     ^^^ help: if this is intentional, prefix it with an underscore: `_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_15.rs:30:16
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub fn new(input: &'a str) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `map`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_16.rs:12:24
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn find_in_map<'a>(map: &'a HashMap<String, i32>, key: &str) -> Option<&'a i32> {
[INFO] [stdout]    |                        ^^^ help: if this is intentional, prefix it with an underscore: `_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_16.rs:12:55
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn find_in_map<'a>(map: &'a HashMap<String, i32>, key: &str) -> Option<&'a i32> {
[INFO] [stdout]    |                                                       ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `map`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_16.rs:17:32
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn values_greater_than<'a>(map: &'a HashMap<String, i32>, threshold: i32) -> Vec<&'a i32> {
[INFO] [stdout]    |                                ^^^ help: if this is intentional, prefix it with an underscore: `_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `threshold`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_16.rs:17:63
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn values_greater_than<'a>(map: &'a HashMap<String, i32>, threshold: i32) -> Vec<&'a i32> {
[INFO] [stdout]    |                                                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_threshold`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `map`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_16.rs:22:31
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn key_with_max_value<'a>(map: &'a HashMap<String, i32>) -> Option<&'a String> {
[INFO] [stdout]    |                               ^^^ help: if this is intentional, prefix it with an underscore: `_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `map`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_16.rs:27:27
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn filter_keys<'a, F>(map: &'a HashMap<String, i32>, predicate: F) -> Vec<&'a String>
[INFO] [stdout]    |                           ^^^ help: if this is intentional, prefix it with an underscore: `_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `predicate`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_16.rs:27:58
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn filter_keys<'a, F>(map: &'a HashMap<String, i32>, predicate: F) -> Vec<&'a String>
[INFO] [stdout]    |                                                          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_predicate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_17.rs:15:16
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn new(value: i32) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `child`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_17.rs:19:33
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn add_child(&mut self, child: Node) {
[INFO] [stdout]    |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_child`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_17.rs:33:17
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn sum_tree(node: &Node) -> i32 {
[INFO] [stdout]    |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_17.rs:38:20
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn count_nodes(node: &Node) -> usize {
[INFO] [stdout]    |                    ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_17.rs:43:18
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn max_value(node: &Node) -> i32 {
[INFO] [stdout]    |                  ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_18.rs:14:16
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub fn new(data: &'a T) -> Self {
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_18.rs:24:30
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn make_container<'a, T>(data: &'a T) -> Container<'a, T> {
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c1`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_18.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     c1: &Container<'a, T>,
[INFO] [stdout]    |     ^^ help: if this is intentional, prefix it with an underscore: `_c1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c2`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_18.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     c2: &Container<'a, T>,
[INFO] [stdout]    |     ^^ help: if this is intentional, prefix it with an underscore: `_c2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_18.rs:42:16
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn new(first: &'a T, second: &'a U) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_first`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `second`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_18.rs:42:30
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn new(first: &'a T, second: &'a U) -> Self {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_second`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `text`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_19.rs:14:16
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub fn new(text: &'a str) -> Self {
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_text`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `word`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_19.rs:22:29
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn find_word(&self, word: &str) -> Option<usize> {
[INFO] [stdout]    |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_word`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_19.rs:26:28
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub fn get_line(&self, n: usize) -> Option<&str> {
[INFO] [stdout]    |                            ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `analyzer`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_19.rs:36:20
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn count_lines(analyzer: &TextAnalyzer) -> usize {
[INFO] [stdout]    |                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_analyzer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `text`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_19.rs:41:22
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn extract_words(text: &str) -> Vec<&str> {
[INFO] [stdout]    |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_text`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_20.rs:18:27
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn add(&mut self, item: String) {
[INFO] [stdout]    |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_20.rs:22:23
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn get(&self, index: usize) -> Option<&String> {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `query`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_20.rs:26:24
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub fn find(&self, query: &str) -> Option<&String> {
[INFO] [stdout]    |                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_query`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `store`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_20.rs:42:28
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn filter_store<'a, F>(store: &'a DataStore, predicate: F) -> Vec<&'a String>
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_store`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `predicate`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_20.rs:42:50
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn filter_store<'a, F>(store: &'a DataStore, predicate: F) -> Vec<&'a String>
[INFO] [stdout]    |                                                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_predicate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `store`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_20.rs:50:25
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn longest_in_store(store: &DataStore) -> Option<&String> {
[INFO] [stdout]    |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_store`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_21.rs:10:27
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn choose_str<'a, 'b>(x: &'a str, y: &'b str, use_first: bool) -> &'a str
[INFO] [stdout]    |                           ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_21.rs:10:39
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn choose_str<'a, 'b>(x: &'a str, y: &'b str, use_first: bool) -> &'a str
[INFO] [stdout]    |                                       ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `use_first`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_21.rs:10:51
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn choose_str<'a, 'b>(x: &'a str, y: &'b str, use_first: bool) -> &'a str
[INFO] [stdout]    |                                                   ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_use_first`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `source`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_21.rs:23:16
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn new(source: &'s str, target: &'t str) -> Self {
[INFO] [stdout]    |                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_source`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_21.rs:23:33
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn new(source: &'s str, target: &'t str) -> Self {
[INFO] [stdout]    |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `source`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_21.rs:41:32
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn process_context<'a, 'b>(source: &'a str, target: &'b str) -> String {
[INFO] [stdout]    |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_source`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_21.rs:41:49
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn process_context<'a, 'b>(source: &'a str, target: &'b str) -> String {
[INFO] [stdout]    |                                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_21.rs:51:16
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub fn new(first: &'a T, second: &'b T) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_first`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `second`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_21.rs:51:30
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub fn new(first: &'a T, second: &'b T) -> Self {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_second`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_22.rs:18:16
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn new(name: String, counter: Arc<AtomicUsize>) -> Self {
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `counter`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_22.rs:18:30
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn new(name: String, counter: Arc<AtomicUsize>) -> Self {
[INFO] [stdout]    |                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_counter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_22.rs:39:16
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub fn new(id: u32, size: usize) -> Self {
[INFO] [stdout]    |                ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_22.rs:39:25
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub fn new(id: u32, size: usize) -> Self {
[INFO] [stdout]    |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_22.rs:59:21
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn use_resource(id: u32) -> u32 {
[INFO] [stdout]    |                     ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_23.rs:19:16
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn new(path: String) -> io::Result<Self> {
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_23.rs:23:29
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn write(&mut self, data: &[u8]) -> io::Result<()> {
[INFO] [stdout]    |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_23.rs:44:16
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn new(data: &'a mut T, cleanup_fn: impl FnOnce(&mut T) + 'a) -> Self {
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cleanup_fn`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_23.rs:44:33
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn new(data: &'a mut T, cleanup_fn: impl FnOnce(&mut T) + 'a) -> Self {
[INFO] [stdout]    |                                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cleanup_fn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_23.rs:64:27
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub fn create_reset_guard(value: &mut i32) -> Guard<'_, i32> {
[INFO] [stdout]    |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `content`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_24.rs:15:16
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn new(content: &'a str) -> Self {
[INFO] [stdout]    |                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `predicate`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_24.rs:19:37
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn take_while<F>(&mut self, predicate: F) -> &'a str
[INFO] [stdout]    |                                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_predicate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parser`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_24.rs:36:24
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn parse_words<'a>(parser: &mut Parser<'a>) -> Vec<&'a str> {
[INFO] [stdout]    |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parser`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `text`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_24.rs:46:16
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn new(text: &'text str, delimiter: char) -> Self {
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_text`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delimiter`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_24.rs:46:34
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn new(text: &'text str, delimiter: char) -> Self {
[INFO] [stdout]    |                                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delimiter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_25.rs:18:27
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn add(&mut self, item: T) -> usize {
[INFO] [stdout]    |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_25.rs:22:23
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn get(&self, id: usize) -> Option<&T> {
[INFO] [stdout]    |                       ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_25.rs:26:31
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub fn get_mut(&mut self, id: usize) -> Option<&mut T> {
[INFO] [stdout]    |                               ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_25.rs:43:16
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub fn new(value: i32, parent: Option<usize>) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_25.rs:43:28
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub fn new(value: i32, parent: Option<usize>) -> Self {
[INFO] [stdout]    |                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_25.rs:57:32
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn add_node(&mut self, value: i32, parent: Option<usize>) -> usize {
[INFO] [stdout]    |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_25.rs:57:44
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn add_node(&mut self, value: i32, parent: Option<usize>) -> usize {
[INFO] [stdout]    |                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_25.rs:61:28
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub fn get_node(&self, id: usize) -> Option<&TreeNode> {
[INFO] [stdout]    |                            ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `logs`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_26.rs:17:16
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn new(logs: Rc<RefCell<Vec<String>>>) -> Self {
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_logs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `message`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_26.rs:21:23
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn log(&self, message: &str) {
[INFO] [stdout]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_26.rs:38:16
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn new(id: u32) -> Self {
[INFO] [stdout]    |                ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_26.rs:66:16
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub fn new(size: usize) -> Self {
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_26.rs:70:27
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub fn get(&mut self, index: usize) -> Option<&mut Connection> {
[INFO] [stdout]    |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_27.rs:19:23
[INFO] [stdout]    |
[INFO] [stdout] 19 |     fn process(&self, input: &str) -> String {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `processor`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_27.rs:25:37
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn process_with_lifetime<'a, P>(processor: &P, input: &'a str) -> P::Output
[INFO] [stdout]    |                                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_processor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_27.rs:25:52
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn process_with_lifetime<'a, P>(processor: &P, input: &'a str) -> P::Output
[INFO] [stdout]    |                                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_27.rs:37:16
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn new(items: &'a [T]) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_27.rs:41:36
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn filter_map<B, F>(&self, f: F) -> Vec<B>
[INFO] [stdout]    |                                    ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_27.rs:50:37
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn transform_items<'a, T, U, F>(items: &'a [T], transform: F) -> Vec<U>
[INFO] [stdout]    |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transform`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_27.rs:50:53
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn transform_items<'a, T, U, F>(items: &'a [T], transform: F) -> Vec<U>
[INFO] [stdout]    |                                                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transform`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `valid_values`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_27.rs:62:16
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn new(valid_values: &'a [T]) -> Self {
[INFO] [stdout]    |                ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_valid_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_27.rs:66:28
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub fn is_valid(&self, value: &T) -> bool {
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `values`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_27.rs:70:32
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub fn filter_valid(&self, values: &'a [T]) -> Vec<&'a T> {
[INFO] [stdout]    |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_28.rs:17:16
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn new(data: &'a mut T) -> Self {
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rollback_fn`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_28.rs:42:16
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn new(rollback_fn: impl FnMut() + 'a) -> Self {
[INFO] [stdout]    |                ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rollback_fn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cleanup`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_28.rs:62:16
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn new(cleanup: F) -> Self {
[INFO] [stdout]    |                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cleanup`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/exercises/memory_management/exercise_28.rs:66:19
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub fn disarm(mut self) {
[INFO] [stdout]    |                   ----^^^^
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `counter`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_28.rs:78:29
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub fn create_counter_guard(counter: &mut i32) -> ScopeGuard<impl FnOnce() + '_> {
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_counter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_29.rs:15:24
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn apply_to_all<F>(strings: &[String], f: F) -> Vec<String>
[INFO] [stdout]    |                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_29.rs:15:44
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn apply_to_all<F>(strings: &[String], f: F) -> Vec<String>
[INFO] [stdout]    |                                            ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `func`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_29.rs:33:16
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn new(func: F) -> Self {
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_func`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_29.rs:45:19
[INFO] [stdout]    |
[INFO] [stdout] 45 |     fn map(&self, input: &T) -> U {
[INFO] [stdout]    |                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `compare`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_29.rs:62:16
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn new(compare: F) -> Self {
[INFO] [stdout]    |                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compare`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_29.rs:68:40
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub fn are_equal<T: ?Sized>(&self, a: &T, b: &T) -> bool
[INFO] [stdout]    |                                        ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_29.rs:68:47
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub fn are_equal<T: ?Sized>(&self, a: &T, b: &T) -> bool
[INFO] [stdout]    |                                               ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_29.rs:75:37
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub fn find_equal<'s, T>(&self, items: &'s [T], target: &T) -> Option<&'s T>
[INFO] [stdout]    |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_29.rs:75:53
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub fn find_equal<'s, T>(&self, items: &'s [T], target: &T) -> Option<&'s T>
[INFO] [stdout]    |                                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_29.rs:84:33
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub fn case_insensitive_compare(a: &str, b: &str) -> bool {
[INFO] [stdout]    |                                 ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_29.rs:84:42
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub fn case_insensitive_compare(a: &str, b: &str) -> bool {
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_29.rs:95:35
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub fn process_with_hrtb<F, T, U>(items: &[T], processor: F) -> Vec<U>
[INFO] [stdout]    |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `processor`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_29.rs:95:48
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub fn process_with_hrtb<F, T, U>(items: &[T], processor: F) -> Vec<U>
[INFO] [stdout]    |                                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_processor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_30.rs:26:29
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub fn initialize(self, size: usize) -> Builder<Initialized> {
[INFO] [stdout]    |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_30.rs:32:27
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn set(&mut self, index: usize, value: u8) {
[INFO] [stdout]    |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_30.rs:32:41
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn set(&mut self, index: usize, value: u8) {
[INFO] [stdout]    |                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iter1`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_30.rs:61:34
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub fn zip_map<I, J, F, A, B, C>(iter1: I, iter2: J, func: F) -> ZipMap<I, J, F>
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_iter1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iter2`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_30.rs:61:44
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub fn zip_map<I, J, F, A, B, C>(iter1: I, iter2: J, func: F) -> ZipMap<I, J, F>
[INFO] [stdout]    |                                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_iter2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `func`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_30.rs:61:54
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub fn zip_map<I, J, F, A, B, C>(iter1: I, iter2: J, func: F) -> ZipMap<I, J, F>
[INFO] [stdout]    |                                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_func`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_30.rs:84:28
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn push(&mut self, value: u8) -> Result<(), &'static str> {
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]   --> src/exercises/memory_management/exercise_30.rs:88:23
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub fn get(&self, index: usize) -> Option<u8> {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> src/exercises/memory_management/exercise_30.rs:111:16
[INFO] [stdout]     |
[INFO] [stdout] 111 |     pub fn new(value: f64) -> Self {
[INFO] [stdout]     |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/exercises/memory_management/exercise_30.rs:133:28
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub fn add_distances<Unit>(a: Distance<Unit>, b: Distance<Unit>) -> Distance<Unit> {
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/exercises/memory_management/exercise_30.rs:133:47
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub fn add_distances<Unit>(a: Distance<Unit>, b: Distance<Unit>) -> Distance<Unit> {
[INFO] [stdout]     |                                               ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_01.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn sum_numbers(numbers: &[i32]) -> i32 {
[INFO] [stdout]    |                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_01.rs:15:23
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn count_positive(numbers: &[i32]) -> usize {
[INFO] [stdout]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_01.rs:20:17
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn find_max(numbers: &[i32]) -> Option<i32> {
[INFO] [stdout]    |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_02.rs:10:23
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn double_numbers(numbers: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]   --> src/exercises/iterators/exercise_02.rs:15:23
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn string_lengths(strings: &[&str]) -> Vec<usize> {
[INFO] [stdout]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_02.rs:20:23
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn square_numbers(numbers: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_02.rs:25:27
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn numbers_to_strings(numbers: &[i32]) -> Vec<String> {
[INFO] [stdout]    |                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_03.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn filter_even(numbers: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]   --> src/exercises/iterators/exercise_03.rs:15:28
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn filter_long_strings(strings: &[&str], min_length: usize) -> Vec<String> {
[INFO] [stdout]    |                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min_length`
[INFO] [stdout]   --> src/exercises/iterators/exercise_03.rs:15:46
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn filter_long_strings(strings: &[&str], min_length: usize) -> Vec<String> {
[INFO] [stdout]    |                                              ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_min_length`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_03.rs:20:24
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn filter_in_range(numbers: &[i32], min: i32, max: i32) -> Vec<i32> {
[INFO] [stdout]    |                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min`
[INFO] [stdout]   --> src/exercises/iterators/exercise_03.rs:20:41
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn filter_in_range(numbers: &[i32], min: i32, max: i32) -> Vec<i32> {
[INFO] [stdout]    |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_min`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max`
[INFO] [stdout]   --> src/exercises/iterators/exercise_03.rs:20:51
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn filter_in_range(numbers: &[i32], min: i32, max: i32) -> Vec<i32> {
[INFO] [stdout]    |                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_max`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]   --> src/exercises/iterators/exercise_03.rs:25:25
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn filter_non_empty(strings: &[&str]) -> Vec<String> {
[INFO] [stdout]    |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_04.rs:10:16
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn product(numbers: &[i32]) -> i32 {
[INFO] [stdout]    |                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]   --> src/exercises/iterators/exercise_04.rs:15:21
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn join_strings(strings: &[&str], separator: &str) -> String {
[INFO] [stdout]    |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `separator`
[INFO] [stdout]   --> src/exercises/iterators/exercise_04.rs:15:39
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn join_strings(strings: &[&str], separator: &str) -> String {
[INFO] [stdout]    |                                       ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_separator`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]   --> src/exercises/iterators/exercise_04.rs:20:30
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn count_char_in_strings(strings: &[&str], target: char) -> usize {
[INFO] [stdout]    |                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/exercises/iterators/exercise_04.rs:20:48
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn count_char_in_strings(strings: &[&str], target: char) -> usize {
[INFO] [stdout]    |                                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `chars`
[INFO] [stdout]   --> src/exercises/iterators/exercise_04.rs:25:30
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn build_repeated_string(chars: &[char], repeat: usize) -> String {
[INFO] [stdout]    |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_chars`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `repeat`
[INFO] [stdout]   --> src/exercises/iterators/exercise_04.rs:25:46
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn build_repeated_string(chars: &[char], repeat: usize) -> String {
[INFO] [stdout]    |                                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_repeat`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_05.rs:10:32
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn filter_and_double_evens(numbers: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]   --> src/exercises/iterators/exercise_05.rs:15:32
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn sum_long_string_lengths(strings: &[&str], min_length: usize) -> usize {
[INFO] [stdout]    |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min_length`
[INFO] [stdout]   --> src/exercises/iterators/exercise_05.rs:15:50
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn sum_long_string_lengths(strings: &[&str], min_length: usize) -> usize {
[INFO] [stdout]    |                                                  ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_min_length`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_05.rs:20:24
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn square_positive(numbers: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]   --> src/exercises/iterators/exercise_05.rs:25:34
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn uppercase_starting_with_a(strings: &[&str]) -> Vec<String> {
[INFO] [stdout]    |                                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_06.rs:12:23
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn unique_numbers(numbers: &[i32]) -> HashSet<i32> {
[INFO] [stdout]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/iterators/exercise_06.rs:17:23
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn char_frequency(s: &str) -> HashMap<char, usize> {
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `words`
[INFO] [stdout]   --> src/exercises/iterators/exercise_06.rs:22:21
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn word_lengths(words: &[&str]) -> HashMap<String, usize> {
[INFO] [stdout]    |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_words`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_06.rs:27:27
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn partition_even_odd(numbers: &[i32]) -> (Vec<i32>, Vec<i32>) {
[INFO] [stdout]    |                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_07.rs:10:24
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn find_first_even(numbers: &[i32]) -> Option<i32> {
[INFO] [stdout]    |                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_07.rs:15:31
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn find_negative_position(numbers: &[i32]) -> Option<usize> {
[INFO] [stdout]    |                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_07.rs:20:21
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn all_positive(numbers: &[i32]) -> bool {
[INFO] [stdout]    |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]   --> src/exercises/iterators/exercise_07.rs:25:26
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn any_contains_char(strings: &[&str], target: char) -> bool {
[INFO] [stdout]    |                          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/exercises/iterators/exercise_07.rs:25:44
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn any_contains_char(strings: &[&str], target: char) -> bool {
[INFO] [stdout]    |                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]   --> src/exercises/iterators/exercise_07.rs:30:25
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn find_long_string(strings: &[&str], min_length: usize) -> Option<String> {
[INFO] [stdout]    |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min_length`
[INFO] [stdout]   --> src/exercises/iterators/exercise_07.rs:30:43
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn find_long_string(strings: &[&str], min_length: usize) -> Option<String> {
[INFO] [stdout]    |                                           ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_min_length`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_08.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn take_first(numbers: &[i32], n: usize) -> Vec<i32> {
[INFO] [stdout]    |                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/iterators/exercise_08.rs:10:36
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn take_first(numbers: &[i32], n: usize) -> Vec<i32> {
[INFO] [stdout]    |                                    ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_08.rs:15:19
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn skip_first(numbers: &[i32], n: usize) -> Vec<i32> {
[INFO] [stdout]    |                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/iterators/exercise_08.rs:15:36
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn skip_first(numbers: &[i32], n: usize) -> Vec<i32> {
[INFO] [stdout]    |                                    ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_08.rs:20:28
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn take_while_positive(numbers: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_08.rs:25:22
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn skip_and_take(numbers: &[i32], skip_count: usize, take_count: usize) -> Vec<i32> {
[INFO] [stdout]    |                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `skip_count`
[INFO] [stdout]   --> src/exercises/iterators/exercise_08.rs:25:39
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn skip_and_take(numbers: &[i32], skip_count: usize, take_count: usize) -> Vec<i32> {
[INFO] [stdout]    |                                       ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_skip_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `take_count`
[INFO] [stdout]   --> src/exercises/iterators/exercise_08.rs:25:58
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn skip_and_take(numbers: &[i32], skip_count: usize, take_count: usize) -> Vec<i32> {
[INFO] [stdout]    |                                                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_take_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_08.rs:30:23
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn take_every_nth(numbers: &[i32], n: usize) -> Vec<i32> {
[INFO] [stdout]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/iterators/exercise_08.rs:30:40
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn take_every_nth(numbers: &[i32], n: usize) -> Vec<i32> {
[INFO] [stdout]    |                                        ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nested`
[INFO] [stdout]   --> src/exercises/iterators/exercise_09.rs:10:24
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn flatten_vectors(nested: &[Vec<i32>]) -> Vec<i32> {
[INFO] [stdout]    |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_nested`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]   --> src/exercises/iterators/exercise_09.rs:15:26
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn split_and_collect(strings: &[&str]) -> Vec<String> {
[INFO] [stdout]    |                          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]   --> src/exercises/iterators/exercise_09.rs:20:18
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn all_chars(strings: &[&str]) -> Vec<char> {
[INFO] [stdout]    |                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_09.rs:25:23
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn generate_pairs(numbers: &[i32], multipliers: &[i32]) -> Vec<(i32, i32)> {
[INFO] [stdout]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `multipliers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_09.rs:25:40
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn generate_pairs(numbers: &[i32], multipliers: &[i32]) -> Vec<(i32, i32)> {
[INFO] [stdout]    |                                        ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_multipliers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_10.rs:10:25
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn indices_of_evens(numbers: &[i32]) -> Vec<usize> {
[INFO] [stdout]    |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/iterators/exercise_10.rs:15:19
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn zip_slices(a: &[i32], b: &[i32]) -> Vec<(i32, i32)> {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/iterators/exercise_10.rs:15:30
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn zip_slices(a: &[i32], b: &[i32]) -> Vec<(i32, i32)> {
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/iterators/exercise_10.rs:20:26
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn sum_corresponding(a: &[i32], b: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |                          ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/iterators/exercise_10.rs:20:37
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn sum_corresponding(a: &[i32], b: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |                                     ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/iterators/exercise_10.rs:25:21
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn diff_indices(a: &[i32], b: &[i32]) -> Vec<usize> {
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/iterators/exercise_10.rs:25:32
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn diff_indices(a: &[i32], b: &[i32]) -> Vec<usize> {
[INFO] [stdout]    |                                ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]   --> src/exercises/iterators/exercise_10.rs:30:24
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn indexed_strings(strings: &[&str]) -> Vec<String> {
[INFO] [stdout]    |                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_11.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn running_sum(numbers: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_11.rs:15:24
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn running_product(numbers: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_11.rs:20:20
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn running_max(numbers: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]   --> src/exercises/iterators/exercise_11.rs:25:22
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn running_count(items: &[char], target: char) -> Vec<usize> {
[INFO] [stdout]    |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/exercises/iterators/exercise_11.rs:25:38
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn running_count(items: &[char], target: char) -> Vec<usize> {
[INFO] [stdout]    |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/iterators/exercise_12.rs:10:22
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn concat_slices(a: &[i32], b: &[i32], c: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |                      ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/iterators/exercise_12.rs:10:33
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn concat_slices(a: &[i32], b: &[i32], c: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |                                 ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]   --> src/exercises/iterators/exercise_12.rs:10:44
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn concat_slices(a: &[i32], b: &[i32], c: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |                                            ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/iterators/exercise_12.rs:15:19
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn interleave(a: &[i32], b: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/iterators/exercise_12.rs:15:30
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn interleave(a: &[i32], b: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pattern`
[INFO] [stdout]   --> src/exercises/iterators/exercise_12.rs:20:23
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn repeat_pattern(pattern: &[i32], times: usize) -> Vec<i32> {
[INFO] [stdout]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pattern`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `times`
[INFO] [stdout]   --> src/exercises/iterators/exercise_12.rs:20:40
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn repeat_pattern(pattern: &[i32], times: usize) -> Vec<i32> {
[INFO] [stdout]    |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_times`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/iterators/exercise_12.rs:25:23
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn chain_filtered(a: &[i32], b: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/iterators/exercise_12.rs:25:34
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn chain_filtered(a: &[i32], b: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |                                  ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_13.rs:10:21
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn pairwise_sum(numbers: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_13.rs:15:21
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn local_maxima(numbers: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_13.rs:20:19
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn chunk_sums(numbers: &[i32], chunk_size: usize) -> Vec<i32> {
[INFO] [stdout]    |                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `chunk_size`
[INFO] [stdout]   --> src/exercises/iterators/exercise_13.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn chunk_sums(numbers: &[i32], chunk_size: usize) -> Vec<i32> {
[INFO] [stdout]    |                                    ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_chunk_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_13.rs:25:23
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn has_triple_sum(numbers: &[i32], target: i32) -> bool {
[INFO] [stdout]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/exercises/iterators/exercise_13.rs:25:40
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn has_triple_sum(numbers: &[i32], target: i32) -> bool {
[INFO] [stdout]    |                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]   --> src/exercises/iterators/exercise_14.rs:10:22
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn parse_numbers(strings: &[&str]) -> Vec<i32> {
[INFO] [stdout]    |                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]   --> src/exercises/iterators/exercise_14.rs:15:26
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn non_empty_lengths(strings: &[&str]) -> Vec<usize> {
[INFO] [stdout]    |                          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_14.rs:20:25
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn square_positives(numbers: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]   --> src/exercises/iterators/exercise_14.rs:25:20
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn first_chars(strings: &[&str]) -> Vec<char> {
[INFO] [stdout]    |                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dividends`
[INFO] [stdout]   --> src/exercises/iterators/exercise_14.rs:30:23
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn safe_divisions(dividends: &[i32], divisors: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |                       ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dividends`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `divisors`
[INFO] [stdout]   --> src/exercises/iterators/exercise_14.rs:30:42
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn safe_divisions(dividends: &[i32], divisors: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |                                          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_divisors`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]   --> src/exercises/iterators/exercise_15.rs:10:23
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn longest_string(strings: &[&str]) -> Option<String> {
[INFO] [stdout]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]   --> src/exercises/iterators/exercise_15.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn most_vowels(strings: &[&str]) -> Option<String> {
[INFO] [stdout]    |                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_15.rs:20:26
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn closest_to_target(numbers: &[i32], target: i32) -> Option<i32> {
[INFO] [stdout]    |                          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/exercises/iterators/exercise_15.rs:20:43
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn closest_to_target(numbers: &[i32], target: i32) -> Option<i32> {
[INFO] [stdout]    |                                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_15.rs:25:21
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn min_absolute(numbers: &[i32]) -> Option<i32> {
[INFO] [stdout]    |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_15.rs:30:14
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn top_n(numbers: &[i32], n: usize) -> Vec<i32> {
[INFO] [stdout]    |              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/iterators/exercise_15.rs:30:31
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn top_n(numbers: &[i32], n: usize) -> Vec<i32> {
[INFO] [stdout]    |                               ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_16.rs:10:21
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn count_stages(numbers: &[i32]) -> (usize, usize, usize) {
[INFO] [stdout]    |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_16.rs:15:32
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn group_consecutive_equal(numbers: Vec<i32>) -> Vec<Vec<i32>> {
[INFO] [stdout]    |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iter`
[INFO] [stdout]   --> src/exercises/iterators/exercise_16.rs:20:32
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn take_until_inclusive<I>(iter: I, predicate: impl Fn(&i32) -> bool) -> Vec<i32>
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_iter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `predicate`
[INFO] [stdout]   --> src/exercises/iterators/exercise_16.rs:20:41
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn take_until_inclusive<I>(iter: I, predicate: impl Fn(&i32) -> bool) -> Vec<i32>
[INFO] [stdout]    |                                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_predicate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/iterators/exercise_17.rs:10:18
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn fibonacci(n: usize) -> Vec<u64> {
[INFO] [stdout]    |                  ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/iterators/exercise_17.rs:15:29
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn multiplication_table(n: i32, up_to: i32) -> Vec<(i32, i32)> {
[INFO] [stdout]    |                             ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `up_to`
[INFO] [stdout]   --> src/exercises/iterators/exercise_17.rs:15:37
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn multiplication_table(n: i32, up_to: i32) -> Vec<(i32, i32)> {
[INFO] [stdout]    |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_up_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/iterators/exercise_17.rs:20:23
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn sum_of_squares(n: i32) -> i32 {
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]   --> src/exercises/iterators/exercise_17.rs:25:30
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn even_numbers_in_range(start: i32, end: i32) -> Vec<i32> {
[INFO] [stdout]    |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end`
[INFO] [stdout]   --> src/exercises/iterators/exercise_17.rs:25:42
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn even_numbers_in_range(start: i32, end: i32) -> Vec<i32> {
[INFO] [stdout]    |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/iterators/exercise_17.rs:30:22
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn powers_of_two(n: usize) -> Vec<u64> {
[INFO] [stdout]    |                      ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]   --> src/exercises/iterators/exercise_18.rs:10:18
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn parse_all(strings: &[&str]) -> Result<Vec<i32>, String> {
[INFO] [stdout]    |                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pairs`
[INFO] [stdout]   --> src/exercises/iterators/exercise_18.rs:15:24
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn safe_divide_all(pairs: &[(i32, i32)]) -> Result<Vec<i32>, String> {
[INFO] [stdout]    |                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_pairs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]   --> src/exercises/iterators/exercise_18.rs:20:25
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn lengths_no_empty(strings: &[&str]) -> Result<Vec<usize>, String> {
[INFO] [stdout]    |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]   --> src/exercises/iterators/exercise_18.rs:25:23
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn parse_positive(strings: &[&str]) -> Result<Vec<i32>, String> {
[INFO] [stdout]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `text`
[INFO] [stdout]   --> src/exercises/iterators/exercise_19.rs:12:23
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn word_frequency(text: &str, min_length: usize) -> HashMap<String, usize> {
[INFO] [stdout]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_text`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min_length`
[INFO] [stdout]   --> src/exercises/iterators/exercise_19.rs:12:35
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn word_frequency(text: &str, min_length: usize) -> HashMap<String, usize> {
[INFO] [stdout]    |                                   ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_min_length`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_19.rs:17:32
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn capped_even_squares_sum(numbers: &[i32], limit: i32) -> i32 {
[INFO] [stdout]    |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `limit`
[INFO] [stdout]   --> src/exercises/iterators/exercise_19.rs:17:49
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn capped_even_squares_sum(numbers: &[i32], limit: i32) -> i32 {
[INFO] [stdout]    |                                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_limit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scores`
[INFO] [stdout]   --> src/exercises/iterators/exercise_19.rs:22:30
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn top_normalized_scores(scores: &[f64], passing: f64, n: usize) -> Vec<f64> {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_scores`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `passing`
[INFO] [stdout]   --> src/exercises/iterators/exercise_19.rs:22:46
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn top_normalized_scores(scores: &[f64], passing: f64, n: usize) -> Vec<f64> {
[INFO] [stdout]    |                                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_passing`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/iterators/exercise_19.rs:22:60
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn top_normalized_scores(scores: &[f64], passing: f64, n: usize) -> Vec<f64> {
[INFO] [stdout]    |                                                            ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_19.rs:27:29
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn unique_sorted_digits(numbers: &[i32]) -> Vec<u32> {
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_20.rs:10:25
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn at_least_n_match(numbers: &[i32], predicate: impl Fn(i32) -> bool, n: usize) -> bool {
[INFO] [stdout]    |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `predicate`
[INFO] [stdout]   --> src/exercises/iterators/exercise_20.rs:10:42
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn at_least_n_match(numbers: &[i32], predicate: impl Fn(i32) -> bool, n: usize) -> bool {
[INFO] [stdout]    |                                          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_predicate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/iterators/exercise_20.rs:10:75
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn at_least_n_match(numbers: &[i32], predicate: impl Fn(i32) -> bool, n: usize) -> bool {
[INFO] [stdout]    |                                                                           ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_20.rs:15:27
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn product_until_zero(numbers: &[i32]) -> i32 {
[INFO] [stdout]    |                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_20.rs:20:18
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn is_sorted(numbers: &[i32]) -> bool {
[INFO] [stdout]    |                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_20.rs:25:22
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn count_between(numbers: &[i32], low: i32, high: i32) -> usize {
[INFO] [stdout]    |                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `low`
[INFO] [stdout]   --> src/exercises/iterators/exercise_20.rs:25:39
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn count_between(numbers: &[i32], low: i32, high: i32) -> usize {
[INFO] [stdout]    |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_low`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `high`
[INFO] [stdout]   --> src/exercises/iterators/exercise_20.rs:25:49
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn count_between(numbers: &[i32], low: i32, high: i32) -> usize {
[INFO] [stdout]    |                                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_high`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_20.rs:30:15
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn last_n(numbers: &[i32], n: usize) -> Vec<i32> {
[INFO] [stdout]    |               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/iterators/exercise_20.rs:30:32
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn last_n(numbers: &[i32], n: usize) -> Vec<i32> {
[INFO] [stdout]    |                                ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_20.rs:35:18
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn nth_match(numbers: &[i32], predicate: impl Fn(i32) -> bool, n: usize) -> Option<i32> {
[INFO] [stdout]    |                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `predicate`
[INFO] [stdout]   --> src/exercises/iterators/exercise_20.rs:35:35
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn nth_match(numbers: &[i32], predicate: impl Fn(i32) -> bool, n: usize) -> Option<i32> {
[INFO] [stdout]    |                                   ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_predicate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/iterators/exercise_20.rs:35:68
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn nth_match(numbers: &[i32], predicate: impl Fn(i32) -> bool, n: usize) -> Option<i32> {
[INFO] [stdout]    |                                                                    ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]   --> src/exercises/iterators/exercise_21.rs:16:16
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn new(start: i32, end: i32) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end`
[INFO] [stdout]   --> src/exercises/iterators/exercise_21.rs:16:28
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn new(start: i32, end: i32) -> Self {
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first`
[INFO] [stdout]   --> src/exercises/iterators/exercise_21.rs:37:16
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn new(first: T, second: T) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_first`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `second`
[INFO] [stdout]   --> src/exercises/iterators/exercise_21.rs:37:26
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn new(first: T, second: T) -> Self {
[INFO] [stdout]    |                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_second`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]   --> src/exercises/iterators/exercise_21.rs:56:16
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub fn new(start: i32) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `values`
[INFO] [stdout]   --> src/exercises/iterators/exercise_22.rs:16:16
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn new(values: Vec<f64>) -> Self {
[INFO] [stdout]    |                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/exercises/iterators/exercise_22.rs:42:16
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn new(mut iter: I) -> Self {
[INFO] [stdout]    |                ----^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iter`
[INFO] [stdout]   --> src/exercises/iterators/exercise_22.rs:42:16
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn new(mut iter: I) -> Self {
[INFO] [stdout]    |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_iter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iter`
[INFO] [stdout]   --> src/exercises/iterators/exercise_22.rs:67:16
[INFO] [stdout]    |
[INFO] [stdout] 67 |     pub fn new(iter: I, n: usize) -> Self {
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_iter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/iterators/exercise_22.rs:67:25
[INFO] [stdout]    |
[INFO] [stdout] 67 |     pub fn new(iter: I, n: usize) -> Self {
[INFO] [stdout]    |                         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iter`
[INFO] [stdout]   --> src/exercises/iterators/exercise_23.rs:22:16
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn new(iter: I, size: usize) -> Self {
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_iter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]   --> src/exercises/iterators/exercise_23.rs:22:25
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn new(iter: I, size: usize) -> Self {
[INFO] [stdout]    |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iter`
[INFO] [stdout]   --> src/exercises/iterators/exercise_23.rs:51:16
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub fn new(iter: I) -> Self {
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_iter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iter`
[INFO] [stdout]   --> src/exercises/iterators/exercise_23.rs:69:17
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn batch<I>(iter: I, size: usize) -> Batch<I>
[INFO] [stdout]    |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_iter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]   --> src/exercises/iterators/exercise_23.rs:69:26
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn batch<I>(iter: I, size: usize) -> Batch<I>
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iter`
[INFO] [stdout]   --> src/exercises/iterators/exercise_23.rs:77:18
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn unique<I>(iter: I) -> Unique<I>
[INFO] [stdout]    |                  ^^^^ help: if this is intentional, prefix it with an underscore: `_iter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]   --> src/exercises/iterators/exercise_24.rs:17:16
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn new(start: i32, end: i32, step: i32) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end`
[INFO] [stdout]   --> src/exercises/iterators/exercise_24.rs:17:28
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn new(start: i32, end: i32, step: i32) -> Self {
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `step`
[INFO] [stdout]   --> src/exercises/iterators/exercise_24.rs:17:38
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn new(start: i32, end: i32, step: i32) -> Self {
[INFO] [stdout]    |                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_step`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]   --> src/exercises/iterators/exercise_24.rs:37:36
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn is_palindrome<T: PartialEq>(items: &[T]) -> bool {
[INFO] [stdout]    |                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/iterators/exercise_24.rs:42:22
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn reverse_merge(a: &[i32], b: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |                      ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/iterators/exercise_24.rs:42:33
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn reverse_merge(a: &[i32], b: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |                                 ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_25.rs:10:22
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn optimized_sum(numbers: &[i32]) -> i32 {
[INFO] [stdout]    |                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_25.rs:15:23
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn find_optimized(numbers: &[i32], target: i32) -> Option<usize> {
[INFO] [stdout]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/exercises/iterators/exercise_25.rs:15:40
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn find_optimized(numbers: &[i32], target: i32) -> Option<usize> {
[INFO] [stdout]    |                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]   --> src/exercises/iterators/exercise_25.rs:27:16
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn new(start: i32, end: i32, step: i32) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end`
[INFO] [stdout]   --> src/exercises/iterators/exercise_25.rs:27:28
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn new(start: i32, end: i32, step: i32) -> Self {
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `step`
[INFO] [stdout]   --> src/exercises/iterators/exercise_25.rs:27:38
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn new(start: i32, end: i32, step: i32) -> Self {
[INFO] [stdout]    |                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_step`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_25.rs:47:35
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn process_chunks_efficiently(numbers: &[i32], chunk_size: usize) -> Vec<i32> {
[INFO] [stdout]    |                                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `chunk_size`
[INFO] [stdout]   --> src/exercises/iterators/exercise_25.rs:47:52
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn process_chunks_efficiently(numbers: &[i32], chunk_size: usize) -> Vec<i32> {
[INFO] [stdout]    |                                                    ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_chunk_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/iterators/exercise_25.rs:52:35
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn merge_filtered_efficiently(a: &[i32], b: &[i32], c: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |                                   ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/iterators/exercise_25.rs:52:46
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn merge_filtered_efficiently(a: &[i32], b: &[i32], c: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |                                              ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]   --> src/exercises/iterators/exercise_25.rs:52:57
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn merge_filtered_efficiently(a: &[i32], b: &[i32], c: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |                                                         ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_26.rs:12:23
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn try_accumulate(numbers: &[i32]) -> Result<i32, String> {
[INFO] [stdout]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_26.rs:17:32
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn process_until_threshold(numbers: &[i32], threshold: i32) -> Result<Vec<i32>, String> {
[INFO] [stdout]    |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `threshold`
[INFO] [stdout]   --> src/exercises/iterators/exercise_26.rs:17:49
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn process_until_threshold(numbers: &[i32], threshold: i32) -> Result<Vec<i32>, String> {
[INFO] [stdout]    |                                                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_threshold`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]   --> src/exercises/iterators/exercise_26.rs:22:26
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn group_by<T, K, F>(items: &[T], key_fn: F) -> HashMap<K, Vec<T>>
[INFO] [stdout]    |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_fn`
[INFO] [stdout]   --> src/exercises/iterators/exercise_26.rs:22:39
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn group_by<T, K, F>(items: &[T], key_fn: F) -> HashMap<K, Vec<T>>
[INFO] [stdout]    |                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_fn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/iterators/exercise_26.rs:32:26
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn cartesian_product(a: &[i32], b: &[i32]) -> Vec<(i32, i32)> {
[INFO] [stdout]    |                          ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/iterators/exercise_26.rs:32:37
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn cartesian_product(a: &[i32], b: &[i32]) -> Vec<(i32, i32)> {
[INFO] [stdout]    |                                     ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `matrix`
[INFO] [stdout]   --> src/exercises/iterators/exercise_26.rs:37:28
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn transpose<T: Clone>(matrix: Vec<Vec<T>>) -> Vec<Vec<T>> {
[INFO] [stdout]    |                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_matrix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_27.rs:12:25
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn lazy_filter_take(numbers: &[i32], predicate: impl Fn(&i32) -> bool, count: usize) -> Vec<i32> {
[INFO] [stdout]    |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `predicate`
[INFO] [stdout]   --> src/exercises/iterators/exercise_27.rs:12:42
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn lazy_filter_take(numbers: &[i32], predicate: impl Fn(&i32) -> bool, count: usize) -> Vec<i32> {
[INFO] [stdout]    |                                          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_predicate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]   --> src/exercises/iterators/exercise_27.rs:12:76
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn lazy_filter_take(numbers: &[i32], predicate: impl Fn(&i32) -> bool, count: usize) -> Vec<i32> {
[INFO] [stdout]    |                                                                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_27.rs:17:23
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn count_matching(numbers: &[i32], predicate: impl Fn(&i32) -> bool) -> usize {
[INFO] [stdout]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `predicate`
[INFO] [stdout]   --> src/exercises/iterators/exercise_27.rs:17:40
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn count_matching(numbers: &[i32], predicate: impl Fn(&i32) -> bool) -> usize {
[INFO] [stdout]    |                                        ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_predicate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_27.rs:22:24
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn exists_matching(numbers: &[i32], predicate: impl Fn(&i32) -> bool) -> bool {
[INFO] [stdout]    |                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `predicate`
[INFO] [stdout]   --> src/exercises/iterators/exercise_27.rs:22:41
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn exists_matching(numbers: &[i32], predicate: impl Fn(&i32) -> bool) -> bool {
[INFO] [stdout]    |                                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_predicate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iter`
[INFO] [stdout]   --> src/exercises/iterators/exercise_27.rs:37:16
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn new(iter: I, processor: F) -> Self {
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_iter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `processor`
[INFO] [stdout]   --> src/exercises/iterators/exercise_27.rs:37:25
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn new(iter: I, processor: F) -> Self {
[INFO] [stdout]    |                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_processor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/iterators/exercise_27.rs:55:22
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn lazy_pipeline(numbers: &[i32]) -> impl Iterator<Item = i32> + '_ {
[INFO] [stdout]    |                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `words`
[INFO] [stdout]   --> src/exercises/iterators/exercise_27.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 |     words: &'a [&'a str],
[INFO] [stdout]    |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_words`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]   --> src/exercises/iterators/exercise_28.rs:13:28
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn max_by_key<T, K, F>(items: &[T], key_fn: F) -> Option<&T>
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_fn`
[INFO] [stdout]   --> src/exercises/iterators/exercise_28.rs:13:41
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn max_by_key<T, K, F>(items: &[T], key_fn: F) -> Option<&T>
[INFO] [stdout]    |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_fn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]   --> src/exercises/iterators/exercise_28.rs:22:27
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn partition_by<T, F>(items: Vec<T>, predicate: F) -> (Vec<T>, Vec<T>)
[INFO] [stdout]    |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `predicate`
[INFO] [stdout]   --> src/exercises/iterators/exercise_28.rs:22:42
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn partition_by<T, F>(items: Vec<T>, predicate: F) -> (Vec<T>, Vec<T>)
[INFO] [stdout]    |                                          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_predicate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]   --> src/exercises/iterators/exercise_28.rs:30:23
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn frequencies<T>(items: &[T]) -> HashMap<T, usize>
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/exercises/iterators/exercise_28.rs:38:28
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn interleave<I, J, T>(mut iter1: I, mut iter2: J) -> Vec<T>
[INFO] [stdout]    |                            ----^^^^^
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/exercises/iterators/exercise_28.rs:38:42
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn interleave<I, J, T>(mut iter1: I, mut iter2: J) -> Vec<T>
[INFO] [stdout]    |                                          ----^^^^^
[INFO] [stdout]    |                                          |
[INFO] [stdout]    |                                          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iter1`
[INFO] [stdout]   --> src/exercises/iterators/exercise_28.rs:38:28
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn interleave<I, J, T>(mut iter1: I, mut iter2: J) -> Vec<T>
[INFO] [stdout]    |                            ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_iter1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iter2`
[INFO] [stdout]   --> src/exercises/iterators/exercise_28.rs:38:42
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn interleave<I, J, T>(mut iter1: I, mut iter2: J) -> Vec<T>
[INFO] [stdout]    |                                          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_iter2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/exercises/iterators/exercise_28.rs:47:58
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn sliding_window<T, F, R>(items: &[T], size: usize, mut f: F) -> Vec<R>
[INFO] [stdout]    |                                                          ----^
[INFO] [stdout]    |                                                          |
[INFO] [stdout]    |                                                          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]   --> src/exercises/iterators/exercise_28.rs:47:32
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn sliding_window<T, F, R>(items: &[T], size: usize, mut f: F) -> Vec<R>
[INFO] [stdout]    |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]   --> src/exercises/iterators/exercise_28.rs:47:45
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn sliding_window<T, F, R>(items: &[T], size: usize, mut f: F) -> Vec<R>
[INFO] [stdout]    |                                             ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/iterators/exercise_28.rs:47:58
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn sliding_window<T, F, R>(items: &[T], size: usize, mut f: F) -> Vec<R>
[INFO] [stdout]    |                                                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/exercises/iterators/exercise_28.rs:55:70
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn process_exact_chunks<T, F, R>(items: &[T], chunk_size: usize, mut f: F) -> Vec<R>
[INFO] [stdout]    |                                                                      ----^
[INFO] [stdout]    |                                                                      |
[INFO] [stdout]    |                                                                      help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]   --> src/exercises/iterators/exercise_28.rs:55:38
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn process_exact_chunks<T, F, R>(items: &[T], chunk_size: usize, mut f: F) -> Vec<R>
[INFO] [stdout]    |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `chunk_size`
[INFO] [stdout]   --> src/exercises/iterators/exercise_28.rs:55:51
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn process_exact_chunks<T, F, R>(items: &[T], chunk_size: usize, mut f: F) -> Vec<R>
[INFO] [stdout]    |                                                   ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_chunk_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/iterators/exercise_28.rs:55:70
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn process_exact_chunks<T, F, R>(items: &[T], chunk_size: usize, mut f: F) -> Vec<R>
[INFO] [stdout]    |                                                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/exercises/iterators/exercise_28.rs:63:45
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn dedup_by_key<T, K, F>(items: Vec<T>, mut key_fn: F) -> Vec<T>
[INFO] [stdout]    |                                             ----^^^^^^
[INFO] [stdout]    |                                             |
[INFO] [stdout]    |                                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]   --> src/exercises/iterators/exercise_28.rs:63:30
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn dedup_by_key<T, K, F>(items: Vec<T>, mut key_fn: F) -> Vec<T>
[INFO] [stdout]    |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_fn`
[INFO] [stdout]   --> src/exercises/iterators/exercise_28.rs:63:45
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn dedup_by_key<T, K, F>(items: Vec<T>, mut key_fn: F) -> Vec<T>
[INFO] [stdout]    |                                             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_fn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]   --> src/exercises/iterators/exercise_29.rs:22:16
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn new(items: Vec<NestedItem>, max_depth: usize) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_depth`
[INFO] [stdout]   --> src/exercises/iterators/exercise_29.rs:22:40
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn new(items: Vec<NestedItem>, max_depth: usize) -> Self {
[INFO] [stdout]    |                                        ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_depth`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iterators`
[INFO] [stdout]   --> src/exercises/iterators/exercise_29.rs:47:16
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn new(iterators: Vec<I>) -> Self {
[INFO] [stdout]    |                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_iterators`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]   --> src/exercises/iterators/exercise_29.rs:71:16
[INFO] [stdout]    |
[INFO] [stdout] 71 |     pub fn new(items: Vec<T>) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/exercises/iterators/exercise_30.rs:24:33
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn group_by_key<K, F>(self, mut key_fn: F) -> HashMap<K, Vec<Self::Item>>
[INFO] [stdout]    |                                 ----^^^^^^
[INFO] [stdout]    |                                 |
[INFO] [stdout]    |                                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_fn`
[INFO] [stdout]   --> src/exercises/iterators/exercise_30.rs:24:33
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn group_by_key<K, F>(self, mut key_fn: F) -> HashMap<K, Vec<Self::Item>>
[INFO] [stdout]    |                                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_fn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `limit`
[INFO] [stdout]   --> src/exercises/iterators/exercise_30.rs:34:29
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn take_while_sum(self, limit: i32) -> TakeWhileSum<Self>
[INFO] [stdout]    |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_limit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]   --> src/exercises/iterators/exercise_30.rs:42:22
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn batched(self, size: usize) -> Batched<Self>
[INFO] [stdout]    |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `separator`
[INFO] [stdout]   --> src/exercises/iterators/exercise_30.rs:50:26
[INFO] [stdout]    |
[INFO] [stdout] 50 |     fn intersperse(self, separator: Self::Item) -> Intersperse<Self>
[INFO] [stdout]    |                          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_separator`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/exercises/iterators/exercise_30.rs:123:24
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub fn cartesian<T, U>(a: Vec<T>, b: Vec<U>) -> impl Iterator<Item = (T, U)>
[INFO] [stdout]     |                        ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/exercises/iterators/exercise_30.rs:123:35
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub fn cartesian<T, U>(a: Vec<T>, b: Vec<U>) -> impl Iterator<Item = (T, U)>
[INFO] [stdout]     |                                   ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iterators`
[INFO] [stdout]    --> src/exercises/iterators/exercise_30.rs:134:24
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub fn merge_unique<I>(iterators: Vec<I>) -> impl Iterator<Item = i32>
[INFO] [stdout]     |                        ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_iterators`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/combinators/exercise_01.rs:11:22
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn double_option(value: Option<i32>) -> Option<i32> {
[INFO] [stdout]    |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numerator`
[INFO] [stdout]   --> src/exercises/combinators/exercise_02.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn safe_divide(numerator: i32, denominator: i32) -> Option<i32> {
[INFO] [stdout]    |                    ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numerator`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `denominator`
[INFO] [stdout]   --> src/exercises/combinators/exercise_02.rs:10:36
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn safe_divide(numerator: i32, denominator: i32) -> Option<i32> {
[INFO] [stdout]    |                                    ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_denominator`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/combinators/exercise_02.rs:15:21
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn divide_twice(value: i32, div1: i32, div2: i32) -> Option<i32> {
[INFO] [stdout]    |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `div1`
[INFO] [stdout]   --> src/exercises/combinators/exercise_02.rs:15:33
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn divide_twice(value: i32, div1: i32, div2: i32) -> Option<i32> {
[INFO] [stdout]    |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_div1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `div2`
[INFO] [stdout]   --> src/exercises/combinators/exercise_02.rs:15:44
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn divide_twice(value: i32, div1: i32, div2: i32) -> Option<i32> {
[INFO] [stdout]    |                                            ^^^^ help: if this is intentional, prefix it with an underscore: `_div2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `primary`
[INFO] [stdout]   --> src/exercises/combinators/exercise_03.rs:10:32
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn get_value_with_fallback(primary: Option<i32>, fallback: Option<i32>) -> Option<i32> {
[INFO] [stdout]    |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_primary`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fallback`
[INFO] [stdout]   --> src/exercises/combinators/exercise_03.rs:10:54
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn get_value_with_fallback(primary: Option<i32>, fallback: Option<i32>) -> Option<i32> {
[INFO] [stdout]    |                                                      ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fallback`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sources`
[INFO] [stdout]   --> src/exercises/combinators/exercise_03.rs:15:24
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn first_available(sources: Vec<Option<i32>>) -> Option<i32> {
[INFO] [stdout]    |                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sources`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/combinators/exercise_04.rs:10:18
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn keep_even(value: Option<i32>) -> Option<i32> {
[INFO] [stdout]    |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/combinators/exercise_04.rs:15:22
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn keep_positive(value: Option<i32>) -> Option<i32> {
[INFO] [stdout]    |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/combinators/exercise_05.rs:10:25
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn parse_and_double(s: &str) -> Result<i32, std::num::ParseIntError> {
[INFO] [stdout]    |                         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/combinators/exercise_05.rs:15:22
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn parse_and_abs(s: &str) -> Result<i32, std::num::ParseIntError> {
[INFO] [stdout]    |                      ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/combinators/exercise_06.rs:10:32
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn parse_with_custom_error(s: &str) -> Result<i32, String> {
[INFO] [stdout]    |                                ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/combinators/exercise_07.rs:10:23
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn get_or_default(value: Option<i32>, default: i32) -> i32 {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `default`
[INFO] [stdout]   --> src/exercises/combinators/exercise_07.rs:10:43
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn get_or_default(value: Option<i32>, default: i32) -> i32 {
[INFO] [stdout]    |                                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `values`
[INFO] [stdout]   --> src/exercises/combinators/exercise_07.rs:15:26
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn sum_with_defaults(values: Vec<Option<i32>>) -> i32 {
[INFO] [stdout]    |                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/combinators/exercise_08.rs:10:26
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn get_or_compute<F>(value: Option<i32>, compute: F) -> i32
[INFO] [stdout]    |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `compute`
[INFO] [stdout]   --> src/exercises/combinators/exercise_08.rs:10:46
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn get_or_compute<F>(value: Option<i32>, compute: F) -> i32
[INFO] [stdout]    |                                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_compute`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/combinators/exercise_08.rs:18:26
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn first_even_or_sum(numbers: &[i32]) -> i32 {
[INFO] [stdout]    |                          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/combinators/exercise_09.rs:11:34
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn parse_positive_and_double(s: &str) -> Option<i32> {
[INFO] [stdout]    |                                  ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/combinators/exercise_09.rs:17:27
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn first_even_squared(numbers: &[i32]) -> Option<i32> {
[INFO] [stdout]    |                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/combinators/exercise_10.rs:10:22
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn parse_and_add(a: &str, b: &str) -> Result<i32, String> {
[INFO] [stdout]    |                      ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/combinators/exercise_10.rs:10:31
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn parse_and_add(a: &str, b: &str) -> Result<i32, String> {
[INFO] [stdout]    |                               ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numerator`
[INFO] [stdout]   --> src/exercises/combinators/exercise_10.rs:15:25
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn parse_and_divide(numerator: &str, denominator: &str) -> Result<i32, String> {
[INFO] [stdout]    |                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numerator`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `denominator`
[INFO] [stdout]   --> src/exercises/combinators/exercise_10.rs:15:42
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn parse_and_divide(numerator: &str, denominator: &str) -> Result<i32, String> {
[INFO] [stdout]    |                                          ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_denominator`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/combinators/exercise_11.rs:10:25
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn parse_or_default(s: &str, default: i32) -> Result<i32, String> {
[INFO] [stdout]    |                         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `default`
[INFO] [stdout]   --> src/exercises/combinators/exercise_11.rs:10:34
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn parse_or_default(s: &str, default: i32) -> Result<i32, String> {
[INFO] [stdout]    |                                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/combinators/exercise_11.rs:15:24
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn parse_or_length(s: &str) -> Result<i32, String> {
[INFO] [stdout]    |                        ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/combinators/exercise_12.rs:10:21
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn find_element(numbers: &[i32], target: i32) -> Result<usize, String> {
[INFO] [stdout]    |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/exercises/combinators/exercise_12.rs:10:38
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn find_element(numbers: &[i32], target: i32) -> Result<usize, String> {
[INFO] [stdout]    |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slice`
[INFO] [stdout]   --> src/exercises/combinators/exercise_12.rs:15:32
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn first_element<T: Clone>(slice: &[T]) -> Result<T, String> {
[INFO] [stdout]    |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_slice`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]   --> src/exercises/combinators/exercise_13.rs:10:24
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn parse_all_valid(strings: &[&str]) -> Vec<i32> {
[INFO] [stdout]    |                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numerators`
[INFO] [stdout]   --> src/exercises/combinators/exercise_13.rs:15:23
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn safe_divisions(numerators: &[i32], denominator: i32) -> Vec<i32> {
[INFO] [stdout]    |                       ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numerators`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `denominator`
[INFO] [stdout]   --> src/exercises/combinators/exercise_13.rs:15:43
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn safe_divisions(numerators: &[i32], denominator: i32) -> Vec<i32> {
[INFO] [stdout]    |                                           ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_denominator`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/combinators/exercise_14.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn add_options(a: Option<i32>, b: Option<i32>) -> Option<i32> {
[INFO] [stdout]    |                    ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/combinators/exercise_14.rs:10:36
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn add_options(a: Option<i32>, b: Option<i32>) -> Option<i32> {
[INFO] [stdout]    |                                    ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/combinators/exercise_14.rs:15:23
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn multiply_three(a: Option<i32>, b: Option<i32>, c: Option<i32>) -> Option<i32> {
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/combinators/exercise_14.rs:15:39
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn multiply_three(a: Option<i32>, b: Option<i32>, c: Option<i32>) -> Option<i32> {
[INFO] [stdout]    |                                       ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]   --> src/exercises/combinators/exercise_14.rs:15:55
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn multiply_three(a: Option<i32>, b: Option<i32>, c: Option<i32>) -> Option<i32> {
[INFO] [stdout]    |                                                       ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/combinators/exercise_15.rs:10:30
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn parse_or_none_keyword(s: &str) -> Option<Option<i32>> {
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/combinators/exercise_15.rs:15:22
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn get_flattened(s: &str) -> Option<i32> {
[INFO] [stdout]    |                      ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]   --> src/exercises/combinators/exercise_15.rs:20:23
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn find_and_parse(strings: &[&str], target: &str) -> Option<i32> {
[INFO] [stdout]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/exercises/combinators/exercise_15.rs:20:41
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn find_and_parse(strings: &[&str], target: &str) -> Option<i32> {
[INFO] [stdout]    |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/combinators/exercise_16.rs:10:24
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn parse_non_empty(s: &str) -> Result<Option<i32>, std::num::ParseIntError> {
[INFO] [stdout]    |                        ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]   --> src/exercises/combinators/exercise_16.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn parse_first(strings: &[&str]) -> Result<Option<i32>, std::num::ParseIntError> {
[INFO] [stdout]    |                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/combinators/exercise_17.rs:10:31
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn parse_validate_compute(s: &str) -> Result<i32, String> {
[INFO] [stdout]    |                               ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/combinators/exercise_17.rs:15:22
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn parse_and_max(a: &str, b: &str) -> Result<i32, String> {
[INFO] [stdout]    |                      ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/combinators/exercise_17.rs:15:31
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn parse_and_max(a: &str, b: &str) -> Result<i32, String> {
[INFO] [stdout]    |                               ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/combinators/exercise_18.rs:10:23
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn double_or_zero(value: Option<i32>) -> i32 {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/combinators/exercise_18.rs:15:23
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn length_or_zero(s: Option<&str>) -> usize {
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/combinators/exercise_19.rs:10:22
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn square_or_sum(value: Option<i32>, fallback: &[i32]) -> i32 {
[INFO] [stdout]    |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fallback`
[INFO] [stdout]   --> src/exercises/combinators/exercise_19.rs:10:42
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn square_or_sum(value: Option<i32>, fallback: &[i32]) -> i32 {
[INFO] [stdout]    |                                          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fallback`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/combinators/exercise_19.rs:15:26
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn parse_or_generate(s: &str, generator: fn() -> i32) -> i32 {
[INFO] [stdout]    |                          ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `generator`
[INFO] [stdout]   --> src/exercises/combinators/exercise_19.rs:15:35
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn parse_or_generate(s: &str, generator: fn() -> i32) -> i32 {
[INFO] [stdout]    |                                   ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_generator`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/combinators/exercise_20.rs:10:28
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn parse_with_recovery(s: &str) -> i32 {
[INFO] [stdout]    |                            ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/combinators/exercise_20.rs:15:23
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn divide_or_zero(a: i32, b: i32) -> i32 {
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/combinators/exercise_20.rs:15:31
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn divide_or_zero(a: i32, b: i32) -> i32 {
[INFO] [stdout]    |                               ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/combinators/exercise_21.rs:17:21
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn tap<F>(self, f: F) -> Self
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/combinators/exercise_21.rs:26:29
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn process_with_logging(value: Option<i32>) -> Option<i32> {
[INFO] [stdout]    |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ok_fn`
[INFO] [stdout]   --> src/exercises/combinators/exercise_22.rs:18:37
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn map_both<U, F, T2, E2>(self, ok_fn: T2, err_fn: E2) -> Result<U, F>
[INFO] [stdout]    |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_ok_fn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err_fn`
[INFO] [stdout]   --> src/exercises/combinators/exercise_22.rs:18:48
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn map_both<U, F, T2, E2>(self, ok_fn: T2, err_fn: E2) -> Result<U, F>
[INFO] [stdout]    |                                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_err_fn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/combinators/exercise_22.rs:28:28
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn parse_and_transform(s: &str) -> Result<String, String> {
[INFO] [stdout]    |                            ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/combinators/exercise_23.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     value: T,
[INFO] [stdout]    |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `validators`
[INFO] [stdout]   --> src/exercises/combinators/exercise_23.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     validators: Vec<Validator<T>>,
[INFO] [stdout]    |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_validators`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/combinators/exercise_23.rs:21:26
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn validate_positive(n: i32) -> Result<i32, String> {
[INFO] [stdout]    |                          ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/combinators/exercise_23.rs:26:22
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn validate_even(n: i32) -> Result<i32, String> {
[INFO] [stdout]    |                      ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/combinators/exercise_23.rs:31:31
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn validate_less_than_100(n: i32) -> Result<i32, String> {
[INFO] [stdout]    |                               ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/combinators/exercise_24.rs:21:28
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn inspect_ok<F>(self, f: F) -> Self
[INFO] [stdout]    |                            ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/combinators/exercise_24.rs:28:29
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn inspect_err<F>(self, f: F) -> Self
[INFO] [stdout]    |                             ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/combinators/exercise_24.rs:37:30
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn parse_with_inspection(s: &str) -> Result<i32, String> {
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]   --> src/exercises/combinators/exercise_25.rs:10:26
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn parse_all_or_fail(strings: &[&str]) -> Result<Vec<i32>, String> {
[INFO] [stdout]    |                          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `results`
[INFO] [stdout]   --> src/exercises/combinators/exercise_25.rs:15:32
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn partition_results<T, E>(results: Vec<Result<T, E>>) -> (Vec<T>, Vec<E>) {
[INFO] [stdout]    |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_results`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/combinators/exercise_26.rs:17:31
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn try_map<U, E, F>(self, f: F) -> Result<Option<U>, E>
[INFO] [stdout]    |                               ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/combinators/exercise_26.rs:26:25
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn try_parse_option(s: Option<&str>) -> Result<Option<i32>, String> {
[INFO] [stdout]    |                         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/exercises/combinators/exercise_27.rs:10:23
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn retry<T, E, F>(mut operation: F, max_attempts: usize) -> Result<T, E>
[INFO] [stdout]    |                       ----^^^^^^^^^
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `operation`
[INFO] [stdout]   --> src/exercises/combinators/exercise_27.rs:10:23
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn retry<T, E, F>(mut operation: F, max_attempts: usize) -> Result<T, E>
[INFO] [stdout]    |                       ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_attempts`
[INFO] [stdout]   --> src/exercises/combinators/exercise_27.rs:10:41
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn retry<T, E, F>(mut operation: F, max_attempts: usize) -> Result<T, E>
[INFO] [stdout]    |                                         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_attempts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/exercises/combinators/exercise_27.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     mut operation: F,
[INFO] [stdout]    |     ----^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `operation`
[INFO] [stdout]   --> src/exercises/combinators/exercise_27.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     mut operation: F,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_attempts`
[INFO] [stdout]   --> src/exercises/combinators/exercise_27.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     max_attempts: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_attempts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `transform_error`
[INFO] [stdout]   --> src/exercises/combinators/exercise_27.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     transform_error: fn(E, usize) -> E,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_transform_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/combinators/exercise_28.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     value: Option<T>,
[INFO] [stdout]    |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/combinators/exercise_28.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     f: impl FnOnce(T) -> Option<U>,
[INFO] [stdout]    |     ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `g`
[INFO] [stdout]   --> src/exercises/combinators/exercise_28.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     g: impl FnOnce(U) -> Option<V>,
[INFO] [stdout]    |     ^ help: if this is intentional, prefix it with an underscore: `_g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/combinators/exercise_28.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     value: Option<T>,
[INFO] [stdout]    |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/combinators/exercise_28.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     f: impl FnOnce(T) -> Option<U>,
[INFO] [stdout]    |     ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `g`
[INFO] [stdout]   --> src/exercises/combinators/exercise_28.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     g: impl FnOnce(U) -> Option<V>,
[INFO] [stdout]    |     ^ help: if this is intentional, prefix it with an underscore: `_g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `h`
[INFO] [stdout]   --> src/exercises/combinators/exercise_28.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     h: impl FnOnce(V) -> Option<W>,
[INFO] [stdout]    |     ^ help: if this is intentional, prefix it with an underscore: `_h`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/combinators/exercise_28.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     f: impl FnOnce(T) -> Option<U>,
[INFO] [stdout]    |     ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `g`
[INFO] [stdout]   --> src/exercises/combinators/exercise_28.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     g: impl FnOnce(U) -> Option<V>,
[INFO] [stdout]    |     ^ help: if this is intentional, prefix it with an underscore: `_g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/combinators/exercise_29.rs:18:20
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn success(value: T) -> Self {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]   --> src/exercises/combinators/exercise_29.rs:23:20
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn failure(error: E) -> Self {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/combinators/exercise_29.rs:28:28
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub fn map<U, F>(self, f: F) -> Validation<U, E>
[INFO] [stdout]    |                            ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/combinators/exercise_29.rs:36:33
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn and_then<U, F>(self, f: F) -> Validation<U, E>
[INFO] [stdout]    |                                 ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]   --> src/exercises/combinators/exercise_29.rs:44:29
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn combine<U>(self, other: Validation<U, E>) -> Validation<(T, U), E> {
[INFO] [stdout]    |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `username`
[INFO] [stdout]   --> src/exercises/combinators/exercise_29.rs:57:26
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub fn validate_username(username: &str) -> Validation<String, String> {
[INFO] [stdout]    |                          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_username`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `email`
[INFO] [stdout]   --> src/exercises/combinators/exercise_29.rs:61:23
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub fn validate_email(email: &str) -> Validation<String, String> {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_email`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `age`
[INFO] [stdout]   --> src/exercises/combinators/exercise_29.rs:65:21
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn validate_age(age: i32) -> Validation<i32, String> {
[INFO] [stdout]    |                     ^^^ help: if this is intentional, prefix it with an underscore: `_age`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `username`
[INFO] [stdout]   --> src/exercises/combinators/exercise_29.rs:71:5
[INFO] [stdout]    |
[INFO] [stdout] 71 |     username: &str,
[INFO] [stdout]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_username`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `email`
[INFO] [stdout]   --> src/exercises/combinators/exercise_29.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 |     email: &str,
[INFO] [stdout]    |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_email`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `age`
[INFO] [stdout]   --> src/exercises/combinators/exercise_29.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 73 |     age: i32,
[INFO] [stdout]    |     ^^^ help: if this is intentional, prefix it with an underscore: `_age`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parse`
[INFO] [stdout]   --> src/exercises/combinators/exercise_30.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn new<F>(parse: F) -> Self
[INFO] [stdout]    |                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_parse`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/combinators/exercise_30.rs:24:25
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn parse(&self, input: I) -> Option<(O, I)> {
[INFO] [stdout]    |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/combinators/exercise_30.rs:29:29
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub fn map<O2, F>(self, f: F) -> Parser<I, O2>
[INFO] [stdout]    |                             ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/combinators/exercise_30.rs:39:34
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub fn and_then<O2, F>(self, f: F) -> Parser<I, O2>
[INFO] [stdout]    |                                  ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]   --> src/exercises/combinators/exercise_30.rs:49:21
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub fn or(self, other: Parser<I, O>) -> Parser<I, O>
[INFO] [stdout]    |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expected`
[INFO] [stdout]   --> src/exercises/combinators/exercise_30.rs:59:20
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn char_parser(expected: char) -> Parser<String, char> {
[INFO] [stdout]    |                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expected`
[INFO] [stdout]   --> src/exercises/combinators/exercise_30.rs:79:22
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub fn string_parser(expected: &'static str) -> Parser<String, String> {
[INFO] [stdout]    |                      ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_01.rs:11:29
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub async fn async_multiply(a: i32, b: i32) -> i32 {
[INFO] [stdout]    |                             ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_01.rs:11:37
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub async fn async_multiply(a: i32, b: i32) -> i32 {
[INFO] [stdout]    |                                     ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_01.rs:16:24
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub async fn async_add(a: i32, b: i32) -> i32 {
[INFO] [stdout]    |                        ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_01.rs:16:32
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub async fn async_add(a: i32, b: i32) -> i32 {
[INFO] [stdout]    |                                ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_01.rs:21:32
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub async fn multiply_then_add(a: i32, b: i32, c: i32) -> i32 {
[INFO] [stdout]    |                                ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_01.rs:21:40
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub async fn multiply_then_add(a: i32, b: i32, c: i32) -> i32 {
[INFO] [stdout]    |                                        ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_01.rs:21:48
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub async fn multiply_then_add(a: i32, b: i32, c: i32) -> i32 {
[INFO] [stdout]    |                                                ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_02.rs:12:31
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn delayed_greeting(name: &str, delay_ms: u64) -> String {
[INFO] [stdout]    |                               ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delay_ms`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_02.rs:12:43
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn delayed_greeting(name: &str, delay_ms: u64) -> String {
[INFO] [stdout]    |                                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delay_ms`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_02.rs:17:34
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub async fn delayed_computation(value: i32, delay_ms: u64) -> i32 {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delay_ms`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_02.rs:17:46
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub async fn delayed_computation(value: i32, delay_ms: u64) -> i32 {
[INFO] [stdout]    |                                              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delay_ms`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delay1_ms`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_02.rs:22:32
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub async fn sequential_delays(delay1_ms: u64, delay2_ms: u64) -> (String, String) {
[INFO] [stdout]    |                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delay1_ms`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delay2_ms`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_02.rs:22:48
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub async fn sequential_delays(delay1_ms: u64, delay2_ms: u64) -> (String, String) {
[INFO] [stdout]    |                                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delay2_ms`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_03.rs:10:26
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub async fn async_parse(s: &str) -> Result<i32, String> {
[INFO] [stdout]    |                          ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_03.rs:15:27
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub async fn async_divide(a: i32, b: i32) -> Result<i32, String> {
[INFO] [stdout]    |                           ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_03.rs:15:35
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub async fn async_divide(a: i32, b: i32) -> Result<i32, String> {
[INFO] [stdout]    |                                   ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s1`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_03.rs:20:28
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub async fn parse_and_add(s1: &str, s2: &str) -> Result<i32, String> {
[INFO] [stdout]    |                            ^^ help: if this is intentional, prefix it with an underscore: `_s1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s2`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_03.rs:20:38
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub async fn parse_and_add(s1: &str, s2: &str) -> Result<i32, String> {
[INFO] [stdout]    |                                      ^^ help: if this is intentional, prefix it with an underscore: `_s2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_04.rs:12:32
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn spawn_computation(value: i32) -> i32 {
[INFO] [stdout]    |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_04.rs:17:28
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub async fn spawn_and_sum(a: i32, b: i32) -> i32 {
[INFO] [stdout]    |                            ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_04.rs:17:36
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub async fn spawn_and_sum(a: i32, b: i32) -> i32 {
[INFO] [stdout]    |                                    ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `values`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_04.rs:22:29
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub async fn spawn_multiple(values: Vec<i32>) -> Vec<i32> {
[INFO] [stdout]    |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_05.rs:12:34
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn concurrent_multiply(a: i32, b: i32) -> (i32, i32) {
[INFO] [stdout]    |                                  ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_05.rs:12:42
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn concurrent_multiply(a: i32, b: i32) -> (i32, i32) {
[INFO] [stdout]    |                                          ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delay_ms`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_05.rs:17:32
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub async fn concurrent_delays(delay_ms: u64) -> (String, String, String) {
[INFO] [stdout]    |                                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delay_ms`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `values`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_05.rs:22:29
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub async fn concurrent_sum(values: Vec<i32>) -> i32 {
[INFO] [stdout]    |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delay_ms`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_06.rs:12:27
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn with_timeout(delay_ms: u64, timeout_ms: u64) -> Result<String, String> {
[INFO] [stdout]    |                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delay_ms`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timeout_ms`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_06.rs:12:42
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn with_timeout(delay_ms: u64, timeout_ms: u64) -> Result<String, String> {
[INFO] [stdout]    |                                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timeout_ms`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_06.rs:17:26
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub async fn timed_parse(s: &str, timeout_ms: u64) -> Result<i32, String> {
[INFO] [stdout]    |                          ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timeout_ms`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_06.rs:17:35
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub async fn timed_parse(s: &str, timeout_ms: u64) -> Result<i32, String> {
[INFO] [stdout]    |                                   ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timeout_ms`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `operations`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_06.rs:22:32
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub async fn multiple_timeouts(operations: Vec<u64>, timeout_ms: u64) -> Vec<Result<String, String>> {
[INFO] [stdout]    |                                ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operations`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timeout_ms`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_06.rs:22:54
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub async fn multiple_timeouts(operations: Vec<u64>, timeout_ms: u64) -> Vec<Result<String, String>> {
[INFO] [stdout]    |                                                      ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timeout_ms`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_07.rs:10:34
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub async fn execute_async_block(value: i32) -> i32 {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `values`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_07.rs:15:24
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub async fn async_map(values: Vec<i32>) -> Vec<i32> {
[INFO] [stdout]    |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_07.rs:20:33
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub async fn chain_async_blocks(x: i32) -> i32 {
[INFO] [stdout]    |                                 ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `values`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_08.rs:10:25
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub async fn async_find(values: Vec<i32>, target: i32) -> Option<usize> {
[INFO] [stdout]    |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_08.rs:10:43
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub async fn async_find(values: Vec<i32>, target: i32) -> Option<usize> {
[INFO] [stdout]    |                                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_08.rs:15:32
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub async fn first_valid_parse(strings: Vec<&str>) -> Option<i32> {
[INFO] [stdout]    |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_08.rs:20:33
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub async fn chain_optional_ops(value: Option<i32>) -> Option<i32> {
[INFO] [stdout]    |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delay1_ms`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_09.rs:12:23
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn race_two(delay1_ms: u64, delay2_ms: u64) -> String {
[INFO] [stdout]    |                       ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delay1_ms`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delay2_ms`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_09.rs:12:39
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn race_two(delay1_ms: u64, delay2_ms: u64) -> String {
[INFO] [stdout]    |                                       ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delay2_ms`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `values`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_09.rs:17:32
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub async fn first_to_complete(values: Vec<(i32, u64)>) -> i32 {
[INFO] [stdout]    |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_09.rs:21:29
[INFO] [stdout]    |
[INFO] [stdout] 21 | async fn compute_with_delay(value: i32, delay_ms: u64) -> i32 {
[INFO] [stdout]    |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delay_ms`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_09.rs:21:41
[INFO] [stdout]    |
[INFO] [stdout] 21 | async fn compute_with_delay(value: i32, delay_ms: u64) -> i32 {
[INFO] [stdout]    |                                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delay_ms`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_09.rs:26:28
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub async fn with_fallback(value: i32, delay_ms: u64, timeout_ms: u64) -> Result<i32, String> {
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delay_ms`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_09.rs:26:40
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub async fn with_fallback(value: i32, delay_ms: u64, timeout_ms: u64) -> Result<i32, String> {
[INFO] [stdout]    |                                        ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delay_ms`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timeout_ms`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_09.rs:26:55
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub async fn with_fallback(value: i32, delay_ms: u64, timeout_ms: u64) -> Result<i32, String> {
[INFO] [stdout]    |                                                       ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timeout_ms`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `values`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_10.rs:12:26
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn send_values(values: Vec<i32>) -> Vec<i32> {
[INFO] [stdout]    |                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `values`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_10.rs:17:32
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub async fn channel_transform(values: Vec<i32>) -> Vec<i32> {
[INFO] [stdout]    |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_10.rs:22:33
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub async fn multiple_producers(count: usize) -> Vec<i32> {
[INFO] [stdout]    |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_tasks`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_11.rs:13:33
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub async fn concurrent_counter(num_tasks: usize, increments_per_task: usize) -> i32 {
[INFO] [stdout]    |                                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_tasks`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `increments_per_task`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_11.rs:13:51
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub async fn concurrent_counter(num_tasks: usize, increments_per_task: usize) -> i32 {
[INFO] [stdout]    |                                                   ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_increments_per_task`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_tasks`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_11.rs:18:28
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub async fn shared_vector(num_tasks: usize) -> Vec<i32> {
[INFO] [stdout]    |                            ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_tasks`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tasks`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_11.rs:23:25
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub async fn task_queue(tasks: Vec<i32>) -> Vec<i32> {
[INFO] [stdout]    |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_tasks`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s1`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_12.rs:12:29
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn try_parse_both(s1: &str, s2: &str) -> Result<(i32, i32), String> {
[INFO] [stdout]    |                             ^^ help: if this is intentional, prefix it with an underscore: `_s1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s2`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_12.rs:12:39
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn try_parse_both(s1: &str, s2: &str) -> Result<(i32, i32), String> {
[INFO] [stdout]    |                                       ^^ help: if this is intentional, prefix it with an underscore: `_s2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `operations`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_12.rs:17:35
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub async fn concurrent_divisions(operations: Vec<(i32, i32)>) -> Result<Vec<i32>, String> {
[INFO] [stdout]    |                                   ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operations`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_12.rs:21:17
[INFO] [stdout]    |
[INFO] [stdout] 21 | async fn divide(a: i32, b: i32) -> Result<i32, String> {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_12.rs:21:25
[INFO] [stdout]    |
[INFO] [stdout] 21 | async fn divide(a: i32, b: i32) -> Result<i32, String> {
[INFO] [stdout]    |                         ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strings`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_12.rs:26:32
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub async fn parse_all_or_none(strings: Vec<String>) -> Result<Vec<i32>, String> {
[INFO] [stdout]    |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strings`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_13.rs:10:38
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub async fn async_map<F, Fut, T, R>(items: Vec<T>, f: F) -> Vec<R>
[INFO] [stdout]    |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_13.rs:10:53
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub async fn async_map<F, Fut, T, R>(items: Vec<T>, f: F) -> Vec<R>
[INFO] [stdout]    |                                                     ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_13.rs:19:38
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub async fn async_filter<F, Fut, T>(items: Vec<T>, pred: F) -> Vec<T>
[INFO] [stdout]    |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pred`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_13.rs:19:53
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub async fn async_filter<F, Fut, T>(items: Vec<T>, pred: F) -> Vec<T>
[INFO] [stdout]    |                                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_pred`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_13.rs:29:39
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub async fn async_fold<F, Fut, T, R>(items: Vec<T>, init: R, f: F) -> R
[INFO] [stdout]    |                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `init`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_13.rs:29:54
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub async fn async_fold<F, Fut, T, R>(items: Vec<T>, init: R, f: F) -> R
[INFO] [stdout]    |                                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_init`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_13.rs:29:63
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub async fn async_fold<F, Fut, T, R>(items: Vec<T>, init: R, f: F) -> R
[INFO] [stdout]    |                                                               ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_attempts`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_14.rs:12:34
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn retry<F, Fut, T, E>(max_attempts: u32, mut operation: F) -> Result<T, E>
[INFO] [stdout]    |                                  ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_attempts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `operation`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_14.rs:12:53
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn retry<F, Fut, T, E>(max_attempts: u32, mut operation: F) -> Result<T, E>
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_attempts`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_14.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     max_attempts: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_attempts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `base_delay_ms`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_14.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     base_delay_ms: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_base_delay_ms`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `operation`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_14.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     mut operation: F,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operation`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fail_until`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_14.rs:40:16
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn new(fail_until: u32) -> Self {
[INFO] [stdout]    |                ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fail_until`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_15.rs:13:31
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub async fn concurrent_reads(value: i32, num_readers: usize) -> Vec<i32> {
[INFO] [stdout]    |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_readers`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_15.rs:13:43
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub async fn concurrent_reads(value: i32, num_readers: usize) -> Vec<i32> {
[INFO] [stdout]    |                                           ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_readers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_15.rs:18:31
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub async fn mixed_read_write(initial: i32, operations: Vec<(&str, i32)>) -> i32 {
[INFO] [stdout]    |                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `operations`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_15.rs:18:45
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub async fn mixed_read_write(initial: i32, operations: Vec<(&str, i32)>) -> i32 {
[INFO] [stdout]    |                                             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operations`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `operations`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_15.rs:23:27
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub async fn shared_cache(operations: Vec<(String, Option<i32>)>) -> Vec<Option<i32>> {
[INFO] [stdout]    |                           ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operations`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tasks`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_16.rs:14:34
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub async fn limited_concurrency(tasks: Vec<i32>, max_concurrent: usize) -> Vec<i32> {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_tasks`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_concurrent`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_16.rs:14:51
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub async fn limited_concurrency(tasks: Vec<i32>, max_concurrent: usize) -> Vec<i32> {
[INFO] [stdout]    |                                                   ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_concurrent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_calls`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_16.rs:19:33
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub async fn rate_limited_calls(num_calls: usize, rate_limit: usize) -> Vec<usize> {
[INFO] [stdout]    |                                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_calls`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rate_limit`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_16.rs:19:51
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub async fn rate_limited_calls(num_calls: usize, rate_limit: usize) -> Vec<usize> {
[INFO] [stdout]    |                                                   ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rate_limit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `requests`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_16.rs:24:28
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub async fn resource_pool(requests: usize, pool_size: usize) -> Vec<String> {
[INFO] [stdout]    |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_requests`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool_size`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_16.rs:24:45
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub async fn resource_pool(requests: usize, pool_size: usize) -> Vec<String> {
[INFO] [stdout]    |                                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pool_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_tasks`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_17.rs:14:33
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub async fn synchronized_tasks(num_tasks: usize, delays_ms: Vec<u64>) -> Vec<String> {
[INFO] [stdout]    |                                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_tasks`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delays_ms`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_17.rs:14:51
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub async fn synchronized_tasks(num_tasks: usize, delays_ms: Vec<u64>) -> Vec<String> {
[INFO] [stdout]    |                                                   ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delays_ms`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_workers`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_17.rs:19:38
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub async fn multi_phase_computation(num_workers: usize) -> Vec<i32> {
[INFO] [stdout]    |                                      ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_workers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `batches`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_17.rs:24:31
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub async fn batch_processing(batches: Vec<Vec<i32>>) -> Vec<i32> {
[INFO] [stdout]    |                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_batches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delay_ms`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_18.rs:14:30
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub async fn wait_for_signal(delay_ms: u64) -> String {
[INFO] [stdout]    |                              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delay_ms`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_18.rs:19:32
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub async fn producer_consumer(items: Vec<i32>) -> Vec<i32> {
[INFO] [stdout]    |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_waiters`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_18.rs:24:37
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub async fn broadcast_notification(num_waiters: usize) -> Vec<String> {
[INFO] [stdout]    |                                     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_waiters`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `updates`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_19.rs:13:32
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub async fn broadcast_updates(updates: Vec<i32>) -> Vec<Vec<i32>> {
[INFO] [stdout]    |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_updates`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `states`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_19.rs:18:28
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub async fn state_monitor(states: Vec<String>) -> Vec<String> {
[INFO] [stdout]    |                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_states`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `values`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_19.rs:23:35
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub async fn latest_value_tracker(values: Vec<i32>, delay_ms: u64) -> i32 {
[INFO] [stdout]    |                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delay_ms`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_19.rs:23:53
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub async fn latest_value_tracker(values: Vec<i32>, delay_ms: u64) -> i32 {
[INFO] [stdout]    |                                                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delay_ms`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_20.rs:13:31
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub async fn compute_and_send(value: i32, delay_ms: u64) -> i32 {
[INFO] [stdout]    |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delay_ms`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_20.rs:13:43
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub async fn compute_and_send(value: i32, delay_ms: u64) -> i32 {
[INFO] [stdout]    |                                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delay_ms`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `requests`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_20.rs:18:31
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub async fn request_response(requests: Vec<i32>) -> Vec<i32> {
[INFO] [stdout]    |                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_requests`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_20.rs:23:32
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub async fn with_cancellation(value: i32, should_cancel: bool) -> Result<i32, String> {
[INFO] [stdout]    |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `should_cancel`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_20.rs:23:44
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub async fn with_cancellation(value: i32, should_cancel: bool) -> Result<i32, String> {
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_should_cancel`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `values`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_21.rs:12:31
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn stream_from_iter(values: Vec<i32>) -> Vec<i32> {
[INFO] [stdout]    |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `values`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_21.rs:17:25
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub async fn stream_map(values: Vec<i32>) -> Vec<i32> {
[INFO] [stdout]    |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `values`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_21.rs:22:28
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub async fn stream_filter(values: Vec<i32>) -> Vec<i32> {
[INFO] [stdout]    |                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `values`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_21.rs:27:30
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub async fn stream_pipeline(values: Vec<i32>) -> Vec<i32> {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `values`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_22.rs:13:43
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub async fn concurrent_stream_processing(values: Vec<i32>) -> Vec<i32> {
[INFO] [stdout]    |                                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `values`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_22.rs:18:27
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub async fn buffered_map(values: Vec<i32>, buffer_size: usize) -> Vec<i32> {
[INFO] [stdout]    |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer_size`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_22.rs:18:45
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub async fn buffered_map(values: Vec<i32>, buffer_size: usize) -> Vec<i32> {
[INFO] [stdout]    |                                             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `values`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_22.rs:23:26
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub async fn stream_fold(values: Vec<i32>) -> i32 {
[INFO] [stdout]    |                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `values`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_22.rs:28:28
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub async fn stream_chunks(values: Vec<i32>, chunk_size: usize) -> Vec<Vec<i32>> {
[INFO] [stdout]    |                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `chunk_size`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_22.rs:28:46
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub async fn stream_chunks(values: Vec<i32>, chunk_size: usize) -> Vec<Vec<i32>> {
[INFO] [stdout]    |                                              ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_chunk_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `values`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_23.rs:14:35
[INFO] [stdout]    |
[INFO] [stdout] 14 |     async fn process_batch(&self, values: Vec<i32>) -> Vec<i32> {
[INFO] [stdout]    |                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_23.rs:23:29
[INFO] [stdout]    |
[INFO] [stdout] 23 |     async fn process(&self, value: i32) -> i32 {
[INFO] [stdout]    |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_23.rs:32:29
[INFO] [stdout]    |
[INFO] [stdout] 32 |     async fn process(&self, value: i32) -> i32 {
[INFO] [stdout]    |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `processor`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_23.rs:38:33
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub async fn process_with_trait(processor: &dyn AsyncProcessor, values: Vec<i32>) -> Vec<i32> {
[INFO] [stdout]    |                                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_processor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `values`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_23.rs:38:65
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub async fn process_with_trait(processor: &dyn AsyncProcessor, values: Vec<i32>) -> Vec<i32> {
[INFO] [stdout]    |                                                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_23.rs:43:31
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub async fn chain_processors(value: i32) -> i32 {
[INFO] [stdout]    |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `token`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_24.rs:13:31
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub async fn cancellable_task(token: CancellationToken) -> i32 {
[INFO] [stdout]    |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_token`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_tasks`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_24.rs:18:39
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub async fn coordinated_cancellation(num_tasks: usize, run_duration_ms: u64) -> Vec<i32> {
[INFO] [stdout]    |                                       ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_tasks`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `run_duration_ms`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_24.rs:18:57
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub async fn coordinated_cancellation(num_tasks: usize, run_duration_ms: u64) -> Vec<i32> {
[INFO] [stdout]    |                                                         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_run_duration_ms`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tasks`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_25.rs:13:31
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub async fn dynamic_task_set(tasks: Vec<(i32, u64)>) -> Vec<i32> {
[INFO] [stdout]    |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_tasks`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_tasks`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_25.rs:18:35
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub async fn process_as_completed(num_tasks: usize) -> Vec<usize> {
[INFO] [stdout]    |                                   ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_tasks`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial_values`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_25.rs:23:35
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub async fn conditional_spawning(initial_values: Vec<i32>) -> Vec<i32> {
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_26.rs:12:24
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn async_factorial(n: u64) -> std::pin::Pin<Box<dyn std::future::Future<Output = u64> + Send>> {
[INFO] [stdout]    |                        ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_26.rs:17:24
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn async_fibonacci(n: u64) -> std::pin::Pin<Box<dyn std::future::Future<Output = u64> + Send>> {
[INFO] [stdout]    |                        ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_26.rs:28:22
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn traverse_tree(node: TreeNode) -> std::pin::Pin<Box<dyn std::future::Future<Output = Vec<i32>> + Send>> {
[INFO] [stdout]    |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_27.rs:18:16
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn new(id: String, cleanup_log: Arc<Mutex<Vec<String>>>) -> Self {
[INFO] [stdout]    |                ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cleanup_log`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_27.rs:18:28
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn new(id: String, cleanup_log: Arc<Mutex<Vec<String>>>) -> Self {
[INFO] [stdout]    |                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cleanup_log`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_resources`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_27.rs:28:32
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub async fn managed_resources(num_resources: usize) -> Vec<String> {
[INFO] [stdout]    |                                ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_resources`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_27.rs:38:16
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn new(id: usize, closed: Arc<Mutex<Vec<usize>>>) -> Self {
[INFO] [stdout]    |                ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `closed`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_27.rs:38:27
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn new(id: usize, closed: Arc<Mutex<Vec<usize>>>) -> Self {
[INFO] [stdout]    |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_closed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_connections`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_27.rs:48:39
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub async fn connection_pool_shutdown(num_connections: usize) -> Vec<usize> {
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_connections`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_27.rs:59:16
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub fn new(name: String, log: Arc<Mutex<Vec<String>>>) -> Self {
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `log`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_27.rs:59:30
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub fn new(name: String, log: Arc<Mutex<Vec<String>>>) -> Self {
[INFO] [stdout]    |                              ^^^ help: if this is intentional, prefix it with an underscore: `_log`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request_id`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_28.rs:20:16
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn new(request_id: String) -> Self {
[INFO] [stdout]    |                ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/exercises/async_rust/exercise_28.rs:24:22
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn with_user(mut self, user_id: String) -> Self {
[INFO] [stdout]    |                      ----^^^^
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user_id`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_28.rs:24:32
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn with_user(mut self, user_id: String) -> Self {
[INFO] [stdout]    |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entry`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_28.rs:28:33
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub fn add_trace(&mut self, entry: String) {
[INFO] [stdout]    |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_entry`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_28.rs:34:35
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub async fn process_with_context(mut ctx: RequestContext, value: i32) -> (RequestContext, i32) {
[INFO] [stdout]    |                                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_28.rs:34:60
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub async fn process_with_context(mut ctx: RequestContext, value: i32) -> (RequestContext, i32) {
[INFO] [stdout]    |                                                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_28.rs:39:36
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub async fn pipeline_with_context(ctx: RequestContext, values: Vec<i32>) -> RequestContext {
[INFO] [stdout]    |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `values`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_28.rs:39:57
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub async fn pipeline_with_context(ctx: RequestContext, values: Vec<i32>) -> RequestContext {
[INFO] [stdout]    |                                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_28.rs:44:36
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub async fn parallel_with_context(ctx: RequestContext, values: Vec<i32>) -> Vec<RequestContext> {
[INFO] [stdout]    |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `values`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_28.rs:44:57
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub async fn parallel_with_context(ctx: RequestContext, values: Vec<i32>) -> Vec<RequestContext> {
[INFO] [stdout]    |                                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_values`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_28.rs:62:16
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn new(config: Arc<Config>, request_id: String) -> Self {
[INFO] [stdout]    |                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request_id`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_28.rs:62:37
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn new(config: Arc<Config>, request_id: String) -> Self {
[INFO] [stdout]    |                                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_28.rs:67:44
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub async fn operation_with_shared_context(ctx: SharedContext) -> u64 {
[INFO] [stdout]    |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `duration`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_29.rs:21:16
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(duration: Duration) -> Self {
[INFO] [stdout]    |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_duration`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cx`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_29.rs:29:35
[INFO] [stdout]    |
[INFO] [stdout] 29 |     fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output> {
[INFO] [stdout]    |                                   ^^ help: if this is intentional, prefix it with an underscore: `_cx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_29.rs:40:16
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn new(value: T) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cx`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_29.rs:73:35
[INFO] [stdout]    |
[INFO] [stdout] 73 |     fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output> {
[INFO] [stdout]    |                                   ^^ help: if this is intentional, prefix it with an underscore: `_cx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_29.rs:83:27
[INFO] [stdout]    |
[INFO] [stdout] 83 |     pub fn complete(self, value: T) {
[INFO] [stdout]    |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_concurrent`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_30.rs:29:16
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub fn new(max_concurrent: usize) -> Self {
[INFO] [stdout]    |                ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_concurrent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_30.rs:33:34
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub async fn add_work(&self, item: WorkItem, high_priority: bool) {
[INFO] [stdout]    |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `high_priority`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_30.rs:33:50
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub async fn add_work(&self, item: WorkItem, high_priority: bool) {
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_high_priority`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_size`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_30.rs:58:16
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn new(max_size: usize) -> Self {
[INFO] [stdout]    |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_30.rs:62:29
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub async fn get(&self, key: &str) -> Option<i32> {
[INFO] [stdout]    |                             ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_30.rs:66:29
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub async fn set(&self, key: String, value: i32, ttl_ms: u64) -> Result<(), String> {
[INFO] [stdout]    |                             ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_30.rs:66:42
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub async fn set(&self, key: String, value: i32, ttl_ms: u64) -> Result<(), String> {
[INFO] [stdout]    |                                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ttl_ms`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_30.rs:66:54
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub async fn set(&self, key: String, value: i32, ttl_ms: u64) -> Result<(), String> {
[INFO] [stdout]    |                                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_ttl_ms`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `task`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_30.rs:91:33
[INFO] [stdout]    |
[INFO] [stdout] 91 |     pub async fn execute(&self, task: Task) -> Result<i32, String> {
[INFO] [stdout]    |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_task`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tasks`
[INFO] [stdout]   --> src/exercises/async_rust/exercise_30.rs:95:37
[INFO] [stdout]    |
[INFO] [stdout] 95 |     pub async fn execute_all(&self, tasks: Vec<Task>) -> HashMap<String, i32> {
[INFO] [stdout]    |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_tasks`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/threads/exercise_01.rs:13:26
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn spawn_and_compute(n: i32) -> i32 {
[INFO] [stdout]    |                          ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/threads/exercise_02.rs:13:25
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn parallel_squares(n: usize) -> Vec<usize> {
[INFO] [stdout]    |                         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `millis`
[INFO] [stdout]   --> src/exercises/threads/exercise_03.rs:13:25
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn sleep_and_return(millis: u64, value: i32) -> i32 {
[INFO] [stdout]    |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_millis`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/threads/exercise_03.rs:13:38
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn sleep_and_return(millis: u64, value: i32) -> i32 {
[INFO] [stdout]    |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/threads/exercise_04.rs:14:24
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn channel_numbers(n: i32) -> Vec<i32> {
[INFO] [stdout]    |                        ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_threads`
[INFO] [stdout]   --> src/exercises/threads/exercise_05.rs:14:25
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn sum_from_threads(n_threads: usize) -> usize {
[INFO] [stdout]    |                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_threads`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/threads/exercise_06.rs:13:21
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn safe_compute(value: i32) -> Result<i32, String> {
[INFO] [stdout]    |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/exercises/threads/exercise_07.rs:12:28
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn create_named_thread(name: &str) -> String {
[INFO] [stdout]    |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timeout_ms`
[INFO] [stdout]   --> src/exercises/threads/exercise_08.rs:15:29
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn receive_with_timeout(timeout_ms: u64) -> Option<i32> {
[INFO] [stdout]    |                             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timeout_ms`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_threads`
[INFO] [stdout]   --> src/exercises/threads/exercise_09.rs:14:27
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn concurrent_counter(n_threads: usize, n_times: usize) -> usize {
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_threads`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_times`
[INFO] [stdout]   --> src/exercises/threads/exercise_09.rs:14:45
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn concurrent_counter(n_threads: usize, n_times: usize) -> usize {
[INFO] [stdout]    |                                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_times`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_threads`
[INFO] [stdout]   --> src/exercises/threads/exercise_10.rs:14:28
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn concurrent_vec_push(n_threads: usize) -> Vec<usize> {
[INFO] [stdout]    |                            ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_threads`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_producers`
[INFO] [stdout]   --> src/exercises/threads/exercise_11.rs:16:26
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn producer_consumer(n_producers: usize, n_consumers: usize, items_per_producer: usize) -> usize {
[INFO] [stdout]    |                          ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_producers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_consumers`
[INFO] [stdout]   --> src/exercises/threads/exercise_11.rs:16:46
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn producer_consumer(n_producers: usize, n_consumers: usize, items_per_producer: usize) -> usize {
[INFO] [stdout]    |                                              ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_consumers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items_per_producer`
[INFO] [stdout]   --> src/exercises/threads/exercise_11.rs:16:66
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn producer_consumer(n_producers: usize, n_consumers: usize, items_per_producer: usize) -> usize {
[INFO] [stdout]    |                                                                  ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_items_per_producer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_readers`
[INFO] [stdout]   --> src/exercises/threads/exercise_12.rs:14:26
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn rwlock_operations(n_readers: usize, value: i32) -> i32 {
[INFO] [stdout]    |                          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_readers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/threads/exercise_12.rs:14:44
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn rwlock_operations(n_readers: usize, value: i32) -> i32 {
[INFO] [stdout]    |                                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_workers`
[INFO] [stdout]   --> src/exercises/threads/exercise_13.rs:15:27
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn simple_thread_pool(n_workers: usize, n_tasks: usize) -> usize {
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_workers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_tasks`
[INFO] [stdout]   --> src/exercises/threads/exercise_13.rs:15:45
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn simple_thread_pool(n_workers: usize, n_tasks: usize) -> usize {
[INFO] [stdout]    |                                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_tasks`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/exercises/threads/exercise_14.rs:13:30
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn parallel_map<T, U, F>(data: Vec<T>, n_threads: usize, f: F) -> Vec<U>
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_threads`
[INFO] [stdout]   --> src/exercises/threads/exercise_14.rs:13:44
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn parallel_map<T, U, F>(data: Vec<T>, n_threads: usize, f: F) -> Vec<U>
[INFO] [stdout]    |                                            ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_threads`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/threads/exercise_14.rs:13:62
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn parallel_map<T, U, F>(data: Vec<T>, n_threads: usize, f: F) -> Vec<U>
[INFO] [stdout]    |                                                              ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `numbers`
[INFO] [stdout]   --> src/exercises/threads/exercise_15.rs:12:21
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn parallel_sum(numbers: Vec<i64>, n_threads: usize) -> i64 {
[INFO] [stdout]    |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_numbers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_threads`
[INFO] [stdout]   --> src/exercises/threads/exercise_15.rs:12:40
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn parallel_sum(numbers: Vec<i64>, n_threads: usize) -> i64 {
[INFO] [stdout]    |                                        ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_threads`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/exercises/threads/exercise_16.rs:12:27
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn parallel_increment(data: &mut [i32], n_threads: usize) {
[INFO] [stdout]    |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_threads`
[INFO] [stdout]   --> src/exercises/threads/exercise_16.rs:12:45
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn parallel_increment(data: &mut [i32], n_threads: usize) {
[INFO] [stdout]    |                                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_threads`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `account1`
[INFO] [stdout]   --> src/exercises/threads/exercise_17.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     account1: Arc<Mutex<i32>>,
[INFO] [stdout]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `account2`
[INFO] [stdout]   --> src/exercises/threads/exercise_17.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     account2: Arc<Mutex<i32>>,
[INFO] [stdout]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `amount`
[INFO] [stdout]   --> src/exercises/threads/exercise_17.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     amount: i32,
[INFO] [stdout]    |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_amount`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial_balance`
[INFO] [stdout]   --> src/exercises/threads/exercise_17.rs:24:27
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn parallel_transfers(initial_balance: i32, n_transfers: usize) -> (i32, i32) {
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial_balance`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_transfers`
[INFO] [stdout]   --> src/exercises/threads/exercise_17.rs:24:49
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn parallel_transfers(initial_balance: i32, n_transfers: usize) -> (i32, i32) {
[INFO] [stdout]    |                                                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_transfers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `capacity`
[INFO] [stdout]   --> src/exercises/threads/exercise_18.rs:15:29
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn bounded_channel_test(capacity: usize, n_items: usize) -> Vec<i32> {
[INFO] [stdout]    |                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_capacity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_items`
[INFO] [stdout]   --> src/exercises/threads/exercise_18.rs:15:46
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn bounded_channel_test(capacity: usize, n_items: usize) -> Vec<i32> {
[INFO] [stdout]    |                                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_readers`
[INFO] [stdout]   --> src/exercises/threads/exercise_19.rs:15:28
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn rwlock_multi_writer(n_readers: usize, n_writers: usize, increments_per_writer: usize) -> i32 {
[INFO] [stdout]    |                            ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_readers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_writers`
[INFO] [stdout]   --> src/exercises/threads/exercise_19.rs:15:46
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn rwlock_multi_writer(n_readers: usize, n_writers: usize, increments_per_writer: usize) -> i32 {
[INFO] [stdout]    |                                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_writers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `increments_per_writer`
[INFO] [stdout]   --> src/exercises/threads/exercise_19.rs:15:64
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn rwlock_multi_writer(n_readers: usize, n_writers: usize, increments_per_writer: usize) -> i32 {
[INFO] [stdout]    |                                                                ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_increments_per_writer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timeout_ms`
[INFO] [stdout]   --> src/exercises/threads/exercise_20.rs:14:26
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn park_with_timeout(timeout_ms: u64) -> bool {
[INFO] [stdout]    |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timeout_ms`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_threads`
[INFO] [stdout]   --> src/exercises/threads/exercise_21.rs:14:23
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn barrier_phases(n_threads: usize) -> (usize, usize) {
[INFO] [stdout]    |                       ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_threads`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/threads/exercise_22.rs:13:24
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn condvar_pattern(value: i32) -> i32 {
[INFO] [stdout]    |                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_threads`
[INFO] [stdout]   --> src/exercises/threads/exercise_23.rs:14:23
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn atomic_counter(n_threads: usize, increments_per_thread: usize) -> usize {
[INFO] [stdout]    |                       ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_threads`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `increments_per_thread`
[INFO] [stdout]   --> src/exercises/threads/exercise_23.rs:14:41
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn atomic_counter(n_threads: usize, increments_per_thread: usize) -> usize {
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_increments_per_thread`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_threads`
[INFO] [stdout]   --> src/exercises/threads/exercise_24.rs:15:33
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn atomic_bounded_increment(n_threads: usize, max_value: usize) -> usize {
[INFO] [stdout]    |                                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_threads`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_value`
[INFO] [stdout]   --> src/exercises/threads/exercise_24.rs:15:51
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn atomic_bounded_increment(n_threads: usize, max_value: usize) -> usize {
[INFO] [stdout]    |                                                   ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_threads`
[INFO] [stdout]   --> src/exercises/threads/exercise_25.rs:19:25
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn thread_local_sum(n_threads: usize, increments_per_thread: usize) -> usize {
[INFO] [stdout]    |                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_threads`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `increments_per_thread`
[INFO] [stdout]   --> src/exercises/threads/exercise_25.rs:19:43
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn thread_local_sum(n_threads: usize, increments_per_thread: usize) -> usize {
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_increments_per_thread`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_threads`
[INFO] [stdout]   --> src/exercises/threads/exercise_26.rs:32:25
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn spinlock_counter(n_threads: usize, increments_per_thread: usize) -> usize {
[INFO] [stdout]    |                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_threads`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `increments_per_thread`
[INFO] [stdout]   --> src/exercises/threads/exercise_26.rs:32:43
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn spinlock_counter(n_threads: usize, increments_per_thread: usize) -> usize {
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_increments_per_thread`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_threads`
[INFO] [stdout]   --> src/exercises/threads/exercise_27.rs:15:25
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn relaxed_counters(n_threads: usize) -> (usize, usize) {
[INFO] [stdout]    |                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_threads`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/threads/exercise_28.rs:15:32
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn acquire_release_pattern(value: usize) -> usize {
[INFO] [stdout]    |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/exercises/threads/exercise_29.rs:27:24
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn push(&self, data: T) {
[INFO] [stdout]    |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_threads`
[INFO] [stdout]   --> src/exercises/threads/exercise_29.rs:50:29
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn test_lock_free_stack(n_threads: usize, operations_per_thread: usize) -> usize {
[INFO] [stdout]    |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_threads`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `operations_per_thread`
[INFO] [stdout]   --> src/exercises/threads/exercise_29.rs:50:47
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn test_lock_free_stack(n_threads: usize, operations_per_thread: usize) -> usize {
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_operations_per_thread`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/exercises/threads/exercise_30.rs:23:16
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn new(data: T) -> Self {
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/exercises/threads/exercise_30.rs:31:25
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub fn write(&self, data: T) {
[INFO] [stdout]    |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_readers`
[INFO] [stdout]   --> src/exercises/threads/exercise_30.rs:37:21
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn test_seqlock(n_readers: usize, n_writes: usize) -> Vec<i32> {
[INFO] [stdout]    |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_readers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_writes`
[INFO] [stdout]   --> src/exercises/threads/exercise_30.rs:37:39
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn test_seqlock(n_readers: usize, n_writes: usize) -> Vec<i32> {
[INFO] [stdout]    |                                       ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_writes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_02.rs:20:16
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn new(initial: i32) -> Self {
[INFO] [stdout]    |                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_03.rs:46:35
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn introduce<T: Named + Aged>(entity: &T) -> String {
[INFO] [stdout]    |                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_04.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn new(name: String) -> Self {
[INFO] [stdout]    |            ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_04.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn new(name: String) -> Self {
[INFO] [stdout]    |            ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_06.rs:36:22
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn print_summary(item: &impl Summarizable) -> String {
[INFO] [stdout]    |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_06.rs:41:37
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn get_summary<T: Summarizable>(item: &T) -> String {
[INFO] [stdout]    |                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item1`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_06.rs:46:43
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn combine_summaries<T: Summarizable>(item1: &T, item2: &T) -> String {
[INFO] [stdout]    |                                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_item1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item2`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_06.rs:46:54
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn combine_summaries<T: Summarizable>(item1: &T, item2: &T) -> String {
[INFO] [stdout]    |                                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_item2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `radius`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_07.rs:35:22
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn create_circle(radius: f64) -> impl Drawable {
[INFO] [stdout]    |                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_radius`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_07.rs:42:25
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn create_rectangle(width: f64, height: f64) -> impl Drawable {
[INFO] [stdout]    |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_07.rs:42:37
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn create_rectangle(width: f64, height: f64) -> impl Drawable {
[INFO] [stdout]    |                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `shape`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_07.rs:49:19
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub fn draw_shape(shape: &impl Drawable) -> String {
[INFO] [stdout]    |                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_shape`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dx`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_08.rs:26:27
[INFO] [stdout]    |
[INFO] [stdout] 26 |     fn move_by(&mut self, dx: i32, dy: i32) {
[INFO] [stdout]    |                           ^^ help: if this is intentional, prefix it with an underscore: `_dx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dy`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_08.rs:26:36
[INFO] [stdout]    |
[INFO] [stdout] 26 |     fn move_by(&mut self, dx: i32, dy: i32) {
[INFO] [stdout]    |                                    ^^ help: if this is intentional, prefix it with an underscore: `_dy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dx`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_08.rs:32:27
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn move_by(&mut self, dx: i32, dy: i32) {
[INFO] [stdout]    |                           ^^ help: if this is intentional, prefix it with an underscore: `_dx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dy`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_08.rs:32:36
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn move_by(&mut self, dx: i32, dy: i32) {
[INFO] [stdout]    |                                    ^^ help: if this is intentional, prefix it with an underscore: `_dy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `animals`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_09.rs:62:19
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn zoo_chorus(animals: &[Box<dyn Animal>]) -> Vec<String> {
[INFO] [stdout]    |                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_animals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `renderer`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_10.rs:57:23
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub fn render_dynamic(renderer: &dyn Renderer) -> String {
[INFO] [stdout]    |                       ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_renderer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `renderer`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_10.rs:62:35
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn render_static<T: Renderer>(renderer: &T) -> String {
[INFO] [stdout]    |                                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_renderer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `renderers`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_10.rs:67:19
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn render_all(renderers: &[&dyn Renderer]) -> Vec<String> {
[INFO] [stdout]    |                   ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_renderers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `message`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_11.rs:13:24
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn log_info(&self, message: &str) -> String {
[INFO] [stdout]    |                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `message`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_11.rs:18:25
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn log_error(&self, message: &str) -> String {
[INFO] [stdout]    |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `message`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_11.rs:23:25
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn log_debug(&self, message: &str) -> String {
[INFO] [stdout]    |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `message`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_11.rs:31:19
[INFO] [stdout]    |
[INFO] [stdout] 31 |     fn log(&self, message: &str) -> String {
[INFO] [stdout]    |                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `message`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_11.rs:41:19
[INFO] [stdout]    |
[INFO] [stdout] 41 |     fn log(&self, message: &str) -> String {
[INFO] [stdout]    |                   ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `message`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_11.rs:46:25
[INFO] [stdout]    |
[INFO] [stdout] 46 |     fn log_error(&self, message: &str) -> String {
[INFO] [stdout]    |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `shape`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_12.rs:72:45
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub fn print_colored_shape<T: ColoredShape>(shape: &T) -> String {
[INFO] [stdout]    |                                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_shape`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_13.rs:39:19
[INFO] [stdout]    |
[INFO] [stdout] 39 |     fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_13.rs:45:48
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn log_item<T: Identifiable + Timestamped>(item: &T) -> String {
[INFO] [stdout]    |                                                ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_13.rs:50:58
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn full_log<T: Identifiable + Timestamped + Display>(item: &T) -> String {
[INFO] [stdout]    |                                                          ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_13.rs:55:51
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn duplicate_and_log<T: Identifiable + Clone>(item: &T) -> (T, String) {
[INFO] [stdout]    |                                                   ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_13.rs:60:29
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub fn complex_operation<T>(item: &T) -> String
[INFO] [stdout]    |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `task`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_14.rs:71:32
[INFO] [stdout]    |
[INFO] [stdout] 71 |     pub fn add_task(&mut self, task: Box<dyn Task>) {
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_task`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_15.rs:25:30
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn is_larger_than(&self, other: &impl Measurable) -> bool {
[INFO] [stdout]    |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_15.rs:65:52
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn compare_sizes<T: Measurable, U: Measurable>(a: &T, b: &U) -> String {
[INFO] [stdout]    |                                                    ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_15.rs:65:59
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn compare_sizes<T: Measurable, U: Measurable>(a: &T, b: &U) -> String {
[INFO] [stdout]    |                                                           ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `message`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_16.rs:18:20
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn send(&self, message: &str) -> String {
[INFO] [stdout]    |                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `message`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_16.rs:28:20
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn send(&self, message: &str) -> String {
[INFO] [stdout]    |                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `message`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_16.rs:38:20
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn send(&self, message: &str) -> String {
[INFO] [stdout]    |                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `preference`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_16.rs:44:24
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn create_notifier(preference: &str, target: String) -> Box<dyn Notifier> {
[INFO] [stdout]    |                        ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_preference`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_16.rs:44:42
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn create_notifier(preference: &str, target: String) -> Box<dyn Notifier> {
[INFO] [stdout]    |                                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_16.rs:54:29
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub fn create_all_notifiers(target: String) -> Vec<Box<dyn Notifier>> {
[INFO] [stdout]    |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `message`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_16.rs:59:18
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn broadcast(message: &str, notifiers: &[Box<dyn Notifier>]) -> Vec<String> {
[INFO] [stdout]    |                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `notifiers`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_16.rs:59:33
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn broadcast(message: &str, notifiers: &[Box<dyn Notifier>]) -> Vec<String> {
[INFO] [stdout]    |                                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_notifiers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_17.rs:50:36
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn cache<T: Cacheable + Clone>(item: &T) -> T {
[INFO] [stdout]    |                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_17.rs:60:72
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub fn full_process<T: Serializable + Cacheable + NetworkSafe + Clone>(item: &T) -> (String, T, String) {
[INFO] [stdout]    |                                                                        ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `predicate`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_18.rs:41:25
[INFO] [stdout]    |
[INFO] [stdout] 41 |     fn sum_if<F>(&self, predicate: F) -> T
[INFO] [stdout]    |                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_predicate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_19.rs:42:16
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn new(value: T) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_20.rs:16:23
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn process(&self, input: &str) -> String {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_20.rs:24:23
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn process(&self, input: &str) -> String {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_20.rs:32:23
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn process(&self, input: &str) -> String {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `processor`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_20.rs:38:37
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn process_static<T: Processor>(processor: &T, input: &str) -> String {
[INFO] [stdout]    |                                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_processor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_20.rs:38:52
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn process_static<T: Processor>(processor: &T, input: &str) -> String {
[INFO] [stdout]    |                                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `processor`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_20.rs:43:24
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn process_dynamic(processor: &dyn Processor, input: &str) -> String {
[INFO] [stdout]    |                        ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_processor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_20.rs:43:51
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn process_dynamic(processor: &dyn Processor, input: &str) -> String {
[INFO] [stdout]    |                                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `processors`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_20.rs:48:39
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn process_all_same<T: Processor>(processors: &[T], input: &str) -> Vec<String> {
[INFO] [stdout]    |                                       ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_processors`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_20.rs:48:57
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn process_all_same<T: Processor>(processors: &[T], input: &str) -> Vec<String> {
[INFO] [stdout]    |                                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `processors`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_20.rs:53:30
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn process_all_different(processors: &[&dyn Processor], input: &str) -> Vec<String> {
[INFO] [stdout]    |                              ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_processors`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_20.rs:53:61
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn process_all_different(processors: &[&dyn Processor], input: &str) -> Vec<String> {
[INFO] [stdout]    |                                                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `kind`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_20.rs:58:25
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn create_processor(kind: &str) -> Box<dyn Processor> {
[INFO] [stdout]    |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_kind`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_21.rs:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn count(mut self) -> usize
[INFO] [stdout]    |              ----^^^^
[INFO] [stdout]    |              |
[INFO] [stdout]    |              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_21.rs:28:16
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub fn new(start: i32, end: i32) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_21.rs:28:28
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub fn new(start: i32, end: i32) -> Self {
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_21.rs:74:28
[INFO] [stdout]    |
[INFO] [stdout] 74 |     fn add_node(&mut self, node: Self::Node) {
[INFO] [stdout]    |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `edge`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_21.rs:78:28
[INFO] [stdout]    |
[INFO] [stdout] 78 |     fn add_edge(&mut self, edge: Self::Edge) {
[INFO] [stdout]    |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_edge`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_21.rs:94:23
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn add(&mut self, item: Self::Item) {
[INFO] [stdout]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_21.rs:98:19
[INFO] [stdout]    |
[INFO] [stdout] 98 |     fn get(&self, index: usize) -> Option<&Self::Item> {
[INFO] [stdout]    |                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_22.rs:47:13
[INFO] [stdout]    |
[INFO] [stdout] 47 |     fn load(id: u64) -> Self {
[INFO] [stdout]    |             ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_22.rs:53:19
[INFO] [stdout]    |
[INFO] [stdout] 53 |     fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_22.rs:78:13
[INFO] [stdout]    |
[INFO] [stdout] 78 |     fn load(id: u64) -> Self {
[INFO] [stdout]    |             ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_22.rs:88:19
[INFO] [stdout]    |
[INFO] [stdout] 88 |     fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]    --> src/exercises/polymorphism/exercise_22.rs:100:33
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub fn full_audit<T: Auditable>(entity: &T) -> String {
[INFO] [stdout]     |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_23.rs:17:31
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn process_and_display<T>(item: T) -> String
[INFO] [stdout]    |                               ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_23.rs:25:34
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn combine_and_display<T, U>(first: T, second: U) -> String
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_first`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `second`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_23.rs:25:44
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn combine_and_display<T, U>(first: T, second: U) -> String
[INFO] [stdout]    |                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_second`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iter`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_23.rs:34:28
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn process_iterator<I>(iter: I) -> Vec<I::Item>
[INFO] [stdout]    |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_iter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_23.rs:43:32
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn transform_with<T, F, U>(items: Vec<T>, f: F) -> Vec<U>
[INFO] [stdout]    |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_23.rs:43:47
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn transform_with<T, F, U>(items: Vec<T>, f: F) -> Vec<U>
[INFO] [stdout]    |                                               ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_23.rs:53:25
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn sum_and_scale<T>(items: &[T], scale: T) -> T
[INFO] [stdout]    |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scale`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_23.rs:53:38
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn sum_and_scale<T>(items: &[T], scale: T) -> T
[INFO] [stdout]    |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_scale`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_23.rs:61:33
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub fn process_trait_objects<T>(items: &[Box<T>]) -> Vec<String>
[INFO] [stdout]    |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_23.rs:81:27
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn add(&mut self, item: T) {
[INFO] [stdout]    |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_24.rs:73:29
[INFO] [stdout]    |
[INFO] [stdout] 73 |     fn map_all<F, U>(&self, f: F) -> Vec<U>
[INFO] [stdout]    |                             ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `predicate`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_24.rs:94:28
[INFO] [stdout]    |
[INFO] [stdout] 94 |     fn filter_by<F>(&self, predicate: F) -> Vec<T>
[INFO] [stdout]    |                            ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_predicate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_25.rs:29:28
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn use_as_trait_object(obj: &dyn ObjectSafe) -> String {
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_obj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_25.rs:49:30
[INFO] [stdout]    |
[INFO] [stdout] 49 |     fn process_string(&self, value: &str) -> String {
[INFO] [stdout]    |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_25.rs:53:27
[INFO] [stdout]    |
[INFO] [stdout] 53 |     fn process_i32(&self, value: i32) -> String {
[INFO] [stdout]    |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj`
[INFO] [stdout]    --> src/exercises/polymorphism/exercise_25.rs:103:24
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub fn use_maybe_sized(obj: &dyn MaybeSized) -> String {
[INFO] [stdout]     |                        ^^^ help: if this is intentional, prefix it with an underscore: `_obj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_26.rs:33:23
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn process(&self, input: &'a str) -> String {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_26.rs:41:23
[INFO] [stdout]    |
[INFO] [stdout] 41 |     fn process(&self, input: &'a str) -> String {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `processor`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_26.rs:47:37
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn process_with_lifetime<'a, T>(processor: &T, input: &'a str) -> String
[INFO] [stdout]    |                                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_processor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_26.rs:47:52
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn process_with_lifetime<'a, T>(processor: &T, input: &'a str) -> String
[INFO] [stdout]    |                                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_26.rs:77:19
[INFO] [stdout]    |
[INFO] [stdout] 77 |     fn get(&self, key: &str) -> Option<&'a Self::Item> {
[INFO] [stdout]    |                   ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_26.rs:81:23
[INFO] [stdout]    |
[INFO] [stdout] 81 |     fn set(&mut self, key: String, value: &'a T) {
[INFO] [stdout]    |                       ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_26.rs:81:36
[INFO] [stdout]    |
[INFO] [stdout] 81 |     fn set(&mut self, key: String, value: &'a T) {
[INFO] [stdout]    |                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_26.rs:87:38
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn compare_and_return<'a, 'b, T>(first: &'a T, second: &'b T, use_first: bool) -> &'a T
[INFO] [stdout]    |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_first`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `second`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_26.rs:87:52
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn compare_and_return<'a, 'b, T>(first: &'a T, second: &'b T, use_first: bool) -> &'a T
[INFO] [stdout]    |                                                    ^^^^^^ help: if this is intentional, prefix it with an underscore: `_second`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `use_first`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_26.rs:87:67
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn compare_and_return<'a, 'b, T>(first: &'a T, second: &'b T, use_first: bool) -> &'a T
[INFO] [stdout]    |                                                                   ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_use_first`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_27.rs:26:23
[INFO] [stdout]    |
[INFO] [stdout] 26 |     fn convert(&self, input: Self::Input) -> Result<Self::Output, Self::Error> {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_27.rs:38:23
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn convert(&self, input: Self::Input) -> Result<Self::Output, Self::Error> {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `converter1`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_27.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 45 |     converter1: &C1,
[INFO] [stdout]    |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_converter1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `converter2`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_27.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 |     converter2: &C2,
[INFO] [stdout]    |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_converter2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_27.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     input: C1::Input,
[INFO] [stdout]    |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_27.rs:88:28
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub fn push(&mut self, item: T) {
[INFO] [stdout]    |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/exercises/polymorphism/exercise_27.rs:113:32
[INFO] [stdout]     |
[INFO] [stdout] 113 |     pub fn add_node(&mut self, name: String) {
[INFO] [stdout]     |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]    --> src/exercises/polymorphism/exercise_27.rs:117:32
[INFO] [stdout]     |
[INFO] [stdout] 117 |     pub fn add_edge(&mut self, from: usize, to: usize) {
[INFO] [stdout]     |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]    --> src/exercises/polymorphism/exercise_27.rs:117:45
[INFO] [stdout]     |
[INFO] [stdout] 117 |     pub fn add_edge(&mut self, from: usize, to: usize) {
[INFO] [stdout]     |                                             ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `collection`
[INFO] [stdout]    --> src/exercises/polymorphism/exercise_27.rs:138:30
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn process_collection<C>(collection: &C) -> Vec<String>
[INFO] [stdout]     |                              ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_collection`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `use_fast`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_28.rs:82:23
[INFO] [stdout]    |
[INFO] [stdout] 82 |     fn process(&self, use_fast: bool) -> String {
[INFO] [stdout]    |                       ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_use_fast`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `op`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_29.rs:62:37
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn execute_static<T: Operation>(op: &T) -> (i32, &'static str) {
[INFO] [stdout]    |                                     ^^ help: if this is intentional, prefix it with an underscore: `_op`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `op`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_29.rs:67:24
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn execute_dynamic(op: &dyn Operation) -> (i32, &'static str) {
[INFO] [stdout]    |                        ^^ help: if this is intentional, prefix it with an underscore: `_op`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `op`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_29.rs:86:37
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub fn add_operation(&mut self, op: Box<dyn Operation>) {
[INFO] [stdout]    |                                     ^^ help: if this is intentional, prefix it with an underscore: `_op`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj`
[INFO] [stdout]    --> src/exercises/polymorphism/exercise_29.rs:129:32
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub fn call_all_methods_static(obj: &MultiImpl) -> Vec<i32> {
[INFO] [stdout]     |                                ^^^ help: if this is intentional, prefix it with an underscore: `_obj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `obj`
[INFO] [stdout]    --> src/exercises/polymorphism/exercise_29.rs:133:33
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub fn call_all_methods_dynamic(obj: &dyn MultiMethod) -> Vec<i32> {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_obj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> src/exercises/polymorphism/exercise_29.rs:148:23
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn process(&self, value: i32) -> i32 {
[INFO] [stdout]     |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_30.rs:24:16
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn new(data: &'data [T], window_size: usize) -> Self {
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `window_size`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_30.rs:24:34
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn new(data: &'data [T], window_size: usize) -> Self {
[INFO] [stdout]    |                                  ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_window_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_30.rs:57:28
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn push(&mut self, s: String) {
[INFO] [stdout]    |                            ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_30.rs:67:19
[INFO] [stdout]    |
[INFO] [stdout] 67 |     fn get(&self, index: usize) -> Option<Self::Item<'_>> {
[INFO] [stdout]    |                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_30.rs:84:14
[INFO] [stdout]    |
[INFO] [stdout] 84 |     fn count(mut self) -> usize
[INFO] [stdout]    |              ----^^^^
[INFO] [stdout]    |              |
[INFO] [stdout]    |              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_30.rs:99:16
[INFO] [stdout]    |
[INFO] [stdout] 99 |     pub fn new(data: &'data [T], chunk_size: usize) -> Self {
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `chunk_size`
[INFO] [stdout]   --> src/exercises/polymorphism/exercise_30.rs:99:34
[INFO] [stdout]    |
[INFO] [stdout] 99 |     pub fn new(data: &'data [T], chunk_size: usize) -> Self {
[INFO] [stdout]    |                                  ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_chunk_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> src/exercises/polymorphism/exercise_30.rs:129:15
[INFO] [stdout]     |
[INFO] [stdout] 129 |     fn new<T>(value: T) -> Self::Pointer<T> {
[INFO] [stdout]     |               ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> src/exercises/polymorphism/exercise_30.rs:139:15
[INFO] [stdout]     |
[INFO] [stdout] 139 |     fn new<T>(value: T) -> Self::Pointer<T> {
[INFO] [stdout]     |               ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]    --> src/exercises/polymorphism/exercise_30.rs:165:26
[INFO] [stdout]     |
[INFO] [stdout] 165 |     fn map<'a>(&'a self, input: Self::Input<'a>) -> Self::Output<'a> {
[INFO] [stdout]     |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pair`
[INFO] [stdout]   --> src/exercises/generics/exercise_01.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn first<T>(pair: (T, T)) -> T {
[INFO] [stdout]    |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_pair`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pair`
[INFO] [stdout]   --> src/exercises/generics/exercise_01.rs:15:18
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn second<T>(pair: (T, T)) -> T {
[INFO] [stdout]    |                  ^^^^ help: if this is intentional, prefix it with an underscore: `_pair`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pair`
[INFO] [stdout]   --> src/exercises/generics/exercise_01.rs:20:19
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn swap<T, U>(pair: (T, U)) -> (U, T) {
[INFO] [stdout]    |                   ^^^^ help: if this is intentional, prefix it with an underscore: `_pair`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/generics/exercise_02.rs:16:16
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn new(value: T) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/generics/exercise_02.rs:31:31
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub fn replace(&mut self, value: T) -> T {
[INFO] [stdout]    |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first`
[INFO] [stdout]   --> src/exercises/generics/exercise_03.rs:17:16
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn new(first: T, second: U) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_first`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `second`
[INFO] [stdout]   --> src/exercises/generics/exercise_03.rs:17:26
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub fn new(first: T, second: U) -> Self {
[INFO] [stdout]    |                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_second`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/generics/exercise_04.rs:10:28
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn duplicate<T: Clone>(value: T) -> (T, T) {
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/generics/exercise_04.rs:21:16
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(value: T) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/generics/exercise_04.rs:36:31
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn make_copies(&self, n: usize) -> Vec<T> {
[INFO] [stdout]    |                               ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/generics/exercise_05.rs:10:32
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn are_equal<T: PartialEq>(a: T, b: T) -> bool {
[INFO] [stdout]    |                                ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/generics/exercise_05.rs:10:38
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn are_equal<T: PartialEq>(a: T, b: T) -> bool {
[INFO] [stdout]    |                                      ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slice`
[INFO] [stdout]   --> src/exercises/generics/exercise_05.rs:15:31
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn contains<T: PartialEq>(slice: &[T], value: &T) -> bool {
[INFO] [stdout]    |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_slice`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/generics/exercise_05.rs:15:44
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn contains<T: PartialEq>(slice: &[T], value: &T) -> bool {
[INFO] [stdout]    |                                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reference`
[INFO] [stdout]   --> src/exercises/generics/exercise_05.rs:26:16
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub fn new(reference: T) -> Self {
[INFO] [stdout]    |                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_reference`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/generics/exercise_05.rs:31:28
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub fn is_equal(&self, value: &T) -> bool {
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slice`
[INFO] [stdout]   --> src/exercises/generics/exercise_05.rs:36:31
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn count_equal(&self, slice: &[T]) -> usize {
[INFO] [stdout]    |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_slice`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prefix`
[INFO] [stdout]   --> src/exercises/generics/exercise_06.rs:12:32
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn with_prefix<T: Display>(prefix: &str, value: T) -> String {
[INFO] [stdout]    |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_prefix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/generics/exercise_06.rs:12:46
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn with_prefix<T: Display>(prefix: &str, value: T) -> String {
[INFO] [stdout]    |                                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]   --> src/exercises/generics/exercise_06.rs:17:33
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn join_display<T: Display>(items: &[T]) -> String {
[INFO] [stdout]    |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left`
[INFO] [stdout]   --> src/exercises/generics/exercise_06.rs:30:16
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub fn new(left: String, right: String) -> Self {
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right`
[INFO] [stdout]   --> src/exercises/generics/exercise_06.rs:30:30
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub fn new(left: String, right: String) -> Self {
[INFO] [stdout]    |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_right`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/generics/exercise_06.rs:35:26
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn format(&self, value: T) -> String {
[INFO] [stdout]    |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/generics/exercise_07.rs:10:36
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn create_defaults<T: Default>(n: usize) -> Vec<T> {
[INFO] [stdout]    |                                    ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/generics/exercise_07.rs:21:16
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(value: T) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/generics/exercise_07.rs:36:27
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn set(&mut self, value: T) {
[INFO] [stdout]    |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/generics/exercise_08.rs:12:32
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn add<T: Add<Output = T>>(a: T, b: T) -> T {
[INFO] [stdout]    |                                ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/generics/exercise_08.rs:12:38
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn add<T: Add<Output = T>>(a: T, b: T) -> T {
[INFO] [stdout]    |                                      ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slice`
[INFO] [stdout]   --> src/exercises/generics/exercise_08.rs:17:19
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn sum_all<T>(slice: &[T]) -> T
[INFO] [stdout]    |                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_slice`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial`
[INFO] [stdout]   --> src/exercises/generics/exercise_08.rs:37:16
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn new(initial: T) -> Self {
[INFO] [stdout]    |                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/generics/exercise_08.rs:42:27
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn add(&mut self, value: T) {
[INFO] [stdout]    |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/generics/exercise_08.rs:52:29
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn reset(&mut self, value: T) {
[INFO] [stdout]    |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slice`
[INFO] [stdout]   --> src/exercises/generics/exercise_09.rs:10:32
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn first_element<T: Clone>(slice: &[T]) -> Option<T> {
[INFO] [stdout]    |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_slice`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slice`
[INFO] [stdout]   --> src/exercises/generics/exercise_09.rs:15:22
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn find_by<T, F>(slice: &[T], predicate: F) -> Option<&T>
[INFO] [stdout]    |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_slice`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `predicate`
[INFO] [stdout]   --> src/exercises/generics/exercise_09.rs:15:35
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn find_by<T, F>(slice: &[T], predicate: F) -> Option<&T>
[INFO] [stdout]    |                                   ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_predicate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/generics/exercise_09.rs:30:28
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub fn map<U, F>(self, f: F) -> Maybe<U>
[INFO] [stdout]    |                            ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `default`
[INFO] [stdout]   --> src/exercises/generics/exercise_09.rs:38:28
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn unwrap_or(self, default: T) -> T {
[INFO] [stdout]    |                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/generics/exercise_10.rs:10:23
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn safe_divide<T>(a: T, b: T) -> Result<T, String>
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/generics/exercise_10.rs:10:29
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn safe_divide<T>(a: T, b: T) -> Result<T, String>
[INFO] [stdout]    |                             ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/generics/exercise_10.rs:18:23
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn parse_value<T>(s: &str) -> Result<T, String>
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/generics/exercise_10.rs:34:28
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub fn map<U, F>(self, f: F) -> Outcome<U, E>
[INFO] [stdout]    |                            ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `default`
[INFO] [stdout]   --> src/exercises/generics/exercise_10.rs:42:28
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn unwrap_or(self, default: T) -> T {
[INFO] [stdout]    |                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/generics/exercise_11.rs:12:27
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn print_and_clone<T>(value: T) -> T
[INFO] [stdout]    |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/generics/exercise_11.rs:20:34
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn compare_and_display<T, U>(a: T, b: U) -> String
[INFO] [stdout]    |                                  ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/generics/exercise_11.rs:20:40
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn compare_and_display<T, U>(a: T, b: U) -> String
[INFO] [stdout]    |                                        ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/generics/exercise_11.rs:44:16
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn new(input: T) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/exercises/generics/exercise_11.rs:59:34
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub fn set_output(&mut self, output: U) {
[INFO] [stdout]    |                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vec`
[INFO] [stdout]   --> src/exercises/generics/exercise_12.rs:10:21
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn filter<T, F>(vec: Vec<T>, predicate: F) -> Vec<T>
[INFO] [stdout]    |                     ^^^ help: if this is intentional, prefix it with an underscore: `_vec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `predicate`
[INFO] [stdout]   --> src/exercises/generics/exercise_12.rs:10:34
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn filter<T, F>(vec: Vec<T>, predicate: F) -> Vec<T>
[INFO] [stdout]    |                                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_predicate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vec`
[INFO] [stdout]   --> src/exercises/generics/exercise_12.rs:18:21
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn map<T, U, F>(vec: Vec<T>, f: F) -> Vec<U>
[INFO] [stdout]    |                     ^^^ help: if this is intentional, prefix it with an underscore: `_vec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/generics/exercise_12.rs:18:34
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn map<T, U, F>(vec: Vec<T>, f: F) -> Vec<U>
[INFO] [stdout]    |                                  ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]   --> src/exercises/generics/exercise_12.rs:37:21
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn from_vec(items: Vec<T>) -> Self {
[INFO] [stdout]    |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]   --> src/exercises/generics/exercise_12.rs:42:27
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn add(&mut self, item: T) {
[INFO] [stdout]    |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]   --> src/exercises/generics/exercise_12.rs:64:23
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn get(&self, index: usize) -> Option<T> {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]   --> src/exercises/generics/exercise_12.rs:71:28
[INFO] [stdout]    |
[INFO] [stdout] 71 |     pub fn contains(&self, item: &T) -> bool {
[INFO] [stdout]    |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]   --> src/exercises/generics/exercise_12.rs:76:34
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn remove_all(&mut self, item: &T) {
[INFO] [stdout]    |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/generics/exercise_13.rs:18:17
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn leaf(value: T) -> Self {
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/generics/exercise_13.rs:23:26
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn with_children(value: T, left: Option<TreeNode<T>>, right: Option<TreeNode<T>>) -> Self {
[INFO] [stdout]    |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left`
[INFO] [stdout]   --> src/exercises/generics/exercise_13.rs:23:36
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn with_children(value: T, left: Option<TreeNode<T>>, right: Option<TreeNode<T>>) -> Self {
[INFO] [stdout]    |                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right`
[INFO] [stdout]   --> src/exercises/generics/exercise_13.rs:23:63
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn with_children(value: T, left: Option<TreeNode<T>>, right: Option<TreeNode<T>>) -> Self {
[INFO] [stdout]    |                                                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_right`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/generics/exercise_13.rs:52:28
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn contains(&self, value: &T) -> bool {
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iter`
[INFO] [stdout]   --> src/exercises/generics/exercise_14.rs:23:16
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn new(iter: I) -> Self {
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_iter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iter`
[INFO] [stdout]   --> src/exercises/generics/exercise_14.rs:56:16
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub fn new(iter: I, predicate: F) -> Self {
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_iter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `predicate`
[INFO] [stdout]   --> src/exercises/generics/exercise_14.rs:56:25
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub fn new(iter: I, predicate: F) -> Self {
[INFO] [stdout]    |                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_predicate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iter`
[INFO] [stdout]   --> src/exercises/generics/exercise_14.rs:74:24
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn enumerate<I, T>(iter: I) -> Enumerated<I, T>
[INFO] [stdout]    |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_iter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iter`
[INFO] [stdout]   --> src/exercises/generics/exercise_14.rs:82:28
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn take_while<I, T, F>(iter: I, predicate: F) -> TakeWhile<I, T, F>
[INFO] [stdout]    |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_iter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `predicate`
[INFO] [stdout]   --> src/exercises/generics/exercise_14.rs:82:37
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn take_while<I, T, F>(iter: I, predicate: F) -> TakeWhile<I, T, F>
[INFO] [stdout]    |                                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_predicate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/generics/exercise_15.rs:18:16
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn new(value: T) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/generics/exercise_15.rs:38:38
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn start_processing<F>(self, f: F) -> Result<State<T, U, V>, &'static str>
[INFO] [stdout]    |                                      ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/generics/exercise_15.rs:46:30
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub fn complete<F>(self, f: F) -> Result<State<T, U, V>, &'static str>
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/exercises/generics/exercise_16.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn name(mut self, name: String) -> Self {
[INFO] [stdout]    |                 ----^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/exercises/generics/exercise_16.rs:23:27
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn name(mut self, name: String) -> Self {
[INFO] [stdout]    |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/exercises/generics/exercise_16.rs:28:18
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub fn value(mut self, value: T) -> Self {
[INFO] [stdout]    |                  ----^^^^
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/generics/exercise_16.rs:28:28
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub fn value(mut self, value: T) -> Self {
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/exercises/generics/exercise_16.rs:33:21
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn metadata(mut self, metadata: U) -> Self {
[INFO] [stdout]    |                     ----^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `metadata`
[INFO] [stdout]   --> src/exercises/generics/exercise_16.rs:33:31
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn metadata(mut self, metadata: U) -> Self {
[INFO] [stdout]    |                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_metadata`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_size`
[INFO] [stdout]   --> src/exercises/generics/exercise_17.rs:26:16
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub fn new(max_size: usize) -> Self {
[INFO] [stdout]    |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/exercises/generics/exercise_17.rs:31:30
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub fn insert(&mut self, key: K, value: V) -> Option<V> {
[INFO] [stdout]    |                              ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/generics/exercise_17.rs:31:38
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub fn insert(&mut self, key: K, value: V) -> Option<V> {
[INFO] [stdout]    |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/exercises/generics/exercise_17.rs:36:23
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn get(&self, key: &K) -> Option<&V> {
[INFO] [stdout]    |                       ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/exercises/generics/exercise_17.rs:41:28
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn contains(&self, key: &K) -> bool {
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/exercises/generics/exercise_17.rs:61:30
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub fn remove(&mut self, key: &K) -> Option<V> {
[INFO] [stdout]    |                              ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/exercises/generics/exercise_17.rs:72:30
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub fn get_cloned(&self, key: &K) -> Option<V> {
[INFO] [stdout]    |                              ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min`
[INFO] [stdout]   --> src/exercises/generics/exercise_18.rs:22:16
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn new(min: T, max: T) -> Self {
[INFO] [stdout]    |                ^^^ help: if this is intentional, prefix it with an underscore: `_min`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max`
[INFO] [stdout]   --> src/exercises/generics/exercise_18.rs:22:24
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn new(min: T, max: T) -> Self {
[INFO] [stdout]    |                        ^^^ help: if this is intentional, prefix it with an underscore: `_max`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/generics/exercise_18.rs:33:24
[INFO] [stdout]    |
[INFO] [stdout] 33 |     fn validate(&self, value: &T) -> Result<(), Self::Error> {
[INFO] [stdout]    |                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min_len`
[INFO] [stdout]   --> src/exercises/generics/exercise_18.rs:45:16
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub fn new(min_len: usize, max_len: usize) -> Self {
[INFO] [stdout]    |                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_min_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_len`
[INFO] [stdout]   --> src/exercises/generics/exercise_18.rs:45:32
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub fn new(min_len: usize, max_len: usize) -> Self {
[INFO] [stdout]    |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/generics/exercise_18.rs:53:24
[INFO] [stdout]    |
[INFO] [stdout] 53 |     fn validate(&self, value: &Vec<T>) -> Result<(), Self::Error> {
[INFO] [stdout]    |                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/generics/exercise_18.rs:61:24
[INFO] [stdout]    |
[INFO] [stdout] 61 |     fn validate(&self, value: &String) -> Result<(), Self::Error> {
[INFO] [stdout]    |                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/generics/exercise_18.rs:67:27
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn validate_all<T, V>(value: &T, validators: &[V]) -> Result<(), String>
[INFO] [stdout]    |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `validators`
[INFO] [stdout]   --> src/exercises/generics/exercise_18.rs:67:38
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn validate_all<T, V>(value: &T, validators: &[V]) -> Result<(), String>
[INFO] [stdout]    |                                      ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_validators`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `callback`
[INFO] [stdout]   --> src/exercises/generics/exercise_19.rs:21:36
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn subscribe<F>(&mut self, callback: F)
[INFO] [stdout]    |                                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_callback`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]   --> src/exercises/generics/exercise_19.rs:29:31
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub fn publish(&mut self, event: &T) {
[INFO] [stdout]    |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handler`
[INFO] [stdout]   --> src/exercises/generics/exercise_19.rs:57:29
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn on<F>(&mut self, handler: F)
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_handler`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `event`
[INFO] [stdout]   --> src/exercises/generics/exercise_19.rs:65:28
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub fn emit(&mut self, event: T)
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strategy`
[INFO] [stdout]   --> src/exercises/generics/exercise_20.rs:21:16
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(strategy: Box<dyn Strategy<T, U>>) -> Self {
[INFO] [stdout]    |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strategy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/generics/exercise_20.rs:26:27
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub fn execute(&self, input: T) -> U {
[INFO] [stdout]    |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strategy`
[INFO] [stdout]   --> src/exercises/generics/exercise_20.rs:31:36
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub fn set_strategy(&mut self, strategy: Box<dyn Strategy<T, U>>) {
[INFO] [stdout]    |                                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strategy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/generics/exercise_20.rs:40:23
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn execute(&self, input: i32) -> i32 {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/generics/exercise_20.rs:49:23
[INFO] [stdout]    |
[INFO] [stdout] 49 |     fn execute(&self, input: i32) -> i32 {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/generics/exercise_20.rs:58:23
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn execute(&self, input: String) -> String {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/generics/exercise_20.rs:67:23
[INFO] [stdout]    |
[INFO] [stdout] 67 |     fn execute(&self, input: String) -> String {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strategy`
[INFO] [stdout]   --> src/exercises/generics/exercise_20.rs:84:32
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn add_step(&mut self, strategy: Box<dyn Strategy<T, T>>) {
[INFO] [stdout]    |                                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strategy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/exercises/generics/exercise_20.rs:89:27
[INFO] [stdout]    |
[INFO] [stdout] 89 |     pub fn process(&self, mut input: T) -> T {
[INFO] [stdout]    |                           ----^^^^^
[INFO] [stdout]    |                           |
[INFO] [stdout]    |                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/generics/exercise_20.rs:89:27
[INFO] [stdout]    |
[INFO] [stdout] 89 |     pub fn process(&self, mut input: T) -> T {
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/generics/exercise_21.rs:16:16
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub fn new(value: &'a T) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first`
[INFO] [stdout]   --> src/exercises/generics/exercise_21.rs:41:16
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn new(first: &'a T, second: &'b U) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_first`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `second`
[INFO] [stdout]   --> src/exercises/generics/exercise_21.rs:41:30
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn new(first: &'a T, second: &'b U) -> Self {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_second`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/generics/exercise_21.rs:91:23
[INFO] [stdout]    |
[INFO] [stdout] 91 |     pub fn from_value(value: T) -> MaybeOwned<'a, T::Owned> {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/exercises/generics/exercise_22.rs:23:16
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn new(data: T) -> Self {
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/generics/exercise_22.rs:67:19
[INFO] [stdout]    |
[INFO] [stdout] 67 |     pub fn meters(value: T) -> Self {
[INFO] [stdout]    |                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/generics/exercise_22.rs:74:17
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub fn feet(value: T) -> Self {
[INFO] [stdout]    |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/generics/exercise_23.rs:25:28
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn push(&mut self, value: T) -> Result<(), &'static str> {
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/generics/exercise_23.rs:79:29
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub fn write(&mut self, value: T) -> Result<(), &'static str> {
[INFO] [stdout]    |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `func`
[INFO] [stdout]   --> src/exercises/generics/exercise_24.rs:31:16
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub fn new(func: F) -> Self {
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_func`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/generics/exercise_24.rs:43:23
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn convert(&self, input: Self::Input) -> Self::Output {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]   --> src/exercises/generics/exercise_24.rs:67:16
[INFO] [stdout]    |
[INFO] [stdout] 67 |     pub fn new(items: Vec<T>) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> src/exercises/generics/exercise_24.rs:101:16
[INFO] [stdout]     |
[INFO] [stdout] 101 |     pub fn new(value: Option<T>) -> Self {
[INFO] [stdout]     |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `default`
[INFO] [stdout]    --> src/exercises/generics/exercise_24.rs:111:28
[INFO] [stdout]     |
[INFO] [stdout] 111 |     pub fn unwrap_or(self, default: T) -> T {
[INFO] [stdout]     |                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> src/exercises/generics/exercise_24.rs:119:24
[INFO] [stdout]     |
[INFO] [stdout] 119 |     fn map<U, F>(self, f: F) -> MappedResult<U>
[INFO] [stdout]     |                        ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node`
[INFO] [stdout]   --> src/exercises/generics/exercise_25.rs:30:32
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub fn add_node(&mut self, node: T) {
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]   --> src/exercises/generics/exercise_25.rs:35:32
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn add_edge(&mut self, from: T, to: T) {
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]   --> src/exercises/generics/exercise_25.rs:35:41
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn add_edge(&mut self, from: T, to: T) {
[INFO] [stdout]    |                                         ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node`
[INFO] [stdout]   --> src/exercises/generics/exercise_25.rs:40:29
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn neighbors(&self, node: &T) -> Option<&Vec<T>> {
[INFO] [stdout]    |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node`
[INFO] [stdout]   --> src/exercises/generics/exercise_25.rs:45:28
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub fn contains(&self, node: &T) -> bool {
[INFO] [stdout]    |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]   --> src/exercises/generics/exercise_25.rs:55:23
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub fn dfs(&self, start: &T) -> Vec<T> {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node`
[INFO] [stdout]   --> src/exercises/generics/exercise_25.rs:59:26
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn dfs_helper(&self, node: &T, visited: &mut HashSet<T>, result: &mut Vec<T>) {
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `visited`
[INFO] [stdout]   --> src/exercises/generics/exercise_25.rs:59:36
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn dfs_helper(&self, node: &T, visited: &mut HashSet<T>, result: &mut Vec<T>) {
[INFO] [stdout]    |                                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_visited`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `result`
[INFO] [stdout]   --> src/exercises/generics/exercise_25.rs:59:62
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn dfs_helper(&self, node: &T, visited: &mut HashSet<T>, result: &mut Vec<T>) {
[INFO] [stdout]    |                                                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]   --> src/exercises/generics/exercise_25.rs:64:28
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn has_path(&self, from: &T, to: &T) -> bool {
[INFO] [stdout]    |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]   --> src/exercises/generics/exercise_25.rs:64:38
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn has_path(&self, from: &T, to: &T) -> bool {
[INFO] [stdout]    |                                      ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current`
[INFO] [stdout]   --> src/exercises/generics/exercise_25.rs:68:31
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn has_path_helper(&self, current: &T, target: &T, visited: &mut HashSet<T>) -> bool {
[INFO] [stdout]    |                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/exercises/generics/exercise_25.rs:68:44
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn has_path_helper(&self, current: &T, target: &T, visited: &mut HashSet<T>) -> bool {
[INFO] [stdout]    |                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `visited`
[INFO] [stdout]   --> src/exercises/generics/exercise_25.rs:68:56
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn has_path_helper(&self, current: &T, target: &T, visited: &mut HashSet<T>) -> bool {
[INFO] [stdout]    |                                                        ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_visited`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/generics/exercise_26.rs:23:16
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn new(value: T) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/generics/exercise_26.rs:29:21
[INFO] [stdout]    |
[INFO] [stdout] 29 |     fn parse(&self, input: &'a str) -> ParseResult<'a, T> {
[INFO] [stdout]    |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expected`
[INFO] [stdout]   --> src/exercises/generics/exercise_26.rs:40:16
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn new(expected: char) -> Self {
[INFO] [stdout]    |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/generics/exercise_26.rs:46:21
[INFO] [stdout]    |
[INFO] [stdout] 46 |     fn parse(&self, input: &'a str) -> ParseResult<'a, char> {
[INFO] [stdout]    |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parser`
[INFO] [stdout]   --> src/exercises/generics/exercise_26.rs:67:16
[INFO] [stdout]    |
[INFO] [stdout] 67 |     pub fn new(parser: P, func: F) -> Self {
[INFO] [stdout]    |                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parser`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `func`
[INFO] [stdout]   --> src/exercises/generics/exercise_26.rs:67:27
[INFO] [stdout]    |
[INFO] [stdout] 67 |     pub fn new(parser: P, func: F) -> Self {
[INFO] [stdout]    |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_func`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/generics/exercise_26.rs:77:21
[INFO] [stdout]    |
[INFO] [stdout] 77 |     fn parse(&self, input: &'a str) -> ParseResult<'a, B> {
[INFO] [stdout]    |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/generics/exercise_26.rs:86:21
[INFO] [stdout]    |
[INFO] [stdout] 86 |     fn parse(&self, input: &'a str) -> ParseResult<'a, u32> {
[INFO] [stdout]    |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parser`
[INFO] [stdout]   --> src/exercises/generics/exercise_26.rs:92:29
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub fn parse_many<'a, T, P>(parser: &P, input: &'a str) -> ParseResult<'a, Vec<T>>
[INFO] [stdout]    |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parser`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/generics/exercise_26.rs:92:41
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub fn parse_many<'a, T, P>(parser: &P, input: &'a str) -> ParseResult<'a, Vec<T>>
[INFO] [stdout]    |                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `func`
[INFO] [stdout]   --> src/exercises/generics/exercise_27.rs:25:16
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn new(func: F) -> Self {
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_func`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/generics/exercise_27.rs:58:18
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn ready(value: T) -> Self {
[INFO] [stdout]    |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/generics/exercise_27.rs:68:27
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub fn set(&mut self, value: T) -> Result<(), &'static str> {
[INFO] [stdout]    |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/generics/exercise_27.rs:98:16
[INFO] [stdout]    |
[INFO] [stdout] 98 |     pub fn new(value: T, func: F) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `func`
[INFO] [stdout]   --> src/exercises/generics/exercise_27.rs:98:26
[INFO] [stdout]    |
[INFO] [stdout] 98 |     pub fn new(value: T, func: F) -> Self {
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_func`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/exercises/generics/exercise_27.rs:103:16
[INFO] [stdout]     |
[INFO] [stdout] 103 |     pub fn run(mut self) -> U {
[INFO] [stdout]     |                ----^^^^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `content`
[INFO] [stdout]   --> src/exercises/generics/exercise_28.rs:24:16
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn new(content: String) -> Self {
[INFO] [stdout]    |                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_content`
[INFO] [stdout]   --> src/exercises/generics/exercise_28.rs:29:28
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub fn edit(&mut self, new_content: String) {
[INFO] [stdout]    |                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `host`
[INFO] [stdout]   --> src/exercises/generics/exercise_28.rs:82:16
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub fn new(host: String, port: u16) -> Self {
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_host`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `port`
[INFO] [stdout]   --> src/exercises/generics/exercise_28.rs:82:30
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub fn new(host: String, port: u16) -> Self {
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/exercises/generics/exercise_28.rs:111:24
[INFO] [stdout]     |
[INFO] [stdout] 111 |     pub fn send(&self, data: &str) -> Result<(), String> {
[INFO] [stdout]     |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `processor`
[INFO] [stdout]   --> src/exercises/generics/exercise_29.rs:15:31
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn apply_processor<'a, P>(processor: &P, input: &'a str) -> &'a str
[INFO] [stdout]    |                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_processor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/generics/exercise_29.rs:15:46
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn apply_processor<'a, P>(processor: &P, input: &'a str) -> &'a str
[INFO] [stdout]    |                                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/generics/exercise_29.rs:26:27
[INFO] [stdout]    |
[INFO] [stdout] 26 |     fn process<'a>(&self, input: &'a str) -> &'a str {
[INFO] [stdout]    |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/generics/exercise_29.rs:32:28
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn with_borrowed<F, T>(value: T, f: F) -> String
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/generics/exercise_29.rs:32:38
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn with_borrowed<F, T>(value: T, f: F) -> String
[INFO] [stdout]    |                                      ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `predicate`
[INFO] [stdout]   --> src/exercises/generics/exercise_29.rs:51:16
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub fn new(predicate: F) -> Self {
[INFO] [stdout]    |                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_predicate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]   --> src/exercises/generics/exercise_29.rs:60:23
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn map<'a>(&self, items: &'a [T]) -> Vec<&'a T> {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `func`
[INFO] [stdout]   --> src/exercises/generics/exercise_29.rs:71:16
[INFO] [stdout]    |
[INFO] [stdout] 71 |     pub fn new(func: F) -> Self {
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_func`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/exercises/generics/exercise_29.rs:80:33
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub fn transform<'a>(&self, input: &'a str) -> String {
[INFO] [stdout]    |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inputs`
[INFO] [stdout]   --> src/exercises/generics/exercise_29.rs:84:38
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn transform_many<'a>(&self, inputs: &'a [&'a str]) -> Vec<String> {
[INFO] [stdout]    |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_inputs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/generics/exercise_29.rs:90:20
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub fn chain<F, G>(f: F, g: G) -> impl Fn(&str) -> String
[INFO] [stdout]    |                    ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `g`
[INFO] [stdout]   --> src/exercises/generics/exercise_29.rs:90:26
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub fn chain<F, G>(f: F, g: G) -> impl Fn(&str) -> String
[INFO] [stdout]    |                          ^ help: if this is intentional, prefix it with an underscore: `_g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]    --> src/exercises/generics/exercise_29.rs:101:34
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn map_with_context<T, U, F>(items: &[T], f: F) -> Vec<U>
[INFO] [stdout]     |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> src/exercises/generics/exercise_29.rs:101:47
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn map_with_context<T, U, F>(items: &[T], f: F) -> Vec<U>
[INFO] [stdout]     |                                               ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min`
[INFO] [stdout]    --> src/exercises/generics/exercise_29.rs:120:16
[INFO] [stdout]     |
[INFO] [stdout] 120 |     pub fn new(min: usize, max: usize) -> Self {
[INFO] [stdout]     |                ^^^ help: if this is intentional, prefix it with an underscore: `_min`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max`
[INFO] [stdout]    --> src/exercises/generics/exercise_29.rs:120:28
[INFO] [stdout]     |
[INFO] [stdout] 120 |     pub fn new(min: usize, max: usize) -> Self {
[INFO] [stdout]     |                            ^^^ help: if this is intentional, prefix it with an underscore: `_max`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]    --> src/exercises/generics/exercise_29.rs:126:28
[INFO] [stdout]     |
[INFO] [stdout] 126 |     fn validate<'a>(&self, input: &'a str) -> Result<&'a str, String> {
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/generics/exercise_30.rs:26:16
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub fn new(value: T) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]   --> src/exercises/generics/exercise_30.rs:57:16
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn new(items: Vec<T>) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/generics/exercise_30.rs:93:32
[INFO] [stdout]    |
[INFO] [stdout] 93 |     fn map<'a, U, F>(&'a self, f: F) -> Vec<U>
[INFO] [stdout]    |                                ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max`
[INFO] [stdout]    --> src/exercises/generics/exercise_30.rs:117:16
[INFO] [stdout]     |
[INFO] [stdout] 117 |     pub fn new(max: i32) -> Self {
[INFO] [stdout]     |                ^^^ help: if this is intentional, prefix it with an underscore: `_max`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inner`
[INFO] [stdout]    --> src/exercises/generics/exercise_30.rs:146:16
[INFO] [stdout]     |
[INFO] [stdout] 146 |     pub fn new(inner: T, metadata: String) -> Self {
[INFO] [stdout]     |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_inner`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `metadata`
[INFO] [stdout]    --> src/exercises/generics/exercise_30.rs:146:26
[INFO] [stdout]     |
[INFO] [stdout] 146 |     pub fn new(inner: T, metadata: String) -> Self {
[INFO] [stdout]     |                          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_metadata`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> src/exercises/generics/exercise_30.rs:222:29
[INFO] [stdout]     |
[INFO] [stdout] 222 |     fn select<'a>(&'a self, value: &'a T) -> Self::Selected<'a> {
[INFO] [stdout]     |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_01.rs:10:27
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn create_boxed_value(value: i32) -> Box<i32> {
[INFO] [stdout]    |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_01.rs:15:21
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn double_boxed(b: Box<i32>) -> Box<i32> {
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_01.rs:20:18
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn sum_boxes(a: Box<i32>, b: Box<i32>) -> i32 {
[INFO] [stdout]    |                  ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_01.rs:20:31
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn sum_boxes(a: Box<i32>, b: Box<i32>) -> i32 {
[INFO] [stdout]    |                               ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_02.rs:22:26
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn prepend(self, value: i32) -> Self {
[INFO] [stdout]    |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_03.rs:18:16
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn new(value: i32) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_03.rs:23:26
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn with_children(value: i32, left: Option<Box<TreeNode>>, right: Option<Box<TreeNode>>) -> Self {
[INFO] [stdout]    |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_03.rs:23:38
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn with_children(value: i32, left: Option<Box<TreeNode>>, right: Option<Box<TreeNode>>) -> Self {
[INFO] [stdout]    |                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_03.rs:23:67
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn with_children(value: i32, left: Option<Box<TreeNode>>, right: Option<Box<TreeNode>>) -> Self {
[INFO] [stdout]    |                                                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_right`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `shapes`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_04.rs:49:19
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub fn total_area(shapes: &[Box<dyn Shape>]) -> f64 {
[INFO] [stdout]    |                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_shapes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_05.rs:12:19
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn make_adder(n: i32) -> Operation {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_05.rs:17:24
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn make_multiplier(n: i32) -> Operation {
[INFO] [stdout]    |                        ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_05.rs:22:25
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn apply_operations(value: i32, ops: &[Operation]) -> i32 {
[INFO] [stdout]    |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ops`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_05.rs:22:37
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn apply_operations(value: i32, ops: &[Operation]) -> i32 {
[INFO] [stdout]    |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_ops`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_05.rs:27:16
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn compose(f: Operation, g: Operation) -> Operation {
[INFO] [stdout]    |                ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `g`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_05.rs:27:30
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn compose(f: Operation, g: Operation) -> Operation {
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `boxed`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_06.rs:10:22
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn deref_example(boxed: Box<String>) -> usize {
[INFO] [stdout]    |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_boxed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `boxed`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_06.rs:15:24
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn box_method_call(boxed: Box<Vec<i32>>) -> Option<i32> {
[INFO] [stdout]    |                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_boxed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_06.rs:20:22
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn compare_boxes(a: Box<i32>, b: Box<i32>) -> bool {
[INFO] [stdout]    |                      ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_06.rs:20:35
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn compare_boxes(a: Box<i32>, b: Box<i32>) -> bool {
[INFO] [stdout]    |                                   ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `boxed`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_06.rs:25:23
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn clone_from_box(boxed: Box<String>) -> String {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_boxed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_06.rs:30:21
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn modify_boxed(mut boxed: Box<Vec<i32>>, value: i32) -> Box<Vec<i32>> {
[INFO] [stdout]    |                     ----^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `boxed`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_06.rs:30:21
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn modify_boxed(mut boxed: Box<Vec<i32>>, value: i32) -> Box<Vec<i32>> {
[INFO] [stdout]    |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_boxed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_06.rs:30:47
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn modify_boxed(mut boxed: Box<Vec<i32>>, value: i32) -> Box<Vec<i32>> {
[INFO] [stdout]    |                                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_07.rs:19:16
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn new(id: usize) -> Self {
[INFO] [stdout]    |                ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_07.rs:51:24
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub fn create_multiple(count: usize) -> Vec<Box<Tracked>> {
[INFO] [stdout]    |                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_08.rs:32:32
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn create_multiple_on_heap(count: usize) -> Vec<Box<LargeStruct>> {
[INFO] [stdout]    |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_08.rs:37:19
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn set_values(mut boxed: Box<LargeStruct>, value: u8) -> Box<LargeStruct> {
[INFO] [stdout]    |                   ----^^^^^
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `boxed`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_08.rs:37:19
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn set_values(mut boxed: Box<LargeStruct>, value: u8) -> Box<LargeStruct> {
[INFO] [stdout]    |                   ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_boxed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_08.rs:37:48
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn set_values(mut boxed: Box<LargeStruct>, value: u8) -> Box<LargeStruct> {
[INFO] [stdout]    |                                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_09.rs:12:22
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn create_shared(value: i32) -> Rc<i32> {
[INFO] [stdout]    |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rc`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_09.rs:17:17
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn clone_rc(rc: &Rc<i32>) -> Rc<i32> {
[INFO] [stdout]    |                 ^^ help: if this is intentional, prefix it with an underscore: `_rc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rc`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_09.rs:22:18
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn get_count(rc: &Rc<i32>) -> usize {
[INFO] [stdout]    |                  ^^ help: if this is intentional, prefix it with an underscore: `_rc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_09.rs:27:29
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn create_multiple_refs(value: i32, count: usize) -> Vec<Rc<i32>> {
[INFO] [stdout]    |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_09.rs:27:41
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn create_multiple_refs(value: i32, count: usize) -> Vec<Rc<i32>> {
[INFO] [stdout]    |                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_10.rs:19:16
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn new(value: i32) -> Rc<Self> {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_10.rs:24:27
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn with_neighbors(value: i32, neighbors: Vec<Rc<Node>>) -> Rc<Self> {
[INFO] [stdout]    |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `neighbors`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_10.rs:24:39
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub fn with_neighbors(value: i32, neighbors: Vec<Rc<Node>>) -> Rc<Self> {
[INFO] [stdout]    |                                       ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_neighbors`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_10.rs:29:22
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub fn ref_count(node: &Rc<Node>) -> usize {
[INFO] [stdout]    |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_10.rs:40:28
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn sum_neighbor_values(node: &Rc<Node>) -> i32 {
[INFO] [stdout]    |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_11.rs:12:23
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn create_refcell(value: i32) -> RefCell<i32> {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cell`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_11.rs:17:31
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn modify_through_refcell(cell: &RefCell<i32>, delta: i32) {
[INFO] [stdout]    |                               ^^^^ help: if this is intentional, prefix it with an underscore: `_cell`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delta`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_11.rs:17:52
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn modify_through_refcell(cell: &RefCell<i32>, delta: i32) {
[INFO] [stdout]    |                                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_delta`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cell`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_11.rs:22:26
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn read_from_refcell(cell: &RefCell<i32>) -> i32 {
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_cell`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_11.rs:44:23
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn add(&self, n: i32) {
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_12.rs:12:20
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn create_cell(value: i32) -> Cell<i32> {
[INFO] [stdout]    |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cell`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_12.rs:17:20
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn update_cell(cell: &Cell<i32>, value: i32) {
[INFO] [stdout]    |                    ^^^^ help: if this is intentional, prefix it with an underscore: `_cell`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_12.rs:17:38
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn update_cell(cell: &Cell<i32>, value: i32) {
[INFO] [stdout]    |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cell`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_12.rs:22:23
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn increment_cell(cell: &Cell<i32>) {
[INFO] [stdout]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_cell`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_12.rs:33:16
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn new(x: i32, y: i32) -> Self {
[INFO] [stdout]    |                ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_12.rs:33:24
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn new(x: i32, y: i32) -> Self {
[INFO] [stdout]    |                        ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_12.rs:45:25
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub fn set_x(&self, x: i32) {
[INFO] [stdout]    |                         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_12.rs:49:25
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub fn set_y(&self, y: i32) {
[INFO] [stdout]    |                         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dx`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_12.rs:53:29
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub fn translate(&self, dx: i32, dy: i32) {
[INFO] [stdout]    |                             ^^ help: if this is intentional, prefix it with an underscore: `_dx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dy`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_12.rs:53:38
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub fn translate(&self, dx: i32, dy: i32) {
[INFO] [stdout]    |                                      ^^ help: if this is intentional, prefix it with an underscore: `_dy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_13.rs:22:16
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn new(value: i32) -> SharedNode {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_13.rs:27:25
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn add_neighbor(node: &SharedNode, neighbor: SharedNode) {
[INFO] [stdout]    |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `neighbor`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_13.rs:27:44
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn add_neighbor(node: &SharedNode, neighbor: SharedNode) {
[INFO] [stdout]    |                                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_neighbor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_13.rs:32:22
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn get_value(node: &SharedNode) -> i32 {
[INFO] [stdout]    |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_13.rs:37:22
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn set_value(node: &SharedNode, value: i32) {
[INFO] [stdout]    |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_13.rs:37:41
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn set_value(node: &SharedNode, value: i32) {
[INFO] [stdout]    |                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_13.rs:42:27
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn neighbor_count(node: &SharedNode) -> usize {
[INFO] [stdout]    |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_13.rs:48:34
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn create_bidirectional_link(a: &SharedNode, b: &SharedNode) {
[INFO] [stdout]    |                                  ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_13.rs:48:50
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn create_bidirectional_link(a: &SharedNode, b: &SharedNode) {
[INFO] [stdout]    |                                                  ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_14.rs:21:16
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(value: i32) -> Rc<Self> {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_14.rs:26:22
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub fn add_child(parent: &Rc<TreeNode>, child: Rc<TreeNode>) {
[INFO] [stdout]    |                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `child`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_14.rs:26:45
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub fn add_child(parent: &Rc<TreeNode>, child: Rc<TreeNode>) {
[INFO] [stdout]    |                                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_child`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_14.rs:31:25
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub fn parent_value(node: &Rc<TreeNode>) -> Option<i32> {
[INFO] [stdout]    |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_14.rs:36:24
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn child_count(node: &Rc<TreeNode>) -> usize {
[INFO] [stdout]    |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_14.rs:41:19
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn counts(node: &Rc<TreeNode>) -> (usize, usize) {
[INFO] [stdout]    |                   ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_15.rs:12:19
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn create_arc(value: i32) -> Arc<i32> {
[INFO] [stdout]    |                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arc`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_15.rs:17:18
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn clone_arc(arc: &Arc<i32>) -> Arc<i32> {
[INFO] [stdout]    |                  ^^^ help: if this is intentional, prefix it with an underscore: `_arc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arc`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_15.rs:22:18
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn arc_count(arc: &Arc<i32>) -> usize {
[INFO] [stdout]    |                  ^^^ help: if this is intentional, prefix it with an underscore: `_arc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_15.rs:27:30
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn share_across_contexts(value: String, count: usize) -> Vec<Arc<String>> {
[INFO] [stdout]    |                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_15.rs:27:45
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn share_across_contexts(value: String, count: usize) -> Vec<Arc<String>> {
[INFO] [stdout]    |                                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_15.rs:37:16
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn new(size: usize) -> Arc<Self> {
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_16.rs:12:30
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn create_shared_counter(initial: i32) -> Arc<Mutex<i32>> {
[INFO] [stdout]    |                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `counter`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_16.rs:17:26
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn increment_counter(counter: &Arc<Mutex<i32>>) {
[INFO] [stdout]    |                          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_counter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `counter`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_16.rs:22:26
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn get_counter_value(counter: &Arc<Mutex<i32>>) -> i32 {
[INFO] [stdout]    |                          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_counter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_16.rs:36:23
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn add(&self, n: i32) {
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_connections`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_17.rs:20:16
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn new(max_connections: usize, timeout_seconds: u64) -> Self {
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_connections`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timeout_seconds`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_17.rs:20:40
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn new(max_connections: usize, timeout_seconds: u64) -> Self {
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timeout_seconds`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_17.rs:26:20
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn init_config(config: Config) -> Result<(), Config> {
[INFO] [stdout]    |                    ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_18.rs:22:27
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn add(&mut self, value: String) -> Rc<String> {
[INFO] [stdout]    |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_18.rs:26:23
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub fn get(&self, index: usize) -> Option<Rc<String>> {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_18.rs:45:23
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub fn add(&self, value: String) {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_18.rs:49:23
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub fn get(&self, index: usize) -> Option<String> {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_18.rs:68:16
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub fn new(value: T) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_18.rs:76:23
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn set(&self, value: T) {
[INFO] [stdout]    |                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_19.rs:27:34
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn push_front(&mut self, value: i32) {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_19.rs:52:27
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn prepend(&self, value: i32) -> Self {
[INFO] [stdout]    |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_19.rs:76:34
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn push_front(&mut self, value: i32) {
[INFO] [stdout]    |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_19.rs:80:32
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub fn modify_first(&self, new_value: i32) -> bool {
[INFO] [stdout]    |                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `boxed`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_20.rs:13:21
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn box_to_rc<T>(boxed: Box<T>) -> Rc<T> {
[INFO] [stdout]    |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_boxed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `boxed`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_20.rs:18:22
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn box_to_arc<T>(boxed: Box<T>) -> Arc<T> {
[INFO] [stdout]    |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_boxed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vec`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_20.rs:23:30
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn vec_to_boxed_slice<T>(vec: Vec<T>) -> Box<[T]> {
[INFO] [stdout]    |                              ^^^ help: if this is intentional, prefix it with an underscore: `_vec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_20.rs:28:28
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn string_to_boxed_str(s: String) -> Box<str> {
[INFO] [stdout]    |                            ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rc`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_20.rs:33:25
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn try_unwrap_rc<T>(rc: Rc<T>) -> Result<T, Rc<T>> {
[INFO] [stdout]    |                         ^^ help: if this is intentional, prefix it with an underscore: `_rc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arc`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_20.rs:38:26
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn try_unwrap_arc<T>(arc: Arc<T>) -> Result<T, Arc<T>> {
[INFO] [stdout]    |                          ^^^ help: if this is intentional, prefix it with an underscore: `_arc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rc`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_20.rs:43:30
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn make_rc_mut<T: Clone>(rc: &mut Rc<T>) -> &mut T {
[INFO] [stdout]    |                              ^^ help: if this is intentional, prefix it with an underscore: `_rc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_21.rs:12:24
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn maybe_uppercase(s: &str) -> Cow<str> {
[INFO] [stdout]    |                        ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nums`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_21.rs:17:24
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn ensure_positive(nums: &[i32]) -> Cow<[i32]> {
[INFO] [stdout]    |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_nums`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_21.rs:22:26
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn ensure_suffix<'a>(s: &'a str, suffix: &str) -> Cow<'a, str> {
[INFO] [stdout]    |                          ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suffix`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_21.rs:22:38
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn ensure_suffix<'a>(s: &'a str, suffix: &str) -> Cow<'a, str> {
[INFO] [stdout]    |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_suffix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cows`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_21.rs:27:20
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn count_owned(cows: &[Cow<str>]) -> usize {
[INFO] [stdout]    |                    ^^^^ help: if this is intentional, prefix it with an underscore: `_cows`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cow`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_21.rs:32:21
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn cow_to_owned(cow: Cow<str>) -> String {
[INFO] [stdout]    |                     ^^^ help: if this is intentional, prefix it with an underscore: `_cow`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_22.rs:18:16
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn new(value: T) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `flag`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_22.rs:43:16
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub fn new(flag: bool, left: T, right: T) -> Self {
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_flag`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_22.rs:43:28
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub fn new(flag: bool, left: T, right: T) -> Self {
[INFO] [stdout]    |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_22.rs:43:37
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub fn new(flag: bool, left: T, right: T) -> Self {
[INFO] [stdout]    |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_right`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_23.rs:21:16
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(name: String) -> Self {
[INFO] [stdout]    |                ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filename`
[INFO] [stdout]   --> src/exercises/smart_pointers/exercise_23.rs:58:17
[INFO] [stdout]    |
[WARN] too many lines in the log, truncating it
