[INFO] cloning repository https://github.com/x9cf9w73cv7y/Depot-Downloader-Rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/x9cf9w73cv7y/Depot-Downloader-Rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fx9cf9w73cv7y%2FDepot-Downloader-Rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fx9cf9w73cv7y%2FDepot-Downloader-Rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2e602a84b1f8fa2453dc7e8538b2b0a9428a8922
[INFO] checking x9cf9w73cv7y/Depot-Downloader-Rust against master#3645249d79dfb136b5d8de3ce153d19d6698d92d for pr-153975
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fx9cf9w73cv7y%2FDepot-Downloader-Rust" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/x9cf9w73cv7y/Depot-Downloader-Rust
[INFO] finished tweaking git repo https://github.com/x9cf9w73cv7y/Depot-Downloader-Rust
[INFO] tweaked toml for git repo https://github.com/x9cf9w73cv7y/Depot-Downloader-Rust written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/x9cf9w73cv7y/Depot-Downloader-Rust on toolchain 3645249d79dfb136b5d8de3ce153d19d6698d92d
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3645249d79dfb136b5d8de3ce153d19d6698d92d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/x9cf9w73cv7y/Depot-Downloader-Rust 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" "+3645249d79dfb136b5d8de3ce153d19d6698d92d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded egui_glow v0.28.1
[INFO] [stderr]   Downloaded wayland-sys v0.31.9
[INFO] [stderr]   Downloaded egui-wgpu v0.28.1
[INFO] [stderr]   Downloaded eframe v0.28.1
[INFO] [stderr]   Downloaded wayland-backend v0.3.13
[INFO] [stderr]   Downloaded accesskit_unix v0.6.2
[INFO] [stderr]   Downloaded accesskit_winit v0.16.1
[INFO] [stderr]   Downloaded egui-winit v0.28.1
[INFO] [stderr]   Downloaded keyvalues-parser v0.2.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+3645249d79dfb136b5d8de3ce153d19d6698d92d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e13cd88729606dfd4e258eb73e8da0332d440a850f5ccdbd26d7367aa7b8f9ba
[INFO] running `Command { std: "docker" "start" "-a" "e13cd88729606dfd4e258eb73e8da0332d440a850f5ccdbd26d7367aa7b8f9ba", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e13cd88729606dfd4e258eb73e8da0332d440a850f5ccdbd26d7367aa7b8f9ba", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e13cd88729606dfd4e258eb73e8da0332d440a850f5ccdbd26d7367aa7b8f9ba", kill_on_drop: false }`
[INFO] [stdout] e13cd88729606dfd4e258eb73e8da0332d440a850f5ccdbd26d7367aa7b8f9ba
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+3645249d79dfb136b5d8de3ce153d19d6698d92d" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 894463ca3ec151cd88fa6696dd95cc202a7d372bc78fd428062353149f2fc52b
[INFO] running `Command { std: "docker" "start" "-a" "894463ca3ec151cd88fa6696dd95cc202a7d372bc78fd428062353149f2fc52b", kill_on_drop: false }`
[INFO] [stderr]    Compiling wayland-sys v0.31.9
[INFO] [stderr]    Compiling quick-xml v0.39.2
[INFO] [stderr]    Compiling wayland-backend v0.3.13
[INFO] [stderr]    Compiling wayland-client v0.31.13
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]     Checking event-listener v5.4.1
[INFO] [stderr]    Compiling io-lifetimes v1.0.11
[INFO] [stderr]    Compiling enumflags2_derive v0.7.12
[INFO] [stderr]    Compiling memoffset v0.7.1
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]     Checking futures-lite v2.6.1
[INFO] [stderr]    Compiling polling v2.8.0
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]     Checking fastrand v1.9.0
[INFO] [stderr]    Compiling rustix v0.37.28
[INFO] [stderr]     Checking waker-fn v1.2.0
[INFO] [stderr]    Compiling async-fs v1.6.0
[INFO] [stderr]    Compiling async-io v1.13.0
[INFO] [stderr]     Checking linux-raw-sys v0.3.8
[INFO] [stderr]     Checking futures-lite v1.13.0
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking socket2 v0.4.10
[INFO] [stderr]     Checking async-channel v2.5.0
[INFO] [stderr]     Checking tokio v1.50.0
[INFO] [stderr]     Checking nix v0.26.4
[INFO] [stderr]     Checking async-executor v1.14.0
[INFO] [stderr]     Checking async-broadcast v0.5.1
[INFO] [stderr]     Checking blocking v1.6.2
[INFO] [stderr]     Checking enumflags2 v0.7.12
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]    Compiling async-recursion v1.1.1
[INFO] [stderr]     Checking http v1.4.0
[INFO] [stderr]    Compiling smithay-client-toolkit v0.18.1
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]    Compiling wayland-scanner v0.31.9
[INFO] [stderr]     Checking accesskit v0.12.3
[INFO] [stderr]    Compiling winit v0.29.15
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking raw-window-handle v0.5.2
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking wayland-csd-frame v0.3.0
[INFO] [stderr]    Compiling glutin_glx_sys v0.5.0
[INFO] [stderr]    Compiling glutin_egl_sys v0.6.0
[INFO] [stderr]     Checking calloop v0.14.4
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]     Checking openssl v0.10.75
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking accesskit_consumer v0.16.1
[INFO] [stderr]     Checking tiny-skia-path v0.11.4
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking emath v0.28.1
[INFO] [stderr]    Compiling glutin v0.31.3
[INFO] [stderr]    Compiling glutin-winit v0.4.2
[INFO] [stderr]     Checking tiny-skia v0.11.4
[INFO] [stderr]     Checking zune-core v0.5.1
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking webbrowser v1.1.0
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]     Checking zune-jpeg v0.5.12
[INFO] [stderr]     Checking calloop v0.12.4
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]     Checking is-docker v0.2.0
[INFO] [stderr]     Checking web-time v0.2.4
[INFO] [stderr]     Checking glow v0.13.1
[INFO] [stderr]     Checking ecolor v0.28.1
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]     Checking pest v2.8.6
[INFO] [stderr]    Compiling proc-macro-crate v1.3.1
[INFO] [stderr]     Checking epaint v0.28.1
[INFO] [stderr]    Compiling prost-derive v0.13.5
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking is-wsl v0.4.0
[INFO] [stderr]     Checking image v0.25.9
[INFO] [stderr]     Checking getrandom v0.4.2
[INFO] [stderr]     Checking ascii v1.1.0
[INFO] [stderr]     Checking chunked_transfer v1.5.0
[INFO] [stderr]     Checking tempfile v3.26.0
[INFO] [stderr]     Checking open v5.3.3
[INFO] [stderr]    Compiling zvariant_utils v1.0.1
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]     Checking keyvalues-parser v0.2.3
[INFO] [stderr]     Checking chrono v0.4.44
[INFO] [stderr]     Checking tiny_http v0.12.0
[INFO] [stderr]     Checking dirs v5.0.1
[INFO] [stderr]     Checking ctr v0.9.2
[INFO] [stderr]     Checking egui v0.28.1
[INFO] [stderr]     Checking native-tls v0.2.18
[INFO] [stderr]     Checking prost v0.13.5
[INFO] [stderr]    Compiling zvariant_derive v3.15.2
[INFO] [stderr]    Compiling derivative v2.2.0
[INFO] [stderr]    Compiling zbus_macros v3.15.2
[INFO] [stderr]     Checking wayland-cursor v0.31.13
[INFO] [stderr]     Checking wayland-protocols v0.31.2
[INFO] [stderr]     Checking calloop-wayland-source v0.2.0
[INFO] [stderr]     Checking wayland-protocols v0.32.11
[INFO] [stderr]     Checking calloop-wayland-source v0.4.1
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking tracing-subscriber v0.3.22
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking zvariant v3.15.2
[INFO] [stderr]     Checking h2 v0.4.13
[INFO] [stderr]     Checking tower-http v0.6.8
[INFO] [stderr]     Checking egui_glow v0.28.1
[INFO] [stderr]     Checking zbus_names v2.6.1
[INFO] [stderr]     Checking zbus v3.15.2
[INFO] [stderr]     Checking wayland-protocols-wlr v0.2.0
[INFO] [stderr]     Checking wayland-protocols-plasma v0.2.0
[INFO] [stderr]     Checking hyper v1.8.1
[INFO] [stderr]     Checking wayland-protocols-experimental v20250721.0.1
[INFO] [stderr]     Checking wayland-protocols-misc v0.3.11
[INFO] [stderr]     Checking wayland-protocols-wlr v0.3.11
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking sctk-adwaita v0.8.3
[INFO] [stderr]     Checking smithay-client-toolkit v0.20.0
[INFO] [stderr]     Checking hyper-tls v0.6.0
[INFO] [stderr]     Checking smithay-clipboard v0.7.3
[INFO] [stderr]     Checking reqwest v0.12.28
[INFO] [stderr]     Checking atspi-common v0.3.0
[INFO] [stderr]     Checking atspi-proxies v0.3.0
[INFO] [stderr]     Checking atspi-connection v0.3.0
[INFO] [stderr]     Checking atspi v0.19.0
[INFO] [stderr]     Checking accesskit_unix v0.6.2
[INFO] [stderr]     Checking accesskit_winit v0.16.1
[INFO] [stderr]     Checking egui-winit v0.28.1
[INFO] [stderr]     Checking eframe v0.28.1
[INFO] [stderr]     Checking depot_downloader v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/steam/auth.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Result, Context};
[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: `Context`
[INFO] [stdout]  --> src/steam/session.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Result, Context};
[INFO] [stdout]   |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/steam/session.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `web_api::SteamWebApi`
[INFO] [stdout]  --> src/steam/mod.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use web_api::SteamWebApi;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AuthMethod` and `SteamAuth`
[INFO] [stdout]  --> src/steam/mod.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use auth::{SteamAuth, AuthMethod};
[INFO] [stdout]   |                ^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `session::SteamSession`
[INFO] [stdout]  --> src/steam/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use session::SteamSession;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::net::SocketAddr`
[INFO] [stdout]  --> src/cdn/server.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::net::SocketAddr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `client::CdnClient`
[INFO] [stdout]  --> src/cdn/mod.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use client::CdnClient;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `server::CdnServer`
[INFO] [stdout]  --> src/cdn/mod.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use server::CdnServer;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `download::DownloadManager`
[INFO] [stdout]  --> src/cdn/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use download::DownloadManager;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/manifest/parser.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Result, Context};
[INFO] [stdout]   |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ChunkEntry`, `FileEntry`, and `Manifest`
[INFO] [stdout]  --> src/manifest/mod.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use parser::{Manifest, FileEntry, ChunkEntry};
[INFO] [stdout]   |                  ^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `decryption::ManifestDecryptor`
[INFO] [stdout]  --> src/manifest/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use decryption::ManifestDecryptor;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `store::ManifestStore`
[INFO] [stdout]  --> src/manifest/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use store::ManifestStore;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `settings::Settings`
[INFO] [stdout]  --> src/config/mod.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub use settings::Settings;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `credentials::Credentials`
[INFO] [stdout]  --> src/config/mod.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use credentials::Credentials;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/downloader/manager.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Result, Context};
[INFO] [stdout]   |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ProgressCallback`
[INFO] [stdout]   --> src/downloader/manager.rs:12:53
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::downloader::progress::{DownloadProgress, ProgressCallback};
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ProgressCallback`
[INFO] [stdout]  --> src/downloader/mod.rs:5:38
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use progress::{DownloadProgress, ProgressCallback};
[INFO] [stdout]   |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/steam/auth.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Result, Context};
[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: `Context`
[INFO] [stdout]  --> src/steam/session.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Result, Context};
[INFO] [stdout]   |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/steam/session.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `web_api::SteamWebApi`
[INFO] [stdout]  --> src/steam/mod.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use web_api::SteamWebApi;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AuthMethod` and `SteamAuth`
[INFO] [stdout]  --> src/steam/mod.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use auth::{SteamAuth, AuthMethod};
[INFO] [stdout]   |                ^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `session::SteamSession`
[INFO] [stdout]  --> src/steam/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use session::SteamSession;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::net::SocketAddr`
[INFO] [stdout]  --> src/cdn/server.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::net::SocketAddr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `client::CdnClient`
[INFO] [stdout]  --> src/cdn/mod.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use client::CdnClient;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `server::CdnServer`
[INFO] [stdout]  --> src/cdn/mod.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use server::CdnServer;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `download::DownloadManager`
[INFO] [stdout]  --> src/cdn/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use download::DownloadManager;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/manifest/parser.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Result, Context};
[INFO] [stdout]   |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ChunkEntry`, `FileEntry`, and `Manifest`
[INFO] [stdout]  --> src/manifest/mod.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use parser::{Manifest, FileEntry, ChunkEntry};
[INFO] [stdout]   |                  ^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `decryption::ManifestDecryptor`
[INFO] [stdout]  --> src/manifest/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use decryption::ManifestDecryptor;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `store::ManifestStore`
[INFO] [stdout]  --> src/manifest/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use store::ManifestStore;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `settings::Settings`
[INFO] [stdout]  --> src/config/mod.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub use settings::Settings;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `credentials::Credentials`
[INFO] [stdout]  --> src/config/mod.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use credentials::Credentials;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/downloader/manager.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Result, Context};
[INFO] [stdout]   |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ProgressCallback`
[INFO] [stdout]   --> src/downloader/manager.rs:12:53
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::downloader::progress::{DownloadProgress, ProgressCallback};
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ProgressCallback`
[INFO] [stdout]  --> src/downloader/mod.rs:5:38
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use progress::{DownloadProgress, ProgressCallback};
[INFO] [stdout]   |                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `password`
[INFO] [stdout]   --> src/steam/auth.rs:80:49
[INFO] [stdout]    |
[INFO] [stdout] 80 |             AuthMethod::Credentials { username, password } => {
[INFO] [stdout]    |                                                 ^^^^^^^^ help: try ignoring the field: `password: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output_path`
[INFO] [stdout]    --> src/cdn/download.rs:123:9
[INFO] [stdout]     |
[INFO] [stdout] 123 |         output_path: &PathBuf,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]    --> src/downloader/progress.rs:103:28
[INFO] [stdout]     |
[INFO] [stdout] 103 |         } else if let Some(ref file) = self.current_file {
[INFO] [stdout]     |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Warning` is never constructed
[INFO] [stdout]  --> src/gui/components.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum LogLevel {
[INFO] [stdout]   |          -------- variant in this enum
[INFO] [stdout] 8 |     Info,
[INFO] [stdout] 9 |     Warning,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `LogLevel` 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] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `warning` is never used
[INFO] [stdout]   --> src/gui/components.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl LogBox {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn warning(&mut self, message: impl Into<String>) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GameInfoPanel` is never constructed
[INFO] [stdout]    --> src/gui/components.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub struct GameInfoPanel {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `ui` are never used
[INFO] [stdout]    --> src/gui/components.rs:134:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | impl GameInfoPanel {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 134 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn ui(&self, ui: &mut egui::Ui, app_id: u32, name: &str) {
[INFO] [stdout]     |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProgressBar` is never constructed
[INFO] [stdout]    --> src/gui/components.rs:152:12
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub struct ProgressBar {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `set_progress`, `set_label`, and `ui` are never used
[INFO] [stdout]    --> src/gui/components.rs:158:12
[INFO] [stdout]     |
[INFO] [stdout] 157 | impl ProgressBar {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 158 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn set_progress(&mut self, value: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn set_label(&mut self, label: impl Into<String>) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub fn ui(&self, ui: &mut egui::Ui) {
[INFO] [stdout]     |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `verify` is never read
[INFO] [stdout]    --> src/gui/dialogs.rs:132:9
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub struct DownloadConfig {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub verify: bool,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DownloadConfig` 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 `should_show` is never used
[INFO] [stdout]    --> src/gui/dialogs.rs:201:12
[INFO] [stdout]     |
[INFO] [stdout] 139 | impl SettingsDialog {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn should_show(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LoginDialog` is never constructed
[INFO] [stdout]    --> src/gui/dialogs.rs:206:12
[INFO] [stdout]     |
[INFO] [stdout] 206 | pub struct LoginDialog {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `ui` are never used
[INFO] [stdout]    --> src/gui/dialogs.rs:214:12
[INFO] [stdout]     |
[INFO] [stdout] 213 | impl LoginDialog {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 214 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn ui(&mut self, ui: &mut egui::Ui) -> Option<LoginResult> {
[INFO] [stdout]     |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LoginResult` is never used
[INFO] [stdout]    --> src/gui/dialogs.rs:279:10
[INFO] [stdout]     |
[INFO] [stdout] 279 | pub enum LoginResult {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DepotKeyDialog` is never constructed
[INFO] [stdout]    --> src/gui/dialogs.rs:286:12
[INFO] [stdout]     |
[INFO] [stdout] 286 | pub struct DepotKeyDialog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `ui` are never used
[INFO] [stdout]    --> src/gui/dialogs.rs:292:12
[INFO] [stdout]     |
[INFO] [stdout] 291 | impl DepotKeyDialog {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 292 |     pub fn new(depot_keys: Vec<(u32, String)>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 299 |     pub fn ui(&mut self, ui: &mut egui::Ui) -> Option<(u32, String)> {
[INFO] [stdout]     |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `download_image` is never used
[INFO] [stdout]   --> src/steam/web_api.rs:94:18
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl SteamWebApi {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 94 |     pub async fn download_image(&self, url: &str) -> Result<Vec<u8>> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AuthMethod` is never used
[INFO] [stdout]  --> src/steam/auth.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub enum AuthMethod {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SteamCredentials` is never constructed
[INFO] [stdout]   --> src/steam/auth.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct SteamCredentials {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SteamAuth` is never constructed
[INFO] [stdout]   --> src/steam/auth.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct SteamAuth {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/steam/auth.rs:26:12
[INFO] [stdout]     |
[INFO] [stdout]  25 | impl SteamAuth {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  26 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  38 |     pub fn with_credentials(username: String, password: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  50 |     fn get_config_path() -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  56 |     pub fn get_auth_method(&self) -> AuthMethod {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub async fn authenticate(&self, method: AuthMethod) -> Result<AuthSession> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn save_credentials(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn load_credentials(&mut self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AuthSession` is never used
[INFO] [stdout]    --> src/steam/auth.rs:121:10
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub enum AuthSession {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_authenticated` and `get_username` are never used
[INFO] [stdout]    --> src/steam/auth.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout] 128 | impl AuthSession {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] 129 |     pub fn is_authenticated(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn get_username(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SteamSession` is never constructed
[INFO] [stdout]  --> src/steam/session.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct SteamSession {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/steam/session.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl SteamSession {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 15 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn new_with_auth(auth: SteamAuth) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub async fn connect(&mut self, method: AuthMethod) -> Result<()> {
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub async fn connect_anonymous(&mut self) -> Result<()> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn disconnect(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn is_connected(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn is_authenticated(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn get_session(&self) -> Option<&AuthSession> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn request_depot_key(&mut self, depot_id: u32) -> Result<Vec<u8>> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn add_depot_key(&mut self, depot_id: u32, key: Vec<u8>) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn has_depot_key(&self, depot_id: u32) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn tick(&mut self) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `http_client` and `auth_tokens` are never read
[INFO] [stdout]  --> src/cdn/client.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct CdnClient {
[INFO] [stdout]   |            --------- fields in this struct
[INFO] [stdout] 7 |     http_client: reqwest::Client,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 8 |     server_pool: CdnServerPool,
[INFO] [stdout] 9 |     auth_tokens: HashMap<String, String>, // server -> token
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/cdn/client.rs:26:12
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl CdnClient {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  26 |     pub fn set_servers(&mut self, servers: Vec<CdnServer>) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  30 |     pub fn add_server(&mut self, server: CdnServer) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  34 |     pub fn set_auth_token(&mut self, server: &str, token: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  38 |     pub async fn fetch_server_list(&self) -> Result<Vec<CdnServer>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub async fn download_manifest(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub async fn download_chunk(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub async fn download_file(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub fn get_server_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_weight`, `with_proxy`, `base_url`, and `depot_url` are never used
[INFO] [stdout]   --> src/cdn/server.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl CdnServer {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 14 |     pub fn new(host: String, port: u16, https: bool) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn with_weight(mut self, weight: u32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn with_proxy(mut self, proxy: String) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn base_url(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn depot_url(&self, depot_id: u32, manifest_id: u64) -> String {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_server_by_weight`, `add_server`, `remove_server`, and `server_count` are never used
[INFO] [stdout]    --> src/cdn/server.rs:79:12
[INFO] [stdout]     |
[INFO] [stdout]  60 | impl CdnServerPool {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn get_server_by_weight(&mut self) -> Option<&CdnServer> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn add_server(&mut self, server: CdnServer) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn remove_server(&mut self, host: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn server_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_CONCURRENT_DOWNLOADS` is never used
[INFO] [stdout]  --> src/cdn/download.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const MAX_CONCURRENT_DOWNLOADS: usize = 8;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CHUNK_SIZE` is never used
[INFO] [stdout]   --> src/cdn/download.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const CHUNK_SIZE: usize = 1024 * 1024; // 1MB chunks for file downloads
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DownloadProgress` is never constructed
[INFO] [stdout]   --> src/cdn/download.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct DownloadProgress {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DownloadTask` is never constructed
[INFO] [stdout]   --> src/cdn/download.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct DownloadTask {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DownloadManager` is never constructed
[INFO] [stdout]   --> src/cdn/download.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct DownloadManager {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `download_file`, `download_chunk`, `download_manifest`, and `download_multiple` are never used
[INFO] [stdout]    --> src/cdn/download.rs:35:12
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl DownloadManager {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout]  35 |     pub fn new(progress_tx: mpsc::Sender<DownloadProgress>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  48 |     pub async fn download_file(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub async fn download_chunk(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     pub async fn download_manifest(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub async fn download_multiple(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `depot_id`, `manifest_id`, `total_size`, and `file_count` are never read
[INFO] [stdout]   --> src/manifest/parser.rs:7:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct Manifest {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout]  7 |     pub depot_id: u32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]  8 |     pub manifest_id: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]  9 |     pub files: Vec<FileEntry>,
[INFO] [stdout] 10 |     pub total_size: u64,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 11 |     pub file_count: u32,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Manifest` 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 `flags` and `hash` are never read
[INFO] [stdout]   --> src/manifest/parser.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct FileEntry {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub flags: u32,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 19 |     pub hash: Vec<u8>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FileEntry` 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: unused variable: `password`
[INFO] [stdout]   --> src/steam/auth.rs:80:49
[INFO] [stdout]    |
[INFO] [stdout] 80 |             AuthMethod::Credentials { username, password } => {
[INFO] [stdout]    |                                                 ^^^^^^^^ help: try ignoring the field: `password: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `checksum`, `compressed_length`, and `uncompressed_length` are never read
[INFO] [stdout]   --> src/manifest/parser.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct ChunkEntry {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 26 |     pub chunk_id: String,
[INFO] [stdout] 27 |     pub checksum: u32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 28 |     pub offset: u64,
[INFO] [stdout] 29 |     pub compressed_length: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 30 |     pub uncompressed_length: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ChunkEntry` 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: associated items `new`, `to_bytes`, `get_file`, and `get_files_to_download` are never used
[INFO] [stdout]   --> src/manifest/parser.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl Manifest {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 34 |     pub fn new(depot_id: u32, manifest_id: u64) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn to_bytes(&self) -> Result<Vec<u8>> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn get_file(&self, filename: &str) -> Option<&FileEntry> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn get_files_to_download(&self, _install_dir: &PathBuf) -> Vec<&FileEntry> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_hash`, `with_chunks`, `executable`, and `get_total_chunk_size` are never used
[INFO] [stdout]   --> src/manifest/parser.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | impl FileEntry {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 71 |     pub fn new(filename: String, size: u64) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn with_hash(mut self, hash: Vec<u8>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn with_chunks(mut self, chunks: Vec<ChunkEntry>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub fn executable(mut self, exec: bool) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97 |     pub fn get_total_chunk_size(&self) -> u64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/manifest/parser.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout] 102 | impl ChunkEntry {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] 103 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ManifestDiff` is never constructed
[INFO] [stdout]    --> src/manifest/parser.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub struct ManifestDiff {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `compare` are never used
[INFO] [stdout]    --> src/manifest/parser.rs:128:12
[INFO] [stdout]     |
[INFO] [stdout] 127 | impl ManifestDiff {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout] 128 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn compare(old: &Manifest, new: &Manifest) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `add_depot_keys_from_string`, `get_depot_key`, `hex_to_bytes`, and `bytes_to_hex` are never used
[INFO] [stdout]    --> src/manifest/decryption.rs:24:12
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl ManifestDecryptor {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  24 |     pub fn add_depot_keys_from_string(&mut self, keys_str: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  58 |     pub fn get_depot_key(&self, depot_id: u32) -> Option<&Vec<u8>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  98 |     fn hex_to_bytes(hex: &str) -> Result<Vec<u8>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn bytes_to_hex(bytes: &[u8]) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/manifest/store.rs:33:12
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl ManifestStore {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  33 |     pub fn get_depot_key_path(&self, app_id: u32) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn manifest_exists(&self, depot_id: u32, manifest_id: u64) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub async fn save_depot_keys(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub async fn load_depot_keys(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn clear_cache(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn cache_manifest(&mut self, depot_id: u32, manifest_id: u64, manifest: Manifest) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub async fn list_manifests(&self) -> Result<Vec<(u32, u64)>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub async fn delete_manifest(&self, depot_id: u32, manifest_id: u64) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_depot_key` and `manifest_exists` are never used
[INFO] [stdout]    --> src/manifest/fetcher.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout]  11 | impl ManifestHubFetcher {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn get_depot_key(&self, depot_id: u32) -> Option<&String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub async fn manifest_exists(&self, depot_id: u32, manifest_id: u64) -> Result<bool> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Settings` is never constructed
[INFO] [stdout]  --> src/config/settings.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Settings {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `load`, `save`, `get_config_path`, and `ensure_directories` are never used
[INFO] [stdout]   --> src/config/settings.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl Settings {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 38 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn load() -> Result<Self> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn save(&self) -> Result<()> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     fn get_config_path() -> PathBuf {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn ensure_directories(&self) -> Result<()> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Credentials` is never constructed
[INFO] [stdout]  --> src/config/credentials.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Credentials {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/config/credentials.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl Credentials {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 26 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn load() -> Result<Self> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn save(&self) -> Result<()> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn clear(&mut self) -> Result<()> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     fn get_credentials_path() -> PathBuf {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn has_saved_credentials(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn set_credentials(&mut self, username: String, password: String) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn get_password(&self) -> Option<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `semaphore` is never read
[INFO] [stdout]   --> src/downloader/manager.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct DownloadManager {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 25 |     semaphore: Arc<Semaphore>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `file_progress_percent`, `speed_formatted`, `format_bytes`, and `format_bytes_per_sec` are never used
[INFO] [stdout]   --> src/downloader/progress.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl DownloadProgress {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn file_progress_percent(&self) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn speed_formatted(&self, elapsed_secs: f64) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn format_bytes(bytes: u64) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 94 |     pub fn format_bytes_per_sec(bytes_per_sec: f64) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ProgressCallback` is never used
[INFO] [stdout]    --> src/downloader/progress.rs:115:10
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub type ProgressCallback = Box<dyn Fn(DownloadProgress) + Send>;
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output_path`
[INFO] [stdout]    --> src/cdn/download.rs:123:9
[INFO] [stdout]     |
[INFO] [stdout] 123 |         output_path: &PathBuf,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file`
[INFO] [stdout]    --> src/downloader/progress.rs:103:28
[INFO] [stdout]     |
[INFO] [stdout] 103 |         } else if let Some(ref file) = self.current_file {
[INFO] [stdout]     |                            ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Warning` is never constructed
[INFO] [stdout]  --> src/gui/components.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum LogLevel {
[INFO] [stdout]   |          -------- variant in this enum
[INFO] [stdout] 8 |     Info,
[INFO] [stdout] 9 |     Warning,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `LogLevel` 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] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `warning` is never used
[INFO] [stdout]   --> src/gui/components.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl LogBox {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn warning(&mut self, message: impl Into<String>) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GameInfoPanel` is never constructed
[INFO] [stdout]    --> src/gui/components.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub struct GameInfoPanel {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `ui` are never used
[INFO] [stdout]    --> src/gui/components.rs:134:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | impl GameInfoPanel {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 134 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn ui(&self, ui: &mut egui::Ui, app_id: u32, name: &str) {
[INFO] [stdout]     |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProgressBar` is never constructed
[INFO] [stdout]    --> src/gui/components.rs:152:12
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub struct ProgressBar {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `set_progress`, `set_label`, and `ui` are never used
[INFO] [stdout]    --> src/gui/components.rs:158:12
[INFO] [stdout]     |
[INFO] [stdout] 157 | impl ProgressBar {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 158 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn set_progress(&mut self, value: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn set_label(&mut self, label: impl Into<String>) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub fn ui(&self, ui: &mut egui::Ui) {
[INFO] [stdout]     |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `verify` is never read
[INFO] [stdout]    --> src/gui/dialogs.rs:132:9
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub struct DownloadConfig {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub verify: bool,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DownloadConfig` 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 `should_show` is never used
[INFO] [stdout]    --> src/gui/dialogs.rs:201:12
[INFO] [stdout]     |
[INFO] [stdout] 139 | impl SettingsDialog {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn should_show(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LoginDialog` is never constructed
[INFO] [stdout]    --> src/gui/dialogs.rs:206:12
[INFO] [stdout]     |
[INFO] [stdout] 206 | pub struct LoginDialog {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `ui` are never used
[INFO] [stdout]    --> src/gui/dialogs.rs:214:12
[INFO] [stdout]     |
[INFO] [stdout] 213 | impl LoginDialog {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 214 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn ui(&mut self, ui: &mut egui::Ui) -> Option<LoginResult> {
[INFO] [stdout]     |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LoginResult` is never used
[INFO] [stdout]    --> src/gui/dialogs.rs:279:10
[INFO] [stdout]     |
[INFO] [stdout] 279 | pub enum LoginResult {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DepotKeyDialog` is never constructed
[INFO] [stdout]    --> src/gui/dialogs.rs:286:12
[INFO] [stdout]     |
[INFO] [stdout] 286 | pub struct DepotKeyDialog {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `ui` are never used
[INFO] [stdout]    --> src/gui/dialogs.rs:292:12
[INFO] [stdout]     |
[INFO] [stdout] 291 | impl DepotKeyDialog {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 292 |     pub fn new(depot_keys: Vec<(u32, String)>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 299 |     pub fn ui(&mut self, ui: &mut egui::Ui) -> Option<(u32, String)> {
[INFO] [stdout]     |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `download_image` is never used
[INFO] [stdout]   --> src/steam/web_api.rs:94:18
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl SteamWebApi {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 94 |     pub async fn download_image(&self, url: &str) -> Result<Vec<u8>> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AuthMethod` is never used
[INFO] [stdout]  --> src/steam/auth.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub enum AuthMethod {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SteamCredentials` is never constructed
[INFO] [stdout]   --> src/steam/auth.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct SteamCredentials {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SteamAuth` is never constructed
[INFO] [stdout]   --> src/steam/auth.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct SteamAuth {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/steam/auth.rs:26:12
[INFO] [stdout]     |
[INFO] [stdout]  25 | impl SteamAuth {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  26 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  38 |     pub fn with_credentials(username: String, password: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  50 |     fn get_config_path() -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  56 |     pub fn get_auth_method(&self) -> AuthMethod {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub async fn authenticate(&self, method: AuthMethod) -> Result<AuthSession> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn save_credentials(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn load_credentials(&mut self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AuthSession` is never used
[INFO] [stdout]    --> src/steam/auth.rs:121:10
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub enum AuthSession {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_authenticated` and `get_username` are never used
[INFO] [stdout]    --> src/steam/auth.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout] 128 | impl AuthSession {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] 129 |     pub fn is_authenticated(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn get_username(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SteamSession` is never constructed
[INFO] [stdout]  --> src/steam/session.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct SteamSession {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/steam/session.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl SteamSession {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 15 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn new_with_auth(auth: SteamAuth) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub async fn connect(&mut self, method: AuthMethod) -> Result<()> {
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub async fn connect_anonymous(&mut self) -> Result<()> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn disconnect(&mut self) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn is_connected(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn is_authenticated(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn get_session(&self) -> Option<&AuthSession> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn request_depot_key(&mut self, depot_id: u32) -> Result<Vec<u8>> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn add_depot_key(&mut self, depot_id: u32, key: Vec<u8>) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn has_depot_key(&self, depot_id: u32) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn tick(&mut self) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `http_client` and `auth_tokens` are never read
[INFO] [stdout]  --> src/cdn/client.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct CdnClient {
[INFO] [stdout]   |            --------- fields in this struct
[INFO] [stdout] 7 |     http_client: reqwest::Client,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 8 |     server_pool: CdnServerPool,
[INFO] [stdout] 9 |     auth_tokens: HashMap<String, String>, // server -> token
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/cdn/client.rs:26:12
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl CdnClient {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  26 |     pub fn set_servers(&mut self, servers: Vec<CdnServer>) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  30 |     pub fn add_server(&mut self, server: CdnServer) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  34 |     pub fn set_auth_token(&mut self, server: &str, token: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  38 |     pub async fn fetch_server_list(&self) -> Result<Vec<CdnServer>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub async fn download_manifest(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub async fn download_chunk(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub async fn download_file(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub fn get_server_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_weight`, `with_proxy`, `base_url`, and `depot_url` are never used
[INFO] [stdout]   --> src/cdn/server.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl CdnServer {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 14 |     pub fn new(host: String, port: u16, https: bool) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn with_weight(mut self, weight: u32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn with_proxy(mut self, proxy: String) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn base_url(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn depot_url(&self, depot_id: u32, manifest_id: u64) -> String {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_server_by_weight`, `add_server`, `remove_server`, and `server_count` are never used
[INFO] [stdout]    --> src/cdn/server.rs:79:12
[INFO] [stdout]     |
[INFO] [stdout]  60 | impl CdnServerPool {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn get_server_by_weight(&mut self) -> Option<&CdnServer> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn add_server(&mut self, server: CdnServer) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn remove_server(&mut self, host: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn server_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_CONCURRENT_DOWNLOADS` is never used
[INFO] [stdout]  --> src/cdn/download.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const MAX_CONCURRENT_DOWNLOADS: usize = 8;
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CHUNK_SIZE` is never used
[INFO] [stdout]   --> src/cdn/download.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const CHUNK_SIZE: usize = 1024 * 1024; // 1MB chunks for file downloads
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DownloadProgress` is never constructed
[INFO] [stdout]   --> src/cdn/download.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct DownloadProgress {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DownloadTask` is never constructed
[INFO] [stdout]   --> src/cdn/download.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct DownloadTask {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DownloadManager` is never constructed
[INFO] [stdout]   --> src/cdn/download.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct DownloadManager {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `download_file`, `download_chunk`, `download_manifest`, and `download_multiple` are never used
[INFO] [stdout]    --> src/cdn/download.rs:35:12
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl DownloadManager {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout]  35 |     pub fn new(progress_tx: mpsc::Sender<DownloadProgress>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  48 |     pub async fn download_file(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub async fn download_chunk(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     pub async fn download_manifest(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub async fn download_multiple(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `depot_id`, `manifest_id`, `total_size`, and `file_count` are never read
[INFO] [stdout]   --> src/manifest/parser.rs:7:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct Manifest {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout]  7 |     pub depot_id: u32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]  8 |     pub manifest_id: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]  9 |     pub files: Vec<FileEntry>,
[INFO] [stdout] 10 |     pub total_size: u64,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 11 |     pub file_count: u32,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Manifest` 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 `flags` and `hash` are never read
[INFO] [stdout]   --> src/manifest/parser.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct FileEntry {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub flags: u32,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 19 |     pub hash: Vec<u8>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FileEntry` 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 `checksum`, `compressed_length`, and `uncompressed_length` are never read
[INFO] [stdout]   --> src/manifest/parser.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct ChunkEntry {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 26 |     pub chunk_id: String,
[INFO] [stdout] 27 |     pub checksum: u32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 28 |     pub offset: u64,
[INFO] [stdout] 29 |     pub compressed_length: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 30 |     pub uncompressed_length: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ChunkEntry` 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: associated items `new`, `to_bytes`, `get_file`, and `get_files_to_download` are never used
[INFO] [stdout]   --> src/manifest/parser.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl Manifest {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 34 |     pub fn new(depot_id: u32, manifest_id: u64) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn to_bytes(&self) -> Result<Vec<u8>> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn get_file(&self, filename: &str) -> Option<&FileEntry> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn get_files_to_download(&self, _install_dir: &PathBuf) -> Vec<&FileEntry> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_hash`, `with_chunks`, `executable`, and `get_total_chunk_size` are never used
[INFO] [stdout]   --> src/manifest/parser.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | impl FileEntry {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 71 |     pub fn new(filename: String, size: u64) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn with_hash(mut self, hash: Vec<u8>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn with_chunks(mut self, chunks: Vec<ChunkEntry>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub fn executable(mut self, exec: bool) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97 |     pub fn get_total_chunk_size(&self) -> u64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/manifest/parser.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout] 102 | impl ChunkEntry {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] 103 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ManifestDiff` is never constructed
[INFO] [stdout]    --> src/manifest/parser.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub struct ManifestDiff {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `compare` are never used
[INFO] [stdout]    --> src/manifest/parser.rs:128:12
[INFO] [stdout]     |
[INFO] [stdout] 127 | impl ManifestDiff {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout] 128 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn compare(old: &Manifest, new: &Manifest) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/manifest/store.rs:33:12
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl ManifestStore {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  33 |     pub fn get_depot_key_path(&self, app_id: u32) -> PathBuf {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn manifest_exists(&self, depot_id: u32, manifest_id: u64) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub async fn save_depot_keys(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub async fn load_depot_keys(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn clear_cache(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn cache_manifest(&mut self, depot_id: u32, manifest_id: u64, manifest: Manifest) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub async fn list_manifests(&self) -> Result<Vec<(u32, u64)>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub async fn delete_manifest(&self, depot_id: u32, manifest_id: u64) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_depot_key` and `manifest_exists` are never used
[INFO] [stdout]    --> src/manifest/fetcher.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout]  11 | impl ManifestHubFetcher {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn get_depot_key(&self, depot_id: u32) -> Option<&String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub async fn manifest_exists(&self, depot_id: u32, manifest_id: u64) -> Result<bool> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Settings` is never constructed
[INFO] [stdout]  --> src/config/settings.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Settings {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `load`, `save`, `get_config_path`, and `ensure_directories` are never used
[INFO] [stdout]   --> src/config/settings.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl Settings {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 38 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn load() -> Result<Self> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn save(&self) -> Result<()> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     fn get_config_path() -> PathBuf {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn ensure_directories(&self) -> Result<()> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Credentials` is never constructed
[INFO] [stdout]  --> src/config/credentials.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Credentials {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/config/credentials.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl Credentials {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 26 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn load() -> Result<Self> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn save(&self) -> Result<()> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn clear(&mut self) -> Result<()> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     fn get_credentials_path() -> PathBuf {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn has_saved_credentials(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn set_credentials(&mut self, username: String, password: String) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn get_password(&self) -> Option<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `semaphore` is never read
[INFO] [stdout]   --> src/downloader/manager.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct DownloadManager {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 25 |     semaphore: Arc<Semaphore>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `file_progress_percent`, `speed_formatted`, `format_bytes`, and `format_bytes_per_sec` are never used
[INFO] [stdout]   --> src/downloader/progress.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl DownloadProgress {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn file_progress_percent(&self) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn speed_formatted(&self, elapsed_secs: f64) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn format_bytes(bytes: u64) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 94 |     pub fn format_bytes_per_sec(bytes_per_sec: f64) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ProgressCallback` is never used
[INFO] [stdout]    --> src/downloader/progress.rs:115:10
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub type ProgressCallback = Box<dyn Fn(DownloadProgress) + Send>;
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 51.31s
[INFO] running `Command { std: "docker" "inspect" "894463ca3ec151cd88fa6696dd95cc202a7d372bc78fd428062353149f2fc52b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "894463ca3ec151cd88fa6696dd95cc202a7d372bc78fd428062353149f2fc52b", kill_on_drop: false }`
[INFO] [stdout] 894463ca3ec151cd88fa6696dd95cc202a7d372bc78fd428062353149f2fc52b
