[INFO] cloning repository https://github.com/MrTarik2112/WinDebloat-ForLinux
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/MrTarik2112/WinDebloat-ForLinux" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMrTarik2112%2FWinDebloat-ForLinux", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMrTarik2112%2FWinDebloat-ForLinux'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] d15f1a3b40b387ca45e558a4fda71ec09a209bb3
[INFO] checking MrTarik2112/WinDebloat-ForLinux against 5c543b0b8c73c7b72bc8284ced4fb22ead15734d for pr-160186
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMrTarik2112%2FWinDebloat-ForLinux" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] [stderr] Updating files:  28% (1645/5795)
Updating files:  29% (1681/5795)
Updating files:  30% (1739/5795)
Updating files:  30% (1789/5795)
Updating files:  31% (1797/5795)
Updating files:  32% (1855/5795)
Updating files:  33% (1913/5795)
Updating files:  33% (1928/5795)
Updating files:  34% (1971/5795)
Updating files:  35% (2029/5795)
Updating files:  35% (2063/5795)
Updating files:  35% (2069/5795)
Updating files:  36% (2087/5795)
Updating files:  37% (2145/5795)
Updating files:  38% (2203/5795)
Updating files:  39% (2261/5795)
Updating files:  40% (2318/5795)
Updating files:  40% (2362/5795)
Updating files:  41% (2376/5795)
Updating files:  42% (2434/5795)
Updating files:  43% (2492/5795)
Updating files:  44% (2550/5795)
Updating files:  45% (2608/5795)
Updating files:  46% (2666/5795)
Updating files:  47% (2724/5795)
Updating files:  48% (2782/5795)
Updating files:  49% (2840/5795)
Updating files:  50% (2898/5795)
Updating files:  51% (2956/5795)
Updating files:  52% (3014/5795)
Updating files:  53% (3072/5795)
Updating files:  54% (3130/5795)
Updating files:  55% (3188/5795)
Updating files:  56% (3246/5795)
Updating files:  57% (3304/5795)
Updating files:  58% (3362/5795)
Updating files:  59% (3420/5795)
Updating files:  60% (3477/5795)
Updating files:  61% (3535/5795)
Updating files:  62% (3593/5795)
Updating files:  62% (3596/5795)
Updating files:  63% (3651/5795)
Updating files:  64% (3709/5795)
Updating files:  65% (3767/5795)
Updating files:  66% (3825/5795)
Updating files:  67% (3883/5795)
Updating files:  68% (3941/5795)
Updating files:  68% (3985/5795)
Updating files:  69% (3999/5795)
Updating files:  70% (4057/5795)
Updating files:  71% (4115/5795)
Updating files:  72% (4173/5795)
Updating files:  73% (4231/5795)
Updating files:  74% (4289/5795)
Updating files:  75% (4347/5795)
Updating files:  76% (4405/5795)
Updating files:  77% (4463/5795)
Updating files:  78% (4521/5795)
Updating files:  78% (4547/5795)
Updating files:  78% (4566/5795)
Updating files:  79% (4579/5795)
Updating files:  80% (4636/5795)
Updating files:  81% (4694/5795)
Updating files:  82% (4752/5795)
Updating files:  83% (4810/5795)
Updating files:  84% (4868/5795)
Updating files:  85% (4926/5795)
Updating files:  86% (4984/5795)
Updating files:  87% (5042/5795)
Updating files:  88% (5100/5795)
Updating files:  89% (5158/5795)
Updating files:  90% (5216/5795)
Updating files:  91% (5274/5795)
Updating files:  92% (5332/5795)
Updating files:  93% (5390/5795)
Updating files:  94% (5448/5795)
Updating files:  95% (5506/5795)
Updating files:  96% (5564/5795)
Updating files:  96% (5567/5795)
Updating files:  97% (5622/5795)
Updating files:  98% (5680/5795)
Updating files:  99% (5738/5795)
Updating files:  99% (5759/5795)
Updating files: 100% (5795/5795)
Updating files: 100% (5795/5795), done.
[INFO] started tweaking git repo https://github.com/MrTarik2112/WinDebloat-ForLinux
[INFO] finished tweaking git repo https://github.com/MrTarik2112/WinDebloat-ForLinux
[INFO] tweaked toml for git repo https://github.com/MrTarik2112/WinDebloat-ForLinux written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/MrTarik2112/WinDebloat-ForLinux on toolchain 5c543b0b8c73c7b72bc8284ced4fb22ead15734d
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/MrTarik2112/WinDebloat-ForLinux 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" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded serde_spanned v0.6.9
[INFO] [stderr]   Downloaded toml_write v0.1.2
[INFO] [stderr]   Downloaded toml v0.8.23
[INFO] [stderr]   Downloaded windows-interface v0.59.3
[INFO] [stderr]   Downloaded objc2-io-surface v0.3.2
[INFO] [stderr]   Downloaded tar v0.4.45
[INFO] [stderr]   Downloaded objc2-user-notifications v0.3.2
[INFO] [stderr]   Downloaded dirs v5.0.1
[INFO] [stderr]   Downloaded windows-result v0.1.2
[INFO] [stderr]   Downloaded dirs-sys v0.4.1
[INFO] [stderr]   Downloaded windows-result v0.4.1
[INFO] [stderr]   Downloaded iana-time-zone-haiku v0.1.2
[INFO] [stderr]   Downloaded crossbeam-deque v0.8.6
[INFO] [stderr]   Downloaded objc2-quartz-core v0.3.2
[INFO] [stderr]   Downloaded objc2-core-data v0.3.2
[INFO] [stderr]   Downloaded simd-adler32 v0.3.9
[INFO] [stderr]   Downloaded env_filter v1.0.1
[INFO] [stderr]   Downloaded libredox v0.1.16
[INFO] [stderr]   Downloaded iana-time-zone v0.1.65
[INFO] [stderr]   Downloaded windows-core v0.62.2
[INFO] [stderr]   Downloaded rayon-core v1.13.0
[INFO] [stderr]   Downloaded objc2-core-graphics v0.3.2
[INFO] [stderr]   Downloaded flate2 v1.1.9
[INFO] [stderr]   Downloaded miniz_oxide v0.8.9
[INFO] [stderr]   Downloaded jiff-static v0.2.24
[INFO] [stderr]   Downloaded windows-implement v0.60.2
[INFO] [stderr]   Downloaded ntapi v0.4.3
[INFO] [stderr]   Downloaded rayon v1.12.0
[INFO] [stderr]   Downloaded objc2-core-foundation v0.3.2
[INFO] [stderr]   Downloaded windows-core v0.57.0
[INFO] [stderr]   Downloaded objc2-foundation v0.3.2
[INFO] [stderr]   Downloaded glob v0.3.3
[INFO] [stderr]   Downloaded jiff v0.2.24
[INFO] [stderr]   Downloaded chrono v0.4.44
[INFO] [stderr]   Downloaded os_info v3.14.0
[INFO] [stderr]   Downloaded objc2-cloud-kit v0.3.2
[INFO] [stderr]   Downloaded windows v0.57.0
[INFO] [stderr]   Downloaded option-ext v0.2.0
[INFO] [stderr]   Downloaded objc2-ui-kit v0.3.2
[INFO] [stderr]   Downloaded objc2-core-location v0.3.2
[INFO] [stderr]   Downloaded crc32fast v1.5.0
[INFO] [stderr]   Downloaded redox_users v0.4.6
[INFO] [stderr]   Downloaded env_logger v0.11.10
[INFO] [stderr]   Downloaded windows-implement v0.57.0
[INFO] [stderr]   Downloaded sysinfo v0.33.1
[INFO] [stderr]   Downloaded windows-strings v0.5.1
[INFO] [stderr]   Downloaded objc2-core-image v0.3.2
[INFO] [stderr]   Downloaded windows-interface v0.57.0
[INFO] [stderr]   Downloaded objc2-core-text v0.3.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] e259d6a2171387650da7f7d01994c09facaacdc0adeee19111ac0ab85ca18c5f
[INFO] running `Command { std: "docker" "start" "e259d6a2171387650da7f7d01994c09facaacdc0adeee19111ac0ab85ca18c5f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e259d6a2171387650da7f7d01994c09facaacdc0adeee19111ac0ab85ca18c5f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "e259d6a2171387650da7f7d01994c09facaacdc0adeee19111ac0ab85ca18c5f" "/opt/rustwide/cargo-home/bin/cargo" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e259d6a2171387650da7f7d01994c09facaacdc0adeee19111ac0ab85ca18c5f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "e259d6a2171387650da7f7d01994c09facaacdc0adeee19111ac0ab85ca18c5f" "/opt/rustwide/cargo-home/bin/cargo" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]     Checking cfg-if v1.0.4
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]     Checking bitflags v2.11.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]     Checking log v0.4.29
[INFO] [stderr]     Checking memchr v2.8.0
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]     Checking equivalent v1.0.2
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking utf8parse v0.2.2
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]     Checking typenum v1.20.0
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking anstyle-parse v1.0.0
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]     Checking is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]     Checking anstyle v1.0.14
[INFO] [stderr]     Checking colorchoice v1.0.5
[INFO] [stderr]     Checking regex-syntax v0.8.10
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]     Checking anstyle-query v1.1.5
[INFO] [stderr]    Compiling cfg_aliases v0.2.1
[INFO] [stderr]     Checking anstream v1.0.0
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]     Checking lock_api v0.4.14
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]     Checking linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking mio v1.2.0
[INFO] [stderr]     Checking hashbrown v0.17.1
[INFO] [stderr]     Checking itoa v1.0.18
[INFO] [stderr]    Compiling paste v1.0.15
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking foldhash v0.1.5
[INFO] [stderr]     Checking allocator-api2 v0.2.21
[INFO] [stderr]     Checking signal-hook-mio v0.2.5
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking hashbrown v0.15.5
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking indexmap v2.14.0
[INFO] [stderr]     Checking castaway v0.2.4
[INFO] [stderr]     Checking itertools v0.13.0
[INFO] [stderr]     Checking ryu v1.0.23
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]     Checking toml_write v0.1.2
[INFO] [stderr]     Checking unicode-width v0.1.14
[INFO] [stderr]     Checking static_assertions v1.1.0
[INFO] [stderr]     Checking winnow v0.7.15
[INFO] [stderr]     Checking unicode-segmentation v1.13.2
[INFO] [stderr]     Checking adler2 v2.0.1
[INFO] [stderr]     Checking clap_lex v1.1.0
[INFO] [stderr]     Checking option-ext v0.2.0
[INFO] [stderr]     Checking simd-adler32 v0.3.9
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]     Checking clap_builder v4.6.0
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]     Checking xattr v1.6.1
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]     Checking compact_str v0.8.1
[INFO] [stderr]     Checking lru v0.12.5
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking rayon v1.12.0
[INFO] [stderr]     Checking crossterm v0.28.1
[INFO] [stderr]     Checking env_filter v1.0.1
[INFO] [stderr]     Checking unicode-truncate v1.1.0
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking filetime v0.2.29
[INFO] [stderr]     Checking cassowary v0.3.0
[INFO] [stderr]     Checking unicode-width v0.2.0
[INFO] [stderr]     Checking iana-time-zone v0.1.65
[INFO] [stderr]     Checking jiff v0.2.24
[INFO] [stderr]     Checking same-file v1.0.6
[INFO] [stderr]     Checking cpufeatures v0.2.17
[INFO] [stderr]     Checking tar v0.4.45
[INFO] [stderr]     Checking walkdir v2.5.0
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]     Checking uuid v1.23.1
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]     Checking dirs v5.0.1
[INFO] [stderr]     Checking sysinfo v0.33.1
[INFO] [stderr]     Checking glob v0.3.3
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]     Checking strum v0.26.3
[INFO] [stderr]     Checking clap v4.6.1
[INFO] [stderr]     Checking ratatui v0.29.0
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking os_info v3.14.0
[INFO] [stderr]     Checking chrono v0.4.44
[INFO] [stderr]     Checking env_logger v0.11.10
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking windebloat v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `total_size`
[INFO] [stdout]    --> src/core/auto_clean.rs:516:25
[INFO] [stdout]     |
[INFO] [stdout] 516 |                     let total_size: u64 = items.iter().map(|i| i.size).sum();
[INFO] [stdout]     |                         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total_size`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `manifest`
[INFO] [stdout]   --> src/core/cleaner.rs:39:13
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let manifest = self
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_manifest`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `total_size`
[INFO] [stdout]    --> src/core/auto_clean.rs:516:25
[INFO] [stdout]     |
[INFO] [stdout] 516 |                     let total_size: u64 = items.iter().map(|i| i.size).sum();
[INFO] [stdout]     |                         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total_size`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `potential_count`
[INFO] [stdout]    --> src/modules/duplicates.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |     let potential_count: usize = candidates.iter().map(|(_, v)| v.len()).sum();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_potential_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `meta`
[INFO] [stdout]   --> src/modules/empty_files.rs:89:23
[INFO] [stdout]    |
[INFO] [stdout] 89 |             if let Ok(meta) = path.metadata() {
[INFO] [stdout]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_meta`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `manifest`
[INFO] [stdout]   --> src/core/cleaner.rs:39:13
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let manifest = self
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_manifest`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `os`
[INFO] [stdout]   --> src/modules/logs.rs:29:20
[INFO] [stdout]    |
[INFO] [stdout] 29 |     fn scan(&self, os: &OSInfo) -> Result<Vec<CleanItem>> {
[INFO] [stdout]    |                    ^^ help: if this is intentional, prefix it with an underscore: `_os`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `potential_count`
[INFO] [stdout]    --> src/modules/duplicates.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |     let potential_count: usize = candidates.iter().map(|(_, v)| v.len()).sum();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_potential_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `meta`
[INFO] [stdout]   --> src/modules/empty_files.rs:89:23
[INFO] [stdout]    |
[INFO] [stdout] 89 |             if let Ok(meta) = path.metadata() {
[INFO] [stdout]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_meta`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `os`
[INFO] [stdout]   --> src/modules/logs.rs:29:20
[INFO] [stdout]    |
[INFO] [stdout] 29 |     fn scan(&self, os: &OSInfo) -> Result<Vec<CleanItem>> {
[INFO] [stdout]    |                    ^^ help: if this is intentional, prefix it with an underscore: `_os`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status`
[INFO] [stdout]    --> src/tui/components/dialogs.rs:540:24
[INFO] [stdout]     |
[INFO] [stdout] 540 |             let (icon, status, fg) = if completed {
[INFO] [stdout]     |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_status`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fg`
[INFO] [stdout]    --> src/tui/components/dialogs.rs:540:32
[INFO] [stdout]     |
[INFO] [stdout] 540 |             let (icon, status, fg) = if completed {
[INFO] [stdout]     |                                ^^ help: if this is intentional, prefix it with an underscore: `_fg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `total_items`
[INFO] [stdout]    --> src/tui/components/dialogs.rs:683:13
[INFO] [stdout]     |
[INFO] [stdout] 683 |         let total_items = state.items_cleaned.max(1);
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `min_size_large` is never read
[INFO] [stdout]   --> src/modules/disk.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct DiskModule {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 15 |     min_size_large: u64,
[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 `quick_hash_file` is never used
[INFO] [stdout]   --> src/modules/duplicates.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn quick_hash_file(path: &Path) -> Option<u64> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status`
[INFO] [stdout]    --> src/tui/components/dialogs.rs:540:24
[INFO] [stdout]     |
[INFO] [stdout] 540 |             let (icon, status, fg) = if completed {
[INFO] [stdout]     |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_status`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fg`
[INFO] [stdout]    --> src/tui/components/dialogs.rs:540:32
[INFO] [stdout]     |
[INFO] [stdout] 540 |             let (icon, status, fg) = if completed {
[INFO] [stdout]     |                                ^^ help: if this is intentional, prefix it with an underscore: `_fg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `total_items`
[INFO] [stdout]    --> src/tui/components/dialogs.rs:683:13
[INFO] [stdout]     |
[INFO] [stdout] 683 |         let total_items = state.items_cleaned.max(1);
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `min_size_large` is never read
[INFO] [stdout]   --> src/modules/disk.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct DiskModule {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 15 |     min_size_large: u64,
[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 `quick_hash_file` is never used
[INFO] [stdout]   --> src/modules/duplicates.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn quick_hash_file(path: &Path) -> Option<u64> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `total_size`
[INFO] [stdout]    --> src/core/auto_clean.rs:516:25
[INFO] [stdout]     |
[INFO] [stdout] 516 |                     let total_size: u64 = items.iter().map(|i| i.size).sum();
[INFO] [stdout]     |                         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total_size`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `manifest`
[INFO] [stdout]   --> src/core/cleaner.rs:39:13
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let manifest = self
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_manifest`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `potential_count`
[INFO] [stdout]    --> src/modules/duplicates.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |     let potential_count: usize = candidates.iter().map(|(_, v)| v.len()).sum();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_potential_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `meta`
[INFO] [stdout]   --> src/modules/empty_files.rs:89:23
[INFO] [stdout]    |
[INFO] [stdout] 89 |             if let Ok(meta) = path.metadata() {
[INFO] [stdout]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_meta`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `os`
[INFO] [stdout]   --> src/modules/logs.rs:29:20
[INFO] [stdout]    |
[INFO] [stdout] 29 |     fn scan(&self, os: &OSInfo) -> Result<Vec<CleanItem>> {
[INFO] [stdout]    |                    ^^ help: if this is intentional, prefix it with an underscore: `_os`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `total_size`
[INFO] [stdout]    --> src/core/auto_clean.rs:516:25
[INFO] [stdout]     |
[INFO] [stdout] 516 |                     let total_size: u64 = items.iter().map(|i| i.size).sum();
[INFO] [stdout]     |                         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total_size`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `manifest`
[INFO] [stdout]   --> src/core/cleaner.rs:39:13
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let manifest = self
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_manifest`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status`
[INFO] [stdout]    --> src/tui/components/dialogs.rs:540:24
[INFO] [stdout]     |
[INFO] [stdout] 540 |             let (icon, status, fg) = if completed {
[INFO] [stdout]     |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_status`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fg`
[INFO] [stdout]    --> src/tui/components/dialogs.rs:540:32
[INFO] [stdout]     |
[INFO] [stdout] 540 |             let (icon, status, fg) = if completed {
[INFO] [stdout]     |                                ^^ help: if this is intentional, prefix it with an underscore: `_fg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `total_items`
[INFO] [stdout]    --> src/tui/components/dialogs.rs:683:13
[INFO] [stdout]     |
[INFO] [stdout] 683 |         let total_items = state.items_cleaned.max(1);
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `potential_count`
[INFO] [stdout]    --> src/modules/duplicates.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |     let potential_count: usize = candidates.iter().map(|(_, v)| v.len()).sum();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_potential_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `meta`
[INFO] [stdout]   --> src/modules/empty_files.rs:89:23
[INFO] [stdout]    |
[INFO] [stdout] 89 |             if let Ok(meta) = path.metadata() {
[INFO] [stdout]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_meta`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `os`
[INFO] [stdout]   --> src/modules/logs.rs:29:20
[INFO] [stdout]    |
[INFO] [stdout] 29 |     fn scan(&self, os: &OSInfo) -> Result<Vec<CleanItem>> {
[INFO] [stdout]    |                    ^^ help: if this is intentional, prefix it with an underscore: `_os`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `categories`
[INFO] [stdout]    --> src/main.rs:624:5
[INFO] [stdout]     |
[INFO] [stdout] 624 |     categories: &str,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_categories`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min_size`
[INFO] [stdout]    --> src/main.rs:633:5
[INFO] [stdout]     |
[INFO] [stdout] 633 |     min_size: &Option<String>,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_min_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_size`
[INFO] [stdout]    --> src/main.rs:634:5
[INFO] [stdout]     |
[INFO] [stdout] 634 |     max_size: &Option<String>,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `backup`
[INFO] [stdout]    --> src/main.rs:673:9
[INFO] [stdout]     |
[INFO] [stdout] 673 |     let backup = Backup::new(config.backup.location.clone(), config.backup.enabled);
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_backup`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `report_opt` is never read
[INFO] [stdout]    --> src/main.rs:691:26
[INFO] [stdout]     |
[INFO] [stdout] 691 |     let mut report_opt = None;
[INFO] [stdout]     |                          ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 728 |                 report_opt = Some(r);
[INFO] [stdout]     |                 ---------- `report_opt` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `ScanMsg` is more private than the item `App::scan_rx`
[INFO] [stdout]   --> src/app.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub scan_rx: Option<mpsc::Receiver<ScanMsg>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `App::scan_rx` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `ScanMsg` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/app.rs:29:1
[INFO] [stdout]    |
[INFO] [stdout] 29 | enum ScanMsg {
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/app.rs:31:13
[INFO] [stdout]    |
[INFO] [stdout] 31 |     AllDone(Vec<ScanResult>),
[INFO] [stdout]    |     ------- ^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ScanMsg` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 31 -     AllDone(Vec<ScanResult>),
[INFO] [stdout] 31 +     AllDone(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `registry` is never read
[INFO] [stdout]   --> src/app.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct App {
[INFO] [stdout]    |            --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub registry: ModuleRegistry,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `start_wizard` is never used
[INFO] [stdout]    --> src/app.rs:929:8
[INFO] [stdout]     |
[INFO] [stdout]  56 | impl App {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 929 |     fn start_wizard(&mut self, ui: &mut AppUi) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Theme` is never used
[INFO] [stdout]    --> src/config/schema.rs:139:10
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub enum Theme {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_str` is never used
[INFO] [stdout]    --> src/config/schema.rs:148:12
[INFO] [stdout]     |
[INFO] [stdout] 147 | impl Theme {
[INFO] [stdout]     | ---------- associated function in this implementation
[INFO] [stdout] 148 |     pub fn from_str(s: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Pending`, `Running`, `Completed`, `Failed`, and `Skipped` are never constructed
[INFO] [stdout]    --> src/core/auto_clean.rs:158:5
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub enum PhaseStatus {
[INFO] [stdout]     |          ----------- variants in this enum
[INFO] [stdout] 158 |     Pending,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 159 |     Running,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 160 |     Completed,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 161 |     Failed,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 162 |     Skipped,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PhaseStatus` 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: multiple fields are never read
[INFO] [stdout]    --> src/core/auto_clean.rs:167:9
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub struct PhaseHistoryEntry {
[INFO] [stdout]     |            ----------------- fields in this struct
[INFO] [stdout] 167 |     pub phase: AutoCleanPhase,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 168 |     pub status: PhaseStatus,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 169 |     pub duration: Duration,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 170 |     pub items_found: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 171 |     pub size_found: u64,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 172 |     pub items_cleaned: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 173 |     pub size_cleaned: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 174 |     pub errors: usize,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PhaseHistoryEntry` 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: multiple fields are never read
[INFO] [stdout]    --> src/core/auto_clean.rs:179:9
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub struct SystemSnapshot {
[INFO] [stdout]     |            -------------- fields in this struct
[INFO] [stdout] 179 |     pub timestamp: String,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 180 |     pub disks: Vec<DiskMetric>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 181 |     pub memory: MemoryMetric,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 182 |     pub swap: SwapMetric,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 183 |     pub packages: PackageMetric,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 184 |     pub uptime_secs: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 185 |     pub cpu_load: f32,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 186 |     pub process_count: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SystemSnapshot` 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: fields `mount`, `fs_type`, `total`, `used`, `available`, and `usage_pct` are never read
[INFO] [stdout]    --> src/core/auto_clean.rs:191:9
[INFO] [stdout]     |
[INFO] [stdout] 190 | pub struct DiskMetric {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 191 |     pub mount: String,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 192 |     pub fs_type: String,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 193 |     pub total: u64,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 194 |     pub used: u64,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 195 |     pub available: u64,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 196 |     pub usage_pct: f32,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DiskMetric` 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: fields `total`, `used`, `free`, `available`, and `cached` are never read
[INFO] [stdout]    --> src/core/auto_clean.rs:201:9
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub struct MemoryMetric {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 201 |     pub total: u64,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 202 |     pub used: u64,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 203 |     pub free: u64,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 204 |     pub available: u64,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 205 |     pub cached: u64,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MemoryMetric` 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: fields `total` and `used` are never read
[INFO] [stdout]    --> src/core/auto_clean.rs:210:9
[INFO] [stdout]     |
[INFO] [stdout] 209 | pub struct SwapMetric {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 210 |     pub total: u64,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 211 |     pub used: u64,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SwapMetric` 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: fields `total` and `managers` are never read
[INFO] [stdout]    --> src/core/auto_clean.rs:216:9
[INFO] [stdout]     |
[INFO] [stdout] 215 | pub struct PackageMetric {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] 216 |     pub total: usize,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 217 |     pub managers: Vec<(String, usize)>,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PackageMetric` 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: fields `file_type_groups`, `age_groups`, `top_10`, and `stats` are never read
[INFO] [stdout]    --> src/core/auto_clean.rs:229:9
[INFO] [stdout]     |
[INFO] [stdout] 221 | pub struct CategoryFindings {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 229 |     pub file_type_groups: Vec<FileTypeGroup>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 230 |     pub age_groups: Vec<AgeGroup>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 231 |     pub sub_groups: Vec<SubGroup>,
[INFO] [stdout] 232 |     pub top_10: Vec<(usize, CleanItem)>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 233 |     pub stats: SizeStatistics,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CategoryFindings` 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: multiple fields are never read
[INFO] [stdout]    --> src/core/auto_clean.rs:239:9
[INFO] [stdout]     |
[INFO] [stdout] 237 | pub struct RiskAssessment {
[INFO] [stdout]     |            -------------- fields in this struct
[INFO] [stdout] 238 |     pub level: RiskLevel,
[INFO] [stdout] 239 |     pub score: u8,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 240 |     pub safe_count: usize,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 241 |     pub safe_size: u64,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 242 |     pub caution_count: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 243 |     pub caution_size: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 244 |     pub warning_count: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 245 |     pub warning_size: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 246 |     pub dangerous_count: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 247 |     pub dangerous_size: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 248 |     pub reasons: Vec<String>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RiskAssessment` 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: methods `label_tr`, `color_hex`, and `sort_order` are never used
[INFO] [stdout]    --> src/core/auto_clean.rs:260:12
[INFO] [stdout]     |
[INFO] [stdout] 259 | impl RiskLevel {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 260 |     pub fn label_tr(&self) -> &'static str {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 |     pub fn color_hex(&self) -> &'static str {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 278 |     pub fn sort_order(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `mime_type`, `extension`, `count`, and `percentage` are never read
[INFO] [stdout]    --> src/core/auto_clean.rs:290:9
[INFO] [stdout]     |
[INFO] [stdout] 289 | pub struct FileTypeGroup {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] 290 |     pub mime_type: String,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 291 |     pub extension: String,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 292 |     pub count: usize,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 293 |     pub total_size: u64,
[INFO] [stdout] 294 |     pub percentage: f32,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FileTypeGroup` 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: fields `label`, `min_days`, `max_days`, `count`, and `total_size` are never read
[INFO] [stdout]    --> src/core/auto_clean.rs:299:9
[INFO] [stdout]     |
[INFO] [stdout] 298 | pub struct AgeGroup {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] 299 |     pub label: String,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 300 |     pub min_days: u64,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 301 |     pub max_days: u64,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 302 |     pub count: usize,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 303 |     pub total_size: u64,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AgeGroup` 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 `id` is never read
[INFO] [stdout]    --> src/core/auto_clean.rs:308:9
[INFO] [stdout]     |
[INFO] [stdout] 307 | pub struct SubGroup {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] 308 |     pub id: String,
[INFO] [stdout]     |         ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SubGroup` 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: multiple fields are never read
[INFO] [stdout]    --> src/core/auto_clean.rs:316:9
[INFO] [stdout]     |
[INFO] [stdout] 315 | pub struct SizeStatistics {
[INFO] [stdout]     |            -------------- fields in this struct
[INFO] [stdout] 316 |     pub min: u64,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 317 |     pub max: u64,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 318 |     pub mean: f64,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 319 |     pub median: f64,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 320 |     pub std_dev: f64,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 321 |     pub p10: u64,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 322 |     pub p25: u64,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 323 |     pub p75: u64,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 324 |     pub p90: u64,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 325 |     pub p95: u64,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 326 |     pub p99: u64,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 327 |     pub gini_coefficient: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SizeStatistics` 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: variants `ItemScanned`, `ItemCleaned`, `Warning`, `BackupCreated`, and `Cancelled` are never constructed
[INFO] [stdout]    --> src/core/auto_clean.rs:353:5
[INFO] [stdout]     |
[INFO] [stdout] 350 | pub enum AutoCleanProgress {
[INFO] [stdout]     |          ----------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 353 |     ItemScanned(String, u64),
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 354 |     ItemCleaned(String, u64, bool),
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 357 |     Warning(String),
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 358 |     BackupCreated(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 359 |     Finished(AutoCleanReport),
[INFO] [stdout] 360 |     Cancelled,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AutoCleanProgress` 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: fields `phase_start`, `estimated_remaining`, `system_before`, `system_after`, `suggestions`, and `phase_history` are never read
[INFO] [stdout]    --> src/core/auto_clean.rs:427:9
[INFO] [stdout]     |
[INFO] [stdout] 419 | pub struct AutoCleanState {
[INFO] [stdout]     |            -------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 427 |     pub phase_start: Instant,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 428 |     pub estimated_remaining: Duration,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 440 |     pub system_before: Option<SystemSnapshot>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 441 |     pub system_after: Option<SystemSnapshot>,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 444 |     pub suggestions: Vec<Suggestion>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 450 |     pub phase_history: Vec<PhaseHistoryEntry>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AutoCleanState` 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: method `verify_backup` is never used
[INFO] [stdout]    --> src/core/backup.rs:209:12
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl Backup {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn verify_backup(&self, backup_id: &str) -> Result<BackupVerification> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BackupVerification` is never constructed
[INFO] [stdout]    --> src/core/backup.rs:271:12
[INFO] [stdout]     |
[INFO] [stdout] 271 | pub struct BackupVerification {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `duration_secs` is never read
[INFO] [stdout]  --> src/core/benchmark.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct BenchmarkResult {
[INFO] [stdout]   |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 8 |     pub duration_secs: f64,
[INFO] [stdout]   |         ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `BenchmarkResult` 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: method `format_readable` is never used
[INFO] [stdout]   --> src/core/benchmark.rs:94:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Benchmark {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 94 |     pub fn format_readable(&self, result: &BenchmarkResult) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GrowthPrediction` is never constructed
[INFO] [stdout]  --> src/core/prediction.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct GrowthPrediction {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SeasonalPattern` is never constructed
[INFO] [stdout]   --> src/core/prediction.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct SeasonalPattern {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PredictionEngine` is never constructed
[INFO] [stdout]   --> src/core/prediction.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct PredictionEngine {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `predict_growth`, `trend_for_category`, and `seasonal_pattern` are never used
[INFO] [stdout]    --> src/core/prediction.rs:32:12
[INFO] [stdout]     |
[INFO] [stdout]  31 | impl PredictionEngine {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  32 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  39 |     pub fn predict_growth(&self, before: &SystemSnapshot, after: &SystemSnapshot) -> Vec<GrowthPrediction> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn trend_for_category(&self, _findings: &[CategoryFindings], _cat_id: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn seasonal_pattern(&self, _findings: &[CategoryFindings]) -> SeasonalPattern {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CleanProfile` is never constructed
[INFO] [stdout]  --> src/core/profiler.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct CleanProfile {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `safe`, `balanced`, and `aggressive` are never used
[INFO] [stdout]   --> src/core/profiler.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl CleanProfile {
[INFO] [stdout]    | ----------------- associated functions in this implementation
[INFO] [stdout] 17 |     pub fn safe() -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn balanced() -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn aggressive() -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProfileManager` is never constructed
[INFO] [stdout]   --> src/core/profiler.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub struct ProfileManager {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get_profile` are never used
[INFO] [stdout]   --> src/core/profiler.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | impl ProfileManager {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 71 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn get_profile(&self, name: &str) -> CleanProfile {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ReportFormat` is never used
[INFO] [stdout]  --> src/core/report.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum ReportFormat {
[INFO] [stdout]   |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_report` is never used
[INFO] [stdout]   --> src/core/report.rs:99:8
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub fn save_report(report: &AutoCleanReport, path: &str, format: ReportFormat) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_installed` is never used
[INFO] [stdout]   --> src/core/scheduler.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl Scheduler {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn is_installed(&self, command: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `icon` is never used
[INFO] [stdout]    --> src/core/scanner.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout]  96 | impl Category {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn icon(&self) -> &str {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Scanner` is never constructed
[INFO] [stdout]    --> src/core/scanner.rs:189:12
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub struct Scanner;
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `scan_path`, and `scan_with_pattern` are never used
[INFO] [stdout]    --> src/core/scanner.rs:192:12
[INFO] [stdout]     |
[INFO] [stdout] 191 | impl Scanner {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] 192 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 196 |     pub fn scan_path(
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     fn scan_with_pattern(&self, _path: &str, _pattern: &str, _id_prefix: &str) -> Vec<CleanItem> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `id`, `name`, and `description` are never used
[INFO] [stdout]   --> src/modules/mod.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub trait CleanModule: Send + Sync {
[INFO] [stdout]    |           ----------- methods in this trait
[INFO] [stdout] 33 |     fn id(&self) -> &'static str;
[INFO] [stdout]    |        ^^
[INFO] [stdout] 34 |     fn name(&self) -> &'static str;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 35 |     fn category(&self) -> Category;
[INFO] [stdout] 36 |     fn description(&self) -> &'static str;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `module_count`, `scan_all`, and `scan_all_parallel` are never used
[INFO] [stdout]   --> src/modules/mod.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl ModuleRegistry {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] 46 |     pub fn module_count(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn scan_all(&self, os: &OSInfo) -> Result<Vec<ScanResult>> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 95 |     pub fn scan_all_parallel(&self, os: &OSInfo) -> Vec<ScanResult> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `min_size_large` is never read
[INFO] [stdout]   --> src/modules/disk.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct DiskModule {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 15 |     min_size_large: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `quick_hash_file` is never used
[INFO] [stdout]   --> src/modules/duplicates.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn quick_hash_file(path: &Path) -> Option<u64> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_debian_based`, `is_arch_based`, `is_fedora_based`, `is_suse_based`, `is_alpine`, and `package_manager` are never used
[INFO] [stdout]   --> src/os/distro.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl OSInfo {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn is_debian_based(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn is_arch_based(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn is_fedora_based(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn is_suse_based(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn is_alpine(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn package_manager(&self) -> &str {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `InitSystem` is never used
[INFO] [stdout]  --> src/os/init.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum InitSystem {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_init` is never used
[INFO] [stdout]   --> src/os/init.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn detect_init() -> InitSystem {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clean_unused_snapshots` is never used
[INFO] [stdout]   --> src/os/pkg_managers/pacman.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub fn clean_unused_snapshots() -> Result<Vec<CleanItem>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_bar_chart` is never used
[INFO] [stdout]  --> src/tui/components/charts.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn render_bar_chart(
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_pie_chart` is never used
[INFO] [stdout]   --> src/tui/components/charts.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn render_pie_chart(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_size` is never used
[INFO] [stdout]   --> src/tui/components/charts.rs:68:4
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn format_size(bytes: u64) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `details_focus` is never read
[INFO] [stdout]   --> src/tui/components/content.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct ContentPanel {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout]  9 |     pub list_state: ListState,
[INFO] [stdout] 10 |     pub details_focus: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/tui/components/content.rs:102:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl ContentPanel {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn toggle_focus(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn toggle_preset(&mut self, index: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn prev_view(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub fn go_home(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn go_end(&mut self, len: usize) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn page_up(&mut self, _len: usize) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub fn page_down(&mut self, len: usize) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Categories`, `Preview`, `Confirm`, `Cleaning`, and `Done` are never constructed
[INFO] [stdout]   --> src/tui/components/dialogs.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub enum WizardStep {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 10 |     Overview,
[INFO] [stdout] 11 |     Categories,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 12 |     Preview,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 13 |     Confirm,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 14 |     Cleaning,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 15 |     Done,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WizardStep` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `AutoCleanToggleCategory` is never constructed
[INFO] [stdout]   --> src/tui/components/dialogs.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub enum DialogAction {
[INFO] [stdout]    |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 53 |     AutoCleanToggleCategory(usize),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DialogAction` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `DiskWizard` is never constructed
[INFO] [stdout]   --> src/tui/components/dialogs.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub enum Dialog {
[INFO] [stdout]    |          ------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 63 |     DiskWizard {
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Dialog` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Detail` and `RiskReview` are never constructed
[INFO] [stdout]    --> src/tui/components/dialogs.rs:783:5
[INFO] [stdout]     |
[INFO] [stdout] 779 | pub enum AutoCleanStep {
[INFO] [stdout]     |          ------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 783 |     Detail,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 784 |     RiskReview,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AutoCleanStep` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `show_wizard` is never read
[INFO] [stdout]   --> src/tui/components/sidebar.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct Sidebar {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub show_wizard: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `select` is never used
[INFO] [stdout]    --> src/tui/components/sidebar.rs:226:12
[INFO] [stdout]     |
[INFO] [stdout]  52 | impl Sidebar {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn select(&mut self, index: usize) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `with_label` is never used
[INFO] [stdout]   --> src/tui/components/widgets.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl ProgressWidget {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn with_label(mut self, label: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TableWidget` is never constructed
[INFO] [stdout]   --> src/tui/components/widgets.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct TableWidget {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_row`, `render_header`, and `render_row` are never used
[INFO] [stdout]   --> src/tui/components/widgets.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 57 | impl TableWidget {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 58 |     pub fn new(headers: Vec<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn add_row(&mut self, row: Vec<String>) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn render_header(&self, buf: &mut Buffer, x: u16, y: u16, color: Color) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub fn render_row(&self, buf: &mut Buffer, x: u16, y: u16, index: usize) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ContextMenuOption` is never constructed
[INFO] [stdout]   --> src/tui/ui.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub enum ClickTarget {
[INFO] [stdout]    |          ----------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 25 |     ContextMenuOption(usize),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ClickTarget` 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 `context_menu` is never read
[INFO] [stdout]   --> src/tui/ui.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct AppUi {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub context_menu: Option<ContextMenu>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `header`, `text`, `danger`, `success`, `selected`, and `selected_bg` are never read
[INFO] [stdout]    --> src/tui/ui.rs:278:9
[INFO] [stdout]     |
[INFO] [stdout] 275 | pub struct ThemeColors {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 278 |     pub header: Color,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 279 |     pub text: Color,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub danger: Color,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 284 |     pub success: Color,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 285 |     pub selected: Color,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 286 |     pub selected_bg: Color,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `older_than` is never used
[INFO] [stdout]   --> src/utils/disk.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn older_than(days: u64) -> u64 {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Permission`, `Module`, and `Clean` are never constructed
[INFO] [stdout]   --> src/utils/error.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum AppError {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout]  9 |     Permission(String),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     Module(String),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     Clean(String),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AppError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_critical` is never used
[INFO] [stdout]   --> src/utils/error.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl AppError {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn is_critical(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_count` is never used
[INFO] [stdout]   --> src/utils/formatting.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn format_count(count: usize) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_duration` is never used
[INFO] [stdout]   --> src/utils/formatting.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn format_duration(secs: u64) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_root` is never used
[INFO] [stdout]  --> src/utils/permissions.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn is_root() -> bool {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_sudo` is never used
[INFO] [stdout]   --> src/utils/permissions.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn has_sudo() -> bool {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_elevated` is never used
[INFO] [stdout]   --> src/utils/permissions.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn check_elevated() -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mean` is never used
[INFO] [stdout]  --> src/utils/stats.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn mean(values: &[f64]) -> f64 {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `median` is never used
[INFO] [stdout]  --> src/utils/stats.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn median(values: &mut [f64]) -> f64 {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `std_dev` is never used
[INFO] [stdout]   --> src/utils/stats.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn std_dev(values: &[f64]) -> f64 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `percentile` is never used
[INFO] [stdout]   --> src/utils/stats.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn percentile(values: &[f64], pct: f64) -> f64 {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `collect_system_info` is never used
[INFO] [stdout]  --> src/utils/system.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn collect_system_info() -> (u64, u64, f32) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `collect_disk_info` is never used
[INFO] [stdout]   --> src/utils/system.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn collect_disk_info() -> Vec<(String, u64, u64, u64, f32)> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `collect_package_count` is never used
[INFO] [stdout]   --> src/utils/system.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn collect_package_count() -> Option<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status`
[INFO] [stdout]    --> src/tui/components/dialogs.rs:540:24
[INFO] [stdout]     |
[INFO] [stdout] 540 |             let (icon, status, fg) = if completed {
[INFO] [stdout]     |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_status`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fg`
[INFO] [stdout]    --> src/tui/components/dialogs.rs:540:32
[INFO] [stdout]     |
[INFO] [stdout] 540 |             let (icon, status, fg) = if completed {
[INFO] [stdout]     |                                ^^ help: if this is intentional, prefix it with an underscore: `_fg`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `total_items`
[INFO] [stdout]    --> src/tui/components/dialogs.rs:683:13
[INFO] [stdout]     |
[INFO] [stdout] 683 |         let total_items = state.items_cleaned.max(1);
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `categories`
[INFO] [stdout]    --> src/main.rs:624:5
[INFO] [stdout]     |
[INFO] [stdout] 624 |     categories: &str,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_categories`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min_size`
[INFO] [stdout]    --> src/main.rs:633:5
[INFO] [stdout]     |
[INFO] [stdout] 633 |     min_size: &Option<String>,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_min_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_size`
[INFO] [stdout]    --> src/main.rs:634:5
[INFO] [stdout]     |
[INFO] [stdout] 634 |     max_size: &Option<String>,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `backup`
[INFO] [stdout]    --> src/main.rs:673:9
[INFO] [stdout]     |
[INFO] [stdout] 673 |     let backup = Backup::new(config.backup.location.clone(), config.backup.enabled);
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_backup`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `report_opt` is never read
[INFO] [stdout]    --> src/main.rs:691:26
[INFO] [stdout]     |
[INFO] [stdout] 691 |     let mut report_opt = None;
[INFO] [stdout]     |                          ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 728 |                 report_opt = Some(r);
[INFO] [stdout]     |                 ---------- `report_opt` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `ScanMsg` is more private than the item `App::scan_rx`
[INFO] [stdout]   --> src/app.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub scan_rx: Option<mpsc::Receiver<ScanMsg>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `App::scan_rx` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `ScanMsg` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/app.rs:29:1
[INFO] [stdout]    |
[INFO] [stdout] 29 | enum ScanMsg {
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/app.rs:31:13
[INFO] [stdout]    |
[INFO] [stdout] 31 |     AllDone(Vec<ScanResult>),
[INFO] [stdout]    |     ------- ^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ScanMsg` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 31 -     AllDone(Vec<ScanResult>),
[INFO] [stdout] 31 +     AllDone(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `registry` is never read
[INFO] [stdout]   --> src/app.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct App {
[INFO] [stdout]    |            --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub registry: ModuleRegistry,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `start_wizard` is never used
[INFO] [stdout]    --> src/app.rs:929:8
[INFO] [stdout]     |
[INFO] [stdout]  56 | impl App {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 929 |     fn start_wizard(&mut self, ui: &mut AppUi) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Theme` is never used
[INFO] [stdout]    --> src/config/schema.rs:139:10
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub enum Theme {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_str` is never used
[INFO] [stdout]    --> src/config/schema.rs:148:12
[INFO] [stdout]     |
[INFO] [stdout] 147 | impl Theme {
[INFO] [stdout]     | ---------- associated function in this implementation
[INFO] [stdout] 148 |     pub fn from_str(s: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Pending`, `Running`, `Completed`, `Failed`, and `Skipped` are never constructed
[INFO] [stdout]    --> src/core/auto_clean.rs:158:5
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub enum PhaseStatus {
[INFO] [stdout]     |          ----------- variants in this enum
[INFO] [stdout] 158 |     Pending,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 159 |     Running,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 160 |     Completed,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 161 |     Failed,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 162 |     Skipped,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PhaseStatus` 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: multiple fields are never read
[INFO] [stdout]    --> src/core/auto_clean.rs:167:9
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub struct PhaseHistoryEntry {
[INFO] [stdout]     |            ----------------- fields in this struct
[INFO] [stdout] 167 |     pub phase: AutoCleanPhase,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 168 |     pub status: PhaseStatus,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 169 |     pub duration: Duration,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 170 |     pub items_found: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 171 |     pub size_found: u64,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 172 |     pub items_cleaned: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 173 |     pub size_cleaned: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 174 |     pub errors: usize,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PhaseHistoryEntry` 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: multiple fields are never read
[INFO] [stdout]    --> src/core/auto_clean.rs:179:9
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub struct SystemSnapshot {
[INFO] [stdout]     |            -------------- fields in this struct
[INFO] [stdout] 179 |     pub timestamp: String,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 180 |     pub disks: Vec<DiskMetric>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 181 |     pub memory: MemoryMetric,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 182 |     pub swap: SwapMetric,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 183 |     pub packages: PackageMetric,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 184 |     pub uptime_secs: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 185 |     pub cpu_load: f32,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 186 |     pub process_count: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SystemSnapshot` 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: fields `mount`, `fs_type`, `total`, `used`, `available`, and `usage_pct` are never read
[INFO] [stdout]    --> src/core/auto_clean.rs:191:9
[INFO] [stdout]     |
[INFO] [stdout] 190 | pub struct DiskMetric {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 191 |     pub mount: String,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 192 |     pub fs_type: String,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 193 |     pub total: u64,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 194 |     pub used: u64,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 195 |     pub available: u64,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 196 |     pub usage_pct: f32,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DiskMetric` 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: fields `total`, `used`, `free`, `available`, and `cached` are never read
[INFO] [stdout]    --> src/core/auto_clean.rs:201:9
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub struct MemoryMetric {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 201 |     pub total: u64,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 202 |     pub used: u64,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 203 |     pub free: u64,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 204 |     pub available: u64,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 205 |     pub cached: u64,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MemoryMetric` 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: fields `total` and `used` are never read
[INFO] [stdout]    --> src/core/auto_clean.rs:210:9
[INFO] [stdout]     |
[INFO] [stdout] 209 | pub struct SwapMetric {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 210 |     pub total: u64,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 211 |     pub used: u64,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SwapMetric` 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: fields `total` and `managers` are never read
[INFO] [stdout]    --> src/core/auto_clean.rs:216:9
[INFO] [stdout]     |
[INFO] [stdout] 215 | pub struct PackageMetric {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] 216 |     pub total: usize,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 217 |     pub managers: Vec<(String, usize)>,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PackageMetric` 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: fields `file_type_groups`, `age_groups`, `top_10`, and `stats` are never read
[INFO] [stdout]    --> src/core/auto_clean.rs:229:9
[INFO] [stdout]     |
[INFO] [stdout] 221 | pub struct CategoryFindings {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 229 |     pub file_type_groups: Vec<FileTypeGroup>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 230 |     pub age_groups: Vec<AgeGroup>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 231 |     pub sub_groups: Vec<SubGroup>,
[INFO] [stdout] 232 |     pub top_10: Vec<(usize, CleanItem)>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 233 |     pub stats: SizeStatistics,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CategoryFindings` 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: multiple fields are never read
[INFO] [stdout]    --> src/core/auto_clean.rs:239:9
[INFO] [stdout]     |
[INFO] [stdout] 237 | pub struct RiskAssessment {
[INFO] [stdout]     |            -------------- fields in this struct
[INFO] [stdout] 238 |     pub level: RiskLevel,
[INFO] [stdout] 239 |     pub score: u8,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 240 |     pub safe_count: usize,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 241 |     pub safe_size: u64,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 242 |     pub caution_count: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 243 |     pub caution_size: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 244 |     pub warning_count: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 245 |     pub warning_size: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 246 |     pub dangerous_count: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 247 |     pub dangerous_size: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 248 |     pub reasons: Vec<String>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RiskAssessment` 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: methods `label_tr`, `color_hex`, and `sort_order` are never used
[INFO] [stdout]    --> src/core/auto_clean.rs:260:12
[INFO] [stdout]     |
[INFO] [stdout] 259 | impl RiskLevel {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 260 |     pub fn label_tr(&self) -> &'static str {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 |     pub fn color_hex(&self) -> &'static str {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 278 |     pub fn sort_order(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `mime_type`, `extension`, `count`, and `percentage` are never read
[INFO] [stdout]    --> src/core/auto_clean.rs:290:9
[INFO] [stdout]     |
[INFO] [stdout] 289 | pub struct FileTypeGroup {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] 290 |     pub mime_type: String,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 291 |     pub extension: String,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 292 |     pub count: usize,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 293 |     pub total_size: u64,
[INFO] [stdout] 294 |     pub percentage: f32,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FileTypeGroup` 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: fields `label`, `min_days`, `max_days`, `count`, and `total_size` are never read
[INFO] [stdout]    --> src/core/auto_clean.rs:299:9
[INFO] [stdout]     |
[INFO] [stdout] 298 | pub struct AgeGroup {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] 299 |     pub label: String,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 300 |     pub min_days: u64,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 301 |     pub max_days: u64,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 302 |     pub count: usize,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 303 |     pub total_size: u64,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AgeGroup` 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 `id` is never read
[INFO] [stdout]    --> src/core/auto_clean.rs:308:9
[INFO] [stdout]     |
[INFO] [stdout] 307 | pub struct SubGroup {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] 308 |     pub id: String,
[INFO] [stdout]     |         ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SubGroup` 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: multiple fields are never read
[INFO] [stdout]    --> src/core/auto_clean.rs:316:9
[INFO] [stdout]     |
[INFO] [stdout] 315 | pub struct SizeStatistics {
[INFO] [stdout]     |            -------------- fields in this struct
[INFO] [stdout] 316 |     pub min: u64,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 317 |     pub max: u64,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 318 |     pub mean: f64,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 319 |     pub median: f64,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 320 |     pub std_dev: f64,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 321 |     pub p10: u64,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 322 |     pub p25: u64,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 323 |     pub p75: u64,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 324 |     pub p90: u64,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 325 |     pub p95: u64,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 326 |     pub p99: u64,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 327 |     pub gini_coefficient: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SizeStatistics` 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: variants `ItemScanned`, `ItemCleaned`, `Warning`, `BackupCreated`, and `Cancelled` are never constructed
[INFO] [stdout]    --> src/core/auto_clean.rs:353:5
[INFO] [stdout]     |
[INFO] [stdout] 350 | pub enum AutoCleanProgress {
[INFO] [stdout]     |          ----------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 353 |     ItemScanned(String, u64),
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 354 |     ItemCleaned(String, u64, bool),
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 357 |     Warning(String),
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 358 |     BackupCreated(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 359 |     Finished(AutoCleanReport),
[INFO] [stdout] 360 |     Cancelled,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AutoCleanProgress` 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: fields `phase_start`, `estimated_remaining`, `system_before`, `system_after`, `suggestions`, and `phase_history` are never read
[INFO] [stdout]    --> src/core/auto_clean.rs:427:9
[INFO] [stdout]     |
[INFO] [stdout] 419 | pub struct AutoCleanState {
[INFO] [stdout]     |            -------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 427 |     pub phase_start: Instant,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 428 |     pub estimated_remaining: Duration,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 440 |     pub system_before: Option<SystemSnapshot>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 441 |     pub system_after: Option<SystemSnapshot>,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 444 |     pub suggestions: Vec<Suggestion>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 450 |     pub phase_history: Vec<PhaseHistoryEntry>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AutoCleanState` 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: method `verify_backup` is never used
[INFO] [stdout]    --> src/core/backup.rs:209:12
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl Backup {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn verify_backup(&self, backup_id: &str) -> Result<BackupVerification> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BackupVerification` is never constructed
[INFO] [stdout]    --> src/core/backup.rs:271:12
[INFO] [stdout]     |
[INFO] [stdout] 271 | pub struct BackupVerification {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `duration_secs` is never read
[INFO] [stdout]  --> src/core/benchmark.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct BenchmarkResult {
[INFO] [stdout]   |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 8 |     pub duration_secs: f64,
[INFO] [stdout]   |         ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `BenchmarkResult` 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: method `format_readable` is never used
[INFO] [stdout]   --> src/core/benchmark.rs:94:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Benchmark {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 94 |     pub fn format_readable(&self, result: &BenchmarkResult) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GrowthPrediction` is never constructed
[INFO] [stdout]  --> src/core/prediction.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct GrowthPrediction {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SeasonalPattern` is never constructed
[INFO] [stdout]   --> src/core/prediction.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct SeasonalPattern {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PredictionEngine` is never constructed
[INFO] [stdout]   --> src/core/prediction.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct PredictionEngine {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `predict_growth`, `trend_for_category`, and `seasonal_pattern` are never used
[INFO] [stdout]    --> src/core/prediction.rs:32:12
[INFO] [stdout]     |
[INFO] [stdout]  31 | impl PredictionEngine {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  32 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  39 |     pub fn predict_growth(&self, before: &SystemSnapshot, after: &SystemSnapshot) -> Vec<GrowthPrediction> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn trend_for_category(&self, _findings: &[CategoryFindings], _cat_id: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn seasonal_pattern(&self, _findings: &[CategoryFindings]) -> SeasonalPattern {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CleanProfile` is never constructed
[INFO] [stdout]  --> src/core/profiler.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct CleanProfile {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `safe`, `balanced`, and `aggressive` are never used
[INFO] [stdout]   --> src/core/profiler.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl CleanProfile {
[INFO] [stdout]    | ----------------- associated functions in this implementation
[INFO] [stdout] 17 |     pub fn safe() -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn balanced() -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn aggressive() -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProfileManager` is never constructed
[INFO] [stdout]   --> src/core/profiler.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub struct ProfileManager {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get_profile` are never used
[INFO] [stdout]   --> src/core/profiler.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | impl ProfileManager {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 71 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn get_profile(&self, name: &str) -> CleanProfile {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ReportFormat` is never used
[INFO] [stdout]  --> src/core/report.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum ReportFormat {
[INFO] [stdout]   |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_report` is never used
[INFO] [stdout]   --> src/core/report.rs:99:8
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub fn save_report(report: &AutoCleanReport, path: &str, format: ReportFormat) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_installed` is never used
[INFO] [stdout]   --> src/core/scheduler.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl Scheduler {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn is_installed(&self, command: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `icon` is never used
[INFO] [stdout]    --> src/core/scanner.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout]  96 | impl Category {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn icon(&self) -> &str {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Scanner` is never constructed
[INFO] [stdout]    --> src/core/scanner.rs:189:12
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub struct Scanner;
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `scan_path`, and `scan_with_pattern` are never used
[INFO] [stdout]    --> src/core/scanner.rs:192:12
[INFO] [stdout]     |
[INFO] [stdout] 191 | impl Scanner {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] 192 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 196 |     pub fn scan_path(
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     fn scan_with_pattern(&self, _path: &str, _pattern: &str, _id_prefix: &str) -> Vec<CleanItem> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `id`, `name`, and `description` are never used
[INFO] [stdout]   --> src/modules/mod.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub trait CleanModule: Send + Sync {
[INFO] [stdout]    |           ----------- methods in this trait
[INFO] [stdout] 33 |     fn id(&self) -> &'static str;
[INFO] [stdout]    |        ^^
[INFO] [stdout] 34 |     fn name(&self) -> &'static str;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 35 |     fn category(&self) -> Category;
[INFO] [stdout] 36 |     fn description(&self) -> &'static str;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `module_count`, `scan_all`, and `scan_all_parallel` are never used
[INFO] [stdout]   --> src/modules/mod.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl ModuleRegistry {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] 46 |     pub fn module_count(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn scan_all(&self, os: &OSInfo) -> Result<Vec<ScanResult>> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 95 |     pub fn scan_all_parallel(&self, os: &OSInfo) -> Vec<ScanResult> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `min_size_large` is never read
[INFO] [stdout]   --> src/modules/disk.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct DiskModule {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 15 |     min_size_large: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `quick_hash_file` is never used
[INFO] [stdout]   --> src/modules/duplicates.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn quick_hash_file(path: &Path) -> Option<u64> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_debian_based`, `is_arch_based`, `is_fedora_based`, `is_suse_based`, `is_alpine`, and `package_manager` are never used
[INFO] [stdout]   --> src/os/distro.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl OSInfo {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn is_debian_based(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn is_arch_based(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn is_fedora_based(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn is_suse_based(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn is_alpine(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn package_manager(&self) -> &str {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `InitSystem` is never used
[INFO] [stdout]  --> src/os/init.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum InitSystem {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_init` is never used
[INFO] [stdout]   --> src/os/init.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn detect_init() -> InitSystem {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clean_unused_snapshots` is never used
[INFO] [stdout]   --> src/os/pkg_managers/pacman.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub fn clean_unused_snapshots() -> Result<Vec<CleanItem>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_bar_chart` is never used
[INFO] [stdout]  --> src/tui/components/charts.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn render_bar_chart(
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_pie_chart` is never used
[INFO] [stdout]   --> src/tui/components/charts.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn render_pie_chart(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_size` is never used
[INFO] [stdout]   --> src/tui/components/charts.rs:68:4
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn format_size(bytes: u64) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `details_focus` is never read
[INFO] [stdout]   --> src/tui/components/content.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct ContentPanel {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout]  9 |     pub list_state: ListState,
[INFO] [stdout] 10 |     pub details_focus: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/tui/components/content.rs:102:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl ContentPanel {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn toggle_focus(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn toggle_preset(&mut self, index: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn prev_view(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub fn go_home(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn go_end(&mut self, len: usize) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn page_up(&mut self, _len: usize) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub fn page_down(&mut self, len: usize) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Categories`, `Preview`, `Confirm`, `Cleaning`, and `Done` are never constructed
[INFO] [stdout]   --> src/tui/components/dialogs.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub enum WizardStep {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 10 |     Overview,
[INFO] [stdout] 11 |     Categories,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 12 |     Preview,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 13 |     Confirm,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 14 |     Cleaning,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 15 |     Done,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WizardStep` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `AutoCleanToggleCategory` is never constructed
[INFO] [stdout]   --> src/tui/components/dialogs.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub enum DialogAction {
[INFO] [stdout]    |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 53 |     AutoCleanToggleCategory(usize),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DialogAction` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `DiskWizard` is never constructed
[INFO] [stdout]   --> src/tui/components/dialogs.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub enum Dialog {
[INFO] [stdout]    |          ------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 63 |     DiskWizard {
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Dialog` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Detail` and `RiskReview` are never constructed
[INFO] [stdout]    --> src/tui/components/dialogs.rs:783:5
[INFO] [stdout]     |
[INFO] [stdout] 779 | pub enum AutoCleanStep {
[INFO] [stdout]     |          ------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 783 |     Detail,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 784 |     RiskReview,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AutoCleanStep` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `show_wizard` is never read
[INFO] [stdout]   --> src/tui/components/sidebar.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct Sidebar {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub show_wizard: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `select` is never used
[INFO] [stdout]    --> src/tui/components/sidebar.rs:226:12
[INFO] [stdout]     |
[INFO] [stdout]  52 | impl Sidebar {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn select(&mut self, index: usize) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `with_label` is never used
[INFO] [stdout]   --> src/tui/components/widgets.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl ProgressWidget {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn with_label(mut self, label: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TableWidget` is never constructed
[INFO] [stdout]   --> src/tui/components/widgets.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct TableWidget {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_row`, `render_header`, and `render_row` are never used
[INFO] [stdout]   --> src/tui/components/widgets.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 57 | impl TableWidget {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 58 |     pub fn new(headers: Vec<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn add_row(&mut self, row: Vec<String>) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn render_header(&self, buf: &mut Buffer, x: u16, y: u16, color: Color) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub fn render_row(&self, buf: &mut Buffer, x: u16, y: u16, index: usize) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ContextMenuOption` is never constructed
[INFO] [stdout]   --> src/tui/ui.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub enum ClickTarget {
[INFO] [stdout]    |          ----------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 25 |     ContextMenuOption(usize),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ClickTarget` 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 `context_menu` is never read
[INFO] [stdout]   --> src/tui/ui.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct AppUi {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub context_menu: Option<ContextMenu>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `header`, `text`, `danger`, `success`, `selected`, and `selected_bg` are never read
[INFO] [stdout]    --> src/tui/ui.rs:278:9
[INFO] [stdout]     |
[INFO] [stdout] 275 | pub struct ThemeColors {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 278 |     pub header: Color,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 279 |     pub text: Color,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub danger: Color,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 284 |     pub success: Color,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 285 |     pub selected: Color,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 286 |     pub selected_bg: Color,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `older_than` is never used
[INFO] [stdout]   --> src/utils/disk.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn older_than(days: u64) -> u64 {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Permission`, `Module`, and `Clean` are never constructed
[INFO] [stdout]   --> src/utils/error.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum AppError {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout]  9 |     Permission(String),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     Module(String),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     Clean(String),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AppError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_critical` is never used
[INFO] [stdout]   --> src/utils/error.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl AppError {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn is_critical(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_count` is never used
[INFO] [stdout]   --> src/utils/formatting.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn format_count(count: usize) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_duration` is never used
[INFO] [stdout]   --> src/utils/formatting.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn format_duration(secs: u64) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_root` is never used
[INFO] [stdout]  --> src/utils/permissions.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn is_root() -> bool {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_sudo` is never used
[INFO] [stdout]   --> src/utils/permissions.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn has_sudo() -> bool {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_elevated` is never used
[INFO] [stdout]   --> src/utils/permissions.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn check_elevated() -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mean` is never used
[INFO] [stdout]  --> src/utils/stats.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn mean(values: &[f64]) -> f64 {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `median` is never used
[INFO] [stdout]  --> src/utils/stats.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn median(values: &mut [f64]) -> f64 {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `std_dev` is never used
[INFO] [stdout]   --> src/utils/stats.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn std_dev(values: &[f64]) -> f64 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `percentile` is never used
[INFO] [stdout]   --> src/utils/stats.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn percentile(values: &[f64], pct: f64) -> f64 {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `collect_system_info` is never used
[INFO] [stdout]  --> src/utils/system.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn collect_system_info() -> (u64, u64, f32) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `collect_disk_info` is never used
[INFO] [stdout]   --> src/utils/system.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn collect_disk_info() -> Vec<(String, u64, u64, u64, f32)> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `collect_package_count` is never used
[INFO] [stdout]   --> src/utils/system.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn collect_package_count() -> Option<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `anyhow`
[INFO] [stderr]   --> Cargo.toml:10:1
[INFO] [stderr]    |
[INFO] [stderr] 10 | anyhow = "1"
[INFO] [stderr]    | ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `anyhow`
[INFO] [stderr] warning: unused dependency `flate2`
[INFO] [stderr]   --> Cargo.toml:14:1
[INFO] [stderr]    |
[INFO] [stderr] 14 | flate2 = "1"
[INFO] [stderr]    | ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `flate2`
[INFO] [stderr] warning: unused dependency `tar`
[INFO] [stderr]   --> Cargo.toml:23:1
[INFO] [stderr]    |
[INFO] [stderr] 23 | tar = "0.4"
[INFO] [stderr]    | ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `tar`
[INFO] [stderr] warning: `windebloat` (manifest) generated 3 warnings
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 24s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nix v0.30.1
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "e259d6a2171387650da7f7d01994c09facaacdc0adeee19111ac0ab85ca18c5f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e259d6a2171387650da7f7d01994c09facaacdc0adeee19111ac0ab85ca18c5f", kill_on_drop: false }`
[INFO] [stdout] e259d6a2171387650da7f7d01994c09facaacdc0adeee19111ac0ab85ca18c5f
