[INFO] cloning repository https://github.com/NamoTaiXuanL/Basic-File-Explorer-linux
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/NamoTaiXuanL/Basic-File-Explorer-linux" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNamoTaiXuanL%2FBasic-File-Explorer-linux", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNamoTaiXuanL%2FBasic-File-Explorer-linux'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 64c6e9a47b3c5147082cdcd9ec0f0393eb20a23c
[INFO] checking NamoTaiXuanL/Basic-File-Explorer-linux against try#8e819ff5434466e9a823e03871a1775ac7d84ddf for pr-156027
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNamoTaiXuanL%2FBasic-File-Explorer-linux" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/NamoTaiXuanL/Basic-File-Explorer-linux
[INFO] finished tweaking git repo https://github.com/NamoTaiXuanL/Basic-File-Explorer-linux
[INFO] tweaked toml for git repo https://github.com/NamoTaiXuanL/Basic-File-Explorer-linux written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/NamoTaiXuanL/Basic-File-Explorer-linux on toolchain 8e819ff5434466e9a823e03871a1775ac7d84ddf
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8e819ff5434466e9a823e03871a1775ac7d84ddf" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/NamoTaiXuanL/Basic-File-Explorer-linux 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" "+8e819ff5434466e9a823e03871a1775ac7d84ddf" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+8e819ff5434466e9a823e03871a1775ac7d84ddf" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 5993ea0625afa34c631a7bb80eadca2d68559db4ad741aeea3f89ea5915e900a
[INFO] running `Command { std: "docker" "start" "-a" "5993ea0625afa34c631a7bb80eadca2d68559db4ad741aeea3f89ea5915e900a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5993ea0625afa34c631a7bb80eadca2d68559db4ad741aeea3f89ea5915e900a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5993ea0625afa34c631a7bb80eadca2d68559db4ad741aeea3f89ea5915e900a", kill_on_drop: false }`
[INFO] [stdout] 5993ea0625afa34c631a7bb80eadca2d68559db4ad741aeea3f89ea5915e900a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+8e819ff5434466e9a823e03871a1775ac7d84ddf" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] eece27251fbd0c16d5a1df006cf5e280358c7a4cb3dac5f1c365145767337969
[INFO] running `Command { std: "docker" "start" "-a" "eece27251fbd0c16d5a1df006cf5e280358c7a4cb3dac5f1c365145767337969", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.177
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]     Checking libloading v0.8.9
[INFO] [stderr]    Compiling find-msvc-tools v0.1.4
[INFO] [stderr]    Compiling hashbrown v0.16.0
[INFO] [stderr]     Checking rustix v1.1.2
[INFO] [stderr]    Compiling toml_parser v1.0.4
[INFO] [stderr]    Compiling syn v2.0.110
[INFO] [stderr]     Checking tracing-core v0.1.34
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking ttf-parser v0.25.1
[INFO] [stderr]     Checking async-fs v2.2.0
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling xml-rs v0.8.28
[INFO] [stderr]     Checking dlib v0.5.2
[INFO] [stderr]    Compiling cc v1.2.45
[INFO] [stderr]     Checking wayland-sys v0.31.7
[INFO] [stderr]     Checking ab_glyph_rasterizer v0.1.10
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking rustix v0.38.44
[INFO] [stderr]    Compiling icu_properties_data v2.1.1
[INFO] [stderr]     Checking strict-num v0.1.1
[INFO] [stderr]     Checking accesskit v0.16.3
[INFO] [stderr]     Checking immutable-chunkmap v2.1.2
[INFO] [stderr]    Compiling winit v0.30.12
[INFO] [stderr]     Checking raw-window-handle v0.6.2
[INFO] [stderr]     Checking flate2 v1.1.5
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]     Checking xkbcommon-dl v0.4.2
[INFO] [stderr]     Checking epaint_default_fonts v0.29.1
[INFO] [stderr]    Compiling smithay-client-toolkit v0.20.0
[INFO] [stderr]    Compiling quick-xml v0.37.5
[INFO] [stderr]    Compiling indexmap v2.12.0
[INFO] [stderr]     Checking smol_str v0.2.2
[INFO] [stderr]     Checking nohash-hasher v0.2.0
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]     Checking dpi v0.1.2
[INFO] [stderr]     Checking accesskit_consumer v0.24.3
[INFO] [stderr]     Checking form_urlencoded v1.2.2
[INFO] [stderr]    Compiling glutin v0.32.3
[INFO] [stderr]    Compiling toml_writer v1.0.4
[INFO] [stderr]     Checking pxfm v0.1.25
[INFO] [stderr]    Compiling glutin-winit v0.5.0
[INFO] [stderr]     Checking png v0.18.0
[INFO] [stderr]     Checking web-time v1.1.0
[INFO] [stderr]     Checking glow v0.14.2
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stderr]     Checking jpeg-decoder v0.3.2
[INFO] [stderr]     Checking iana-time-zone v0.1.64
[INFO] [stderr]    Compiling wayland-backend v0.3.11
[INFO] [stderr]     Checking chrono v0.4.42
[INFO] [stderr]     Checking serde_json v1.0.145
[INFO] [stderr]    Compiling glutin_glx_sys v0.6.1
[INFO] [stderr]    Compiling wayland-scanner v0.31.7
[INFO] [stderr]    Compiling glutin_egl_sys v0.7.1
[INFO] [stderr]     Checking crossbeam-channel v0.5.15
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking xdg-home v1.3.0
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking memmap2 v0.9.9
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking owned_ttf_parser v0.25.1
[INFO] [stderr]     Checking x11-dl v2.21.0
[INFO] [stderr]     Checking ab_glyph v0.2.32
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]     Checking sysinfo v0.32.1
[INFO] [stderr]     Checking dirs v5.0.1
[INFO] [stderr]    Compiling toml_datetime v0.7.3
[INFO] [stderr]    Compiling serde_spanned v1.0.3
[INFO] [stderr]    Compiling toml_edit v0.23.7
[INFO] [stderr]    Compiling toml v0.9.8
[INFO] [stderr]     Checking moxcms v0.7.9
[INFO] [stderr]    Compiling proc-macro-crate v3.4.0
[INFO] [stderr]     Checking polling v3.11.0
[INFO] [stderr]     Checking gethostname v1.1.0
[INFO] [stderr]     Checking x11rb v0.13.2
[INFO] [stderr]    Compiling embed-resource v3.0.6
[INFO] [stderr]     Checking async-io v2.6.0
[INFO] [stderr]    Compiling file-explorer v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking wayland-client v0.31.11
[INFO] [stderr]     Checking wayland-csd-frame v0.3.0
[INFO] [stderr]    Compiling zvariant_utils v2.1.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]     Checking arboard v3.6.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling enumflags2_derive v0.7.12
[INFO] [stderr]    Compiling zvariant_derive v4.2.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling zbus_macros v4.4.0
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]     Checking wayland-protocols v0.32.9
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]     Checking wayland-cursor v0.31.11
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking bytemuck v1.24.0
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking calloop v0.14.3
[INFO] [stderr]     Checking tiny-skia-path v0.11.4
[INFO] [stderr]     Checking emath v0.29.1
[INFO] [stderr]     Checking image v0.24.9
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking calloop v0.13.0
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]     Checking ecolor v0.29.1
[INFO] [stderr]     Checking calloop-wayland-source v0.3.0
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]     Checking thiserror v2.0.17
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]     Checking epaint v0.29.1
[INFO] [stderr]     Checking calloop-wayland-source v0.4.1
[INFO] [stderr]     Checking tiny-skia v0.11.4
[INFO] [stderr]     Checking image v0.25.8
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]     Checking enumflags2 v0.7.12
[INFO] [stderr]     Checking quick-xml v0.30.0
[INFO] [stderr]     Checking egui v0.29.1
[INFO] [stderr]     Checking icu_properties v2.1.1
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking zvariant v4.2.0
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking url v2.5.7
[INFO] [stderr]    Compiling zbus_names v3.0.0
[INFO] [stderr]     Checking webbrowser v1.0.6
[INFO] [stderr]     Checking wayland-protocols-wlr v0.3.9
[INFO] [stderr]     Checking wayland-protocols-plasma v0.3.9
[INFO] [stderr]     Checking wayland-protocols-misc v0.3.9
[INFO] [stderr]     Checking wayland-protocols-experimental v20250721.0.1
[INFO] [stderr]    Compiling zbus_xml v4.0.0
[INFO] [stderr]     Checking zbus v4.4.0
[INFO] [stderr]    Compiling zbus-lockstep v0.4.4
[INFO] [stderr]     Checking egui_glow v0.29.1
[INFO] [stderr]    Compiling zbus-lockstep-macros v0.4.4
[INFO] [stderr]     Checking smithay-client-toolkit v0.19.2
[INFO] [stderr]     Checking smithay-clipboard v0.7.3
[INFO] [stderr]     Checking sctk-adwaita v0.10.1
[INFO] [stderr]     Checking atspi-common v0.6.0
[INFO] [stderr]     Checking atspi-proxies v0.6.0
[INFO] [stderr]     Checking accesskit_atspi_common v0.9.3
[INFO] [stderr]     Checking atspi-connection v0.6.0
[INFO] [stderr]     Checking atspi v0.22.0
[INFO] [stderr]     Checking accesskit_unix v0.12.3
[INFO] [stderr]     Checking accesskit_winit v0.22.4
[INFO] [stderr]     Checking egui-winit v0.29.1
[INFO] [stderr]     Checking eframe v0.29.1
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/main.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fs;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/components/file_list.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/components/file_list.rs:570:24
[INFO] [stdout]     |
[INFO] [stdout] 570 |                     if ((i - start_index + 1) % columns == 0) {
[INFO] [stdout]     |                        ^                                    ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 570 -                     if ((i - start_index + 1) % columns == 0) {
[INFO] [stdout] 570 +                     if (i - start_index + 1) % columns == 0  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::create_operations::generate_default_folder_name`
[INFO] [stdout]  --> src/components/menu_bar.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::create_operations::generate_default_folder_name;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::env`
[INFO] [stdout]  --> src/components/file_operations.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::env;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]  --> src/components/create_operations.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]  --> src/components/create_operations.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/components/icon_manager.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CachedImage`
[INFO] [stdout]  --> src/components/thumbnail_view.rs:3:43
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::components::preview::{Preview, CachedImage};
[INFO] [stdout]   |                                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `menu_bar::*`
[INFO] [stdout]   --> src/components/mod.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub use menu_bar::*;
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `toolbar::*`
[INFO] [stdout]   --> src/components/mod.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub use toolbar::*;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mouse_strategy::*`
[INFO] [stdout]   --> src/components/mod.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub use mouse_strategy::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `icon_manager::*`
[INFO] [stdout]   --> src/components/mod.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub use icon_manager::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thumbnail_view::*`
[INFO] [stdout]   --> src/components/mod.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub use thumbnail_view::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]  --> src/utils.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::SystemTime`
[INFO] [stdout]  --> src/utils.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::time::SystemTime;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/main.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fs;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `utils::*`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use utils::*;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/components/file_list.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/components/file_list.rs:570:24
[INFO] [stdout]     |
[INFO] [stdout] 570 |                     if ((i - start_index + 1) % columns == 0) {
[INFO] [stdout]     |                        ^                                    ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 570 -                     if ((i - start_index + 1) % columns == 0) {
[INFO] [stdout] 570 +                     if (i - start_index + 1) % columns == 0  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::create_operations::generate_default_folder_name`
[INFO] [stdout]  --> src/components/menu_bar.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::create_operations::generate_default_folder_name;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::env`
[INFO] [stdout]  --> src/components/file_operations.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::env;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]  --> src/components/create_operations.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]  --> src/components/create_operations.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/components/icon_manager.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CachedImage`
[INFO] [stdout]  --> src/components/thumbnail_view.rs:3:43
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::components::preview::{Preview, CachedImage};
[INFO] [stdout]   |                                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `menu_bar::*`
[INFO] [stdout]   --> src/components/mod.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub use menu_bar::*;
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `toolbar::*`
[INFO] [stdout]   --> src/components/mod.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub use toolbar::*;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mouse_strategy::*`
[INFO] [stdout]   --> src/components/mod.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub use mouse_strategy::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `icon_manager::*`
[INFO] [stdout]   --> src/components/mod.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub use icon_manager::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `thumbnail_view::*`
[INFO] [stdout]   --> src/components/mod.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub use thumbnail_view::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]  --> src/utils.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::SystemTime`
[INFO] [stdout]  --> src/utils.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::time::SystemTime;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `utils::*`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use utils::*;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/components/file_list.rs:268:75
[INFO] [stdout]     |
[INFO] [stdout] 268 |                     ui.painter().rect_stroke(rect, 0.0, egui::Stroke::new(1.0, visuals.widgets.active.fg_stroke.color));
[INFO] [stdout]     |                                                                           ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout]     = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/components/file_list.rs:398:79
[INFO] [stdout]     |
[INFO] [stdout] 398 |                         ui.painter().rect_stroke(rect, 4.0, egui::Stroke::new(1.0, visuals.widgets.active.fg_stroke.color));
[INFO] [stdout]     |                                                                               ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/components/file_list.rs:619:71
[INFO] [stdout]     |
[INFO] [stdout] 619 |                 ui.painter().rect_stroke(rect, 0.0, egui::Stroke::new(1.0, visuals.widgets.active.fg_stroke.color));
[INFO] [stdout]     |                                                                       ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/components/file_list.rs:268:75
[INFO] [stdout]     |
[INFO] [stdout] 268 |                     ui.painter().rect_stroke(rect, 0.0, egui::Stroke::new(1.0, visuals.widgets.active.fg_stroke.color));
[INFO] [stdout]     |                                                                           ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout]     = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/components/file_list.rs:398:79
[INFO] [stdout]     |
[INFO] [stdout] 398 |                         ui.painter().rect_stroke(rect, 4.0, egui::Stroke::new(1.0, visuals.widgets.active.fg_stroke.color));
[INFO] [stdout]     |                                                                               ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/components/file_list.rs:619:71
[INFO] [stdout]     |
[INFO] [stdout] 619 |                 ui.painter().rect_stroke(rect, 0.0, egui::Stroke::new(1.0, visuals.widgets.active.fg_stroke.color));
[INFO] [stdout]     |                                                                       ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `center_y`
[INFO] [stdout]    --> src/components/file_list.rs:402:25
[INFO] [stdout]     |
[INFO] [stdout] 402 |                     let center_y = rect.center().y;
[INFO] [stdout]     |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_center_y`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `icon_size`
[INFO] [stdout]    --> src/components/file_list.rs:358:18
[INFO] [stdout]     |
[INFO] [stdout] 358 |             let (icon_size, item_size, columns) = if is_large {
[INFO] [stdout]     |                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_icon_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_path`
[INFO] [stdout]    --> src/components/file_list.rs:581:30
[INFO] [stdout]     |
[INFO] [stdout] 581 |     fn is_hidden_file(&self, file_path: &PathBuf, file_name: &str) -> bool {
[INFO] [stdout]     |                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ext_lower`
[INFO] [stdout]    --> src/components/file_list.rs:801:21
[INFO] [stdout]     |
[INFO] [stdout] 801 |                 let ext_lower = ext_str.to_lowercase();
[INFO] [stdout]     |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ext_lower`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/components/preview.rs:655:49
[INFO] [stdout]     |
[INFO] [stdout] 655 |     fn generate_preview(&mut self, path: &Path, ctx: &egui::Context) {
[INFO] [stdout]     |                                                 ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `center_y`
[INFO] [stdout]    --> src/components/file_list.rs:402:25
[INFO] [stdout]     |
[INFO] [stdout] 402 |                     let center_y = rect.center().y;
[INFO] [stdout]     |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_center_y`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `icon_size`
[INFO] [stdout]    --> src/components/file_list.rs:358:18
[INFO] [stdout]     |
[INFO] [stdout] 358 |             let (icon_size, item_size, columns) = if is_large {
[INFO] [stdout]     |                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_icon_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_path`
[INFO] [stdout]    --> src/components/file_list.rs:581:30
[INFO] [stdout]     |
[INFO] [stdout] 581 |     fn is_hidden_file(&self, file_path: &PathBuf, file_name: &str) -> bool {
[INFO] [stdout]     |                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ext_lower`
[INFO] [stdout]    --> src/components/file_list.rs:801:21
[INFO] [stdout]     |
[INFO] [stdout] 801 |                 let ext_lower = ext_str.to_lowercase();
[INFO] [stdout]     |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ext_lower`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]    --> src/components/preview.rs:655:49
[INFO] [stdout]     |
[INFO] [stdout] 655 |     fn generate_preview(&mut self, path: &Path, ctx: &egui::Context) {
[INFO] [stdout]     |                                                 ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_path`
[INFO] [stdout]   --> src/components/drive_bar.rs:19:16
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn new(current_path: &PathBuf) -> Self {
[INFO] [stdout]    |                ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right_w`
[INFO] [stdout]    --> src/main.rs:379:25
[INFO] [stdout]     |
[INFO] [stdout] 379 |                     let right_w = total_w - left_w - mid_w;
[INFO] [stdout]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_right_w`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `navigate_to`, `async_preload_images`, `select_file`, and `save_current_workspace_state` are never used
[INFO] [stdout]    --> src/main.rs:168:8
[INFO] [stdout]     |
[INFO] [stdout] 118 | impl FileExplorerApp {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 168 |     fn navigate_to(&mut self, path: PathBuf) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     fn async_preload_images(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     fn select_file(&mut self, file: PathBuf, ctx: &egui::Context) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     fn save_current_workspace_state(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Size` and `Modified` are never constructed
[INFO] [stdout]   --> src/components/file_list.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | enum SortBy {
[INFO] [stdout]    |      ------ variants in this enum
[INFO] [stdout] 40 |     Name,
[INFO] [stdout] 41 |     Size,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 42 |     Modified,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SortBy` 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 methods are never used
[INFO] [stdout]     --> src/components/file_list.rs:116:12
[INFO] [stdout]      |
[INFO] [stdout]   45 | impl FileList {
[INFO] [stdout]      | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  116 |     pub fn get_icon_manager(&self) -> &super::icon_manager::IconManager {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  120 |     pub fn get_icon_manager_mut(&mut self) -> &mut super::icon_manager::IconManager {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  815 |     fn draw_exe_icon(&self, painter: &egui::Painter, center_x: f32, center_y: f32, size: super::icon_manager::IconSize) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  870 |     fn draw_dll_icon(&self, painter: &egui::Painter, center_x: f32, center_y: f32, size: super::icon_manager::IconSize) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  925 |     fn draw_txt_icon(&self, painter: &egui::Painter, center_x: f32, center_y: f32, size: super::icon_manager::IconSize) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  980 |     fn draw_code_icon(&self, painter: &egui::Painter, center_x: f32, center_y: f32, size: super::icon_manager::IconSize) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1035 |     fn draw_unidentified_icon(&self, painter: &egui::Painter, center_x: f32, center_y: f32, size: super::icon_manager::IconSize) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1090 |     fn draw_default_icon(&self, painter: &egui::Painter, center_x: f32, center_y: f32, size: super::icon_manager::IconSize) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `image_stream_scroll` is never read
[INFO] [stdout]   --> src/components/preview.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct Preview {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 78 |     image_stream_scroll: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `folder_content` is never read
[INFO] [stdout]   --> src/components/preview.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 84 | struct LoadingResult {
[INFO] [stdout]    |        ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 89 |     folder_content: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `last_modified` is never read
[INFO] [stdout]   --> src/components/preview.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub struct CachedImage {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 96 |     pub last_modified: std::time::SystemTime,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `threads`, `stop_signal`, `thread_count`, and `max_cache_size` are never read
[INFO] [stdout]    --> src/components/preview.rs:111:5
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub struct ThumbnailPreloader {
[INFO] [stdout]     |            ------------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 111 |     threads: Vec<thread::JoinHandle<()>>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 112 |     stop_signal: Arc<atomic::AtomicBool>,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 113 |     thread_count: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 114 |     max_cache_size: usize,  // 动态缓存大小限制
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `shutdown` is never used
[INFO] [stdout]    --> src/components/preview.rs:195:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | impl ThumbnailPreloader {
[INFO] [stdout]     | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 195 |     fn shutdown(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `request_delayed_preload`, `clear`, `cleanup`, `generate_preview`, and `is_cache_valid` are never used
[INFO] [stdout]    --> src/components/preview.rs:328:12
[INFO] [stdout]     |
[INFO] [stdout] 289 | impl Preview {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 328 |     pub fn request_delayed_preload(&mut self, folder_path: &Path) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 404 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 418 |     pub fn cleanup(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 655 |     fn generate_preview(&mut self, path: &Path, ctx: &egui::Context) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 952 |     fn is_cache_valid(&self, path: &Path, cached: &CachedImage) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Cut` is never constructed
[INFO] [stdout]   --> src/components/file_operations.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub enum OperationType {
[INFO] [stdout]    |          ------------- variant in this enum
[INFO] [stdout] 21 |     Copy,
[INFO] [stdout] 22 |     Cut,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OperationType` 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: methods `cut_to_clipboard`, `show_rename_dialog`, `show_delete_confirmation_dialog`, `get_last_error`, `has_clipboard_content`, and `get_clipboard_description` are never used
[INFO] [stdout]    --> src/components/file_operations.rs:50:12
[INFO] [stdout]     |
[INFO] [stdout]  32 | impl FileOperations {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  50 |     pub fn cut_to_clipboard(&mut self, paths: Vec<PathBuf>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn show_rename_dialog(&mut self, ctx: &egui::Context, file_path: &PathBuf) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub fn show_delete_confirmation_dialog(&mut self, ctx: &egui::Context, message: &str) -> Option<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn get_last_error(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn has_clipboard_content(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn get_clipboard_description(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `last_error` is never read
[INFO] [stdout]  --> src/components/create_operations.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct CreateOperations {
[INFO] [stdout]   |            ---------------- field in this struct
[INFO] [stdout] 8 |     last_error: Option<String>,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `NeedsConfirmation` and `NeedsInput` are never constructed
[INFO] [stdout]   --> src/components/create_operations.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum CreateOperationResult {
[INFO] [stdout]    |          --------------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 15 |     NeedsConfirmation(String), // 用于需要确认的操作（如覆盖等）
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 16 |     NeedsInput(String), // 用于需要用户输入的操作（如新建文件夹名称）
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CreateOperationResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `generate_unique_folder_name`, `show_new_folder_dialog`, `get_last_error`, and `validate_folder_name` are never used
[INFO] [stdout]    --> src/components/create_operations.rs:51:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl CreateOperations {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn generate_unique_folder_name(&self, parent_path: &Path, base_name: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn show_new_folder_dialog(&mut self, ctx: &egui::Context, default_name: &str) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn get_last_error(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     fn validate_folder_name(&self, name: &str) -> Result<(), String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `is_mounted` is never read
[INFO] [stdout]   --> src/components/drive_bar.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct Drive {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 10 |     pub is_mounted: bool,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Drive` 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 `find_drive_root` and `save_workspace_state` are never used
[INFO] [stdout]    --> src/components/drive_bar.rs:75:8
[INFO] [stdout]     |
[INFO] [stdout]  18 | impl DriveBar {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  75 |     fn find_drive_root(&self, path: &PathBuf) -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn save_workspace_state(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_thumbnail_cached` and `request_thumbnail_preload` are never used
[INFO] [stdout]    --> src/components/thumbnail_view.rs:117:12
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl ThumbnailView {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn is_thumbnail_cached(&self, file_path: &Path) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn request_thumbnail_preload(&self, file_path: &Path) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_hidden_file` is never used
[INFO] [stdout]   --> src/utils.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub fn is_hidden_file(path: &Path) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_path`
[INFO] [stdout]   --> src/components/drive_bar.rs:19:16
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn new(current_path: &PathBuf) -> Self {
[INFO] [stdout]    |                ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right_w`
[INFO] [stdout]    --> src/main.rs:379:25
[INFO] [stdout]     |
[INFO] [stdout] 379 |                     let right_w = total_w - left_w - mid_w;
[INFO] [stdout]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_right_w`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `navigate_to`, `async_preload_images`, `select_file`, and `save_current_workspace_state` are never used
[INFO] [stdout]    --> src/main.rs:168:8
[INFO] [stdout]     |
[INFO] [stdout] 118 | impl FileExplorerApp {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 168 |     fn navigate_to(&mut self, path: PathBuf) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     fn async_preload_images(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     fn select_file(&mut self, file: PathBuf, ctx: &egui::Context) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     fn save_current_workspace_state(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Size` and `Modified` are never constructed
[INFO] [stdout]   --> src/components/file_list.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | enum SortBy {
[INFO] [stdout]    |      ------ variants in this enum
[INFO] [stdout] 40 |     Name,
[INFO] [stdout] 41 |     Size,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 42 |     Modified,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SortBy` 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 methods are never used
[INFO] [stdout]     --> src/components/file_list.rs:116:12
[INFO] [stdout]      |
[INFO] [stdout]   45 | impl FileList {
[INFO] [stdout]      | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  116 |     pub fn get_icon_manager(&self) -> &super::icon_manager::IconManager {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  120 |     pub fn get_icon_manager_mut(&mut self) -> &mut super::icon_manager::IconManager {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  815 |     fn draw_exe_icon(&self, painter: &egui::Painter, center_x: f32, center_y: f32, size: super::icon_manager::IconSize) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  870 |     fn draw_dll_icon(&self, painter: &egui::Painter, center_x: f32, center_y: f32, size: super::icon_manager::IconSize) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  925 |     fn draw_txt_icon(&self, painter: &egui::Painter, center_x: f32, center_y: f32, size: super::icon_manager::IconSize) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  980 |     fn draw_code_icon(&self, painter: &egui::Painter, center_x: f32, center_y: f32, size: super::icon_manager::IconSize) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1035 |     fn draw_unidentified_icon(&self, painter: &egui::Painter, center_x: f32, center_y: f32, size: super::icon_manager::IconSize) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1090 |     fn draw_default_icon(&self, painter: &egui::Painter, center_x: f32, center_y: f32, size: super::icon_manager::IconSize) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `image_stream_scroll` is never read
[INFO] [stdout]   --> src/components/preview.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct Preview {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 78 |     image_stream_scroll: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `folder_content` is never read
[INFO] [stdout]   --> src/components/preview.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 84 | struct LoadingResult {
[INFO] [stdout]    |        ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 89 |     folder_content: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `last_modified` is never read
[INFO] [stdout]   --> src/components/preview.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub struct CachedImage {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 96 |     pub last_modified: std::time::SystemTime,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `threads`, `stop_signal`, `thread_count`, and `max_cache_size` are never read
[INFO] [stdout]    --> src/components/preview.rs:111:5
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub struct ThumbnailPreloader {
[INFO] [stdout]     |            ------------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 111 |     threads: Vec<thread::JoinHandle<()>>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 112 |     stop_signal: Arc<atomic::AtomicBool>,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 113 |     thread_count: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 114 |     max_cache_size: usize,  // 动态缓存大小限制
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `shutdown` is never used
[INFO] [stdout]    --> src/components/preview.rs:195:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | impl ThumbnailPreloader {
[INFO] [stdout]     | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 195 |     fn shutdown(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `request_delayed_preload`, `clear`, `cleanup`, `generate_preview`, and `is_cache_valid` are never used
[INFO] [stdout]    --> src/components/preview.rs:328:12
[INFO] [stdout]     |
[INFO] [stdout] 289 | impl Preview {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 328 |     pub fn request_delayed_preload(&mut self, folder_path: &Path) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 404 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 418 |     pub fn cleanup(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 655 |     fn generate_preview(&mut self, path: &Path, ctx: &egui::Context) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 952 |     fn is_cache_valid(&self, path: &Path, cached: &CachedImage) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Cut` is never constructed
[INFO] [stdout]   --> src/components/file_operations.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub enum OperationType {
[INFO] [stdout]    |          ------------- variant in this enum
[INFO] [stdout] 21 |     Copy,
[INFO] [stdout] 22 |     Cut,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OperationType` 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: methods `cut_to_clipboard`, `show_rename_dialog`, `show_delete_confirmation_dialog`, `get_last_error`, `has_clipboard_content`, and `get_clipboard_description` are never used
[INFO] [stdout]    --> src/components/file_operations.rs:50:12
[INFO] [stdout]     |
[INFO] [stdout]  32 | impl FileOperations {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  50 |     pub fn cut_to_clipboard(&mut self, paths: Vec<PathBuf>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn show_rename_dialog(&mut self, ctx: &egui::Context, file_path: &PathBuf) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub fn show_delete_confirmation_dialog(&mut self, ctx: &egui::Context, message: &str) -> Option<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn get_last_error(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn has_clipboard_content(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn get_clipboard_description(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `last_error` is never read
[INFO] [stdout]  --> src/components/create_operations.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct CreateOperations {
[INFO] [stdout]   |            ---------------- field in this struct
[INFO] [stdout] 8 |     last_error: Option<String>,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `NeedsConfirmation` and `NeedsInput` are never constructed
[INFO] [stdout]   --> src/components/create_operations.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum CreateOperationResult {
[INFO] [stdout]    |          --------------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 15 |     NeedsConfirmation(String), // 用于需要确认的操作（如覆盖等）
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 16 |     NeedsInput(String), // 用于需要用户输入的操作（如新建文件夹名称）
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CreateOperationResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `generate_unique_folder_name`, `show_new_folder_dialog`, `get_last_error`, and `validate_folder_name` are never used
[INFO] [stdout]    --> src/components/create_operations.rs:51:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl CreateOperations {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn generate_unique_folder_name(&self, parent_path: &Path, base_name: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn show_new_folder_dialog(&mut self, ctx: &egui::Context, default_name: &str) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn get_last_error(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     fn validate_folder_name(&self, name: &str) -> Result<(), String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_file_exists` is never used
[INFO] [stdout]   --> src/components/app_icon.rs:50:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn icon_file_exists() -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `is_mounted` is never read
[INFO] [stdout]   --> src/components/drive_bar.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct Drive {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 10 |     pub is_mounted: bool,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Drive` 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 `find_drive_root` and `save_workspace_state` are never used
[INFO] [stdout]    --> src/components/drive_bar.rs:75:8
[INFO] [stdout]     |
[INFO] [stdout]  18 | impl DriveBar {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  75 |     fn find_drive_root(&self, path: &PathBuf) -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn save_workspace_state(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_thumbnail_cached` and `request_thumbnail_preload` are never used
[INFO] [stdout]    --> src/components/thumbnail_view.rs:117:12
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl ThumbnailView {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn is_thumbnail_cached(&self, file_path: &Path) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn request_thumbnail_preload(&self, file_path: &Path) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_hidden_file` is never used
[INFO] [stdout]   --> src/utils.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub fn is_hidden_file(path: &Path) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 19s
[INFO] running `Command { std: "docker" "inspect" "eece27251fbd0c16d5a1df006cf5e280358c7a4cb3dac5f1c365145767337969", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "eece27251fbd0c16d5a1df006cf5e280358c7a4cb3dac5f1c365145767337969", kill_on_drop: false }`
[INFO] [stdout] eece27251fbd0c16d5a1df006cf5e280358c7a4cb3dac5f1c365145767337969
