[INFO] cloning repository https://github.com/jaunkst/spotui [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jaunkst/spotui" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjaunkst%2Fspotui", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjaunkst%2Fspotui'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 630d19292c038b5c6fe46d334cfd5b2fdfe1ab60 [INFO] checking jaunkst/spotui against try#4e55a504843955c97eb06907c71f6f3e99208021 for pr-146978 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjaunkst%2Fspotui" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/jaunkst/spotui [INFO] finished tweaking git repo https://github.com/jaunkst/spotui [INFO] tweaked toml for git repo https://github.com/jaunkst/spotui written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/jaunkst/spotui on toolchain 4e55a504843955c97eb06907c71f6f3e99208021 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4e55a504843955c97eb06907c71f6f3e99208021" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/jaunkst/spotui 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" "+4e55a504843955c97eb06907c71f6f3e99208021" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+4e55a504843955c97eb06907c71f6f3e99208021" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 04e1fd8b346707771b894c1f62216052da9d5c2974ebf9a372a0a4b68107d463 [INFO] running `Command { std: "docker" "start" "-a" "04e1fd8b346707771b894c1f62216052da9d5c2974ebf9a372a0a4b68107d463", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "04e1fd8b346707771b894c1f62216052da9d5c2974ebf9a372a0a4b68107d463", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "04e1fd8b346707771b894c1f62216052da9d5c2974ebf9a372a0a4b68107d463", kill_on_drop: false }` [INFO] [stdout] 04e1fd8b346707771b894c1f62216052da9d5c2974ebf9a372a0a4b68107d463 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+4e55a504843955c97eb06907c71f6f3e99208021" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 94214f11359d29f1e419b18365579a45cb44a8e8be4d7a40045d61b877b36ca0 [INFO] running `Command { std: "docker" "start" "-a" "94214f11359d29f1e419b18365579a45cb44a8e8be4d7a40045d61b877b36ca0", kill_on_drop: false }` [INFO] [stderr] Checking parking_lot_core v0.9.11 [INFO] [stderr] Checking signal-hook-registry v1.4.5 [INFO] [stderr] Checking mio v1.0.4 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking socket2 v0.5.10 [INFO] [stderr] Compiling cc v1.2.30 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Checking simd-adler32 v0.3.7 [INFO] [stderr] Checking either v1.15.0 [INFO] [stderr] Compiling rayon-core v1.12.1 [INFO] [stderr] Checking serde v1.0.219 [INFO] [stderr] Checking indexmap v2.10.0 [INFO] [stderr] Compiling equator-macro v0.4.2 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Checking icu_normalizer v2.0.0 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Checking parking_lot v0.12.4 [INFO] [stderr] Compiling anyhow v1.0.98 [INFO] [stderr] Compiling rustversion v1.0.21 [INFO] [stderr] Checking miniz_oxide v0.8.9 [INFO] [stderr] Compiling serde_json v1.0.141 [INFO] [stderr] Compiling built v0.7.7 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking arrayvec v0.7.6 [INFO] [stderr] Checking idna v1.0.3 [INFO] [stderr] Checking crc32fast v1.5.0 [INFO] [stderr] Checking tokio v1.46.1 [INFO] [stderr] Compiling rav1e v0.7.1 [INFO] [stderr] Checking socket2 v0.6.0 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Compiling profiling-procmacros v1.0.17 [INFO] [stderr] Checking linux-raw-sys v0.4.15 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Checking flate2 v1.1.2 [INFO] [stderr] Checking url v2.5.4 [INFO] [stderr] Checking itertools v0.12.1 [INFO] [stderr] Compiling num-derive v0.4.2 [INFO] [stderr] Checking profiling v1.0.17 [INFO] [stderr] Checking equator v0.4.2 [INFO] [stderr] Compiling arg_enum_proc_macro v0.3.4 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Compiling simd_helpers v0.1.0 [INFO] [stderr] Checking new_debug_unreachable v1.0.6 [INFO] [stderr] Compiling noop_proc_macro v0.3.0 [INFO] [stderr] Checking aligned-vec v0.6.4 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Checking weezl v0.1.10 [INFO] [stderr] Checking v_frame v0.3.9 [INFO] [stderr] Checking quick-error v2.0.1 [INFO] [stderr] Checking imgref v1.11.0 [INFO] [stderr] Checking bitstream-io v2.6.0 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking loop9 v0.1.5 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Checking avif-serialize v0.8.5 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Checking zune-inflate v0.2.54 [INFO] [stderr] Checking fdeflate v0.3.7 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Checking half v2.6.0 [INFO] [stderr] Compiling openssl-sys v0.9.109 [INFO] [stderr] Checking num-rational v0.4.2 [INFO] [stderr] Checking encoding_rs v0.8.35 [INFO] [stderr] Checking rgb v0.8.52 [INFO] [stderr] Checking lebe v0.5.2 [INFO] [stderr] Checking color_quant v1.1.0 [INFO] [stderr] Checking zune-core v0.4.12 [INFO] [stderr] Checking bytemuck v1.23.1 [INFO] [stderr] Compiling instability v0.3.9 [INFO] [stderr] Checking jpeg-decoder v0.3.2 [INFO] [stderr] Checking iana-time-zone v0.1.63 [INFO] [stderr] Checking bit_field v0.10.2 [INFO] [stderr] Checking byteorder-lite v0.1.0 [INFO] [stderr] Compiling enum_dispatch v0.3.13 [INFO] [stderr] Checking zune-jpeg v0.4.19 [INFO] [stderr] Checking qoi v0.4.1 [INFO] [stderr] Checking exr v1.73.0 [INFO] [stderr] Checking image-webp v0.2.3 [INFO] [stderr] Compiling object v0.36.7 [INFO] [stderr] Checking gif v0.13.3 [INFO] [stderr] Checking av1-grain v0.2.4 [INFO] [stderr] Compiling openssl v0.10.73 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Checking png v0.17.16 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Checking maybe-rayon v0.1.1 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking tiff v0.9.1 [INFO] [stderr] Checking chrono v0.4.41 [INFO] [stderr] Checking signal-hook-mio v0.2.4 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking castaway v0.2.4 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Checking itertools v0.13.0 [INFO] [stderr] Compiling maybe-async v0.2.10 [INFO] [stderr] Compiling async-trait v0.1.88 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Checking unicode-width v0.1.14 [INFO] [stderr] Checking option-ext v0.2.0 [INFO] [stderr] Checking os_str_bytes v6.6.1 [INFO] [stderr] Checking x11rb-protocol v0.13.1 [INFO] [stderr] Checking gimli v0.31.1 [INFO] [stderr] Compiling indoc v2.0.6 [INFO] [stderr] Checking unicode-segmentation v1.12.0 [INFO] [stderr] Checking clap_lex v0.2.4 [INFO] [stderr] Checking compact_str v0.8.1 [INFO] [stderr] Checking strum v0.27.2 [INFO] [stderr] Checking async-stream v0.3.6 [INFO] [stderr] Checking sha2 v0.10.9 [INFO] [stderr] Checking rspotify-model v0.15.0 [INFO] [stderr] Checking unicode-truncate v1.1.0 [INFO] [stderr] Checking dirs-sys v0.4.1 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking rspotify-macros v0.15.0 [INFO] [stderr] Checking textwrap v0.16.2 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Checking cassowary v0.3.0 [INFO] [stderr] Checking strsim v0.10.0 [INFO] [stderr] Checking unicode-width v0.2.0 [INFO] [stderr] Checking rustc-demangle v0.1.25 [INFO] [stderr] Checking serde_yaml v0.9.34+deprecated [INFO] [stderr] Checking dirs v5.0.1 [INFO] [stderr] Checking webbrowser v1.0.5 [INFO] [stderr] Checking strum v0.26.3 [INFO] [stderr] Checking tokio-util v0.7.15 [INFO] [stderr] Checking tower v0.5.2 [INFO] [stderr] Compiling clap_derive v3.2.25 [INFO] [stderr] Checking addr2line v0.24.2 [INFO] [stderr] Checking tower-http v0.6.6 [INFO] [stderr] Checking h2 v0.4.11 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking crossterm v0.28.1 [INFO] [stderr] Checking clap v3.2.25 [INFO] [stderr] Checking x11rb v0.13.1 [INFO] [stderr] Checking ratatui v0.29.0 [INFO] [stderr] Checking ravif v0.11.20 [INFO] [stderr] Checking backtrace v0.3.75 [INFO] [stderr] Checking hyper v1.6.0 [INFO] [stderr] Checking image v0.25.6 [INFO] [stderr] Checking hyper-util v0.1.16 [INFO] [stderr] Checking arboard v3.6.0 [INFO] [stderr] Checking hyper-tls v0.6.0 [INFO] [stderr] Checking reqwest v0.12.22 [INFO] [stderr] Checking rspotify-http v0.15.0 [INFO] [stderr] Checking rspotify v0.15.0 [INFO] [stderr] Checking spotify-tui v0.25.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `PlaylistTracksRef` and `Show` [INFO] [stdout] --> src/app.rs:16:16 [INFO] [stdout] | [INFO] [stdout] 16 | playlist::{PlaylistTracksRef, SimplifiedPlaylist}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | show::{FullShow, Show, SimplifiedEpisode, SimplifiedShow}, [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::str::FromStr` [INFO] [stdout] --> src/app.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | use std::str::FromStr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RgbaImage` [INFO] [stdout] --> src/album_art.rs:2:51 [INFO] [stdout] | [INFO] [stdout] 2 | use image::{DynamicImage, GenericImageView, Rgba, RgbaImage}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `common_key_events` [INFO] [stdout] --> src/handlers/playbar.rs:3:3 [INFO] [stdout] | [INFO] [stdout] 3 | common_key_events, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `IoEvent` and `PlayingItem` [INFO] [stdout] --> src/handlers/playbar.rs:6:22 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::network::{IoEvent, PlayingItem}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `PlayableItem` and `context::CurrentPlaybackContext` [INFO] [stdout] --> src/handlers/playbar.rs:7:23 [INFO] [stdout] | [INFO] [stdout] 7 | use rspotify::model::{context::CurrentPlaybackContext, PlayableItem}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ActiveBlock` [INFO] [stdout] --> src/handlers/select_device.rs:2:16 [INFO] [stdout] | [INFO] [stdout] 2 | super::app::{ActiveBlock, App}, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::network::PlayingItem` [INFO] [stdout] --> src/handlers/mod.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | use crate::network::PlayingItem; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ActiveBlock`, `AlbumTableContext`, `EpisodeTableContext`, `RouteId`, `SelectedAlbum`, `SelectedFullShow`, and `SelectedShow` [INFO] [stdout] --> src/network.rs:2:3 [INFO] [stdout] | [INFO] [stdout] 2 | ActiveBlock, AlbumTableContext, App, Artist, ArtistBlock, EpisodeTableContext, RouteId, [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^ [INFO] [stdout] 3 | ScrollableResultPages, SelectedAlbum, SelectedFullAlbum, SelectedFullShow, SelectedShow, [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AdditionalType`, `Country`, `CurrentPlaybackContext`, `FullAlbum`, `SavedTrack`, `SearchType`, `artist::FullArtist`, and `playlist::SimplifiedPlaylist` [INFO] [stdout] --> src/network.rs:12:30 [INFO] [stdout] | [INFO] [stdout] 12 | album::{SimplifiedAlbum, FullAlbum}, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 13 | artist::FullArtist, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 14 | page::Page, [INFO] [stdout] 15 | playlist::SimplifiedPlaylist, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 16 | show::SimplifiedShow, [INFO] [stdout] 17 | track::{FullTrack, SavedTrack}, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | CurrentPlaybackContext, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 21 | enums::{Country, RepeatState as SpotifyRepeatState, SearchType, AdditionalType}, [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration`, `Instant`, and `SystemTime` [INFO] [stdout] --> src/network.rs:27:10 [INFO] [stdout] | [INFO] [stdout] 27 | time::{Duration, Instant, SystemTime}, [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `backend::Backend` [INFO] [stdout] --> src/ui/audio_analysis.rs:4:3 [INFO] [stdout] | [INFO] [stdout] 4 | backend::Backend, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `PlayingItem` and `RepeatState` [INFO] [stdout] --> src/ui/mod.rs:12:22 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::network::{PlayingItem, RepeatState}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `symbols::border` [INFO] [stdout] --> src/ui/mod.rs:18:3 [INFO] [stdout] | [INFO] [stdout] 18 | symbols::border, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Duration` [INFO] [stdout] --> src/main.rs:45:10 [INFO] [stdout] | [INFO] [stdout] 45 | time::{Duration, Instant, SystemTime}, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated type alias `std::panic::PanicInfo`: use `PanicHookInfo` instead [INFO] [stdout] --> src/main.rs:42:17 [INFO] [stdout] | [INFO] [stdout] 42 | panic::{self, PanicInfo}, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated type alias `std::panic::PanicInfo`: use `PanicHookInfo` instead [INFO] [stdout] --> src/main.rs:262:22 [INFO] [stdout] | [INFO] [stdout] 262 | fn panic_hook(info: &PanicInfo<'_>) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `PlaylistTracksRef` and `Show` [INFO] [stdout] --> src/app.rs:16:16 [INFO] [stdout] | [INFO] [stdout] 16 | playlist::{PlaylistTracksRef, SimplifiedPlaylist}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | show::{FullShow, Show, SimplifiedEpisode, SimplifiedShow}, [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::str::FromStr` [INFO] [stdout] --> src/app.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | use std::str::FromStr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RgbaImage` [INFO] [stdout] --> src/album_art.rs:2:51 [INFO] [stdout] | [INFO] [stdout] 2 | use image::{DynamicImage, GenericImageView, Rgba, RgbaImage}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `common_key_events` [INFO] [stdout] --> src/handlers/playbar.rs:3:3 [INFO] [stdout] | [INFO] [stdout] 3 | common_key_events, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `IoEvent` and `PlayingItem` [INFO] [stdout] --> src/handlers/playbar.rs:6:22 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::network::{IoEvent, PlayingItem}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `PlayableItem` and `context::CurrentPlaybackContext` [INFO] [stdout] --> src/handlers/playbar.rs:7:23 [INFO] [stdout] | [INFO] [stdout] 7 | use rspotify::model::{context::CurrentPlaybackContext, PlayableItem}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ActiveBlock` [INFO] [stdout] --> src/handlers/select_device.rs:2:16 [INFO] [stdout] | [INFO] [stdout] 2 | super::app::{ActiveBlock, App}, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::network::PlayingItem` [INFO] [stdout] --> src/handlers/mod.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | use crate::network::PlayingItem; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ActiveBlock`, `AlbumTableContext`, `EpisodeTableContext`, `RouteId`, `SelectedAlbum`, `SelectedFullShow`, and `SelectedShow` [INFO] [stdout] --> src/network.rs:2:3 [INFO] [stdout] | [INFO] [stdout] 2 | ActiveBlock, AlbumTableContext, App, Artist, ArtistBlock, EpisodeTableContext, RouteId, [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^ [INFO] [stdout] 3 | ScrollableResultPages, SelectedAlbum, SelectedFullAlbum, SelectedFullShow, SelectedShow, [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AdditionalType`, `Country`, `CurrentPlaybackContext`, `FullAlbum`, `SavedTrack`, `SearchType`, `artist::FullArtist`, and `playlist::SimplifiedPlaylist` [INFO] [stdout] --> src/network.rs:12:30 [INFO] [stdout] | [INFO] [stdout] 12 | album::{SimplifiedAlbum, FullAlbum}, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 13 | artist::FullArtist, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 14 | page::Page, [INFO] [stdout] 15 | playlist::SimplifiedPlaylist, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 16 | show::SimplifiedShow, [INFO] [stdout] 17 | track::{FullTrack, SavedTrack}, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | CurrentPlaybackContext, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 21 | enums::{Country, RepeatState as SpotifyRepeatState, SearchType, AdditionalType}, [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration`, `Instant`, and `SystemTime` [INFO] [stdout] --> src/network.rs:27:10 [INFO] [stdout] | [INFO] [stdout] 27 | time::{Duration, Instant, SystemTime}, [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `backend::Backend` [INFO] [stdout] --> src/ui/audio_analysis.rs:4:3 [INFO] [stdout] | [INFO] [stdout] 4 | backend::Backend, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `PlayingItem` and `RepeatState` [INFO] [stdout] --> src/ui/mod.rs:12:22 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::network::{PlayingItem, RepeatState}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `symbols::border` [INFO] [stdout] --> src/ui/mod.rs:18:3 [INFO] [stdout] | [INFO] [stdout] 18 | symbols::border, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Duration` [INFO] [stdout] --> src/main.rs:45:10 [INFO] [stdout] | [INFO] [stdout] 45 | time::{Duration, Instant, SystemTime}, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated type alias `std::panic::PanicInfo`: use `PanicHookInfo` instead [INFO] [stdout] --> src/main.rs:42:17 [INFO] [stdout] | [INFO] [stdout] 42 | panic::{self, PanicInfo}, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated type alias `std::panic::PanicInfo`: use `PanicHookInfo` instead [INFO] [stdout] --> src/main.rs:262:22 [INFO] [stdout] | [INFO] [stdout] 262 | fn panic_hook(info: &PanicInfo<'_>) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/network.rs:338:13 [INFO] [stdout] | [INFO] [stdout] 338 | let mut app = self.app.lock().await; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/network.rs:338:13 [INFO] [stdout] | [INFO] [stdout] 338 | let mut app = self.app.lock().await; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `rspotify::clients::BaseClient::artist_related_artists`: Spotify has deprecated this endpoint, check documentation for more information [INFO] [stdout] --> src/network.rs:1419:50 [INFO] [stdout] | [INFO] [stdout] 1419 | let related_artists = match self.spotify.artist_related_artists(artist_id).await { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `rspotify::clients::BaseClient::artist_related_artists`: Spotify has deprecated this endpoint, check documentation for more information [INFO] [stdout] --> src/network.rs:1419:50 [INFO] [stdout] | [INFO] [stdout] 1419 | let related_artists = match self.spotify.artist_related_artists(artist_id).await { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:91:7 [INFO] [stdout] | [INFO] [stdout] 91 | let mut spotify = AuthCodeSpotify::new(creds, oauth); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:91:7 [INFO] [stdout] | [INFO] [stdout] 91 | let mut spotify = AuthCodeSpotify::new(creds, oauth); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `rspotify::rspotify_model::SimplifiedEpisode::language`: This `language` field is deprecated and might be removed in the future by Spotify. Please use the languages field instead [INFO] [stdout] --> src/network.rs:103:11 [INFO] [stdout] | [INFO] [stdout] 103 | language: episode.language, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `rspotify::rspotify_model::FullEpisode::language`: This `language` field is deprecated and might be removed in the future by Spotify. Please use the languages field instead [INFO] [stdout] --> src/network.rs:103:21 [INFO] [stdout] | [INFO] [stdout] 103 | language: episode.language, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `rspotify::rspotify_model::SimplifiedEpisode::language`: This `language` field is deprecated and might be removed in the future by Spotify. Please use the languages field instead [INFO] [stdout] --> src/network.rs:103:11 [INFO] [stdout] | [INFO] [stdout] 103 | language: episode.language, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated field `rspotify::rspotify_model::FullEpisode::language`: This `language` field is deprecated and might be removed in the future by Spotify. Please use the languages field instead [INFO] [stdout] --> src/network.rs:103:21 [INFO] [stdout] | [INFO] [stdout] 103 | language: episode.language, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Backend` [INFO] [stdout] --> src/ui/mod.rs:15:13 [INFO] [stdout] | [INFO] [stdout] 15 | backend::{Backend, CrosstermBackend}, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Backend` [INFO] [stdout] --> src/ui/mod.rs:15:13 [INFO] [stdout] | [INFO] [stdout] 15 | backend::{Backend, CrosstermBackend}, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `seed_artists` [INFO] [stdout] --> src/app.rs:582:5 [INFO] [stdout] | [INFO] [stdout] 582 | seed_artists: Option>, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_seed_artists` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `seed_tracks` [INFO] [stdout] --> src/app.rs:583:5 [INFO] [stdout] | [INFO] [stdout] 583 | seed_tracks: Option>, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_seed_tracks` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `first_track` [INFO] [stdout] --> src/app.rs:584:5 [INFO] [stdout] | [INFO] [stdout] 584 | first_track: Option, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_first_track` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `user_country` [INFO] [stdout] --> src/app.rs:586:9 [INFO] [stdout] | [INFO] [stdout] 586 | let user_country = self.get_user_country(); [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_country` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/app.rs:595:54 [INFO] [stdout] | [INFO] [stdout] 595 | pub fn get_recommendations_for_track_id(&mut self, id: String) { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `user_country` [INFO] [stdout] --> src/app.rs:596:9 [INFO] [stdout] | [INFO] [stdout] 596 | let user_country = self.get_user_country(); [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_country` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/app.rs:818:9 [INFO] [stdout] | [INFO] [stdout] 818 | let mut current_route = self.get_current_route_mut(); [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `seed_artists` [INFO] [stdout] --> src/app.rs:582:5 [INFO] [stdout] | [INFO] [stdout] 582 | seed_artists: Option>, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_seed_artists` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `seed_tracks` [INFO] [stdout] --> src/app.rs:583:5 [INFO] [stdout] | [INFO] [stdout] 583 | seed_tracks: Option>, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_seed_tracks` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `first_track` [INFO] [stdout] --> src/app.rs:584:5 [INFO] [stdout] | [INFO] [stdout] 584 | first_track: Option, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_first_track` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `user_country` [INFO] [stdout] --> src/app.rs:586:9 [INFO] [stdout] | [INFO] [stdout] 586 | let user_country = self.get_user_country(); [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_country` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/app.rs:595:54 [INFO] [stdout] | [INFO] [stdout] 595 | pub fn get_recommendations_for_track_id(&mut self, id: String) { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `user_country` [INFO] [stdout] --> src/app.rs:596:9 [INFO] [stdout] | [INFO] [stdout] 596 | let user_country = self.get_user_country(); [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_country` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `saved_track_page` [INFO] [stdout] --> src/app.rs:889:47 [INFO] [stdout] | [INFO] [stdout] 889 | pub fn set_saved_tracks_to_table(&mut self, saved_track_page: &Page) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_saved_track_page` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `saved_artists_page` [INFO] [stdout] --> src/app.rs:900:48 [INFO] [stdout] | [INFO] [stdout] 900 | pub fn set_saved_artists_to_table(&mut self, saved_artists_page: &CursorBasedPage) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_saved_artists_page` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `last_artist` [INFO] [stdout] --> src/app.rs:923:23 [INFO] [stdout] | [INFO] [stdout] 923 | if let Some(last_artist) = saved_artists.items.last() { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_artist` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `offset` [INFO] [stdout] --> src/app.rs:955:15 [INFO] [stdout] | [INFO] [stdout] 955 | let offset = Some(saved_tracks.offset + saved_tracks.limit); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `offset` [INFO] [stdout] --> src/app.rs:988:15 [INFO] [stdout] | [INFO] [stdout] 988 | let offset = Some(saved_albums.offset + saved_albums.limit); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `album_id` [INFO] [stdout] --> src/app.rs:1007:25 [INFO] [stdout] | [INFO] [stdout] 1007 | if let Some(album_id) = selected_album.id.as_ref().map(|id| id.to_string()) { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_album_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `album_id` [INFO] [stdout] --> src/app.rs:1016:17 [INFO] [stdout] | [INFO] [stdout] 1016 | let album_id = selected_album.album.id.to_string(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_album_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `album_id` [INFO] [stdout] --> src/app.rs:1024:25 [INFO] [stdout] | [INFO] [stdout] 1024 | if let Some(album_id) = selected_album.id.as_ref().map(|id| id.to_string()) { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_album_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `album_id` [INFO] [stdout] --> src/app.rs:1040:25 [INFO] [stdout] | [INFO] [stdout] 1040 | if let Some(album_id) = selected_album.id.as_ref().map(|id| id.to_string()) { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_album_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `album_id` [INFO] [stdout] --> src/app.rs:1049:25 [INFO] [stdout] | [INFO] [stdout] 1049 | if let Some(album_id) = selected_album.id.as_ref().map(|id| id.to_string()) { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_album_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `offset` [INFO] [stdout] --> src/app.rs:1069:15 [INFO] [stdout] | [INFO] [stdout] 1069 | let offset = Some(saved_shows.offset + saved_shows.limit); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `show_id` [INFO] [stdout] --> src/app.rs:1082:44 [INFO] [stdout] | [INFO] [stdout] 1082 | pub fn get_episode_table_next(&mut self, show_id: String) { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `offset` [INFO] [stdout] --> src/app.rs:1092:15 [INFO] [stdout] | [INFO] [stdout] 1092 | let offset = Some(show_episodes.offset + show_episodes.limit); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `artist_id` [INFO] [stdout] --> src/app.rs:1111:17 [INFO] [stdout] | [INFO] [stdout] 1111 | let artist_id = selected_artist.id.to_string(); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_artist_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `artist_id` [INFO] [stdout] --> src/app.rs:1119:17 [INFO] [stdout] | [INFO] [stdout] 1119 | let artist_id = selected_artist.id.to_string(); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_artist_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `artist_id` [INFO] [stdout] --> src/app.rs:1127:15 [INFO] [stdout] | [INFO] [stdout] 1127 | let artist_id = selected_artis.id.to_string(); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_artist_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `artist_id` [INFO] [stdout] --> src/app.rs:1141:17 [INFO] [stdout] | [INFO] [stdout] 1141 | let artist_id = selected_artist.id.to_string(); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_artist_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `artist_id` [INFO] [stdout] --> src/app.rs:1149:15 [INFO] [stdout] | [INFO] [stdout] 1149 | let artist_id = selected_artis.id.to_string(); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_artist_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `selected_id` [INFO] [stdout] --> src/app.rs:1165:11 [INFO] [stdout] | [INFO] [stdout] 1165 | let selected_id = selected_playlist.id.to_string(); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_selected_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `selected_public` [INFO] [stdout] --> src/app.rs:1166:11 [INFO] [stdout] | [INFO] [stdout] 1166 | let selected_public = selected_playlist.public; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_selected_public` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `selected_owner_id` [INFO] [stdout] --> src/app.rs:1167:11 [INFO] [stdout] | [INFO] [stdout] 1167 | let selected_owner_id = selected_playlist.owner.id.to_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_selected_owner_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `selected_id` [INFO] [stdout] --> src/app.rs:1181:11 [INFO] [stdout] | [INFO] [stdout] 1181 | let selected_id = selected_playlist.id.to_string(); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_selected_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `user_id` [INFO] [stdout] --> src/app.rs:1182:11 [INFO] [stdout] | [INFO] [stdout] 1182 | let user_id = user.id.clone(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/app.rs:818:9 [INFO] [stdout] | [INFO] [stdout] 818 | let mut current_route = self.get_current_route_mut(); [INFO] [stdout] | ----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `selected_id` [INFO] [stdout] --> src/app.rs:1194:11 [INFO] [stdout] | [INFO] [stdout] 1194 | let selected_id = selected_playlist.id.to_string(); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_selected_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `user_id` [INFO] [stdout] --> src/app.rs:1195:11 [INFO] [stdout] | [INFO] [stdout] 1195 | let user_id = user.id.clone(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `show_id` [INFO] [stdout] --> src/app.rs:1205:25 [INFO] [stdout] | [INFO] [stdout] 1205 | if let Some(show_id) = shows.items.get(selected_index).map(|item| item.id.clone()) { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `show_id` [INFO] [stdout] --> src/app.rs:1214:17 [INFO] [stdout] | [INFO] [stdout] 1214 | let show_id = selected_episode.show.id; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `show_id` [INFO] [stdout] --> src/app.rs:1220:17 [INFO] [stdout] | [INFO] [stdout] 1220 | let show_id = selected_episode.show.id; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `show_id` [INFO] [stdout] --> src/app.rs:1234:17 [INFO] [stdout] | [INFO] [stdout] 1234 | let show_id = selected_show.id.clone(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `show_id` [INFO] [stdout] --> src/app.rs:1242:17 [INFO] [stdout] | [INFO] [stdout] 1242 | let show_id = shows.items[selected_index].id.to_owned(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `show_id` [INFO] [stdout] --> src/app.rs:1250:17 [INFO] [stdout] | [INFO] [stdout] 1250 | let show_id = selected_episode.show.id; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `saved_track_page` [INFO] [stdout] --> src/app.rs:889:47 [INFO] [stdout] | [INFO] [stdout] 889 | pub fn set_saved_tracks_to_table(&mut self, saved_track_page: &Page) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_saved_track_page` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `saved_artists_page` [INFO] [stdout] --> src/app.rs:900:48 [INFO] [stdout] | [INFO] [stdout] 900 | pub fn set_saved_artists_to_table(&mut self, saved_artists_page: &CursorBasedPage) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_saved_artists_page` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `last_artist` [INFO] [stdout] --> src/app.rs:923:23 [INFO] [stdout] | [INFO] [stdout] 923 | if let Some(last_artist) = saved_artists.items.last() { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_artist` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `show_id` [INFO] [stdout] --> src/app.rs:1256:17 [INFO] [stdout] | [INFO] [stdout] 1256 | let show_id = selected_episode.show.id; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input_artist_name` [INFO] [stdout] --> src/app.rs:1293:51 [INFO] [stdout] | [INFO] [stdout] 1293 | pub fn get_artist(&mut self, artist_id: String, input_artist_name: String) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input_artist_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `user_country` [INFO] [stdout] --> src/app.rs:1294:9 [INFO] [stdout] | [INFO] [stdout] 1294 | let user_country = self.get_user_country(); [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_country` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `offset` [INFO] [stdout] --> src/app.rs:955:15 [INFO] [stdout] | [INFO] [stdout] 955 | let offset = Some(saved_tracks.offset + saved_tracks.limit); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `offset` [INFO] [stdout] --> src/app.rs:988:15 [INFO] [stdout] | [INFO] [stdout] 988 | let offset = Some(saved_albums.offset + saved_albums.limit); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `album_id` [INFO] [stdout] --> src/app.rs:1007:25 [INFO] [stdout] | [INFO] [stdout] 1007 | if let Some(album_id) = selected_album.id.as_ref().map(|id| id.to_string()) { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_album_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `album_id` [INFO] [stdout] --> src/app.rs:1016:17 [INFO] [stdout] | [INFO] [stdout] 1016 | let album_id = selected_album.album.id.to_string(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_album_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `album_id` [INFO] [stdout] --> src/app.rs:1024:25 [INFO] [stdout] | [INFO] [stdout] 1024 | if let Some(album_id) = selected_album.id.as_ref().map(|id| id.to_string()) { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_album_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `album_id` [INFO] [stdout] --> src/app.rs:1040:25 [INFO] [stdout] | [INFO] [stdout] 1040 | if let Some(album_id) = selected_album.id.as_ref().map(|id| id.to_string()) { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_album_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `album_id` [INFO] [stdout] --> src/app.rs:1049:25 [INFO] [stdout] | [INFO] [stdout] 1049 | if let Some(album_id) = selected_album.id.as_ref().map(|id| id.to_string()) { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_album_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `offset` [INFO] [stdout] --> src/app.rs:1069:15 [INFO] [stdout] | [INFO] [stdout] 1069 | let offset = Some(saved_shows.offset + saved_shows.limit); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `show_id` [INFO] [stdout] --> src/app.rs:1082:44 [INFO] [stdout] | [INFO] [stdout] 1082 | pub fn get_episode_table_next(&mut self, show_id: String) { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `offset` [INFO] [stdout] --> src/app.rs:1092:15 [INFO] [stdout] | [INFO] [stdout] 1092 | let offset = Some(show_episodes.offset + show_episodes.limit); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `artist_id` [INFO] [stdout] --> src/app.rs:1111:17 [INFO] [stdout] | [INFO] [stdout] 1111 | let artist_id = selected_artist.id.to_string(); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_artist_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `artist_id` [INFO] [stdout] --> src/app.rs:1119:17 [INFO] [stdout] | [INFO] [stdout] 1119 | let artist_id = selected_artist.id.to_string(); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_artist_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `artist_id` [INFO] [stdout] --> src/app.rs:1127:15 [INFO] [stdout] | [INFO] [stdout] 1127 | let artist_id = selected_artis.id.to_string(); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_artist_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `artist_id` [INFO] [stdout] --> src/app.rs:1141:17 [INFO] [stdout] | [INFO] [stdout] 1141 | let artist_id = selected_artist.id.to_string(); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_artist_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `artist_id` [INFO] [stdout] --> src/app.rs:1149:15 [INFO] [stdout] | [INFO] [stdout] 1149 | let artist_id = selected_artis.id.to_string(); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_artist_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `selected_id` [INFO] [stdout] --> src/app.rs:1165:11 [INFO] [stdout] | [INFO] [stdout] 1165 | let selected_id = selected_playlist.id.to_string(); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_selected_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `selected_public` [INFO] [stdout] --> src/app.rs:1166:11 [INFO] [stdout] | [INFO] [stdout] 1166 | let selected_public = selected_playlist.public; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_selected_public` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `selected_owner_id` [INFO] [stdout] --> src/app.rs:1167:11 [INFO] [stdout] | [INFO] [stdout] 1167 | let selected_owner_id = selected_playlist.owner.id.to_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_selected_owner_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `selected_id` [INFO] [stdout] --> src/app.rs:1181:11 [INFO] [stdout] | [INFO] [stdout] 1181 | let selected_id = selected_playlist.id.to_string(); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_selected_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `user_id` [INFO] [stdout] --> src/app.rs:1182:11 [INFO] [stdout] | [INFO] [stdout] 1182 | let user_id = user.id.clone(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `selected_id` [INFO] [stdout] --> src/app.rs:1194:11 [INFO] [stdout] | [INFO] [stdout] 1194 | let selected_id = selected_playlist.id.to_string(); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_selected_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `user_id` [INFO] [stdout] --> src/app.rs:1195:11 [INFO] [stdout] | [INFO] [stdout] 1195 | let user_id = user.id.clone(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `show_id` [INFO] [stdout] --> src/app.rs:1205:25 [INFO] [stdout] | [INFO] [stdout] 1205 | if let Some(show_id) = shows.items.get(selected_index).map(|item| item.id.clone()) { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `show_id` [INFO] [stdout] --> src/app.rs:1214:17 [INFO] [stdout] | [INFO] [stdout] 1214 | let show_id = selected_episode.show.id; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `show_id` [INFO] [stdout] --> src/app.rs:1220:17 [INFO] [stdout] | [INFO] [stdout] 1220 | let show_id = selected_episode.show.id; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `show_id` [INFO] [stdout] --> src/app.rs:1234:17 [INFO] [stdout] | [INFO] [stdout] 1234 | let show_id = selected_show.id.clone(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `show_id` [INFO] [stdout] --> src/app.rs:1242:17 [INFO] [stdout] | [INFO] [stdout] 1242 | let show_id = shows.items[selected_index].id.to_owned(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `show_id` [INFO] [stdout] --> src/app.rs:1250:17 [INFO] [stdout] | [INFO] [stdout] 1250 | let show_id = selected_episode.show.id; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `show_id` [INFO] [stdout] --> src/app.rs:1256:17 [INFO] [stdout] | [INFO] [stdout] 1256 | let show_id = selected_episode.show.id; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input_artist_name` [INFO] [stdout] --> src/app.rs:1293:51 [INFO] [stdout] | [INFO] [stdout] 1293 | pub fn get_artist(&mut self, artist_id: String, input_artist_name: String) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input_artist_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `user_country` [INFO] [stdout] --> src/app.rs:1294:9 [INFO] [stdout] | [INFO] [stdout] 1294 | let user_country = self.get_user_country(); [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_country` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `episode_uris` [INFO] [stdout] --> src/handlers/episode_table.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | let episode_uris = episodes [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_episode_uris` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `episode_uris` [INFO] [stdout] --> src/handlers/episode_table.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | let episode_uris = episodes [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_episode_uris` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `index` [INFO] [stdout] --> src/handlers/search_results.rs:300:11 [INFO] [stdout] | [INFO] [stdout] 300 | let index = app.search_results.selected_tracks_index; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `track_uris` [INFO] [stdout] --> src/handlers/search_results.rs:302:11 [INFO] [stdout] | [INFO] [stdout] 302 | let track_uris = tracks.map(|tracks| { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_track_uris` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `num_tracks` [INFO] [stdout] --> src/handlers/track_table.rs:134:15 [INFO] [stdout] | [INFO] [stdout] 134 | let num_tracks: usize = from_value(val.clone()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_tracks` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `num_tracks` [INFO] [stdout] --> src/handlers/track_table.rs:182:15 [INFO] [stdout] | [INFO] [stdout] 182 | let num_tracks: usize = from_value(val.clone()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_tracks` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `current_playback_context` [INFO] [stdout] --> src/handlers/mod.rs:277:15 [INFO] [stdout] | [INFO] [stdout] 277 | if let Some(current_playback_context) = &app.current_playback_context { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_playback_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `index` [INFO] [stdout] --> src/handlers/search_results.rs:300:11 [INFO] [stdout] | [INFO] [stdout] 300 | let index = app.search_results.selected_tracks_index; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `track_uris` [INFO] [stdout] --> src/handlers/search_results.rs:302:11 [INFO] [stdout] | [INFO] [stdout] 302 | let track_uris = tracks.map(|tracks| { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_track_uris` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `album_id` [INFO] [stdout] --> src/network.rs:234:41 [INFO] [stdout] | [INFO] [stdout] 234 | IoEvent::CurrentUserSavedAlbumAdd(album_id) => { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_album_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `show` [INFO] [stdout] --> src/network.rs:238:32 [INFO] [stdout] | [INFO] [stdout] 238 | IoEvent::GetShowEpisodes(show) => { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_show` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `album_id` [INFO] [stdout] --> src/network.rs:248:25 [INFO] [stdout] | [INFO] [stdout] 248 | IoEvent::GetAlbum(album_id) => { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_album_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `track_id` [INFO] [stdout] --> src/network.rs:252:33 [INFO] [stdout] | [INFO] [stdout] 252 | IoEvent::GetAlbumForTrack(track_id) => { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_track_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `user` [INFO] [stdout] --> src/network.rs:337:10 [INFO] [stdout] | [INFO] [stdout] 337 | Ok(user) => { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_user` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `app` [INFO] [stdout] --> src/network.rs:338:13 [INFO] [stdout] | [INFO] [stdout] 338 | let mut app = self.app.lock().await; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/network.rs:377:11 [INFO] [stdout] | [INFO] [stdout] 377 | Err(e) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `num_tracks` [INFO] [stdout] --> src/handlers/track_table.rs:134:15 [INFO] [stdout] | [INFO] [stdout] 134 | let num_tracks: usize = from_value(val.clone()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_tracks` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/network.rs:1092:15 [INFO] [stdout] | [INFO] [stdout] 1092 | Err(e) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `num_tracks` [INFO] [stdout] --> src/handlers/track_table.rs:182:15 [INFO] [stdout] | [INFO] [stdout] 182 | let num_tracks: usize = from_value(val.clone()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_tracks` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `offset` [INFO] [stdout] --> src/network.rs:388:62 [INFO] [stdout] | [INFO] [stdout] 388 | async fn get_playlist_tracks(&mut self, playlist_id: &str, offset: u32) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `current_playback_context` [INFO] [stdout] --> src/handlers/mod.rs:277:15 [INFO] [stdout] | [INFO] [stdout] 277 | if let Some(current_playback_context) = &app.current_playback_context { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_playback_context` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `album_id` [INFO] [stdout] --> src/network.rs:234:41 [INFO] [stdout] | [INFO] [stdout] 234 | IoEvent::CurrentUserSavedAlbumAdd(album_id) => { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_album_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `show` [INFO] [stdout] --> src/network.rs:238:32 [INFO] [stdout] | [INFO] [stdout] 238 | IoEvent::GetShowEpisodes(show) => { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_show` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `album_id` [INFO] [stdout] --> src/network.rs:248:25 [INFO] [stdout] | [INFO] [stdout] 248 | IoEvent::GetAlbum(album_id) => { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_album_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `track_id` [INFO] [stdout] --> src/network.rs:252:33 [INFO] [stdout] | [INFO] [stdout] 252 | IoEvent::GetAlbumForTrack(track_id) => { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_track_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `user` [INFO] [stdout] --> src/network.rs:337:10 [INFO] [stdout] | [INFO] [stdout] 337 | Ok(user) => { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_user` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `app` [INFO] [stdout] --> src/network.rs:338:13 [INFO] [stdout] | [INFO] [stdout] 338 | let mut app = self.app.lock().await; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/network.rs:377:11 [INFO] [stdout] | [INFO] [stdout] 377 | Err(e) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/network.rs:1092:15 [INFO] [stdout] | [INFO] [stdout] 1092 | Err(e) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `offset` [INFO] [stdout] --> src/network.rs:388:62 [INFO] [stdout] | [INFO] [stdout] 388 | async fn get_playlist_tracks(&mut self, playlist_id: &str, offset: u32) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:296:7 [INFO] [stdout] | [INFO] [stdout] 296 | let mut clap_app = Command::new(env!("CARGO_PKG_NAME")) [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `config_paths` [INFO] [stdout] --> src/main.rs:379:7 [INFO] [stdout] | [INFO] [stdout] 379 | let config_paths = client_config.get_or_build_paths()?; [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_config_paths` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `PlayBar` and `Error` are never constructed [INFO] [stdout] --> src/app.rs:124:3 [INFO] [stdout] | [INFO] [stdout] 122 | pub enum ActiveBlock { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] 123 | Analysis, [INFO] [stdout] 124 | PlayBar, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 129 | Error, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ActiveBlock` has derived impls for the traits `Debug` and `Clone`, 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: variants `Error`, `PodcastEpisodes`, and `Recommendations` are never constructed [INFO] [stdout] --> src/app.rs:153:3 [INFO] [stdout] | [INFO] [stdout] 147 | pub enum RouteId { [INFO] [stdout] | ------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 153 | Error, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 161 | PodcastEpisodes, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 162 | Recommendations, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RouteId` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `RecommendedTracks` is never constructed [INFO] [stdout] --> src/app.rs:182:3 [INFO] [stdout] | [INFO] [stdout] 177 | pub enum TrackTableContext { [INFO] [stdout] | ----------------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 182 | RecommendedTracks, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TrackTableContext` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Simplified` is never constructed [INFO] [stdout] --> src/app.rs:188:3 [INFO] [stdout] | [INFO] [stdout] 187 | pub enum AlbumTableContext { [INFO] [stdout] | ----------------- variant in this enum [INFO] [stdout] 188 | Simplified, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AlbumTableContext` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Simplified` is never constructed [INFO] [stdout] --> src/app.rs:194:3 [INFO] [stdout] | [INFO] [stdout] 193 | pub enum EpisodeTableContext { [INFO] [stdout] | ------------------- variant in this enum [INFO] [stdout] 194 | Simplified, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `EpisodeTableContext` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `selected_index` is never read [INFO] [stdout] --> src/app.rs:246:7 [INFO] [stdout] | [INFO] [stdout] 244 | pub struct SelectedFullAlbum { [INFO] [stdout] | ----------------- field in this struct [INFO] [stdout] 245 | pub album: FullAlbum, [INFO] [stdout] 246 | pub selected_index: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SelectedFullAlbum` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `small_search_limit` is never read [INFO] [stdout] --> src/app.rs:314:7 [INFO] [stdout] | [INFO] [stdout] 268 | pub struct App { [INFO] [stdout] | --- field in this struct [INFO] [stdout] ... [INFO] [stdout] 314 | pub small_search_limit: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/app.rs:1308:10 [INFO] [stdout] | [INFO] [stdout] 439 | impl App { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 1308 | pub fn focus_component(&mut self, component: ComponentId) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1313 | pub fn hover_component(&mut self, component: ComponentId) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1318 | pub fn navigate_to_component(&mut self, component: ComponentId) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1333 | pub fn clear_hover(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1343 | pub fn get_component_focus_state(&self, component: &ComponentId) -> FocusState { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1348 | pub fn is_component_focused(&self, component: &ComponentId) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1353 | pub fn is_component_hovered(&self, component: &ComponentId) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1358 | pub fn get_focused_component(&self) -> Option<&ComponentId> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1363 | pub fn get_hovered_component(&self) -> Option<&ComponentId> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_pixelated_art` is never used [INFO] [stdout] --> src/album_art.rs:227:8 [INFO] [stdout] | [INFO] [stdout] 227 | pub fn render_pixelated_art(art: &PixelatedAlbumArt) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `exit_key` is never read [INFO] [stdout] --> src/event/events.rs:17:7 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct EventConfig { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 16 | /// The key that is used to exit the application. [INFO] [stdout] 17 | pub exit_key: Key, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `EventConfig` 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 `try_next` is never used [INFO] [stdout] --> src/event/events.rs:148:10 [INFO] [stdout] | [INFO] [stdout] 52 | impl Events { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 148 | pub fn try_next(&self) -> Result, TryRecvError> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `FocusState` is never used [INFO] [stdout] --> src/focus_manager.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum FocusState { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/focus_manager.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 14 | pub enum ComponentId { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 20 | Artist(ArtistBlock), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 21 | TrackTable, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 22 | EpisodeTable, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 23 | AlbumList, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 24 | AlbumTracks, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 25 | RecentlyPlayed, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 26 | Artists, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 27 | Podcasts, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 28 | Home, [INFO] [stdout] | ^^^^ [INFO] [stdout] 29 | SelectDevice, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 30 | PlayBar, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 31 | BasicView, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 32 | LogStream, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 33 | Analysis, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 34 | Dialog, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 35 | Empty, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ComponentId` 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 associated items are never used [INFO] [stdout] --> src/focus_manager.rs:68:12 [INFO] [stdout] | [INFO] [stdout] 54 | impl FocusManager { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn set_hover(&mut self, component: ComponentId) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 78 | pub fn clear_hover(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | pub fn get_focus_state(&self, component: &ComponentId) -> FocusState { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 100 | pub fn is_focused(&self, component: &ComponentId) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | pub fn is_hovered(&self, component: &ComponentId) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn get_focused(&self) -> Option<&ComponentId> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | pub fn get_hovered(&self) -> Option<&ComponentId> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 121 | pub fn navigate_to(&mut self, component: ComponentId) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 132 | pub fn from_active_block(block: ActiveBlock) -> ComponentId { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 159 | pub fn to_active_block(&self, component: &ComponentId) -> ActiveBlock { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/network.rs:46:11 [INFO] [stdout] | [INFO] [stdout] 46 | GetShow(String), [INFO] [stdout] | ------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `IoEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 46 - GetShow(String), [INFO] [stdout] 46 + GetShow(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/network.rs:49:20 [INFO] [stdout] | [INFO] [stdout] 49 | GetSearchResults(String), [INFO] [stdout] | ---------------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `IoEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 49 - GetSearchResults(String), [INFO] [stdout] 49 + GetSearchResults(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/network.rs:63:20 [INFO] [stdout] | [INFO] [stdout] 63 | GetAudioAnalysis(String), [INFO] [stdout] | ---------------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `IoEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 63 - GetAudioAnalysis(String), [INFO] [stdout] 63 + GetAudioAnalysis(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `GetArtistAlbums`, `GetEpisodes`, `GetRecommendations`, `VolumeUp`, and `VolumeDown` are never constructed [INFO] [stdout] --> src/network.rs:45:3 [INFO] [stdout] | [INFO] [stdout] 36 | pub enum IoEvent { [INFO] [stdout] | ------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 45 | GetArtistAlbums(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 46 | GetShow(String), [INFO] [stdout] 47 | GetEpisodes(String), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 48 | GetRecommendations(String, String, String, String, String), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 57 | VolumeUp, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 58 | VolumeDown, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IoEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `PlayingItem` is never used [INFO] [stdout] --> src/network.rs:81:10 [INFO] [stdout] | [INFO] [stdout] 81 | pub enum PlayingItem { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_styled_block` is never used [INFO] [stdout] --> src/ui/mod.rs:76:4 [INFO] [stdout] | [INFO] [stdout] 76 | fn create_styled_block<'a>(title: &'a str, highlight_color: Color) -> Block<'a> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_album_art` is never used [INFO] [stdout] --> src/ui/mod.rs:2359:4 [INFO] [stdout] | [INFO] [stdout] 2359 | fn draw_album_art(f: &mut Frame, app: &App, layout_chunk: Rect) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `display_track_progress` is never used [INFO] [stdout] --> src/ui/util.rs:66:8 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn display_track_progress(progress: u128, track_duration: u32) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/main.rs:501:48 [INFO] [stdout] | [INFO] [stdout] 501 | let current_route = app.get_current_route().clone(); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the type `Route` does not implement `Clone`, so calling `clone` on `&Route` copies the reference, which does not do anything and can be removed [INFO] [stdout] = note: `#[warn(noop_method_call)]` on by default [INFO] [stdout] help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] 501 - let current_route = app.get_current_route().clone(); [INFO] [stdout] 501 + let current_route = app.get_current_route(); [INFO] [stdout] | [INFO] [stdout] help: if you meant to clone `Route`, implement `Clone` for it [INFO] [stdout] --> src/app.rs:168:1 [INFO] [stdout] | [INFO] [stdout] 168 + #[derive(Clone)] [INFO] [stdout] 169 | pub struct Route { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:296:7 [INFO] [stdout] | [INFO] [stdout] 296 | let mut clap_app = Command::new(env!("CARGO_PKG_NAME")) [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `config_paths` [INFO] [stdout] --> src/main.rs:379:7 [INFO] [stdout] | [INFO] [stdout] 379 | let config_paths = client_config.get_or_build_paths()?; [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_config_paths` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Error` is never constructed [INFO] [stdout] --> src/app.rs:129:3 [INFO] [stdout] | [INFO] [stdout] 122 | pub enum ActiveBlock { [INFO] [stdout] | ----------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 129 | Error, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ActiveBlock` has derived impls for the traits `Debug` and `Clone`, 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: variants `Error`, `PodcastEpisodes`, and `Recommendations` are never constructed [INFO] [stdout] --> src/app.rs:153:3 [INFO] [stdout] | [INFO] [stdout] 147 | pub enum RouteId { [INFO] [stdout] | ------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 153 | Error, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 161 | PodcastEpisodes, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 162 | Recommendations, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RouteId` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `RecommendedTracks` is never constructed [INFO] [stdout] --> src/app.rs:182:3 [INFO] [stdout] | [INFO] [stdout] 177 | pub enum TrackTableContext { [INFO] [stdout] | ----------------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 182 | RecommendedTracks, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TrackTableContext` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Simplified` is never constructed [INFO] [stdout] --> src/app.rs:188:3 [INFO] [stdout] | [INFO] [stdout] 187 | pub enum AlbumTableContext { [INFO] [stdout] | ----------------- variant in this enum [INFO] [stdout] 188 | Simplified, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AlbumTableContext` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Simplified` is never constructed [INFO] [stdout] --> src/app.rs:194:3 [INFO] [stdout] | [INFO] [stdout] 193 | pub enum EpisodeTableContext { [INFO] [stdout] | ------------------- variant in this enum [INFO] [stdout] 194 | Simplified, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `EpisodeTableContext` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `selected_index` is never read [INFO] [stdout] --> src/app.rs:246:7 [INFO] [stdout] | [INFO] [stdout] 244 | pub struct SelectedFullAlbum { [INFO] [stdout] | ----------------- field in this struct [INFO] [stdout] 245 | pub album: FullAlbum, [INFO] [stdout] 246 | pub selected_index: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SelectedFullAlbum` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `small_search_limit` is never read [INFO] [stdout] --> src/app.rs:314:7 [INFO] [stdout] | [INFO] [stdout] 268 | pub struct App { [INFO] [stdout] | --- field in this struct [INFO] [stdout] ... [INFO] [stdout] 314 | pub small_search_limit: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/app.rs:1308:10 [INFO] [stdout] | [INFO] [stdout] 439 | impl App { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 1308 | pub fn focus_component(&mut self, component: ComponentId) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1313 | pub fn hover_component(&mut self, component: ComponentId) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1318 | pub fn navigate_to_component(&mut self, component: ComponentId) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1333 | pub fn clear_hover(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1343 | pub fn get_component_focus_state(&self, component: &ComponentId) -> FocusState { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1348 | pub fn is_component_focused(&self, component: &ComponentId) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1353 | pub fn is_component_hovered(&self, component: &ComponentId) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1358 | pub fn get_focused_component(&self) -> Option<&ComponentId> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1363 | pub fn get_hovered_component(&self) -> Option<&ComponentId> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_pixelated_art` is never used [INFO] [stdout] --> src/album_art.rs:227:8 [INFO] [stdout] | [INFO] [stdout] 227 | pub fn render_pixelated_art(art: &PixelatedAlbumArt) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `exit_key` is never read [INFO] [stdout] --> src/event/events.rs:17:7 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct EventConfig { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 16 | /// The key that is used to exit the application. [INFO] [stdout] 17 | pub exit_key: Key, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `EventConfig` 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 `try_next` is never used [INFO] [stdout] --> src/event/events.rs:148:10 [INFO] [stdout] | [INFO] [stdout] 52 | impl Events { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 148 | pub fn try_next(&self) -> Result, TryRecvError> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/focus_manager.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 14 | pub enum ComponentId { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 20 | Artist(ArtistBlock), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 21 | TrackTable, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 22 | EpisodeTable, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 23 | AlbumList, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 24 | AlbumTracks, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 25 | RecentlyPlayed, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 26 | Artists, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 27 | Podcasts, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 28 | Home, [INFO] [stdout] | ^^^^ [INFO] [stdout] 29 | SelectDevice, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 30 | PlayBar, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 31 | BasicView, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 32 | LogStream, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 33 | Analysis, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 34 | Dialog, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 35 | Empty, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ComponentId` 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 `get_focused`, `get_hovered`, `navigate_to`, `from_active_block`, and `to_active_block` are never used [INFO] [stdout] --> src/focus_manager.rs:110:12 [INFO] [stdout] | [INFO] [stdout] 54 | impl FocusManager { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn get_focused(&self) -> Option<&ComponentId> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | pub fn get_hovered(&self) -> Option<&ComponentId> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 121 | pub fn navigate_to(&mut self, component: ComponentId) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 132 | pub fn from_active_block(block: ActiveBlock) -> ComponentId { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 159 | pub fn to_active_block(&self, component: &ComponentId) -> ActiveBlock { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/network.rs:46:11 [INFO] [stdout] | [INFO] [stdout] 46 | GetShow(String), [INFO] [stdout] | ------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `IoEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 46 - GetShow(String), [INFO] [stdout] 46 + GetShow(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/network.rs:49:20 [INFO] [stdout] | [INFO] [stdout] 49 | GetSearchResults(String), [INFO] [stdout] | ---------------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `IoEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 49 - GetSearchResults(String), [INFO] [stdout] 49 + GetSearchResults(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/network.rs:63:20 [INFO] [stdout] | [INFO] [stdout] 63 | GetAudioAnalysis(String), [INFO] [stdout] | ---------------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `IoEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 63 - GetAudioAnalysis(String), [INFO] [stdout] 63 + GetAudioAnalysis(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `GetArtistAlbums`, `GetEpisodes`, `GetRecommendations`, `VolumeUp`, and `VolumeDown` are never constructed [INFO] [stdout] --> src/network.rs:45:3 [INFO] [stdout] | [INFO] [stdout] 36 | pub enum IoEvent { [INFO] [stdout] | ------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 45 | GetArtistAlbums(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 46 | GetShow(String), [INFO] [stdout] 47 | GetEpisodes(String), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 48 | GetRecommendations(String, String, String, String, String), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 57 | VolumeUp, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 58 | VolumeDown, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IoEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `PlayingItem` is never used [INFO] [stdout] --> src/network.rs:81:10 [INFO] [stdout] | [INFO] [stdout] 81 | pub enum PlayingItem { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_styled_block` is never used [INFO] [stdout] --> src/ui/mod.rs:76:4 [INFO] [stdout] | [INFO] [stdout] 76 | fn create_styled_block<'a>(title: &'a str, highlight_color: Color) -> Block<'a> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `draw_album_art` is never used [INFO] [stdout] --> src/ui/mod.rs:2359:4 [INFO] [stdout] | [INFO] [stdout] 2359 | fn draw_album_art(f: &mut Frame, app: &App, layout_chunk: Rect) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/main.rs:501:48 [INFO] [stdout] | [INFO] [stdout] 501 | let current_route = app.get_current_route().clone(); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the type `Route` does not implement `Clone`, so calling `clone` on `&Route` copies the reference, which does not do anything and can be removed [INFO] [stdout] = note: `#[warn(noop_method_call)]` on by default [INFO] [stdout] help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] 501 - let current_route = app.get_current_route().clone(); [INFO] [stdout] 501 + let current_route = app.get_current_route(); [INFO] [stdout] | [INFO] [stdout] help: if you meant to clone `Route`, implement `Clone` for it [INFO] [stdout] --> src/app.rs:168:1 [INFO] [stdout] | [INFO] [stdout] 168 + #[derive(Clone)] [INFO] [stdout] 169 | pub struct Route { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 03s [INFO] running `Command { std: "docker" "inspect" "94214f11359d29f1e419b18365579a45cb44a8e8be4d7a40045d61b877b36ca0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "94214f11359d29f1e419b18365579a45cb44a8e8be4d7a40045d61b877b36ca0", kill_on_drop: false }` [INFO] [stdout] 94214f11359d29f1e419b18365579a45cb44a8e8be4d7a40045d61b877b36ca0