[INFO] cloning repository https://github.com/pkmgr/pkmgr
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/pkmgr/pkmgr" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpkmgr%2Fpkmgr", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpkmgr%2Fpkmgr'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 26d8e2bb2fec4c1f9646d954a4972e73e975816c
[INFO] checking pkmgr/pkmgr against master#eeb94be79adc9df7a09ad0b2421f16e60e6d932c for pr-152971
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpkmgr%2Fpkmgr" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/pkmgr/pkmgr
[INFO] finished tweaking git repo https://github.com/pkmgr/pkmgr
[INFO] tweaked toml for git repo https://github.com/pkmgr/pkmgr written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/pkmgr/pkmgr on toolchain eeb94be79adc9df7a09ad0b2421f16e60e6d932c
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+eeb94be79adc9df7a09ad0b2421f16e60e6d932c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/pkmgr/pkmgr 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" "+eeb94be79adc9df7a09ad0b2421f16e60e6d932c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded clap v4.5.48
[INFO] [stderr]   Downloaded clap_complete v4.5.58
[INFO] [stderr]   Downloaded clap_builder v4.5.48
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+eeb94be79adc9df7a09ad0b2421f16e60e6d932c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e355a3f7eed7377c5b21920baaed5008b5c2e086567fab863db9e6b90a34e4ad
[INFO] running `Command { std: "docker" "start" "-a" "e355a3f7eed7377c5b21920baaed5008b5c2e086567fab863db9e6b90a34e4ad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e355a3f7eed7377c5b21920baaed5008b5c2e086567fab863db9e6b90a34e4ad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e355a3f7eed7377c5b21920baaed5008b5c2e086567fab863db9e6b90a34e4ad", kill_on_drop: false }`
[INFO] [stdout] e355a3f7eed7377c5b21920baaed5008b5c2e086567fab863db9e6b90a34e4ad
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+eeb94be79adc9df7a09ad0b2421f16e60e6d932c" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 59a475446e5956439e3989b98d4852106884fe3e19743f3dde6b4b1ea1c10971
[INFO] running `Command { std: "docker" "start" "-a" "59a475446e5956439e3989b98d4852106884fe3e19743f3dde6b4b1ea1c10971", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.176
[INFO] [stderr]    Compiling find-msvc-tools v0.1.2
[INFO] [stderr]     Checking bitflags v2.9.4
[INFO] [stderr]     Checking generic-array v0.14.7
[INFO] [stderr]     Checking indexmap v2.11.4
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking yoke v0.8.0
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]     Checking anstream v0.6.20
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking base64ct v1.8.0
[INFO] [stderr]    Compiling portable-atomic v1.11.1
[INFO] [stderr]     Checking clap_lex v0.7.5
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling clap_derive v4.5.47
[INFO] [stderr]     Checking rustix v1.1.2
[INFO] [stderr]     Checking zerovec v0.11.4
[INFO] [stderr]     Checking zerotrie v0.2.2
[INFO] [stderr]     Checking deranged v0.5.4
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking inout v0.1.4
[INFO] [stderr]     Checking password-hash v0.4.2
[INFO] [stderr]     Checking clap_builder v4.5.48
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking crc32fast v1.5.0
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]     Checking winnow v0.7.13
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking regex-syntax v0.8.6
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking tinystr v0.8.1
[INFO] [stderr]     Checking potential_utf v0.1.3
[INFO] [stderr]     Checking icu_locale_core v2.0.0
[INFO] [stderr]     Checking pbkdf2 v0.11.0
[INFO] [stderr]     Checking flate2 v1.1.2
[INFO] [stderr]     Checking time v0.3.44
[INFO] [stderr]     Checking icu_collections v2.0.0
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking xattr v1.6.1
[INFO] [stderr]     Checking aes v0.8.4
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking icu_provider v2.0.0
[INFO] [stderr]    Compiling cc v1.2.39
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking serde_json v1.0.145
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking zeroize v1.8.2
[INFO] [stderr]     Checking shell-words v1.1.0
[INFO] [stderr]     Checking home v0.5.11
[INFO] [stderr]     Checking match_cfg v0.1.0
[INFO] [stderr]     Checking constant_time_eq v0.1.5
[INFO] [stderr]     Checking semver v1.0.27
[INFO] [stderr]     Checking icu_properties v2.0.1
[INFO] [stderr]     Checking icu_normalizer v2.0.0
[INFO] [stderr]     Checking signal-hook-registry v1.4.6
[INFO] [stderr]     Checking parking_lot_core v0.9.11
[INFO] [stderr]     Checking mio v1.0.4
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking socket2 v0.6.0
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking getrandom v0.3.3
[INFO] [stderr]     Checking mio v0.8.11
[INFO] [stderr]     Checking console v0.15.11
[INFO] [stderr]     Checking parking_lot v0.12.4
[INFO] [stderr]     Checking dirs-sys v0.5.0
[INFO] [stderr]     Checking regex-automata v0.4.11
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]     Checking tempfile v3.23.0
[INFO] [stderr]     Checking dirs v6.0.0
[INFO] [stderr]     Checking filetime v0.2.26
[INFO] [stderr]     Checking shellexpand v3.1.1
[INFO] [stderr]     Checking clap v4.5.48
[INFO] [stderr]     Checking dirs v5.0.1
[INFO] [stderr]     Checking uuid v1.18.1
[INFO] [stderr]     Checking clap_complete v4.5.58
[INFO] [stderr]     Checking which v4.4.2
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking chrono v0.4.42
[INFO] [stderr]     Checking indicatif v0.17.11
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking tar v0.4.44
[INFO] [stderr]     Checking hostname v0.3.1
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]     Checking fs2 v0.4.3
[INFO] [stderr]     Checking dialoguer v0.11.0
[INFO] [stderr]     Checking nix v0.27.1
[INFO] [stderr]     Checking tokio v1.47.1
[INFO] [stderr]     Checking signal-hook-mio v0.2.4
[INFO] [stderr]     Checking crossterm v0.27.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]    Compiling bzip2-sys v0.1.13+1.0.8
[INFO] [stderr]    Compiling sys-info v0.9.1
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking regex v1.11.3
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking url v2.5.7
[INFO] [stderr]     Checking bzip2 v0.4.4
[INFO] [stderr]    Compiling rustls v0.21.12
[INFO] [stderr]     Checking rustls-webpki v0.101.7
[INFO] [stderr]     Checking sct v0.7.1
[INFO] [stderr]    Compiling zstd-safe v5.0.2+zstd.1.5.2
[INFO] [stderr]     Checking zstd v0.11.2+zstd.1.5.2
[INFO] [stderr]     Checking zip v0.6.6
[INFO] [stderr]     Checking tokio-util v0.7.16
[INFO] [stderr]     Checking h2 v0.3.27
[INFO] [stderr]     Checking tokio-rustls v0.24.1
[INFO] [stderr]     Checking hyper v0.14.32
[INFO] [stderr]     Checking hyper-rustls v0.24.2
[INFO] [stderr]     Checking reqwest v0.11.27
[INFO] [stderr]     Checking pkmgr v1.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/commands/binary.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]  --> src/commands/binary.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cache::stats::CacheStatistics`
[INFO] [stdout]  --> src/commands/cache.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::cache::stats::CacheStatistics;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ValueEnum`
[INFO] [stdout]  --> src/commands/profile.rs:2:24
[INFO] [stdout]   |
[INFO] [stdout] 2 | use clap::{Subcommand, ValueEnum};
[INFO] [stdout]   |                        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `usb`
[INFO] [stdout]    --> src/commands/usb.rs:119:7
[INFO] [stdout]     |
[INFO] [stdout] 119 | #[cfg(feature = "usb")]
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `static`, and `winapi`
[INFO] [stdout]     = help: consider adding `usb` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `usb`
[INFO] [stdout]    --> src/commands/usb.rs:150:7
[INFO] [stdout]     |
[INFO] [stdout] 150 | #[cfg(feature = "usb")]
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `static`, and `winapi`
[INFO] [stdout]     = help: consider adding `usb` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `usb`
[INFO] [stdout]    --> src/commands/usb.rs:180:7
[INFO] [stdout]     |
[INFO] [stdout] 180 | #[cfg(feature = "usb")]
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `static`, and `winapi`
[INFO] [stdout]     = help: consider adding `usb` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `usb`
[INFO] [stdout]    --> src/commands/usb.rs:218:7
[INFO] [stdout]     |
[INFO] [stdout] 218 | #[cfg(feature = "usb")]
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `static`, and `winapi`
[INFO] [stdout]     = help: consider adding `usb` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]  --> src/commands/usb.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `usb`
[INFO] [stdout]   --> src/commands/usb.rs:66:11
[INFO] [stdout]    |
[INFO] [stdout] 66 |     #[cfg(feature = "usb")]
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `static`, and `winapi`
[INFO] [stdout]    = help: consider adding `usb` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `usb`
[INFO] [stdout]   --> src/commands/usb.rs:90:15
[INFO] [stdout]    |
[INFO] [stdout] 90 |     #[cfg(not(feature = "usb"))]
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `static`, and `winapi`
[INFO] [stdout]    = help: consider adding `usb` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Result`
[INFO] [stdout]  --> src/core/normalize.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::platform::PackageManager`
[INFO] [stdout]  --> src/core/normalize.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::core::platform::PackageManager;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PlatformInfo`
[INFO] [stdout]  --> src/core/normalizer.rs:3:45
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::core::platform::{PackageManager, PlatformInfo};
[INFO] [stdout]   |                                             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/languages/resolver.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/languages/installer.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/languages/executor.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result, bail};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::env`
[INFO] [stdout]  --> src/languages/executor.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::env;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/languages/executor.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `regex::Regex`
[INFO] [stdout]  --> src/managers/apt.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use regex::Regex;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/commands/binary.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]  --> src/commands/binary.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Color`
[INFO] [stdout]  --> src/ui/output.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | use console::{style, Color, Term};
[INFO] [stdout]   |                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cache::stats::CacheStatistics`
[INFO] [stdout]  --> src/commands/cache.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::cache::stats::CacheStatistics;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Context` and `Result`
[INFO] [stdout]  --> src/iso/mod.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/iso/manager.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/iso/manager.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `IsoVersion`
[INFO] [stdout]  --> src/iso/manager.rs:6:59
[INFO] [stdout]   |
[INFO] [stdout] 6 | use super::{distributions, verification, IsoDistribution, IsoVersion, DistributionCategory};
[INFO] [stdout]   |                                                           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ValueEnum`
[INFO] [stdout]  --> src/commands/profile.rs:2:24
[INFO] [stdout]   |
[INFO] [stdout] 2 | use clap::{Subcommand, ValueEnum};
[INFO] [stdout]   |                        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/usb/mod.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `usb`
[INFO] [stdout]    --> src/commands/usb.rs:119:7
[INFO] [stdout]     |
[INFO] [stdout] 119 | #[cfg(feature = "usb")]
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `static`, and `winapi`
[INFO] [stdout]     = help: consider adding `usb` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bail`
[INFO] [stdout]  --> src/usb/device.rs:1:31
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result, bail};
[INFO] [stdout]   |                               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `usb`
[INFO] [stdout]    --> src/commands/usb.rs:150:7
[INFO] [stdout]     |
[INFO] [stdout] 150 | #[cfg(feature = "usb")]
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `static`, and `winapi`
[INFO] [stdout]     = help: consider adding `usb` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `usb`
[INFO] [stdout]    --> src/commands/usb.rs:180:7
[INFO] [stdout]     |
[INFO] [stdout] 180 | #[cfg(feature = "usb")]
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `static`, and `winapi`
[INFO] [stdout]     = help: consider adding `usb` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `usb`
[INFO] [stdout]    --> src/commands/usb.rs:218:7
[INFO] [stdout]     |
[INFO] [stdout] 218 | #[cfg(feature = "usb")]
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `static`, and `winapi`
[INFO] [stdout]     = help: consider adding `usb` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Context` and `bail`
[INFO] [stdout]  --> src/usb/wizard.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result, bail};
[INFO] [stdout]   |              ^^^^^^^          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]  --> src/commands/usb.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]  --> src/usb/bootloader.rs:2:23
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MultiBootConfig`
[INFO] [stdout]  --> src/usb/bootloader.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::{MultiBootConfig, BootEntry, BootloaderType};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::iso::IsoDistribution`
[INFO] [stdout]  --> src/usb/bootloader.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::iso::IsoDistribution;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `usb`
[INFO] [stdout]   --> src/commands/usb.rs:66:11
[INFO] [stdout]    |
[INFO] [stdout] 66 |     #[cfg(feature = "usb")]
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `static`, and `winapi`
[INFO] [stdout]    = help: consider adding `usb` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `usb`
[INFO] [stdout]   --> src/commands/usb.rs:90:15
[INFO] [stdout]    |
[INFO] [stdout] 90 |     #[cfg(not(feature = "usb"))]
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `static`, and `winapi`
[INFO] [stdout]    = help: consider adding `usb` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Digest` and `Sha256`
[INFO] [stdout]    --> src/usb/writer.rs:159:20
[INFO] [stdout]     |
[INFO] [stdout] 159 |         use sha2::{Sha256, Digest};
[INFO] [stdout]     |                    ^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Context`, `Result`, and `bail`
[INFO] [stdout]  --> src/repos/mod.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result, bail};
[INFO] [stdout]   |              ^^^^^^^  ^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/repos/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PathBuf` and `Path`
[INFO] [stdout]  --> src/repos/mod.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TrustLevel`
[INFO] [stdout]  --> src/repos/manager.rs:7:41
[INFO] [stdout]   |
[INFO] [stdout] 7 | use super::{Repository, RepositoryType, TrustLevel, detector::RepositoryDetector, gpg::GpgManager};
[INFO] [stdout]   |                                         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]  --> src/repos/gpg.rs:3:23
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Context`, `Result`, and `bail`
[INFO] [stdout]  --> src/repos/detector.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result, bail};
[INFO] [stdout]   |              ^^^^^^^  ^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PathBuf` and `Path`
[INFO] [stdout]  --> src/repos/detector.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Result`
[INFO] [stdout]  --> src/core/normalize.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::platform::PackageManager`
[INFO] [stdout]  --> src/core/normalize.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::core::platform::PackageManager;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/repos/config.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PlatformInfo`
[INFO] [stdout]  --> src/core/normalizer.rs:3:45
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::core::platform::{PackageManager, PlatformInfo};
[INFO] [stdout]   |                                             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/languages/resolver.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/languages/installer.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/languages/executor.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result, bail};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::env`
[INFO] [stdout]  --> src/languages/executor.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::env;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/languages/executor.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/profile/mod.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `regex::Regex`
[INFO] [stdout]  --> src/managers/apt.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use regex::Regex;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PathBuf` and `Path`
[INFO] [stdout]  --> src/profile/manager.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]  --> src/profile/exporter.rs:2:23
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Context`, `Result`, and `bail`
[INFO] [stdout]  --> src/recovery/mod.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result, bail};
[INFO] [stdout]   |              ^^^^^^^  ^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Color`
[INFO] [stdout]  --> src/ui/output.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | use console::{style, Color, Term};
[INFO] [stdout]   |                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/recovery/patterns/arch.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/recovery/patterns/common.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Context` and `Result`
[INFO] [stdout]  --> src/iso/mod.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/iso/manager.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Context` and `Result`
[INFO] [stdout]  --> src/recovery/analyzer.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/iso/manager.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bail`
[INFO] [stdout]  --> src/recovery/fixer.rs:1:31
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result, bail};
[INFO] [stdout]   |                               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `IsoVersion`
[INFO] [stdout]  --> src/iso/manager.rs:6:59
[INFO] [stdout]   |
[INFO] [stdout] 6 | use super::{distributions, verification, IsoDistribution, IsoVersion, DistributionCategory};
[INFO] [stdout]   |                                                           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Result`
[INFO] [stdout]  --> src/recovery/strategies.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `clap::Command`
[INFO] [stdout]  --> src/shell/completion.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use clap::Command;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]  --> src/shell/completion.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Result`
[INFO] [stdout]  --> src/shell/integration.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/usb/mod.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bail`
[INFO] [stdout]  --> src/usb/device.rs:1:31
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result, bail};
[INFO] [stdout]   |                               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Context` and `bail`
[INFO] [stdout]  --> src/usb/wizard.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result, bail};
[INFO] [stdout]   |              ^^^^^^^          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]  --> src/usb/bootloader.rs:2:23
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MultiBootConfig`
[INFO] [stdout]  --> src/usb/bootloader.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::{MultiBootConfig, BootEntry, BootloaderType};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::iso::IsoDistribution`
[INFO] [stdout]  --> src/usb/bootloader.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::iso::IsoDistribution;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Digest` and `Sha256`
[INFO] [stdout]    --> src/usb/writer.rs:159:20
[INFO] [stdout]     |
[INFO] [stdout] 159 |         use sha2::{Sha256, Digest};
[INFO] [stdout]     |                    ^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Context`, `Result`, and `bail`
[INFO] [stdout]  --> src/repos/mod.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result, bail};
[INFO] [stdout]   |              ^^^^^^^  ^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/repos/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PathBuf` and `Path`
[INFO] [stdout]  --> src/repos/mod.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/shell/mod.rs:6:14
[INFO] [stdout]   |
[INFO] [stdout] 6 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TrustLevel`
[INFO] [stdout]  --> src/repos/manager.rs:7:41
[INFO] [stdout]   |
[INFO] [stdout] 7 | use super::{Repository, RepositoryType, TrustLevel, detector::RepositoryDetector, gpg::GpgManager};
[INFO] [stdout]   |                                         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]  --> src/repos/gpg.rs:3:23
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/cache/manager.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/cache/cleaner.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Context`, `Result`, and `bail`
[INFO] [stdout]  --> src/repos/detector.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result, bail};
[INFO] [stdout]   |              ^^^^^^^  ^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PathBuf` and `Path`
[INFO] [stdout]  --> src/repos/detector.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CacheStats`
[INFO] [stdout]  --> src/cache/cleaner.rs:5:56
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::cache::{CacheConfig, CacheEntry, CacheType, CacheStats, format_size};
[INFO] [stdout]   |                                                        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Result`
[INFO] [stdout]  --> src/cache/stats.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/repos/config.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DateTime`
[INFO] [stdout]  --> src/cache/stats.rs:2:14
[INFO] [stdout]   |
[INFO] [stdout] 2 | use chrono::{DateTime, Utc, Duration};
[INFO] [stdout]   |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CacheConfig`
[INFO] [stdout]  --> src/cache/stats.rs:5:20
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::cache::{CacheConfig, CacheEntry, CacheType, CacheStats, format_size};
[INFO] [stdout]   |                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/cache/mod.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/doctor/checker.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CheckCategory`
[INFO] [stdout]  --> src/doctor/checker.rs:6:21
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::doctor::{CheckCategory, Finding, HealthReport, Severity, SystemInfo};
[INFO] [stdout]   |                     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/doctor/diagnostics.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Finding`
[INFO] [stdout]  --> src/doctor/diagnostics.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::doctor::{Finding, HealthReport, Severity};
[INFO] [stdout]   |                     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cache::format_size`
[INFO] [stdout]  --> src/doctor/report.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::cache::format_size;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/doctor/mod.rs:5:14
[INFO] [stdout]   |
[INFO] [stdout] 5 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/doctor/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/profile/mod.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PathBuf` and `Path`
[INFO] [stdout]  --> src/profile/manager.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `downloader::BinaryDownloader`
[INFO] [stdout]  --> src/binary/mod.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use downloader::BinaryDownloader;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]  --> src/profile/exporter.rs:2:23
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Context`, `Result`, and `bail`
[INFO] [stdout]  --> src/recovery/mod.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result, bail};
[INFO] [stdout]   |              ^^^^^^^  ^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/recovery/patterns/arch.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/recovery/patterns/common.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Context` and `Result`
[INFO] [stdout]  --> src/recovery/analyzer.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bail`
[INFO] [stdout]  --> src/recovery/fixer.rs:1:31
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result, bail};
[INFO] [stdout]   |                               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Result`
[INFO] [stdout]  --> src/recovery/strategies.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `clap::Command`
[INFO] [stdout]  --> src/shell/completion.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use clap::Command;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]  --> src/shell/completion.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Result`
[INFO] [stdout]  --> src/shell/integration.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/shell/mod.rs:6:14
[INFO] [stdout]   |
[INFO] [stdout] 6 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/cache/manager.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/cache/cleaner.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CacheStats`
[INFO] [stdout]  --> src/cache/cleaner.rs:5:56
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::cache::{CacheConfig, CacheEntry, CacheType, CacheStats, format_size};
[INFO] [stdout]   |                                                        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Result`
[INFO] [stdout]  --> src/cache/stats.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DateTime`
[INFO] [stdout]  --> src/cache/stats.rs:2:14
[INFO] [stdout]   |
[INFO] [stdout] 2 | use chrono::{DateTime, Utc, Duration};
[INFO] [stdout]   |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CacheConfig`
[INFO] [stdout]  --> src/cache/stats.rs:5:20
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::cache::{CacheConfig, CacheEntry, CacheType, CacheStats, format_size};
[INFO] [stdout]   |                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/cache/mod.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/doctor/checker.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CheckCategory`
[INFO] [stdout]  --> src/doctor/checker.rs:6:21
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::doctor::{CheckCategory, Finding, HealthReport, Severity, SystemInfo};
[INFO] [stdout]   |                     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/doctor/diagnostics.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Finding`
[INFO] [stdout]  --> src/doctor/diagnostics.rs:4:21
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::doctor::{Finding, HealthReport, Severity};
[INFO] [stdout]   |                     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cache::format_size`
[INFO] [stdout]  --> src/doctor/report.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::cache::format_size;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/doctor/mod.rs:5:14
[INFO] [stdout]   |
[INFO] [stdout] 5 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/doctor/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `downloader::BinaryDownloader`
[INFO] [stdout]  --> src/binary/mod.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use downloader::BinaryDownloader;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/iso/manager.rs:359:13
[INFO] [stdout]     |
[INFO] [stdout] 359 |         let mut duplicates: Vec<PathBuf> = Vec::new();
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/iso/manager.rs:359:13
[INFO] [stdout]     |
[INFO] [stdout] 359 |         let mut duplicates: Vec<PathBuf> = Vec::new();
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/repos/manager.rs:232:21
[INFO] [stdout]     |
[INFO] [stdout] 232 |         if let Some(mut repo) = self.detector.detect_required_repository(repo_spec) {
[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/repos/manager.rs:232:21
[INFO] [stdout]     |
[INFO] [stdout] 232 |         if let Some(mut repo) = self.detector.detect_required_repository(repo_spec) {
[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/doctor/diagnostics.rs:253:17
[INFO] [stdout]     |
[INFO] [stdout] 253 |             let mut manager = RepositoryManager::new(self.output.clone(), platform);
[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/doctor/diagnostics.rs:253:17
[INFO] [stdout]     |
[INFO] [stdout] 253 |             let mut manager = RepositoryManager::new(self.output.clone(), platform);
[INFO] [stdout]     |                 ----^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::os::unix::process::CommandExt`
[INFO] [stdout]  --> src/languages/executor.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::os::unix::process::CommandExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::os::unix::process::CommandExt`
[INFO] [stdout]  --> src/languages/executor.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::os::unix::process::CommandExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]   --> src/commands/binary.rs:27:43
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub async fn execute(cmd: BinaryCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                           ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/commands/binary.rs:50:41
[INFO] [stdout]    |
[INFO] [stdout] 50 | async fn search_binaries(query: String, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]   --> src/commands/binary.rs:27:43
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub async fn execute(cmd: BinaryCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                           ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/commands/binary.rs:50:41
[INFO] [stdout]    |
[INFO] [stdout] 50 | async fn search_binaries(query: String, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/commands/binary.rs:211:48
[INFO] [stdout]     |
[INFO] [stdout] 211 | async fn update_binaries(name: Option<String>, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]     |                                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/commands/binary.rs:211:48
[INFO] [stdout]     |
[INFO] [stdout] 211 | async fn update_binaries(name: Option<String>, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]     |                                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/commands/binary.rs:244:41
[INFO] [stdout]     |
[INFO] [stdout] 244 | async fn show_binary_info(repo: String, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]     |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/commands/binary.rs:244:41
[INFO] [stdout]     |
[INFO] [stdout] 244 | async fn show_binary_info(repo: String, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]     |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cmd`
[INFO] [stdout]   --> src/commands/config.rs:16:22
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub async fn execute(cmd: ConfigCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                      ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]   --> src/commands/config.rs:16:43
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub async fn execute(cmd: ConfigCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                           ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/commands/config.rs:16:54
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub async fn execute(cmd: ConfigCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cmd`
[INFO] [stdout]   --> src/commands/config.rs:16:22
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub async fn execute(cmd: ConfigCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                      ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]   --> src/commands/config.rs:16:43
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub async fn execute(cmd: ConfigCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                           ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/commands/config.rs:16:54
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub async fn execute(cmd: ConfigCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pm`
[INFO] [stdout]    --> src/doctor/checker.rs:671:70
[INFO] [stdout]     |
[INFO] [stdout] 671 |     async fn check_package_updates(&self, report: &mut HealthReport, pm: &str) -> Result<()> {
[INFO] [stdout]     |                                                                      ^^ help: if this is intentional, prefix it with an underscore: `_pm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pm`
[INFO] [stdout]    --> src/doctor/checker.rs:671:70
[INFO] [stdout]     |
[INFO] [stdout] 671 |     async fn check_package_updates(&self, report: &mut HealthReport, pm: &str) -> Result<()> {
[INFO] [stdout]     |                                                                      ^^ help: if this is intentional, prefix it with an underscore: `_pm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `report`
[INFO] [stdout]   --> src/doctor/diagnostics.rs:25:41
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub async fn run_diagnostics(&self, report: &HealthReport) -> Result<()> {
[INFO] [stdout]    |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_report`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `platform`
[INFO] [stdout]   --> src/doctor/diagnostics.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let platform = Platform::detect()?;
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_platform`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fixer`
[INFO] [stdout]   --> src/doctor/diagnostics.rs:57:13
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let fixer = ErrorFixer::new(self.output.clone(), self.dry_run, self.auto_fix);
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_fixer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `report`
[INFO] [stdout]   --> src/doctor/diagnostics.rs:25:41
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub async fn run_diagnostics(&self, report: &HealthReport) -> Result<()> {
[INFO] [stdout]    |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_report`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]  --> src/commands/info.rs:8:39
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub async fn execute(package: String, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]   |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]  --> src/commands/info.rs:8:50
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub async fn execute(package: String, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]   |                                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `platform`
[INFO] [stdout]   --> src/doctor/diagnostics.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let platform = Platform::detect()?;
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_platform`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fixer`
[INFO] [stdout]   --> src/doctor/diagnostics.rs:57:13
[INFO] [stdout]    |
[INFO] [stdout] 57 |         let fixer = ErrorFixer::new(self.output.clone(), self.dry_run, self.auto_fix);
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_fixer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]  --> src/commands/install.rs:9:45
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub async fn execute(packages: Vec<String>, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]   |                                             ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]  --> src/commands/install.rs:9:56
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub async fn execute(packages: Vec<String>, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]   |                                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]  --> src/commands/info.rs:8:39
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub async fn execute(package: String, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]   |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]  --> src/commands/info.rs:8:50
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub async fn execute(package: String, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]   |                                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]  --> src/commands/install.rs:9:45
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub async fn execute(packages: Vec<String>, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]   |                                             ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]  --> src/commands/install.rs:9:56
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub async fn execute(packages: Vec<String>, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]   |                                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]   --> src/commands/iso.rs:43:40
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub async fn execute(cmd: IsoCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]   --> src/commands/iso.rs:43:40
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub async fn execute(cmd: IsoCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/commands/language.rs:132:57
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub async fn execute_node(cmd: NodeCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]     |                                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/commands/language.rs:161:61
[INFO] [stdout]     |
[INFO] [stdout] 161 | pub async fn execute_python(cmd: PythonCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]     |                                                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]    --> src/commands/language.rs:190:42
[INFO] [stdout]     |
[INFO] [stdout] 190 | pub async fn execute_go(cmd: GoCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/commands/language.rs:190:53
[INFO] [stdout]     |
[INFO] [stdout] 190 | pub async fn execute_go(cmd: GoCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]     |                                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]    --> src/commands/language.rs:211:46
[INFO] [stdout]     |
[INFO] [stdout] 211 | pub async fn execute_rust(cmd: RustCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]     |                                              ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/commands/language.rs:211:57
[INFO] [stdout]     |
[INFO] [stdout] 211 | pub async fn execute_rust(cmd: RustCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]     |                                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]    --> src/commands/language.rs:232:46
[INFO] [stdout]     |
[INFO] [stdout] 232 | pub async fn execute_ruby(cmd: RubyCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]     |                                              ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/commands/language.rs:232:57
[INFO] [stdout]     |
[INFO] [stdout] 232 | pub async fn execute_ruby(cmd: RubyCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]     |                                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]    --> src/commands/language.rs:259:44
[INFO] [stdout]     |
[INFO] [stdout] 259 | pub async fn execute_php(cmd: PhpCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/commands/language.rs:259:55
[INFO] [stdout]     |
[INFO] [stdout] 259 | pub async fn execute_php(cmd: PhpCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]     |                                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/commands/language.rs:132:57
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub async fn execute_node(cmd: NodeCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]     |                                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]    --> src/commands/language.rs:280:46
[INFO] [stdout]     |
[INFO] [stdout] 280 | pub async fn execute_java(cmd: JavaCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]     |                                              ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/commands/language.rs:280:57
[INFO] [stdout]     |
[INFO] [stdout] 280 | pub async fn execute_java(cmd: JavaCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]     |                                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]    --> src/commands/language.rs:301:50
[INFO] [stdout]     |
[INFO] [stdout] 301 | pub async fn execute_dotnet(cmd: DotnetCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]     |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/commands/language.rs:301:61
[INFO] [stdout]     |
[INFO] [stdout] 301 | pub async fn execute_dotnet(cmd: DotnetCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]     |                                                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/commands/list.rs:15:62
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub async fn execute(list_type: Option<ListType>, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/commands/language.rs:161:61
[INFO] [stdout]     |
[INFO] [stdout] 161 | pub async fn execute_python(cmd: PythonCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]     |                                                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]    --> src/commands/language.rs:190:42
[INFO] [stdout]     |
[INFO] [stdout] 190 | pub async fn execute_go(cmd: GoCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/commands/language.rs:190:53
[INFO] [stdout]     |
[INFO] [stdout] 190 | pub async fn execute_go(cmd: GoCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]     |                                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]    --> src/commands/language.rs:211:46
[INFO] [stdout]     |
[INFO] [stdout] 211 | pub async fn execute_rust(cmd: RustCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]     |                                              ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/commands/language.rs:211:57
[INFO] [stdout]     |
[INFO] [stdout] 211 | pub async fn execute_rust(cmd: RustCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]     |                                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]    --> src/commands/language.rs:232:46
[INFO] [stdout]     |
[INFO] [stdout] 232 | pub async fn execute_ruby(cmd: RubyCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]     |                                              ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/commands/language.rs:232:57
[INFO] [stdout]     |
[INFO] [stdout] 232 | pub async fn execute_ruby(cmd: RubyCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]     |                                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]    --> src/commands/language.rs:259:44
[INFO] [stdout]     |
[INFO] [stdout] 259 | pub async fn execute_php(cmd: PhpCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/commands/language.rs:259:55
[INFO] [stdout]     |
[INFO] [stdout] 259 | pub async fn execute_php(cmd: PhpCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]     |                                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]    --> src/commands/language.rs:280:46
[INFO] [stdout]     |
[INFO] [stdout] 280 | pub async fn execute_java(cmd: JavaCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]     |                                              ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/commands/language.rs:280:57
[INFO] [stdout]     |
[INFO] [stdout] 280 | pub async fn execute_java(cmd: JavaCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]     |                                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]    --> src/commands/language.rs:301:50
[INFO] [stdout]     |
[INFO] [stdout] 301 | pub async fn execute_dotnet(cmd: DotnetCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]     |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/commands/language.rs:301:61
[INFO] [stdout]     |
[INFO] [stdout] 301 | pub async fn execute_dotnet(cmd: DotnetCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]     |                                                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/commands/list.rs:15:62
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub async fn execute(list_type: Option<ListType>, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]   --> src/commands/profile.rs:99:44
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub async fn execute(cmd: ProfileCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/commands/profile.rs:99:55
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub async fn execute(cmd: ProfileCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]   --> src/commands/profile.rs:99:44
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub async fn execute(cmd: ProfileCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/commands/profile.rs:99:55
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub async fn execute(cmd: ProfileCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]  --> src/commands/remove.rs:9:45
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub async fn execute(packages: Vec<String>, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]   |                                             ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]  --> src/commands/remove.rs:9:56
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub async fn execute(packages: Vec<String>, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]   |                                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]  --> src/commands/remove.rs:9:45
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub async fn execute(packages: Vec<String>, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]   |                                             ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]  --> src/commands/remove.rs:9:56
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub async fn execute(packages: Vec<String>, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]   |                                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]   --> src/commands/repos.rs:36:42
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub async fn execute(cmd: ReposCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/commands/repos.rs:36:53
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub async fn execute(cmd: ReposCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]   --> src/commands/repos.rs:36:42
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub async fn execute(cmd: ReposCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/commands/repos.rs:36:53
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub async fn execute(cmd: ReposCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cmd`
[INFO] [stdout]   --> src/commands/sync.rs:20:32
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub async fn execute_bootstrap(cmd: BootstrapCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]   --> src/commands/sync.rs:20:56
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub async fn execute_bootstrap(cmd: BootstrapCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                                        ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/commands/sync.rs:20:67
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub async fn execute_bootstrap(cmd: BootstrapCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cmd`
[INFO] [stdout]   --> src/commands/sync.rs:25:27
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub async fn execute_sync(cmd: SyncCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                           ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]   --> src/commands/sync.rs:25:46
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub async fn execute_sync(cmd: SyncCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                              ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/commands/sync.rs:25:57
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub async fn execute_sync(cmd: SyncCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]  --> src/commands/whatis.rs:9:39
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub async fn execute(package: String, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]   |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]  --> src/commands/whatis.rs:9:50
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub async fn execute(package: String, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]   |                                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]   --> src/commands/where_pkg.rs:10:39
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub async fn execute(package: String, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/commands/where_pkg.rs:10:50
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub async fn execute(package: String, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cmd`
[INFO] [stdout]   --> src/commands/sync.rs:20:32
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub async fn execute_bootstrap(cmd: BootstrapCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]   --> src/commands/sync.rs:20:56
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub async fn execute_bootstrap(cmd: BootstrapCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                                        ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/commands/sync.rs:20:67
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub async fn execute_bootstrap(cmd: BootstrapCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cmd`
[INFO] [stdout]   --> src/commands/sync.rs:25:27
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub async fn execute_sync(cmd: SyncCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                           ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]   --> src/commands/sync.rs:25:46
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub async fn execute_sync(cmd: SyncCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                              ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/commands/sync.rs:25:57
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub async fn execute_sync(cmd: SyncCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]  --> src/commands/whatis.rs:9:39
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub async fn execute(package: String, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]   |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]  --> src/commands/whatis.rs:9:50
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub async fn execute(package: String, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]   |                                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]  --> src/commands/update.rs:8:53
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub async fn execute(packages: Option<Vec<String>>, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]   |                                                     ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]  --> src/commands/update.rs:8:64
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub async fn execute(packages: Option<Vec<String>>, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]   |                                                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]   --> src/commands/where_pkg.rs:10:39
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub async fn execute(package: String, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                       ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/commands/where_pkg.rs:10:50
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub async fn execute(package: String, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]  --> src/commands/update.rs:8:53
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub async fn execute(packages: Option<Vec<String>>, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]   |                                                     ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]  --> src/commands/update.rs:8:64
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub async fn execute(packages: Option<Vec<String>>, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]   |                                                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]   --> src/commands/usb.rs:64:40
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub async fn execute(cmd: UsbCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/commands/usb.rs:64:51
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub async fn execute(cmd: UsbCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `no_verify`
[INFO] [stdout]    --> src/commands/usb.rs:105:52
[INFO] [stdout]     |
[INFO] [stdout] 105 |             UsbCommands::Write { iso_file, device, no_verify } => {
[INFO] [stdout]     |                                                    ^^^^^^^^^ help: try ignoring the field: `no_verify: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `boot_cmd`
[INFO] [stdout]    --> src/commands/usb.rs:109:31
[INFO] [stdout]     |
[INFO] [stdout] 109 |             UsbCommands::Boot(boot_cmd) => {
[INFO] [stdout]     |                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_boot_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]   --> src/commands/recovery.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     cli: &Cli,
[INFO] [stdout]    |     ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/commands/recovery.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     config: &Config,
[INFO] [stdout]    |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]   --> src/commands/usb.rs:64:40
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub async fn execute(cmd: UsbCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/commands/usb.rs:64:51
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub async fn execute(cmd: UsbCommands, cli: &Cli, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `patterns`
[INFO] [stdout]    --> src/recovery/fixer.rs:350:37
[INFO] [stdout]     |
[INFO] [stdout] 350 |     async fn force_overwrite(&self, patterns: &[String], data: &HashMap<String, String>) -> Result<bool> {
[INFO] [stdout]     |                                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_patterns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `no_verify`
[INFO] [stdout]    --> src/commands/usb.rs:105:52
[INFO] [stdout]     |
[INFO] [stdout] 105 |             UsbCommands::Write { iso_file, device, no_verify } => {
[INFO] [stdout]     |                                                    ^^^^^^^^^ help: try ignoring the field: `no_verify: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/recovery/fixer.rs:350:58
[INFO] [stdout]     |
[INFO] [stdout] 350 |     async fn force_overwrite(&self, patterns: &[String], data: &HashMap<String, String>) -> Result<bool> {
[INFO] [stdout]     |                                                          ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strategies`
[INFO] [stdout]    --> src/commands/recovery.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 115 |     let strategies = RecoveryStrategies::new(output.clone());
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strategies`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `boot_cmd`
[INFO] [stdout]    --> src/commands/usb.rs:109:31
[INFO] [stdout]     |
[INFO] [stdout] 109 |             UsbCommands::Boot(boot_cmd) => {
[INFO] [stdout]     |                               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_boot_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cli`
[INFO] [stdout]   --> src/commands/recovery.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     cli: &Cli,
[INFO] [stdout]    |     ^^^ help: if this is intentional, prefix it with an underscore: `_cli`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/commands/recovery.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     config: &Config,
[INFO] [stdout]    |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `platform`
[INFO] [stdout]    --> src/commands/recovery.rs:249:5
[INFO] [stdout]     |
[INFO] [stdout] 249 |     platform: &PlatformInfo,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_platform`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `platform`
[INFO] [stdout]    --> src/commands/recovery.rs:283:44
[INFO] [stdout]     |
[INFO] [stdout] 283 | async fn check_disk_space(output: &Output, platform: &PlatformInfo) -> Result<()> {
[INFO] [stdout]     |                                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_platform`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `patterns`
[INFO] [stdout]    --> src/recovery/fixer.rs:350:37
[INFO] [stdout]     |
[INFO] [stdout] 350 |     async fn force_overwrite(&self, patterns: &[String], data: &HashMap<String, String>) -> Result<bool> {
[INFO] [stdout]     |                                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_patterns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/recovery/fixer.rs:350:58
[INFO] [stdout]     |
[INFO] [stdout] 350 |     async fn force_overwrite(&self, patterns: &[String], data: &HashMap<String, String>) -> Result<bool> {
[INFO] [stdout]     |                                                          ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strategies`
[INFO] [stdout]    --> src/commands/recovery.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 115 |     let strategies = RecoveryStrategies::new(output.clone());
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_strategies`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `platform`
[INFO] [stdout]    --> src/commands/recovery.rs:249:5
[INFO] [stdout]     |
[INFO] [stdout] 249 |     platform: &PlatformInfo,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_platform`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `platform`
[INFO] [stdout]    --> src/commands/recovery.rs:283:44
[INFO] [stdout]     |
[INFO] [stdout] 283 | async fn check_disk_space(output: &Output, platform: &PlatformInfo) -> Result<()> {
[INFO] [stdout]     |                                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_platform`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arch`
[INFO] [stdout]   --> src/languages/installer.rs:51:13
[INFO] [stdout]    |
[INFO] [stdout] 51 |         let arch = self.detect_architecture();
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_arch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/languages/mod.rs:12:54
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn handle_language_command(language: &str, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arch`
[INFO] [stdout]   --> src/languages/installer.rs:51:13
[INFO] [stdout]    |
[INFO] [stdout] 51 |         let arch = self.detect_architecture();
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_arch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> src/managers/apt.rs:169:13
[INFO] [stdout]     |
[INFO] [stdout] 169 |         let output = self.run_command("apt", &args, true)?;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> src/managers/apt.rs:184:13
[INFO] [stdout]     |
[INFO] [stdout] 184 |         let output = self.run_command("apt", &args, true)?;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> src/managers/apt.rs:207:13
[INFO] [stdout]     |
[INFO] [stdout] 207 |         let output = self.run_command("apt", &args, true)?;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> src/managers/dnf.rs:169:13
[INFO] [stdout]     |
[INFO] [stdout] 169 |         let output = self.run_command(&args, true)?;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/languages/mod.rs:12:54
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub async fn handle_language_command(language: &str, config: &Config, output: &Output) -> Result<()> {
[INFO] [stdout]    |                                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> src/managers/dnf.rs:184:13
[INFO] [stdout]     |
[INFO] [stdout] 184 |         let output = self.run_command(&args, true)?;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> src/managers/dnf.rs:207:13
[INFO] [stdout]     |
[INFO] [stdout] 207 |         let output = self.run_command(&args, true)?;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> src/managers/apt.rs:169:13
[INFO] [stdout]     |
[INFO] [stdout] 169 |         let output = self.run_command("apt", &args, true)?;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> src/managers/apt.rs:184:13
[INFO] [stdout]     |
[INFO] [stdout] 184 |         let output = self.run_command("apt", &args, true)?;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> src/managers/apt.rs:207:13
[INFO] [stdout]     |
[INFO] [stdout] 207 |         let output = self.run_command("apt", &args, true)?;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> src/managers/pacman.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |         let output = self.run_command(&args, true)?;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> src/managers/pacman.rs:182:13
[INFO] [stdout]     |
[INFO] [stdout] 182 |         let output = self.run_command(&args, true)?;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> src/managers/pacman.rs:207:13
[INFO] [stdout]     |
[INFO] [stdout] 207 |         let output = self.run_command(&args, true)?;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> src/managers/dnf.rs:169:13
[INFO] [stdout]     |
[INFO] [stdout] 169 |         let output = self.run_command(&args, true)?;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> src/managers/dnf.rs:184:13
[INFO] [stdout]     |
[INFO] [stdout] 184 |         let output = self.run_command(&args, true)?;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> src/managers/dnf.rs:207:13
[INFO] [stdout]     |
[INFO] [stdout] 207 |         let output = self.run_command(&args, true)?;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> src/managers/homebrew.rs:153:13
[INFO] [stdout]     |
[INFO] [stdout] 153 |         let output = self.run_command(&args)?;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> src/managers/homebrew.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 168 |         let output = self.run_command(&args)?;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> src/managers/homebrew.rs:193:13
[INFO] [stdout]     |
[INFO] [stdout] 193 |         let output = self.run_command(&args)?;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> src/managers/pacman.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |         let output = self.run_command(&args, true)?;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> src/managers/pacman.rs:182:13
[INFO] [stdout]     |
[INFO] [stdout] 182 |         let output = self.run_command(&args, true)?;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `github_url`
[INFO] [stdout]   --> src/managers/winget.rs:68:13
[INFO] [stdout]    |
[INFO] [stdout] 68 |         let github_url = "https://api.github.com/repos/microsoft/winget-cli/releases/latest";
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_github_url`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> src/managers/pacman.rs:207:13
[INFO] [stdout]     |
[INFO] [stdout] 207 |         let output = self.run_command(&args, true)?;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/managers/winget.rs:105:21
[INFO] [stdout]     |
[INFO] [stdout] 105 |                 let name = parts[0].to_string();
[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/managers/winget.rs:136:21
[INFO] [stdout]     |
[INFO] [stdout] 136 |                 let name = parts[0].to_string();
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> src/managers/homebrew.rs:153:13
[INFO] [stdout]     |
[INFO] [stdout] 153 |         let output = self.run_command(&args)?;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> src/managers/homebrew.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 168 |         let output = self.run_command(&args)?;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> src/managers/homebrew.rs:193:13
[INFO] [stdout]     |
[INFO] [stdout] 193 |         let output = self.run_command(&args)?;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `github_url`
[INFO] [stdout]   --> src/managers/winget.rs:68:13
[INFO] [stdout]    |
[INFO] [stdout] 68 |         let github_url = "https://api.github.com/repos/microsoft/winget-cli/releases/latest";
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_github_url`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/managers/winget.rs:105:21
[INFO] [stdout]     |
[INFO] [stdout] 105 |                 let name = parts[0].to_string();
[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/managers/winget.rs:136:21
[INFO] [stdout]     |
[INFO] [stdout] 136 |                 let name = parts[0].to_string();
[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/managers/winget.rs:337:13
[INFO] [stdout]     |
[INFO] [stdout] 337 |         let mut name = package.to_string();
[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/managers/winget.rs:337:13
[INFO] [stdout]     |
[INFO] [stdout] 337 |         let mut name = package.to_string();
[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/managers/scoop.rs:311:13
[INFO] [stdout]     |
[INFO] [stdout] 311 |         let mut name = package.to_string();
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `icon`
[INFO] [stdout]    --> src/ui/output.rs:218:13
[INFO] [stdout]     |
[INFO] [stdout] 218 |         let icon = if self.emoji_enabled { "📥" } else { "[DL]" };
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_icon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/managers/scoop.rs:311:13
[INFO] [stdout]     |
[INFO] [stdout] 311 |         let mut name = package.to_string();
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `icon`
[INFO] [stdout]    --> src/ui/output.rs:227:13
[INFO] [stdout]     |
[INFO] [stdout] 227 |         let icon = if self.emoji_enabled { "📦" } else { "[INSTALL]" };
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_icon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `icon`
[INFO] [stdout]    --> src/ui/output.rs:232:13
[INFO] [stdout]     |
[INFO] [stdout] 232 |         let icon = if self.emoji_enabled { "🗑️" } else { "[REMOVE]" };
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_icon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `icon`
[INFO] [stdout]    --> src/ui/output.rs:237:13
[INFO] [stdout]     |
[INFO] [stdout] 237 |         let icon = if self.emoji_enabled { "🔄" } else { "[UPDATE]" };
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_icon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `icon`
[INFO] [stdout]    --> src/ui/output.rs:242:13
[INFO] [stdout]     |
[INFO] [stdout] 242 |         let icon = if self.emoji_enabled { "🏗️" } else { "[BUILD]" };
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_icon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `icon`
[INFO] [stdout]    --> src/ui/output.rs:247:13
[INFO] [stdout]     |
[INFO] [stdout] 247 |         let icon = if self.emoji_enabled { "🔍" } else { "[VERIFY]" };
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_icon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `icon`
[INFO] [stdout]    --> src/ui/output.rs:252:13
[INFO] [stdout]     |
[INFO] [stdout] 252 |         let icon = if self.emoji_enabled { "🧹" } else { "[CLEANUP]" };
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_icon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `icon`
[INFO] [stdout]    --> src/ui/output.rs:218:13
[INFO] [stdout]     |
[INFO] [stdout] 218 |         let icon = if self.emoji_enabled { "📥" } else { "[DL]" };
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_icon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `icon`
[INFO] [stdout]    --> src/ui/output.rs:227:13
[INFO] [stdout]     |
[INFO] [stdout] 227 |         let icon = if self.emoji_enabled { "📦" } else { "[INSTALL]" };
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_icon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `icon`
[INFO] [stdout]    --> src/ui/output.rs:232:13
[INFO] [stdout]     |
[INFO] [stdout] 232 |         let icon = if self.emoji_enabled { "🗑️" } else { "[REMOVE]" };
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_icon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `icon`
[INFO] [stdout]    --> src/ui/output.rs:237:13
[INFO] [stdout]     |
[INFO] [stdout] 237 |         let icon = if self.emoji_enabled { "🔄" } else { "[UPDATE]" };
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_icon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `icon`
[INFO] [stdout]    --> src/ui/output.rs:242:13
[INFO] [stdout]     |
[INFO] [stdout] 242 |         let icon = if self.emoji_enabled { "🏗️" } else { "[BUILD]" };
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_icon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `icon`
[INFO] [stdout]    --> src/ui/output.rs:247:13
[INFO] [stdout]     |
[INFO] [stdout] 247 |         let icon = if self.emoji_enabled { "🔍" } else { "[VERIFY]" };
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_icon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `icon`
[INFO] [stdout]    --> src/ui/output.rs:252:13
[INFO] [stdout]     |
[INFO] [stdout] 252 |         let icon = if self.emoji_enabled { "🧹" } else { "[CLEANUP]" };
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_icon`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status`
[INFO] [stdout]   --> src/usb/wizard.rs:83:17
[INFO] [stdout]    |
[INFO] [stdout] 83 |             let status = if device.is_mounted {
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_status`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_path`
[INFO] [stdout]    --> src/usb/wizard.rs:407:43
[INFO] [stdout]     |
[INFO] [stdout] 407 |             UsbOperation::Erase { device: device_path } => {
[INFO] [stdout]     |                                           ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_device_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> src/usb/wizard.rs:423:42
[INFO] [stdout]     |
[INFO] [stdout] 423 |     async fn create_multiboot_usb(&self, device: &UsbDevice, initial_isos: Vec<PathBuf>) -> Result<()> {
[INFO] [stdout]     |                                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status`
[INFO] [stdout]   --> src/usb/wizard.rs:83:17
[INFO] [stdout]    |
[INFO] [stdout] 83 |             let status = if device.is_mounted {
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_status`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device_path`
[INFO] [stdout]    --> src/usb/wizard.rs:407:43
[INFO] [stdout]     |
[INFO] [stdout] 407 |             UsbOperation::Erase { device: device_path } => {
[INFO] [stdout]     |                                           ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_device_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> src/usb/wizard.rs:423:42
[INFO] [stdout]     |
[INFO] [stdout] 423 |     async fn create_multiboot_usb(&self, device: &UsbDevice, initial_isos: Vec<PathBuf>) -> Result<()> {
[INFO] [stdout]     |                                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `current_repo` is assigned to, but never used
[INFO] [stdout]    --> src/repos/manager.rs:205:17
[INFO] [stdout]     |
[INFO] [stdout] 205 |             let mut current_repo: Option<String> = None;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_current_repo` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `current_repo` is never read
[INFO] [stdout]    --> src/repos/manager.rs:212:21
[INFO] [stdout]     |
[INFO] [stdout] 212 |                     current_repo = Some(name.clone());
[INFO] [stdout]     |                     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `known_repos`
[INFO] [stdout]   --> src/repos/detector.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |         let known_repos = get_known_repositories();
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_known_repos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `current_repo` is assigned to, but never used
[INFO] [stdout]    --> src/repos/manager.rs:205:17
[INFO] [stdout]     |
[INFO] [stdout] 205 |             let mut current_repo: Option<String> = None;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_current_repo` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `version`
[INFO] [stdout]    --> src/repos/detector.rs:155:13
[INFO] [stdout]     |
[INFO] [stdout] 155 |         let version = "7.0"; // Default to latest stable
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `current_repo` is never read
[INFO] [stdout]    --> src/repos/manager.rs:212:21
[INFO] [stdout]     |
[INFO] [stdout] 212 |                     current_repo = Some(name.clone());
[INFO] [stdout]     |                     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `known_repos`
[INFO] [stdout]   --> src/repos/detector.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |         let known_repos = get_known_repositories();
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_known_repos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `version`
[INFO] [stdout]    --> src/repos/detector.rs:155:13
[INFO] [stdout]     |
[INFO] [stdout] 155 |         let version = "7.0"; // Default to latest stable
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `content`
[INFO] [stdout]    --> src/profile/importer.rs:109:26
[INFO] [stdout]     |
[INFO] [stdout] 109 |     fn parse_yaml(&self, content: &str) -> Result<Profile> {
[INFO] [stdout]     |                          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `content`
[INFO] [stdout]    --> src/profile/importer.rs:109:26
[INFO] [stdout]     |
[INFO] [stdout] 109 |     fn parse_yaml(&self, content: &str) -> Result<Profile> {
[INFO] [stdout]     |                          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/recovery/mod.rs:175:40
[INFO] [stdout]     |
[INFO] [stdout] 175 |     pub fn generate_suggestions(&self, data: &HashMap<String, String>) -> Vec<FixSuggestion> {
[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/recovery/mod.rs:175:40
[INFO] [stdout]     |
[INFO] [stdout] 175 |     pub fn generate_suggestions(&self, data: &HashMap<String, String>) -> Vec<FixSuggestion> {
[INFO] [stdout]     |                                        ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `info`
[INFO] [stdout]    --> src/doctor/mod.rs:271:17
[INFO] [stdout]     |
[INFO] [stdout] 271 |             let info = sys_info::loadavg()?;
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_info`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `recover_from_error` is never used
[INFO] [stdout]    --> src/commands/recovery.rs:313:14
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub async fn recover_from_error(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_last_error` is never used
[INFO] [stdout]    --> src/commands/recovery.rs:360:4
[INFO] [stdout]     |
[INFO] [stdout] 360 | fn save_last_error(stdout: &str, stderr: &str, exit_code: i32, command: &str) -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `resolve_alias` is never used
[INFO] [stdout]    --> src/core/config.rs:239:12
[INFO] [stdout]     |
[INFO] [stdout] 180 | impl Config {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub fn resolve_alias(&self, command: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_language_command` is never used
[INFO] [stdout]   --> src/core/detector.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl SymlinkDetector {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn is_language_command(&self, program_name: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_arch_linux`, `is_debian_based`, and `is_rhel_based` are never used
[INFO] [stdout]    --> src/core/platform.rs:248:12
[INFO] [stdout]     |
[INFO] [stdout]  60 | impl PlatformInfo {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn is_arch_linux(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 252 |     pub fn is_debian_based(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 258 |     pub fn is_rhel_based(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Transaction` is never constructed
[INFO] [stdout]  --> src/core/transaction.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct Transaction {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TransactionStatus` is never used
[INFO] [stdout]   --> src/core/transaction.rs:21:10
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub enum TransactionStatus {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TransactionPackages` is never constructed
[INFO] [stdout]   --> src/core/transaction.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct TransactionPackages {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TransactionFiles` is never constructed
[INFO] [stdout]   --> src/core/transaction.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct TransactionFiles {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TransactionRepositories` is never constructed
[INFO] [stdout]   --> src/core/transaction.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct TransactionRepositories {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/core/transaction.rs:50:12
[INFO] [stdout]     |
[INFO] [stdout]  49 | impl Transaction {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout]  50 |     pub fn new(operation: String) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub async fn save(&self, data_dir: &PathBuf) -> Result<()> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub async fn load(data_dir: &PathBuf, id: &str) -> Result<Option<Self>> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub async fn load_current(data_dir: &PathBuf) -> Result<Option<Self>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn complete(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn fail(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn start_rollback(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub fn complete_rollback(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub fn add_installed_package(&mut self, package: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn add_removed_package(&mut self, package: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn add_upgraded_package(&mut self, package: String, old_version: String, new_version: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn add_created_file(&mut self, file: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn add_modified_file(&mut self, file: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn add_removed_file(&mut self, file: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub fn add_repository(&mut self, repo: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn remove_repository(&mut self, repo: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn backup_config(&mut self, original_path: String, backup_path: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TransactionManager` is never constructed
[INFO] [stdout]    --> src/core/transaction.rs:169:12
[INFO] [stdout]     |
[INFO] [stdout] 169 | pub struct TransactionManager {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/core/transaction.rs:175:12
[INFO] [stdout]     |
[INFO] [stdout] 174 | impl TransactionManager {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] 175 |     pub fn new(data_dir: PathBuf) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub async fn start_transaction(&mut self, operation: String) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub async fn complete_transaction(&mut self) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub async fn fail_transaction(&mut self) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub async fn rollback_transaction(&mut self, transaction_id: &str) -> Result<bool> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     pub fn current_transaction(&self) -> Option<&Transaction> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub fn current_transaction_mut(&mut self) -> Option<&mut Transaction> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PackageNormalizer` is never constructed
[INFO] [stdout]  --> src/core/normalize.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct PackageNormalizer {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `normalize`, `get_variations`, `requires_repository`, and `get_install_notes` are never used
[INFO] [stdout]   --> src/core/normalize.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl PackageNormalizer {
[INFO] [stdout]    | ---------------------- associated items in this implementation
[INFO] [stdout] 15 |     pub fn new(platform: Platform, package_manager: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn normalize(&self, name: &str) -> Vec<String> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     fn get_variations(&self, name: &str) -> Vec<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn requires_repository(&self, name: &str) -> Option<RepositoryRequirement> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 95 |     pub fn get_install_notes(&self, name: &str) -> Option<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PackageMapping` is never constructed
[INFO] [stdout]    --> src/core/normalize.rs:104:12
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub struct PackageMapping {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_platform_name` is never used
[INFO] [stdout]    --> src/core/normalize.rs:118:12
[INFO] [stdout]     |
[INFO] [stdout] 116 | impl PackageMapping {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] 117 |     /// Get platform-specific package name
[INFO] [stdout] 118 |     pub fn get_platform_name(&self, package_manager: &str) -> Option<&'static str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RepositoryRequirement` is never constructed
[INFO] [stdout]    --> src/core/normalize.rs:135:12
[INFO] [stdout]     |
[INFO] [stdout] 135 | pub struct RepositoryRequirement {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PACKAGE_MAPPINGS` is never used
[INFO] [stdout]    --> src/core/normalize.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 | static PACKAGE_MAPPINGS: Lazy<HashMap<&'static str, PackageMapping>> = Lazy::new(|| {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `REPOSITORY_REQUIREMENTS` is never used
[INFO] [stdout]    --> src/core/normalize.rs:568:8
[INFO] [stdout]     |
[INFO] [stdout] 568 | static REPOSITORY_REQUIREMENTS: Lazy<HashMap<&'static str, RepositoryRequirement>> = Lazy::new(|| {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `INSTALL_NOTES` is never used
[INFO] [stdout]    --> src/core/normalize.rs:605:8
[INFO] [stdout]     |
[INFO] [stdout] 605 | static INSTALL_NOTES: Lazy<HashMap<&'static str, &'static str>> = Lazy::new(|| {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PrivilegeManager` is never constructed
[INFO] [stdout]   --> src/core/privilege.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct PrivilegeManager {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/core/privilege.rs:19:12
[INFO] [stdout]     |
[INFO] [stdout]  18 | impl PrivilegeManager {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  19 |     pub fn new(output: Output) -> Result<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  31 |     pub fn is_root(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  50 |     pub fn has_privileges(&self) -> PrivilegeStatus {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  63 |     fn check_sudo_access(&self) -> PrivilegeStatus {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     fn is_in_sudo_group(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     fn check_windows_elevation(&self) -> PrivilegeStatus {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn escalate_command(&self, command: &[String], operation: &str) -> Result<Vec<String>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     fn handle_password_required(&self, command: &[String], operation: &str) -> Result<Vec<String>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     fn handle_no_privileges(&self, operation: &str) -> Result<Vec<String>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     fn is_ci_environment(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub fn configure_sudo(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     fn generate_sudoers_content(&self, pkmgr_path: &Path) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 |     fn validate_sudoers_content(&self, content: &str) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 293 |     fn write_sudoers_file(&self, content: &str) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 338 |     pub fn check_configuration(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 390 |     pub fn determine_install_location(&self, prefer_user: bool) -> InstallLocation {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PrivilegeStatus` is never used
[INFO] [stdout]    --> src/core/privilege.rs:420:10
[INFO] [stdout]     |
[INFO] [stdout] 420 | pub enum PrivilegeStatus {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `can_escalate` and `is_passwordless` are never used
[INFO] [stdout]    --> src/core/privilege.rs:428:12
[INFO] [stdout]     |
[INFO] [stdout] 427 | impl PrivilegeStatus {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] 428 |     pub fn can_escalate(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 432 |     pub fn is_passwordless(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `InstallLocation` is never used
[INFO] [stdout]    --> src/core/privilege.rs:439:10
[INFO] [stdout]     |
[INFO] [stdout] 439 | pub enum InstallLocation {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `base_dir`, `bin_dir`, `share_dir`, and `config_dir` are never used
[INFO] [stdout]    --> src/core/privilege.rs:445:12
[INFO] [stdout]     |
[INFO] [stdout] 444 | impl InstallLocation {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] 445 |     pub fn base_dir(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 456 |     pub fn bin_dir(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 460 |     pub fn share_dir(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 464 |     pub fn config_dir(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `packages_installed` is never read
[INFO] [stdout]   --> src/core/traits.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct InstallResult {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub packages_installed: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `InstallResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `LanguageManager` is never used
[INFO] [stdout]   --> src/core/traits.rs:67:11
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub trait LanguageManager: Send + Sync {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `BinaryManager` is never used
[INFO] [stdout]    --> src/core/traits.rs:101:11
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub trait BinaryManager: Send + Sync {
[INFO] [stdout]     |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_alternatives` and `requires_repository` are never used
[INFO] [stdout]    --> src/core/normalizer.rs:305:12
[INFO] [stdout]     |
[INFO] [stdout]  26 | impl PackageNormalizer {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 305 |     pub fn get_alternatives(&self, package_name: &str) -> Vec<(PackageManager, Vec<String>)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 376 |     pub fn requires_repository(&self, package_name: &str) -> Option<&'static str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `source` is never read
[INFO] [stdout]   --> src/languages/resolver.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct ResolvedVersion {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 24 |     pub version: String,
[INFO] [stdout] 25 |     pub source: VersionSource,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ResolvedVersion` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `output` is never read
[INFO] [stdout]   --> src/languages/resolver.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct VersionResolver {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 32 |     language: String,
[INFO] [stdout] 33 |     output: Output,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LanguageInstaller` is never constructed
[INFO] [stdout]   --> src/languages/installer.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct LanguageInstaller {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/languages/installer.rs:17:12
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl LanguageInstaller {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  17 |     pub fn new(language: String, output: Output, config: &Config) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  24 |     pub async fn install_version(&self, version: &str) -> Result<PathBuf> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  48 |     async fn install_python(&self, version: &str, install_path: &PathBuf) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     async fn install_node(&self, version: &str, install_path: &PathBuf) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     async fn install_go(&self, version: &str, install_path: &PathBuf) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     async fn install_rust(&self, version: &str, install_path: &PathBuf) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     async fn install_ruby(&self, version: &str, install_path: &PathBuf) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     async fn download_file(&self, url: &str, filename: &str) -> Result<PathBuf> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 244 |     fn detect_architecture(&self) -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub async fn get_available_versions(&self) -> Result<Vec<String>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sudo_available` is never read
[INFO] [stdout]  --> src/managers/homebrew.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct HomebrewManager {
[INFO] [stdout]   |            --------------- field in this struct
[INFO] [stdout] 9 |     sudo_available: bool,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `term` is never read
[INFO] [stdout]  --> src/ui/output.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Output {
[INFO] [stdout]   |            ------ field in this struct
[INFO] [stdout] 6 |     pub term: Term,
[INFO] [stdout]   |         ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Output` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/ui/output.rs:29:12
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl Output {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  29 |     pub fn with_verbose(color_output: String, emoji_enabled: bool, verbose: bool) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn step(&self, message: &str) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn print(&self, message: &str) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub fn print_list(&self, items: &[String]) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     pub fn clear_line(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     pub fn is_tty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn width(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn height(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn build_start(&self, package: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub fn cleanup_start(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `create_install_bar`, `create_usb_bar`, `create_spinner`, `create_multi_spinner`, `finish_with_message`, and `finish_with_error` are never used
[INFO] [stdout]    --> src/ui/progress.rs:33:12
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl ProgressManager {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  33 |     pub fn create_install_bar(&self, total: u64, title: &str) -> ProgressBar {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  53 |     pub fn create_usb_bar(&self, size: u64, iso_name: &str, device: &str) -> ProgressBar {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  73 |     pub fn create_spinner(&self, message: &str) -> ProgressBar {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn create_multi_spinner(&self, message: &str) -> ProgressBar {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn finish_with_message(&self, pb: &ProgressBar, message: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn finish_with_error(&self, pb: &ProgressBar, message: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/ui/prompt.rs:26:12
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl Prompt {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  26 |     pub fn confirm_default_yes(&self, message: &str) -> Result<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn input_with_default(&self, message: &str, default: &str) -> Result<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn select<T>(&self, message: &str, items: &[T]) -> Result<usize>
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn multiselect<T>(&self, message: &str, items: &[T]) -> Result<Vec<usize>>
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn destructive_confirm(&self, message: &str, confirmation_text: &str) -> Result<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn version_select(&self, versions: &[String], current: Option<&str>) -> Result<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn usb_device_select(&self, devices: &[(String, String, u64)]) -> Result<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `download_with_checksum` and `calculate_sha256` are never used
[INFO] [stdout]   --> src/utils/download.rs:64:18
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Downloader {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub async fn download_with_checksum(&self, url: &str, dest: &Path, expected_checksum: Option<&str>) -> Result<()> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     async fn calculate_sha256(&self, path: &Path) -> Result<String> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `placeholder` is never used
[INFO] [stdout]  --> src/utils/crypto.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub fn placeholder() {}
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `placeholder` is never used
[INFO] [stdout]  --> src/utils/fs.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub fn placeholder() {}
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `calculate_sha512` is never used
[INFO] [stdout]    --> src/iso/verification.rs:139:8
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl IsoVerifier {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 139 |     fn calculate_sha512(&self, path: &Path) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UsbOperation` is never used
[INFO] [stdout]   --> src/usb/mod.rs:37:10
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub enum UsbOperation {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MultiBootConfig` is never constructed
[INFO] [stdout]   --> src/usb/mod.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub struct MultiBootConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BootloaderType` is never used
[INFO] [stdout]   --> src/usb/mod.rs:69:10
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub enum BootloaderType {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BootEntry` is never constructed
[INFO] [stdout]   --> src/usb/mod.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub struct BootEntry {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `size_gb`, `is_suitable_for_single_iso`, `is_suitable_for_multi_boot`, and `format_size` are never used
[INFO] [stdout]    --> src/usb/mod.rs:88:12
[INFO] [stdout]     |
[INFO] [stdout]  87 | impl UsbDevice {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout]  88 |     pub fn size_gb(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn is_suitable_for_single_iso(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn is_suitable_for_multi_boot(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn format_size(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_device_safe` is never used
[INFO] [stdout]    --> src/usb/mod.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub fn is_device_safe(device_path: &Path) -> Result<bool> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `unmount_device`, and `eject_device` are never used
[INFO] [stdout]    --> src/usb/device.rs:10:12
[INFO] [stdout]     |
[INFO] [stdout]   9 | impl DeviceDetector {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout]  10 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 332 |     pub fn unmount_device(&self, device: &UsbDevice) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 360 |     pub fn eject_device(&self, device: &UsbDevice) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UsbWizard` is never constructed
[INFO] [stdout]  --> src/usb/wizard.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct UsbWizard {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/usb/wizard.rs:16:12
[INFO] [stdout]     |
[INFO] [stdout]  15 | impl UsbWizard {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  16 |     pub fn new(output: Output) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  26 |     pub async fn run(&self) -> Result<()> {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     async fn select_device(&self) -> Result<Option<UsbDevice>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     async fn select_operation(&self, device: &UsbDevice) -> Result<Option<UsbOperation>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     async fn select_iso(&self) -> Result<Option<PathBuf>> {
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 322 |     async fn select_multiple_isos(&self) -> Result<Vec<PathBuf>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 354 |     async fn execute_operation(&self, operation: UsbOperation, device: &UsbDevice) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 423 |     async fn create_multiboot_usb(&self, device: &UsbDevice, initial_isos: Vec<PathBuf>) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     async fn list_multiboot_isos(&self, device_path: &Path) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_size` is never used
[INFO] [stdout]    --> src/usb/wizard.rs:453:4
[INFO] [stdout]     |
[INFO] [stdout] 453 | fn format_size(bytes: u64) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BootloaderManager` is never constructed
[INFO] [stdout]  --> src/usb/bootloader.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct BootloaderManager {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/usb/bootloader.rs:13:12
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl BootloaderManager {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  13 |     pub fn new(bootloader_type: BootloaderType) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  18 |     pub fn install_bootloader(&self, device: &Path) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  27 |     pub fn generate_config(&self, usb_root: &Path, entries: &[BootEntry]) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  35 |     fn install_grub2(&self, device: &Path) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     fn install_syslinux(&self, device: &Path) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     fn install_ventoy(&self, _device: &Path) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     fn generate_grub_config(&self, usb_root: &Path, entries: &[BootEntry]) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     fn generate_grub_entry(&self, entry: &BootEntry) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     fn get_boot_params(&self, distro: &str, _version: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 222 |     fn generate_syslinux_config(&self, usb_root: &Path, entries: &[BootEntry]) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 250 |     pub fn create_directory_structure(&self, usb_root: &Path) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `categorize_iso` is never used
[INFO] [stdout]    --> src/usb/bootloader.rs:286:8
[INFO] [stdout]     |
[INFO] [stdout] 286 | pub fn categorize_iso(name: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UsbWriter` is never constructed
[INFO] [stdout]   --> src/usb/writer.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct UsbWriter {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `write_iso`, `verify_write`, and `erase_device` are never used
[INFO] [stdout]    --> src/usb/writer.rs:17:12
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl UsbWriter {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  17 |     pub fn new(output: Output) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  22 |     pub async fn write_iso(&self, iso_path: &Path, device: &UsbDevice, verify: bool) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     async fn verify_write(&self, iso_path: &Path, device_path: &Path, size: u64) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub async fn erase_device(&self, device: &UsbDevice, filesystem: &str) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ProgressUpdate` is never used
[INFO] [stdout]    --> src/usb/writer.rs:244:6
[INFO] [stdout]     |
[INFO] [stdout] 244 | enum ProgressUpdate {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_iso_blocking` is never used
[INFO] [stdout]    --> src/usb/writer.rs:250:4
[INFO] [stdout]     |
[INFO] [stdout] 250 | fn write_iso_blocking(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `wipe_device_headers` is never used
[INFO] [stdout]    --> src/usb/writer.rs:312:4
[INFO] [stdout]     |
[INFO] [stdout] 312 | fn wipe_device_headers(device_path: &Path, device_size: u64) -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_checksum` is never used
[INFO] [stdout]    --> src/usb/writer.rs:338:4
[INFO] [stdout]     |
[INFO] [stdout] 338 | fn calculate_checksum(path: &Path, size: u64) -> Result<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_size` is never used
[INFO] [stdout]    --> src/usb/writer.rs:364:4
[INFO] [stdout]     |
[INFO] [stdout] 364 | fn format_size(bytes: u64) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_speed` is never used
[INFO] [stdout]    --> src/usb/writer.rs:381:4
[INFO] [stdout]     |
[INFO] [stdout] 381 | fn format_speed(bytes_per_second: f64) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_eta` is never used
[INFO] [stdout]    --> src/usb/writer.rs:393:4
[INFO] [stdout]     |
[INFO] [stdout] 393 | fn format_eta(seconds: u64) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `with_gpg_key` and `with_trust_level` are never used
[INFO] [stdout]   --> src/repos/mod.rs:93:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | impl Repository {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 93 |     pub fn with_gpg_key(mut self, key: GpgKeyInfo) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 98 |     pub fn with_trust_level(mut self, level: TrustLevel) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `trust_level` and `description` are never read
[INFO] [stdout]    --> src/repos/mod.rs:183:9
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub struct KnownRepository {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub trust_level: TrustLevel,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 184 |     pub vendor: &'static str,
[INFO] [stdout] 185 |     pub description: &'static str,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `KnownRepository` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `repos_dir` is never read
[INFO] [stdout]   --> src/repos/manager.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct RepositoryManager {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 14 |     repos_dir: PathBuf,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `keyservers` is never read
[INFO] [stdout]  --> src/repos/gpg.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct GpgManager {
[INFO] [stdout]   |            ---------- field in this struct
[INFO] [stdout] 8 |     output: Output,
[INFO] [stdout] 9 |     keyservers: Vec<String>,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/repos/gpg.rs:169:18
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl GpgManager {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub async fn fetch_key(&self, fingerprint: &str) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     async fn fetch_from_keyserver(&self, fingerprint: &str, keyserver: &str) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 227 |     pub async fn refresh_expiring_keys(&self) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 |     pub fn list_keys(&self) -> Result<Vec<GpgKeyInfo>> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 319 |     fn parse_gpg_output(&self, output: &[u8]) -> Result<Vec<GpgKeyInfo>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 364 |     pub fn verify_signature(&self, repo_file: &Path, signature_file: &Path) -> Result<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 376 |     pub fn trust_key(&self, fingerprint: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `output` is never read
[INFO] [stdout]  --> src/repos/detector.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct RepositoryDetector {
[INFO] [stdout]   |            ------------------ field in this struct
[INFO] [stdout] 8 |     output: Output,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Other` is never constructed
[INFO] [stdout]    --> src/repos/detector.rs:424:5
[INFO] [stdout]     |
[INFO] [stdout] 416 | enum OsType {
[INFO] [stdout]     |      ------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 424 |     Other,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OsType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RepositoryConfig` is never constructed
[INFO] [stdout]  --> src/repos/config.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct RepositoryConfig {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RepositoryEntry` is never constructed
[INFO] [stdout]   --> src/repos/config.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct RepositoryEntry {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RepositoryPreferences` is never constructed
[INFO] [stdout]   --> src/repos/config.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct RepositoryPreferences {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MirrorConfig` is never constructed
[INFO] [stdout]   --> src/repos/config.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct MirrorConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/repos/config.rs:71:12
[INFO] [stdout]     |
[INFO] [stdout]  69 | impl RepositoryConfig {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  70 |     /// Load configuration from file
[INFO] [stdout]  71 |     pub fn load() -> Result<Self> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn save(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     fn config_path() -> Result<PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn add_repository(&mut self, name: String, url: String, auto_added: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn remove_repository(&mut self, name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub fn get_repository(&self, name: &str) -> Option<&RepositoryEntry> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn update_repository(&mut self, name: &str, package_count: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn add_mirror(&mut self, name: String, original: String, mirror: String, location: String) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     pub fn get_best_mirror(&self, url: &str) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn is_auto_added(&self, name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `with_parent` and `copy` are never used
[INFO] [stdout]    --> src/profile/mod.rs:110:12
[INFO] [stdout]     |
[INFO] [stdout]  89 | impl Profile {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn with_parent(mut self, parent: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 244 |     pub fn copy(&self, new_name: &str) -> Result<Profile> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_best_fix` and `should_auto_fix` are never used
[INFO] [stdout]    --> src/recovery/analyzer.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout]  11 | impl ErrorAnalyzer {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn get_best_fix<'a>(&self, analyses: &'a [ErrorAnalysis]) -> Option<&'a super::FixSuggestion> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn should_auto_fix(&self, analysis: &ErrorAnalysis) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `output` is never read
[INFO] [stdout]  --> src/recovery/strategies.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct RecoveryStrategies {
[INFO] [stdout]   |            ------------------ field in this struct
[INFO] [stdout] 7 |     output: Output,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `recommend_strategy` is never used
[INFO] [stdout]   --> src/recovery/strategies.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn recommend_strategy(category: &ErrorCategory, severity: &ErrorSeverity) -> Vec<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `detect` is never used
[INFO] [stdout]   --> src/shell/mod.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl ShellType {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 20 |     /// Detect the current shell from environment
[INFO] [stdout] 21 |     pub fn detect() -> Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `output` is never read
[INFO] [stdout]   --> src/shell/completion.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct CompletionGenerator {
[INFO] [stdout]    |            ------------------- field in this struct
[INFO] [stdout] 10 |     shell: ShellType,
[INFO] [stdout] 11 |     output: Output,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SymlinkManager` is never constructed
[INFO] [stdout]  --> src/shell/symlinks.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct SymlinkManager {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/shell/symlinks.rs:13:12
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl SymlinkManager {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout]  13 |     pub fn new(output: Output) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  18 |     pub fn setup_symlinks(&self, install_dir: Option<PathBuf>) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn remove_symlinks(&self, install_dir: Option<PathBuf>) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     fn find_pkmgr_binary(&self) -> Result<PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 190 |     fn get_symlink_directory(&self, install_dir: Option<PathBuf>) -> Result<PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     fn check_path_configuration(&self, symlink_dir: &Path) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 222 |     pub fn list_symlinks(&self, install_dir: Option<PathBuf>) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `touch` is never used
[INFO] [stdout]   --> src/cache/mod.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl CacheEntry {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn touch(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `save` is never used
[INFO] [stdout]    --> src/cache/mod.rs:149:12
[INFO] [stdout]     |
[INFO] [stdout] 132 | impl CacheConfig {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 149 |     pub fn save(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `needs_cleanup` is never used
[INFO] [stdout]    --> src/cache/mod.rs:194:12
[INFO] [stdout]     |
[INFO] [stdout] 192 | impl CacheStats {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] 193 |     /// Check if cleanup is needed
[INFO] [stdout] 194 |     pub fn needs_cleanup(&self, config: &CacheConfig) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_entry` and `get_entry` are never used
[INFO] [stdout]    --> src/cache/manager.rs:313:12
[INFO] [stdout]     |
[INFO] [stdout]  17 | impl CacheManager {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub fn add_entry(&mut self, key: String, path: PathBuf, cache_type: CacheType) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 344 |     pub fn get_entry(&mut self, key: &str) -> Option<&mut CacheEntry> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clean_to_free` is never used
[INFO] [stdout]    --> src/cache/cleaner.rs:251:18
[INFO] [stdout]     |
[INFO] [stdout]  18 | impl CacheCleaner {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub async fn clean_to_free(&mut self, required_bytes: u64) -> Result<bool> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CacheStatistics` is never constructed
[INFO] [stdout]  --> src/cache/stats.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct CacheStatistics {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/cache/stats.rs:13:12
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl CacheStatistics {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout]  13 |     pub fn new(output: Output) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  18 |     pub fn display_stats(&self, stats: &CacheStats, entries: &HashMap<String, CacheEntry>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  38 |     fn display_overall_stats(&self, stats: &CacheStats) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     fn display_type_breakdown(&self, stats: &CacheStats) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     fn display_age_distribution(&self, entries: &HashMap<String, CacheEntry>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     fn display_access_patterns(&self, entries: &HashMap<String, CacheEntry>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 196 |     fn display_recommendations(&self, stats: &CacheStats) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     fn get_type_emoji(&self, cache_type: &CacheType) -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 253 |     pub fn generate_report(&self, stats: &CacheStats, entries: &HashMap<String, CacheEntry>) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `color` is never used
[INFO] [stdout]   --> src/doctor/mod.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl Severity {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn color(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `display_name` is never used
[INFO] [stdout]   --> src/doctor/mod.rs:96:12
[INFO] [stdout]    |
[INFO] [stdout] 95 | impl CheckCategory {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] 96 |     pub fn display_name(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `auto_fix` is never read
[INFO] [stdout]   --> src/doctor/checker.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct HealthChecker {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 15 |     auto_fix: bool,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Text`, `Json`, and `Html` are never constructed
[INFO] [stdout]    --> src/doctor/report.rs:455:5
[INFO] [stdout]     |
[INFO] [stdout] 454 | pub enum ExportFormat {
[INFO] [stdout]     |          ------------ variants in this enum
[INFO] [stdout] 455 |     Text,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 456 |     Markdown,
[INFO] [stdout] 457 |     Json,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 458 |     Html,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BinaryDownloader` is never constructed
[INFO] [stdout]  --> src/binary/downloader.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct BinaryDownloader {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/binary/downloader.rs:14:12
[INFO] [stdout]     |
[INFO] [stdout]  13 | impl BinaryDownloader {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  14 |     pub fn new(output: Output, install_dir: PathBuf) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  18 |     pub async fn download_from_github(&self, repo: &str, version: Option<&str>) -> Result<PathBuf> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  62 |     fn select_best_asset<'a>(&self, assets: &'a [Value]) -> Result<&'a Value> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     async fn download_asset(&self, url: &str, filename: &str) -> Result<PathBuf> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     async fn install_binary(&self, asset_path: &PathBuf, repo: &str) -> Result<PathBuf> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     async fn extract_targz(&self, archive_path: &PathBuf, install_path: &PathBuf, binary_name: &str) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     async fn extract_zip(&self, archive_path: &PathBuf, install_path: &PathBuf, binary_name: &str) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     async fn find_binary_in_dir(&self, dir: &PathBuf, binary_name: &str) -> Result<PathBuf> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 297 |     async fn make_executable(&self, path: &PathBuf) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 309 |     fn detect_platform(&self) -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 321 |     fn detect_architecture(&self) -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 333 |     pub async fn search_github_releases(&self, query: &str) -> Result<Vec<String>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `info`
[INFO] [stdout]    --> src/doctor/mod.rs:271:17
[INFO] [stdout]     |
[INFO] [stdout] 271 |             let info = sys_info::loadavg()?;
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_info`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `antiX` should have a snake case name
[INFO] [stdout]     --> src/iso/distributions.rs:1989:8
[INFO] [stdout]      |
[INFO] [stdout] 1989 | pub fn antiX() -> IsoDistribution {
[INFO] [stdout]      |        ^^^^^ help: convert the identifier to snake case: `anti_x`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]    --> src/cache/manager.rs:348:13
[INFO] [stdout]     |
[INFO] [stdout] 348 |             drop(entry);
[INFO] [stdout]     |             ^^^^^-----^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  argument has type `&mut CacheEntry`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dropping_references)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]     |
[INFO] [stdout] 348 -             drop(entry);
[INFO] [stdout] 348 +             let _ = entry;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `recover_from_error` is never used
[INFO] [stdout]    --> src/commands/recovery.rs:313:14
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub async fn recover_from_error(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_last_error` is never used
[INFO] [stdout]    --> src/commands/recovery.rs:360:4
[INFO] [stdout]     |
[INFO] [stdout] 360 | fn save_last_error(stdout: &str, stderr: &str, exit_code: i32, command: &str) -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `resolve_alias` is never used
[INFO] [stdout]    --> src/core/config.rs:239:12
[INFO] [stdout]     |
[INFO] [stdout] 180 | impl Config {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub fn resolve_alias(&self, command: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_language_command` is never used
[INFO] [stdout]   --> src/core/detector.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl SymlinkDetector {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn is_language_command(&self, program_name: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_arch_linux`, `is_debian_based`, and `is_rhel_based` are never used
[INFO] [stdout]    --> src/core/platform.rs:248:12
[INFO] [stdout]     |
[INFO] [stdout]  60 | impl PlatformInfo {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 248 |     pub fn is_arch_linux(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 252 |     pub fn is_debian_based(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 258 |     pub fn is_rhel_based(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Transaction` is never constructed
[INFO] [stdout]  --> src/core/transaction.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct Transaction {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TransactionStatus` is never used
[INFO] [stdout]   --> src/core/transaction.rs:21:10
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub enum TransactionStatus {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TransactionPackages` is never constructed
[INFO] [stdout]   --> src/core/transaction.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct TransactionPackages {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TransactionFiles` is never constructed
[INFO] [stdout]   --> src/core/transaction.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct TransactionFiles {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TransactionRepositories` is never constructed
[INFO] [stdout]   --> src/core/transaction.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct TransactionRepositories {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/core/transaction.rs:50:12
[INFO] [stdout]     |
[INFO] [stdout]  49 | impl Transaction {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout]  50 |     pub fn new(operation: String) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub async fn save(&self, data_dir: &PathBuf) -> Result<()> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub async fn load(data_dir: &PathBuf, id: &str) -> Result<Option<Self>> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub async fn load_current(data_dir: &PathBuf) -> Result<Option<Self>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn complete(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn fail(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn start_rollback(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub fn complete_rollback(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub fn add_installed_package(&mut self, package: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn add_removed_package(&mut self, package: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn add_upgraded_package(&mut self, package: String, old_version: String, new_version: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn add_created_file(&mut self, file: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn add_modified_file(&mut self, file: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn add_removed_file(&mut self, file: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub fn add_repository(&mut self, repo: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn remove_repository(&mut self, repo: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn backup_config(&mut self, original_path: String, backup_path: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TransactionManager` is never constructed
[INFO] [stdout]    --> src/core/transaction.rs:169:12
[INFO] [stdout]     |
[INFO] [stdout] 169 | pub struct TransactionManager {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/core/transaction.rs:175:12
[INFO] [stdout]     |
[INFO] [stdout] 174 | impl TransactionManager {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] 175 |     pub fn new(data_dir: PathBuf) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub async fn start_transaction(&mut self, operation: String) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub async fn complete_transaction(&mut self) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub async fn fail_transaction(&mut self) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub async fn rollback_transaction(&mut self, transaction_id: &str) -> Result<bool> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     pub fn current_transaction(&self) -> Option<&Transaction> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub fn current_transaction_mut(&mut self) -> Option<&mut Transaction> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PackageNormalizer` is never constructed
[INFO] [stdout]  --> src/core/normalize.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct PackageNormalizer {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `normalize`, `get_variations`, `requires_repository`, and `get_install_notes` are never used
[INFO] [stdout]   --> src/core/normalize.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl PackageNormalizer {
[INFO] [stdout]    | ---------------------- associated items in this implementation
[INFO] [stdout] 15 |     pub fn new(platform: Platform, package_manager: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn normalize(&self, name: &str) -> Vec<String> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     fn get_variations(&self, name: &str) -> Vec<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn requires_repository(&self, name: &str) -> Option<RepositoryRequirement> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 95 |     pub fn get_install_notes(&self, name: &str) -> Option<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PackageMapping` is never constructed
[INFO] [stdout]    --> src/core/normalize.rs:104:12
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub struct PackageMapping {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_platform_name` is never used
[INFO] [stdout]    --> src/core/normalize.rs:118:12
[INFO] [stdout]     |
[INFO] [stdout] 116 | impl PackageMapping {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] 117 |     /// Get platform-specific package name
[INFO] [stdout] 118 |     pub fn get_platform_name(&self, package_manager: &str) -> Option<&'static str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RepositoryRequirement` is never constructed
[INFO] [stdout]    --> src/core/normalize.rs:135:12
[INFO] [stdout]     |
[INFO] [stdout] 135 | pub struct RepositoryRequirement {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PACKAGE_MAPPINGS` is never used
[INFO] [stdout]    --> src/core/normalize.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 | static PACKAGE_MAPPINGS: Lazy<HashMap<&'static str, PackageMapping>> = Lazy::new(|| {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `REPOSITORY_REQUIREMENTS` is never used
[INFO] [stdout]    --> src/core/normalize.rs:568:8
[INFO] [stdout]     |
[INFO] [stdout] 568 | static REPOSITORY_REQUIREMENTS: Lazy<HashMap<&'static str, RepositoryRequirement>> = Lazy::new(|| {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `INSTALL_NOTES` is never used
[INFO] [stdout]    --> src/core/normalize.rs:605:8
[INFO] [stdout]     |
[INFO] [stdout] 605 | static INSTALL_NOTES: Lazy<HashMap<&'static str, &'static str>> = Lazy::new(|| {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PrivilegeManager` is never constructed
[INFO] [stdout]   --> src/core/privilege.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct PrivilegeManager {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/core/privilege.rs:19:12
[INFO] [stdout]     |
[INFO] [stdout]  18 | impl PrivilegeManager {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  19 |     pub fn new(output: Output) -> Result<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  31 |     pub fn is_root(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  50 |     pub fn has_privileges(&self) -> PrivilegeStatus {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  63 |     fn check_sudo_access(&self) -> PrivilegeStatus {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     fn is_in_sudo_group(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     fn check_windows_elevation(&self) -> PrivilegeStatus {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn escalate_command(&self, command: &[String], operation: &str) -> Result<Vec<String>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     fn handle_password_required(&self, command: &[String], operation: &str) -> Result<Vec<String>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     fn handle_no_privileges(&self, operation: &str) -> Result<Vec<String>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     fn is_ci_environment(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub fn configure_sudo(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     fn generate_sudoers_content(&self, pkmgr_path: &Path) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 |     fn validate_sudoers_content(&self, content: &str) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 293 |     fn write_sudoers_file(&self, content: &str) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 338 |     pub fn check_configuration(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 390 |     pub fn determine_install_location(&self, prefer_user: bool) -> InstallLocation {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PrivilegeStatus` is never used
[INFO] [stdout]    --> src/core/privilege.rs:420:10
[INFO] [stdout]     |
[INFO] [stdout] 420 | pub enum PrivilegeStatus {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `can_escalate` and `is_passwordless` are never used
[INFO] [stdout]    --> src/core/privilege.rs:428:12
[INFO] [stdout]     |
[INFO] [stdout] 427 | impl PrivilegeStatus {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] 428 |     pub fn can_escalate(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 432 |     pub fn is_passwordless(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `InstallLocation` is never used
[INFO] [stdout]    --> src/core/privilege.rs:439:10
[INFO] [stdout]     |
[INFO] [stdout] 439 | pub enum InstallLocation {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `base_dir`, `bin_dir`, `share_dir`, and `config_dir` are never used
[INFO] [stdout]    --> src/core/privilege.rs:445:12
[INFO] [stdout]     |
[INFO] [stdout] 444 | impl InstallLocation {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] 445 |     pub fn base_dir(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 456 |     pub fn bin_dir(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 460 |     pub fn share_dir(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 464 |     pub fn config_dir(&self) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `packages_installed` is never read
[INFO] [stdout]   --> src/core/traits.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct InstallResult {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub packages_installed: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `InstallResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `LanguageManager` is never used
[INFO] [stdout]   --> src/core/traits.rs:67:11
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub trait LanguageManager: Send + Sync {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `BinaryManager` is never used
[INFO] [stdout]    --> src/core/traits.rs:101:11
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub trait BinaryManager: Send + Sync {
[INFO] [stdout]     |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_alternatives`, `validate_package_name`, `suggest_package`, and `requires_repository` are never used
[INFO] [stdout]    --> src/core/normalizer.rs:305:12
[INFO] [stdout]     |
[INFO] [stdout]  26 | impl PackageNormalizer {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 305 |     pub fn get_alternatives(&self, package_name: &str) -> Vec<(PackageManager, Vec<String>)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 333 |     pub fn validate_package_name(&self, package_name: &str, package_manager: &PackageManager) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 344 |     pub fn suggest_package(&self, query: &str) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 376 |     pub fn requires_repository(&self, package_name: &str) -> Option<&'static str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `levenshtein_distance` is never used
[INFO] [stdout]    --> src/core/normalizer.rs:394:4
[INFO] [stdout]     |
[INFO] [stdout] 394 | fn levenshtein_distance(a: &str, b: &str) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `source` is never read
[INFO] [stdout]   --> src/languages/resolver.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct ResolvedVersion {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 24 |     pub version: String,
[INFO] [stdout] 25 |     pub source: VersionSource,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ResolvedVersion` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `output` is never read
[INFO] [stdout]   --> src/languages/resolver.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct VersionResolver {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 32 |     language: String,
[INFO] [stdout] 33 |     output: Output,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LanguageInstaller` is never constructed
[INFO] [stdout]   --> src/languages/installer.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct LanguageInstaller {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/languages/installer.rs:17:12
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl LanguageInstaller {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  17 |     pub fn new(language: String, output: Output, config: &Config) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  24 |     pub async fn install_version(&self, version: &str) -> Result<PathBuf> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  48 |     async fn install_python(&self, version: &str, install_path: &PathBuf) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     async fn install_node(&self, version: &str, install_path: &PathBuf) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     async fn install_go(&self, version: &str, install_path: &PathBuf) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     async fn install_rust(&self, version: &str, install_path: &PathBuf) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     async fn install_ruby(&self, version: &str, install_path: &PathBuf) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     async fn download_file(&self, url: &str, filename: &str) -> Result<PathBuf> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 244 |     fn detect_architecture(&self) -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub async fn get_available_versions(&self) -> Result<Vec<String>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sudo_available` is never read
[INFO] [stdout]  --> src/managers/homebrew.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct HomebrewManager {
[INFO] [stdout]   |            --------------- field in this struct
[INFO] [stdout] 9 |     sudo_available: bool,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `term` is never read
[INFO] [stdout]  --> src/ui/output.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Output {
[INFO] [stdout]   |            ------ field in this struct
[INFO] [stdout] 6 |     pub term: Term,
[INFO] [stdout]   |         ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Output` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/ui/output.rs:29:12
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl Output {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  29 |     pub fn with_verbose(color_output: String, emoji_enabled: bool, verbose: bool) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn step(&self, message: &str) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn print(&self, message: &str) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub fn print_list(&self, items: &[String]) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     pub fn clear_line(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     pub fn is_tty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn width(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn height(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn build_start(&self, package: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub fn cleanup_start(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `create_install_bar`, `create_usb_bar`, `create_spinner`, `create_multi_spinner`, `finish_with_message`, and `finish_with_error` are never used
[INFO] [stdout]    --> src/ui/progress.rs:33:12
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl ProgressManager {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  33 |     pub fn create_install_bar(&self, total: u64, title: &str) -> ProgressBar {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  53 |     pub fn create_usb_bar(&self, size: u64, iso_name: &str, device: &str) -> ProgressBar {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  73 |     pub fn create_spinner(&self, message: &str) -> ProgressBar {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn create_multi_spinner(&self, message: &str) -> ProgressBar {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn finish_with_message(&self, pb: &ProgressBar, message: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn finish_with_error(&self, pb: &ProgressBar, message: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/ui/prompt.rs:26:12
[INFO] [stdout]     |
[INFO] [stdout]   8 | impl Prompt {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  26 |     pub fn confirm_default_yes(&self, message: &str) -> Result<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn input_with_default(&self, message: &str, default: &str) -> Result<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn select<T>(&self, message: &str, items: &[T]) -> Result<usize>
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn multiselect<T>(&self, message: &str, items: &[T]) -> Result<Vec<usize>>
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn destructive_confirm(&self, message: &str, confirmation_text: &str) -> Result<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn version_select(&self, versions: &[String], current: Option<&str>) -> Result<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn usb_device_select(&self, devices: &[(String, String, u64)]) -> Result<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `download_with_checksum` and `calculate_sha256` are never used
[INFO] [stdout]   --> src/utils/download.rs:64:18
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Downloader {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub async fn download_with_checksum(&self, url: &str, dest: &Path, expected_checksum: Option<&str>) -> Result<()> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     async fn calculate_sha256(&self, path: &Path) -> Result<String> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `placeholder` is never used
[INFO] [stdout]  --> src/utils/crypto.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub fn placeholder() {}
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `placeholder` is never used
[INFO] [stdout]  --> src/utils/fs.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub fn placeholder() {}
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `calculate_sha512` is never used
[INFO] [stdout]    --> src/iso/verification.rs:139:8
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl IsoVerifier {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 139 |     fn calculate_sha512(&self, path: &Path) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UsbOperation` is never used
[INFO] [stdout]   --> src/usb/mod.rs:37:10
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub enum UsbOperation {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MultiBootConfig` is never constructed
[INFO] [stdout]   --> src/usb/mod.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub struct MultiBootConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BootloaderType` is never used
[INFO] [stdout]   --> src/usb/mod.rs:69:10
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub enum BootloaderType {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BootEntry` is never constructed
[INFO] [stdout]   --> src/usb/mod.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub struct BootEntry {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `size_gb`, `is_suitable_for_single_iso`, `is_suitable_for_multi_boot`, and `format_size` are never used
[INFO] [stdout]    --> src/usb/mod.rs:88:12
[INFO] [stdout]     |
[INFO] [stdout]  87 | impl UsbDevice {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout]  88 |     pub fn size_gb(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn is_suitable_for_single_iso(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn is_suitable_for_multi_boot(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn format_size(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_device_safe` is never used
[INFO] [stdout]    --> src/usb/mod.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub fn is_device_safe(device_path: &Path) -> Result<bool> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `unmount_device`, and `eject_device` are never used
[INFO] [stdout]    --> src/usb/device.rs:10:12
[INFO] [stdout]     |
[INFO] [stdout]   9 | impl DeviceDetector {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout]  10 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 332 |     pub fn unmount_device(&self, device: &UsbDevice) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 360 |     pub fn eject_device(&self, device: &UsbDevice) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UsbWizard` is never constructed
[INFO] [stdout]  --> src/usb/wizard.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct UsbWizard {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/usb/wizard.rs:16:12
[INFO] [stdout]     |
[INFO] [stdout]  15 | impl UsbWizard {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  16 |     pub fn new(output: Output) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  26 |     pub async fn run(&self) -> Result<()> {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     async fn select_device(&self) -> Result<Option<UsbDevice>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     async fn select_operation(&self, device: &UsbDevice) -> Result<Option<UsbOperation>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     async fn select_iso(&self) -> Result<Option<PathBuf>> {
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 322 |     async fn select_multiple_isos(&self) -> Result<Vec<PathBuf>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 354 |     async fn execute_operation(&self, operation: UsbOperation, device: &UsbDevice) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 423 |     async fn create_multiboot_usb(&self, device: &UsbDevice, initial_isos: Vec<PathBuf>) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     async fn list_multiboot_isos(&self, device_path: &Path) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_size` is never used
[INFO] [stdout]    --> src/usb/wizard.rs:453:4
[INFO] [stdout]     |
[INFO] [stdout] 453 | fn format_size(bytes: u64) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BootloaderManager` is never constructed
[INFO] [stdout]  --> src/usb/bootloader.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct BootloaderManager {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/usb/bootloader.rs:13:12
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl BootloaderManager {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  13 |     pub fn new(bootloader_type: BootloaderType) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  18 |     pub fn install_bootloader(&self, device: &Path) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  27 |     pub fn generate_config(&self, usb_root: &Path, entries: &[BootEntry]) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  35 |     fn install_grub2(&self, device: &Path) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     fn install_syslinux(&self, device: &Path) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     fn install_ventoy(&self, _device: &Path) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     fn generate_grub_config(&self, usb_root: &Path, entries: &[BootEntry]) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     fn generate_grub_entry(&self, entry: &BootEntry) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     fn get_boot_params(&self, distro: &str, _version: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 222 |     fn generate_syslinux_config(&self, usb_root: &Path, entries: &[BootEntry]) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 250 |     pub fn create_directory_structure(&self, usb_root: &Path) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `categorize_iso` is never used
[INFO] [stdout]    --> src/usb/bootloader.rs:286:8
[INFO] [stdout]     |
[INFO] [stdout] 286 | pub fn categorize_iso(name: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UsbWriter` is never constructed
[INFO] [stdout]   --> src/usb/writer.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct UsbWriter {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `write_iso`, `verify_write`, and `erase_device` are never used
[INFO] [stdout]    --> src/usb/writer.rs:17:12
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl UsbWriter {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  17 |     pub fn new(output: Output) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  22 |     pub async fn write_iso(&self, iso_path: &Path, device: &UsbDevice, verify: bool) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     async fn verify_write(&self, iso_path: &Path, device_path: &Path, size: u64) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub async fn erase_device(&self, device: &UsbDevice, filesystem: &str) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ProgressUpdate` is never used
[INFO] [stdout]    --> src/usb/writer.rs:244:6
[INFO] [stdout]     |
[INFO] [stdout] 244 | enum ProgressUpdate {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_iso_blocking` is never used
[INFO] [stdout]    --> src/usb/writer.rs:250:4
[INFO] [stdout]     |
[INFO] [stdout] 250 | fn write_iso_blocking(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `wipe_device_headers` is never used
[INFO] [stdout]    --> src/usb/writer.rs:312:4
[INFO] [stdout]     |
[INFO] [stdout] 312 | fn wipe_device_headers(device_path: &Path, device_size: u64) -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_checksum` is never used
[INFO] [stdout]    --> src/usb/writer.rs:338:4
[INFO] [stdout]     |
[INFO] [stdout] 338 | fn calculate_checksum(path: &Path, size: u64) -> Result<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_size` is never used
[INFO] [stdout]    --> src/usb/writer.rs:364:4
[INFO] [stdout]     |
[INFO] [stdout] 364 | fn format_size(bytes: u64) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_speed` is never used
[INFO] [stdout]    --> src/usb/writer.rs:381:4
[INFO] [stdout]     |
[INFO] [stdout] 381 | fn format_speed(bytes_per_second: f64) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_eta` is never used
[INFO] [stdout]    --> src/usb/writer.rs:393:4
[INFO] [stdout]     |
[INFO] [stdout] 393 | fn format_eta(seconds: u64) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `with_gpg_key` and `with_trust_level` are never used
[INFO] [stdout]   --> src/repos/mod.rs:93:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | impl Repository {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 93 |     pub fn with_gpg_key(mut self, key: GpgKeyInfo) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 98 |     pub fn with_trust_level(mut self, level: TrustLevel) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `trust_level` and `description` are never read
[INFO] [stdout]    --> src/repos/mod.rs:183:9
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub struct KnownRepository {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub trust_level: TrustLevel,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 184 |     pub vendor: &'static str,
[INFO] [stdout] 185 |     pub description: &'static str,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `KnownRepository` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `repos_dir` is never read
[INFO] [stdout]   --> src/repos/manager.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct RepositoryManager {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 14 |     repos_dir: PathBuf,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `keyservers` is never read
[INFO] [stdout]  --> src/repos/gpg.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct GpgManager {
[INFO] [stdout]   |            ---------- field in this struct
[INFO] [stdout] 8 |     output: Output,
[INFO] [stdout] 9 |     keyservers: Vec<String>,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/repos/gpg.rs:169:18
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl GpgManager {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub async fn fetch_key(&self, fingerprint: &str) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     async fn fetch_from_keyserver(&self, fingerprint: &str, keyserver: &str) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 227 |     pub async fn refresh_expiring_keys(&self) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 |     pub fn list_keys(&self) -> Result<Vec<GpgKeyInfo>> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 319 |     fn parse_gpg_output(&self, output: &[u8]) -> Result<Vec<GpgKeyInfo>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 364 |     pub fn verify_signature(&self, repo_file: &Path, signature_file: &Path) -> Result<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 376 |     pub fn trust_key(&self, fingerprint: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `output` is never read
[INFO] [stdout]  --> src/repos/detector.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct RepositoryDetector {
[INFO] [stdout]   |            ------------------ field in this struct
[INFO] [stdout] 8 |     output: Output,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Other` is never constructed
[INFO] [stdout]    --> src/repos/detector.rs:424:5
[INFO] [stdout]     |
[INFO] [stdout] 416 | enum OsType {
[INFO] [stdout]     |      ------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 424 |     Other,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OsType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RepositoryConfig` is never constructed
[INFO] [stdout]  --> src/repos/config.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct RepositoryConfig {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RepositoryEntry` is never constructed
[INFO] [stdout]   --> src/repos/config.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct RepositoryEntry {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RepositoryPreferences` is never constructed
[INFO] [stdout]   --> src/repos/config.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct RepositoryPreferences {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MirrorConfig` is never constructed
[INFO] [stdout]   --> src/repos/config.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct MirrorConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/repos/config.rs:71:12
[INFO] [stdout]     |
[INFO] [stdout]  69 | impl RepositoryConfig {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  70 |     /// Load configuration from file
[INFO] [stdout]  71 |     pub fn load() -> Result<Self> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn save(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     fn config_path() -> Result<PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn add_repository(&mut self, name: String, url: String, auto_added: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn remove_repository(&mut self, name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub fn get_repository(&self, name: &str) -> Option<&RepositoryEntry> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn update_repository(&mut self, name: &str, package_count: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn add_mirror(&mut self, name: String, original: String, mirror: String, location: String) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     pub fn get_best_mirror(&self, url: &str) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn is_auto_added(&self, name: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `with_parent` and `copy` are never used
[INFO] [stdout]    --> src/profile/mod.rs:110:12
[INFO] [stdout]     |
[INFO] [stdout]  89 | impl Profile {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn with_parent(mut self, parent: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 244 |     pub fn copy(&self, new_name: &str) -> Result<Profile> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_best_fix` and `should_auto_fix` are never used
[INFO] [stdout]    --> src/recovery/analyzer.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout]  11 | impl ErrorAnalyzer {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn get_best_fix<'a>(&self, analyses: &'a [ErrorAnalysis]) -> Option<&'a super::FixSuggestion> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn should_auto_fix(&self, analysis: &ErrorAnalysis) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `output` is never read
[INFO] [stdout]  --> src/recovery/strategies.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct RecoveryStrategies {
[INFO] [stdout]   |            ------------------ field in this struct
[INFO] [stdout] 7 |     output: Output,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `recommend_strategy` is never used
[INFO] [stdout]   --> src/recovery/strategies.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn recommend_strategy(category: &ErrorCategory, severity: &ErrorSeverity) -> Vec<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `detect` is never used
[INFO] [stdout]   --> src/shell/mod.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl ShellType {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 20 |     /// Detect the current shell from environment
[INFO] [stdout] 21 |     pub fn detect() -> Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `output` is never read
[INFO] [stdout]   --> src/shell/completion.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct CompletionGenerator {
[INFO] [stdout]    |            ------------------- field in this struct
[INFO] [stdout] 10 |     shell: ShellType,
[INFO] [stdout] 11 |     output: Output,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SymlinkManager` is never constructed
[INFO] [stdout]  --> src/shell/symlinks.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct SymlinkManager {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/shell/symlinks.rs:13:12
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl SymlinkManager {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout]  13 |     pub fn new(output: Output) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  18 |     pub fn setup_symlinks(&self, install_dir: Option<PathBuf>) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn remove_symlinks(&self, install_dir: Option<PathBuf>) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     fn find_pkmgr_binary(&self) -> Result<PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 190 |     fn get_symlink_directory(&self, install_dir: Option<PathBuf>) -> Result<PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     fn check_path_configuration(&self, symlink_dir: &Path) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 222 |     pub fn list_symlinks(&self, install_dir: Option<PathBuf>) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `touch` is never used
[INFO] [stdout]   --> src/cache/mod.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl CacheEntry {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn touch(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `save` is never used
[INFO] [stdout]    --> src/cache/mod.rs:149:12
[INFO] [stdout]     |
[INFO] [stdout] 132 | impl CacheConfig {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 149 |     pub fn save(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `needs_cleanup` is never used
[INFO] [stdout]    --> src/cache/mod.rs:194:12
[INFO] [stdout]     |
[INFO] [stdout] 192 | impl CacheStats {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] 193 |     /// Check if cleanup is needed
[INFO] [stdout] 194 |     pub fn needs_cleanup(&self, config: &CacheConfig) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_entry` and `get_entry` are never used
[INFO] [stdout]    --> src/cache/manager.rs:313:12
[INFO] [stdout]     |
[INFO] [stdout]  17 | impl CacheManager {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub fn add_entry(&mut self, key: String, path: PathBuf, cache_type: CacheType) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 344 |     pub fn get_entry(&mut self, key: &str) -> Option<&mut CacheEntry> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clean_to_free` is never used
[INFO] [stdout]    --> src/cache/cleaner.rs:251:18
[INFO] [stdout]     |
[INFO] [stdout]  18 | impl CacheCleaner {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub async fn clean_to_free(&mut self, required_bytes: u64) -> Result<bool> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CacheStatistics` is never constructed
[INFO] [stdout]  --> src/cache/stats.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct CacheStatistics {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/cache/stats.rs:13:12
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl CacheStatistics {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout]  13 |     pub fn new(output: Output) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  18 |     pub fn display_stats(&self, stats: &CacheStats, entries: &HashMap<String, CacheEntry>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  38 |     fn display_overall_stats(&self, stats: &CacheStats) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     fn display_type_breakdown(&self, stats: &CacheStats) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     fn display_age_distribution(&self, entries: &HashMap<String, CacheEntry>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     fn display_access_patterns(&self, entries: &HashMap<String, CacheEntry>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 196 |     fn display_recommendations(&self, stats: &CacheStats) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     fn get_type_emoji(&self, cache_type: &CacheType) -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 253 |     pub fn generate_report(&self, stats: &CacheStats, entries: &HashMap<String, CacheEntry>) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `color` is never used
[INFO] [stdout]   --> src/doctor/mod.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl Severity {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn color(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `display_name` is never used
[INFO] [stdout]   --> src/doctor/mod.rs:96:12
[INFO] [stdout]    |
[INFO] [stdout] 95 | impl CheckCategory {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] 96 |     pub fn display_name(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `auto_fix` is never read
[INFO] [stdout]   --> src/doctor/checker.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct HealthChecker {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 15 |     auto_fix: bool,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Text`, `Json`, and `Html` are never constructed
[INFO] [stdout]    --> src/doctor/report.rs:455:5
[INFO] [stdout]     |
[INFO] [stdout] 454 | pub enum ExportFormat {
[INFO] [stdout]     |          ------------ variants in this enum
[INFO] [stdout] 455 |     Text,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 456 |     Markdown,
[INFO] [stdout] 457 |     Json,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 458 |     Html,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BinaryDownloader` is never constructed
[INFO] [stdout]  --> src/binary/downloader.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct BinaryDownloader {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/binary/downloader.rs:14:12
[INFO] [stdout]     |
[INFO] [stdout]  13 | impl BinaryDownloader {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  14 |     pub fn new(output: Output, install_dir: PathBuf) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  18 |     pub async fn download_from_github(&self, repo: &str, version: Option<&str>) -> Result<PathBuf> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  62 |     fn select_best_asset<'a>(&self, assets: &'a [Value]) -> Result<&'a Value> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     async fn download_asset(&self, url: &str, filename: &str) -> Result<PathBuf> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     async fn install_binary(&self, asset_path: &PathBuf, repo: &str) -> Result<PathBuf> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     async fn extract_targz(&self, archive_path: &PathBuf, install_path: &PathBuf, binary_name: &str) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     async fn extract_zip(&self, archive_path: &PathBuf, install_path: &PathBuf, binary_name: &str) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     async fn find_binary_in_dir(&self, dir: &PathBuf, binary_name: &str) -> Result<PathBuf> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 297 |     async fn make_executable(&self, path: &PathBuf) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 309 |     fn detect_platform(&self) -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 321 |     fn detect_architecture(&self) -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 333 |     pub async fn search_github_releases(&self, query: &str) -> Result<Vec<String>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `antiX` should have a snake case name
[INFO] [stdout]     --> src/iso/distributions.rs:1989:8
[INFO] [stdout]      |
[INFO] [stdout] 1989 | pub fn antiX() -> IsoDistribution {
[INFO] [stdout]      |        ^^^^^ help: convert the identifier to snake case: `anti_x`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]    --> src/cache/manager.rs:348:13
[INFO] [stdout]     |
[INFO] [stdout] 348 |             drop(entry);
[INFO] [stdout]     |             ^^^^^-----^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  argument has type `&mut CacheEntry`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dropping_references)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]     |
[INFO] [stdout] 348 -             drop(entry);
[INFO] [stdout] 348 +             let _ = entry;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 37.14s
[INFO] running `Command { std: "docker" "inspect" "59a475446e5956439e3989b98d4852106884fe3e19743f3dde6b4b1ea1c10971", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "59a475446e5956439e3989b98d4852106884fe3e19743f3dde6b4b1ea1c10971", kill_on_drop: false }`
[INFO] [stdout] 59a475446e5956439e3989b98d4852106884fe3e19743f3dde6b4b1ea1c10971
