[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] testing jaunkst/spotui against try#9f93af291970322f4f1c6315ccde4d7078201159 for pr-146098-6 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjaunkst%2Fspotui" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-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-3-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/jaunkst/spotui on toolchain 9f93af291970322f4f1c6315ccde4d7078201159 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9f93af291970322f4f1c6315ccde4d7078201159" "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" "+9f93af291970322f4f1c6315ccde4d7078201159" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+9f93af291970322f4f1c6315ccde4d7078201159" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 6815adc9611556eb10e7e2a9f9cd3a28fbe3d464a372981118aeeb627c2aff5e [INFO] running `Command { std: "docker" "start" "-a" "6815adc9611556eb10e7e2a9f9cd3a28fbe3d464a372981118aeeb627c2aff5e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "6815adc9611556eb10e7e2a9f9cd3a28fbe3d464a372981118aeeb627c2aff5e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6815adc9611556eb10e7e2a9f9cd3a28fbe3d464a372981118aeeb627c2aff5e", kill_on_drop: false }` [INFO] [stdout] 6815adc9611556eb10e7e2a9f9cd3a28fbe3d464a372981118aeeb627c2aff5e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+9f93af291970322f4f1c6315ccde4d7078201159" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 962d9052a913c8dd5e32c4d7d4a8ee5ece97b9b84e69b1ea038d88e9aae84f23 [INFO] running `Command { std: "docker" "start" "-a" "962d9052a913c8dd5e32c4d7d4a8ee5ece97b9b84e69b1ea038d88e9aae84f23", kill_on_drop: false }` [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling log v0.4.27 [INFO] [stderr] Compiling memchr v2.7.5 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling itoa v1.0.15 [INFO] [stderr] Compiling futures-core v0.3.31 [INFO] [stderr] Compiling stable_deref_trait v1.2.0 [INFO] [stderr] Compiling version_check v0.9.5 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling futures-sink v0.3.31 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Compiling bitflags v2.9.1 [INFO] [stderr] Compiling equivalent v1.0.2 [INFO] [stderr] Compiling syn v2.0.104 [INFO] [stderr] Compiling vcpkg v0.2.15 [INFO] [stderr] Compiling slab v0.4.10 [INFO] [stderr] Compiling pkg-config v0.3.32 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling allocator-api2 v0.2.21 [INFO] [stderr] Compiling foldhash v0.1.5 [INFO] [stderr] Compiling parking_lot_core v0.9.11 [INFO] [stderr] Compiling futures-channel v0.3.31 [INFO] [stderr] Compiling cc v1.2.30 [INFO] [stderr] Compiling futures-io v0.3.31 [INFO] [stderr] Compiling futures-task v0.3.31 [INFO] [stderr] Compiling mio v1.0.4 [INFO] [stderr] Compiling writeable v0.6.1 [INFO] [stderr] Compiling litemap v0.8.0 [INFO] [stderr] Compiling parking_lot v0.12.4 [INFO] [stderr] Compiling http v1.3.1 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling icu_properties_data v2.0.1 [INFO] [stderr] Compiling hashbrown v0.15.4 [INFO] [stderr] Compiling simd-adler32 v0.3.7 [INFO] [stderr] Compiling icu_normalizer_data v2.0.0 [INFO] [stderr] Compiling percent-encoding v2.3.1 [INFO] [stderr] Compiling rayon-core v1.12.1 [INFO] [stderr] Compiling ryu v1.0.20 [INFO] [stderr] Compiling tracing-core v0.1.34 [INFO] [stderr] Compiling openssl v0.10.73 [INFO] [stderr] Compiling typenum v1.18.0 [INFO] [stderr] Compiling httparse v1.10.1 [INFO] [stderr] Compiling foreign-types-shared v0.1.1 [INFO] [stderr] Compiling adler2 v2.0.1 [INFO] [stderr] Compiling foreign-types v0.3.2 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling tower-service v0.3.3 [INFO] [stderr] Compiling rustversion v1.0.21 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Compiling paste v1.0.15 [INFO] [stderr] Compiling atomic-waker v1.1.2 [INFO] [stderr] Compiling anyhow v1.0.98 [INFO] [stderr] Compiling crc32fast v1.5.0 [INFO] [stderr] Compiling try-lock v0.2.5 [INFO] [stderr] Compiling indexmap v2.10.0 [INFO] [stderr] Compiling crossbeam-deque v0.8.6 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling want v0.3.1 [INFO] [stderr] Compiling form_urlencoded v1.2.1 [INFO] [stderr] Compiling openssl-probe v0.1.6 [INFO] [stderr] Compiling serde_json v1.0.141 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling utf8_iter v1.0.4 [INFO] [stderr] Compiling arrayvec v0.7.6 [INFO] [stderr] Compiling built v0.7.7 [INFO] [stderr] Compiling tracing v0.1.41 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling num-bigint v0.4.6 [INFO] [stderr] Compiling minimal-lexical v0.2.1 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling rayon v1.10.0 [INFO] [stderr] Compiling socket2 v0.6.0 [INFO] [stderr] Compiling rav1e v0.7.1 [INFO] [stderr] Compiling tower-layer v0.3.3 [INFO] [stderr] Compiling ident_case v1.0.1 [INFO] [stderr] Compiling ipnet v2.11.0 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling linux-raw-sys v0.4.15 [INFO] [stderr] Compiling thiserror v2.0.12 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling base64 v0.22.1 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling flate2 v1.1.2 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling itertools v0.12.1 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Compiling openssl-sys v0.9.109 [INFO] [stderr] Compiling getrandom v0.2.16 [INFO] [stderr] Compiling simd_helpers v0.1.0 [INFO] [stderr] Compiling quick-error v2.0.1 [INFO] [stderr] Compiling weezl v0.1.10 [INFO] [stderr] Compiling imgref v1.11.0 [INFO] [stderr] Compiling bitstream-io v2.6.0 [INFO] [stderr] Compiling zeroize v1.8.1 [INFO] [stderr] Compiling noop_proc_macro v0.3.0 [INFO] [stderr] Compiling iri-string v0.7.8 [INFO] [stderr] Compiling new_debug_unreachable v1.0.6 [INFO] [stderr] Compiling loop9 v0.1.5 [INFO] [stderr] Compiling rustls-pki-types v1.12.0 [INFO] [stderr] Compiling crypto-common v0.1.6 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling avif-serialize v0.8.5 [INFO] [stderr] Compiling fdeflate v0.3.7 [INFO] [stderr] Compiling zune-inflate v0.2.54 [INFO] [stderr] Compiling encoding_rs v0.8.35 [INFO] [stderr] Compiling half v2.6.0 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Compiling num-rational v0.4.2 [INFO] [stderr] Compiling mime v0.3.17 [INFO] [stderr] Compiling object v0.36.7 [INFO] [stderr] Compiling byteorder-lite v0.1.0 [INFO] [stderr] Compiling color_quant v1.1.0 [INFO] [stderr] Compiling maybe-rayon v0.1.1 [INFO] [stderr] Compiling bytemuck v1.23.1 [INFO] [stderr] Compiling iana-time-zone v0.1.63 [INFO] [stderr] Compiling instability v0.3.9 [INFO] [stderr] Compiling bit_field v0.10.2 [INFO] [stderr] Compiling lebe v0.5.2 [INFO] [stderr] Compiling rgb v0.8.52 [INFO] [stderr] Compiling zune-core v0.4.12 [INFO] [stderr] Compiling jpeg-decoder v0.3.2 [INFO] [stderr] Compiling image-webp v0.2.3 [INFO] [stderr] Compiling exr v1.73.0 [INFO] [stderr] Compiling qoi v0.4.1 [INFO] [stderr] Compiling zune-jpeg v0.4.19 [INFO] [stderr] Compiling gif v0.13.3 [INFO] [stderr] Compiling png v0.17.16 [INFO] [stderr] Compiling signal-hook-mio v0.2.4 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling castaway v0.2.4 [INFO] [stderr] Compiling itertools v0.13.0 [INFO] [stderr] Compiling heck v0.4.1 [INFO] [stderr] Compiling x11rb-protocol v0.13.1 [INFO] [stderr] Compiling option-ext v0.2.0 [INFO] [stderr] Compiling cpufeatures v0.2.17 [INFO] [stderr] Compiling unicode-segmentation v1.12.0 [INFO] [stderr] Compiling gimli v0.31.1 [INFO] [stderr] Compiling tiff v0.9.1 [INFO] [stderr] Compiling unicode-width v0.1.14 [INFO] [stderr] Compiling os_str_bytes v6.6.1 [INFO] [stderr] Compiling indoc v2.0.6 [INFO] [stderr] Compiling static_assertions v1.1.0 [INFO] [stderr] Compiling clap_lex v0.2.4 [INFO] [stderr] Compiling compact_str v0.8.1 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling dirs-sys v0.4.1 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling lru v0.12.5 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Compiling atty v0.2.14 [INFO] [stderr] Compiling unsafe-libyaml v0.2.11 [INFO] [stderr] Compiling rustc-demangle v0.1.25 [INFO] [stderr] Compiling unicode-truncate v1.1.0 [INFO] [stderr] Compiling rspotify-macros v0.15.0 [INFO] [stderr] Compiling cassowary v0.3.0 [INFO] [stderr] Compiling unicode-width v0.2.0 [INFO] [stderr] Compiling textwrap v0.16.2 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling dirs v5.0.1 [INFO] [stderr] Compiling clap_derive v3.2.25 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.0 [INFO] [stderr] Compiling zerovec-derive v0.11.1 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling equator-macro v0.4.2 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling equator v0.4.2 [INFO] [stderr] Compiling tokio v1.46.1 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling aligned-vec v0.6.4 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling profiling-procmacros v1.0.17 [INFO] [stderr] Compiling v_frame v0.3.9 [INFO] [stderr] Compiling arg_enum_proc_macro v0.3.4 [INFO] [stderr] Compiling profiling v1.0.17 [INFO] [stderr] Compiling av1-grain v0.2.4 [INFO] [stderr] Compiling thiserror-impl v2.0.12 [INFO] [stderr] Compiling num-derive v0.4.2 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling yoke v0.8.0 [INFO] [stderr] Compiling async-trait v0.1.88 [INFO] [stderr] Compiling zerovec v0.11.2 [INFO] [stderr] Compiling zerotrie v0.2.2 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Compiling enum_dispatch v0.3.13 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Compiling maybe-async v0.2.10 [INFO] [stderr] Compiling async-stream v0.3.6 [INFO] [stderr] Compiling addr2line v0.24.2 [INFO] [stderr] Compiling crossterm v0.28.1 [INFO] [stderr] Compiling clap v3.2.25 [INFO] [stderr] Compiling x11rb v0.13.1 [INFO] [stderr] Compiling tinystr v0.8.1 [INFO] [stderr] Compiling potential_utf v0.1.2 [INFO] [stderr] Compiling icu_collections v2.0.0 [INFO] [stderr] Compiling icu_locale_core v2.0.0 [INFO] [stderr] Compiling backtrace v0.3.75 [INFO] [stderr] Compiling strum v0.27.2 [INFO] [stderr] Compiling strum v0.26.3 [INFO] [stderr] Compiling ratatui v0.29.0 [INFO] [stderr] Compiling icu_provider v2.0.0 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling icu_properties v2.0.1 [INFO] [stderr] Compiling icu_normalizer v2.0.0 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling chrono v0.4.41 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.0.3 [INFO] [stderr] Compiling url v2.5.4 [INFO] [stderr] Compiling webbrowser v1.0.5 [INFO] [stderr] Compiling rspotify-model v0.15.0 [INFO] [stderr] Compiling tokio-util v0.7.15 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [INFO] [stderr] Compiling tower v0.5.2 [INFO] [stderr] Compiling tower-http v0.6.6 [INFO] [stderr] Compiling h2 v0.4.11 [INFO] [stderr] Compiling ravif v0.11.20 [INFO] [stderr] Compiling image v0.25.6 [INFO] [stderr] Compiling hyper v1.6.0 [INFO] [stderr] Compiling hyper-util v0.1.16 [INFO] [stderr] Compiling arboard v3.6.0 [INFO] [stderr] Compiling hyper-tls v0.6.0 [INFO] [stderr] Compiling reqwest v0.12.22 [INFO] [stderr] Compiling rspotify-http v0.15.0 [INFO] [stderr] Compiling rspotify v0.15.0 [INFO] [stderr] Compiling 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: 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: 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: 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: `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: 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: `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: `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] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 57s [INFO] running `Command { std: "docker" "inspect" "962d9052a913c8dd5e32c4d7d4a8ee5ece97b9b84e69b1ea038d88e9aae84f23", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "962d9052a913c8dd5e32c4d7d4a8ee5ece97b9b84e69b1ea038d88e9aae84f23", kill_on_drop: false }` [INFO] [stdout] 962d9052a913c8dd5e32c4d7d4a8ee5ece97b9b84e69b1ea038d88e9aae84f23 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+9f93af291970322f4f1c6315ccde4d7078201159" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 14b008b09804bfe3a676eb802d2a7cc61080fb16e10b31fa3331d5a538b4e0af [INFO] running `Command { std: "docker" "start" "-a" "14b008b09804bfe3a676eb802d2a7cc61080fb16e10b31fa3331d5a538b4e0af", kill_on_drop: false }` [INFO] [stderr] Compiling 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: 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: 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: 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: `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: 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: `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: `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: 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 `test` profile [unoptimized + debuginfo] target(s) in 5.30s [INFO] running `Command { std: "docker" "inspect" "14b008b09804bfe3a676eb802d2a7cc61080fb16e10b31fa3331d5a538b4e0af", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "14b008b09804bfe3a676eb802d2a7cc61080fb16e10b31fa3331d5a538b4e0af", kill_on_drop: false }` [INFO] [stdout] 14b008b09804bfe3a676eb802d2a7cc61080fb16e10b31fa3331d5a538b4e0af [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+9f93af291970322f4f1c6315ccde4d7078201159" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 41dfddb1c2a924c85b4664b1dc21f23d86b3760dbac34fab672207b97dcb18a7 [INFO] running `Command { std: "docker" "start" "-a" "41dfddb1c2a924c85b4664b1dc21f23d86b3760dbac34fab672207b97dcb18a7", kill_on_drop: false }` [INFO] [stderr] warning: unused imports: `PlaylistTracksRef` and `Show` [INFO] [stderr] --> src/app.rs:16:16 [INFO] [stderr] | [INFO] [stderr] 16 | playlist::{PlaylistTracksRef, SimplifiedPlaylist}, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] 17 | show::{FullShow, Show, SimplifiedEpisode, SimplifiedShow}, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::str::FromStr` [INFO] [stderr] --> src/app.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | use std::str::FromStr; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `RgbaImage` [INFO] [stderr] --> src/album_art.rs:2:51 [INFO] [stderr] | [INFO] [stderr] 2 | use image::{DynamicImage, GenericImageView, Rgba, RgbaImage}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `common_key_events` [INFO] [stderr] --> src/handlers/playbar.rs:3:3 [INFO] [stderr] | [INFO] [stderr] 3 | common_key_events, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `IoEvent` and `PlayingItem` [INFO] [stderr] --> src/handlers/playbar.rs:6:22 [INFO] [stderr] | [INFO] [stderr] 6 | use crate::network::{IoEvent, PlayingItem}; [INFO] [stderr] | ^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `PlayableItem` and `context::CurrentPlaybackContext` [INFO] [stderr] --> src/handlers/playbar.rs:7:23 [INFO] [stderr] | [INFO] [stderr] 7 | use rspotify::model::{context::CurrentPlaybackContext, PlayableItem}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ActiveBlock` [INFO] [stderr] --> src/handlers/select_device.rs:2:16 [INFO] [stderr] | [INFO] [stderr] 2 | super::app::{ActiveBlock, App}, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::network::PlayingItem` [INFO] [stderr] --> src/handlers/mod.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | use crate::network::PlayingItem; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `ActiveBlock`, `AlbumTableContext`, `EpisodeTableContext`, `RouteId`, `SelectedAlbum`, `SelectedFullShow`, and `SelectedShow` [INFO] [stderr] --> src/network.rs:2:3 [INFO] [stderr] | [INFO] [stderr] 2 | ActiveBlock, AlbumTableContext, App, Artist, ArtistBlock, EpisodeTableContext, RouteId, [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^ [INFO] [stderr] 3 | ScrollableResultPages, SelectedAlbum, SelectedFullAlbum, SelectedFullShow, SelectedShow, [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `AdditionalType`, `Country`, `CurrentPlaybackContext`, `FullAlbum`, `SavedTrack`, `SearchType`, `artist::FullArtist`, and `playlist::SimplifiedPlaylist` [INFO] [stderr] --> src/network.rs:12:30 [INFO] [stderr] | [INFO] [stderr] 12 | album::{SimplifiedAlbum, FullAlbum}, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 13 | artist::FullArtist, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 14 | page::Page, [INFO] [stderr] 15 | playlist::SimplifiedPlaylist, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 16 | show::SimplifiedShow, [INFO] [stderr] 17 | track::{FullTrack, SavedTrack}, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 20 | CurrentPlaybackContext, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 21 | enums::{Country, RepeatState as SpotifyRepeatState, SearchType, AdditionalType}, [INFO] [stderr] | ^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Duration`, `Instant`, and `SystemTime` [INFO] [stderr] --> src/network.rs:27:10 [INFO] [stderr] | [INFO] [stderr] 27 | time::{Duration, Instant, SystemTime}, [INFO] [stderr] | ^^^^^^^^ ^^^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `backend::Backend` [INFO] [stderr] --> src/ui/audio_analysis.rs:4:3 [INFO] [stderr] | [INFO] [stderr] 4 | backend::Backend, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `PlayingItem` and `RepeatState` [INFO] [stderr] --> src/ui/mod.rs:12:22 [INFO] [stderr] | [INFO] [stderr] 12 | use crate::network::{PlayingItem, RepeatState}; [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `symbols::border` [INFO] [stderr] --> src/ui/mod.rs:18:3 [INFO] [stderr] | [INFO] [stderr] 18 | symbols::border, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Duration` [INFO] [stderr] --> src/main.rs:45:10 [INFO] [stderr] | [INFO] [stderr] 45 | time::{Duration, Instant, SystemTime}, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated type alias `std::panic::PanicInfo`: use `PanicHookInfo` instead [INFO] [stderr] --> src/main.rs:42:17 [INFO] [stderr] | [INFO] [stderr] 42 | panic::{self, PanicInfo}, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated type alias `std::panic::PanicInfo`: use `PanicHookInfo` instead [INFO] [stderr] --> src/main.rs:262:22 [INFO] [stderr] | [INFO] [stderr] 262 | fn panic_hook(info: &PanicInfo<'_>) { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/network.rs:338:13 [INFO] [stderr] | [INFO] [stderr] 338 | let mut app = self.app.lock().await; [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated method `rspotify::clients::BaseClient::artist_related_artists`: Spotify has deprecated this endpoint, check documentation for more information [INFO] [stderr] --> src/network.rs:1419:50 [INFO] [stderr] | [INFO] [stderr] 1419 | let related_artists = match self.spotify.artist_related_artists(artist_id).await { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:91:7 [INFO] [stderr] | [INFO] [stderr] 91 | let mut spotify = AuthCodeSpotify::new(creds, oauth); [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] 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] [stderr] --> src/network.rs:103:11 [INFO] [stderr] | [INFO] [stderr] 103 | language: episode.language, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] 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] [stderr] --> src/network.rs:103:21 [INFO] [stderr] | [INFO] [stderr] 103 | language: episode.language, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Backend` [INFO] [stderr] --> src/ui/mod.rs:15:13 [INFO] [stderr] | [INFO] [stderr] 15 | backend::{Backend, CrosstermBackend}, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `seed_artists` [INFO] [stderr] --> src/app.rs:582:5 [INFO] [stderr] | [INFO] [stderr] 582 | seed_artists: Option>, [INFO] [stderr] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_seed_artists` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `seed_tracks` [INFO] [stderr] --> src/app.rs:583:5 [INFO] [stderr] | [INFO] [stderr] 583 | seed_tracks: Option>, [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_seed_tracks` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `first_track` [INFO] [stderr] --> src/app.rs:584:5 [INFO] [stderr] | [INFO] [stderr] 584 | first_track: Option, [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_first_track` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `user_country` [INFO] [stderr] --> src/app.rs:586:9 [INFO] [stderr] | [INFO] [stderr] 586 | let user_country = self.get_user_country(); [INFO] [stderr] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_country` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `id` [INFO] [stderr] --> src/app.rs:595:54 [INFO] [stderr] | [INFO] [stderr] 595 | pub fn get_recommendations_for_track_id(&mut self, id: String) { [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `user_country` [INFO] [stderr] --> src/app.rs:596:9 [INFO] [stderr] | [INFO] [stderr] 596 | let user_country = self.get_user_country(); [INFO] [stderr] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_country` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/app.rs:818:9 [INFO] [stderr] | [INFO] [stderr] 818 | let mut current_route = self.get_current_route_mut(); [INFO] [stderr] | ----^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `saved_track_page` [INFO] [stderr] --> src/app.rs:889:47 [INFO] [stderr] | [INFO] [stderr] 889 | pub fn set_saved_tracks_to_table(&mut self, saved_track_page: &Page) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_saved_track_page` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `saved_artists_page` [INFO] [stderr] --> src/app.rs:900:48 [INFO] [stderr] | [INFO] [stderr] 900 | pub fn set_saved_artists_to_table(&mut self, saved_artists_page: &CursorBasedPage) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_saved_artists_page` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `last_artist` [INFO] [stderr] --> src/app.rs:923:23 [INFO] [stderr] | [INFO] [stderr] 923 | if let Some(last_artist) = saved_artists.items.last() { [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_last_artist` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `offset` [INFO] [stderr] --> src/app.rs:955:15 [INFO] [stderr] | [INFO] [stderr] 955 | let offset = Some(saved_tracks.offset + saved_tracks.limit); [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `offset` [INFO] [stderr] --> src/app.rs:988:15 [INFO] [stderr] | [INFO] [stderr] 988 | let offset = Some(saved_albums.offset + saved_albums.limit); [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `album_id` [INFO] [stderr] --> src/app.rs:1007:25 [INFO] [stderr] | [INFO] [stderr] 1007 | if let Some(album_id) = selected_album.id.as_ref().map(|id| id.to_string()) { [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_album_id` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `album_id` [INFO] [stderr] --> src/app.rs:1016:17 [INFO] [stderr] | [INFO] [stderr] 1016 | let album_id = selected_album.album.id.to_string(); [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_album_id` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `album_id` [INFO] [stderr] --> src/app.rs:1024:25 [INFO] [stderr] | [INFO] [stderr] 1024 | if let Some(album_id) = selected_album.id.as_ref().map(|id| id.to_string()) { [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_album_id` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `album_id` [INFO] [stderr] --> src/app.rs:1040:25 [INFO] [stderr] | [INFO] [stderr] 1040 | if let Some(album_id) = selected_album.id.as_ref().map(|id| id.to_string()) { [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_album_id` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `album_id` [INFO] [stderr] --> src/app.rs:1049:25 [INFO] [stderr] | [INFO] [stderr] 1049 | if let Some(album_id) = selected_album.id.as_ref().map(|id| id.to_string()) { [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_album_id` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `offset` [INFO] [stderr] --> src/app.rs:1069:15 [INFO] [stderr] | [INFO] [stderr] 1069 | let offset = Some(saved_shows.offset + saved_shows.limit); [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `show_id` [INFO] [stderr] --> src/app.rs:1082:44 [INFO] [stderr] | [INFO] [stderr] 1082 | pub fn get_episode_table_next(&mut self, show_id: String) { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_id` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `offset` [INFO] [stderr] --> src/app.rs:1092:15 [INFO] [stderr] | [INFO] [stderr] 1092 | let offset = Some(show_episodes.offset + show_episodes.limit); [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `artist_id` [INFO] [stderr] --> src/app.rs:1111:17 [INFO] [stderr] | [INFO] [stderr] 1111 | let artist_id = selected_artist.id.to_string(); [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_artist_id` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `artist_id` [INFO] [stderr] --> src/app.rs:1119:17 [INFO] [stderr] | [INFO] [stderr] 1119 | let artist_id = selected_artist.id.to_string(); [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_artist_id` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `artist_id` [INFO] [stderr] --> src/app.rs:1127:15 [INFO] [stderr] | [INFO] [stderr] 1127 | let artist_id = selected_artis.id.to_string(); [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_artist_id` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `artist_id` [INFO] [stderr] --> src/app.rs:1141:17 [INFO] [stderr] | [INFO] [stderr] 1141 | let artist_id = selected_artist.id.to_string(); [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_artist_id` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `artist_id` [INFO] [stderr] --> src/app.rs:1149:15 [INFO] [stderr] | [INFO] [stderr] 1149 | let artist_id = selected_artis.id.to_string(); [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_artist_id` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `selected_id` [INFO] [stderr] --> src/app.rs:1165:11 [INFO] [stderr] | [INFO] [stderr] 1165 | let selected_id = selected_playlist.id.to_string(); [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_selected_id` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `selected_public` [INFO] [stderr] --> src/app.rs:1166:11 [INFO] [stderr] | [INFO] [stderr] 1166 | let selected_public = selected_playlist.public; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_selected_public` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `selected_owner_id` [INFO] [stderr] --> src/app.rs:1167:11 [INFO] [stderr] | [INFO] [stderr] 1167 | let selected_owner_id = selected_playlist.owner.id.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_selected_owner_id` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `selected_id` [INFO] [stderr] --> src/app.rs:1181:11 [INFO] [stderr] | [INFO] [stderr] 1181 | let selected_id = selected_playlist.id.to_string(); [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_selected_id` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `user_id` [INFO] [stderr] --> src/app.rs:1182:11 [INFO] [stderr] | [INFO] [stderr] 1182 | let user_id = user.id.clone(); [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_id` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `selected_id` [INFO] [stderr] --> src/app.rs:1194:11 [INFO] [stderr] | [INFO] [stderr] 1194 | let selected_id = selected_playlist.id.to_string(); [INFO] [stderr] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_selected_id` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `user_id` [INFO] [stderr] --> src/app.rs:1195:11 [INFO] [stderr] | [INFO] [stderr] 1195 | let user_id = user.id.clone(); [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_id` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `show_id` [INFO] [stderr] --> src/app.rs:1205:25 [INFO] [stderr] | [INFO] [stderr] 1205 | if let Some(show_id) = shows.items.get(selected_index).map(|item| item.id.clone()) { [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_id` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `show_id` [INFO] [stderr] --> src/app.rs:1214:17 [INFO] [stderr] | [INFO] [stderr] 1214 | let show_id = selected_episode.show.id; [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_id` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `show_id` [INFO] [stderr] --> src/app.rs:1220:17 [INFO] [stderr] | [INFO] [stderr] 1220 | let show_id = selected_episode.show.id; [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_id` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `show_id` [INFO] [stderr] --> src/app.rs:1234:17 [INFO] [stderr] | [INFO] [stderr] 1234 | let show_id = selected_show.id.clone(); [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_id` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `show_id` [INFO] [stderr] --> src/app.rs:1242:17 [INFO] [stderr] | [INFO] [stderr] 1242 | let show_id = shows.items[selected_index].id.to_owned(); [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_id` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `show_id` [INFO] [stderr] --> src/app.rs:1250:17 [INFO] [stderr] | [INFO] [stderr] 1250 | let show_id = selected_episode.show.id; [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_id` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `show_id` [INFO] [stderr] --> src/app.rs:1256:17 [INFO] [stderr] | [INFO] [stderr] 1256 | let show_id = selected_episode.show.id; [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_show_id` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `input_artist_name` [INFO] [stderr] --> src/app.rs:1293:51 [INFO] [stderr] | [INFO] [stderr] 1293 | pub fn get_artist(&mut self, artist_id: String, input_artist_name: String) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input_artist_name` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `user_country` [INFO] [stderr] --> src/app.rs:1294:9 [INFO] [stderr] | [INFO] [stderr] 1294 | let user_country = self.get_user_country(); [INFO] [stderr] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_country` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `episode_uris` [INFO] [stderr] --> src/handlers/episode_table.rs:69:9 [INFO] [stderr] | [INFO] [stderr] 69 | let episode_uris = episodes [INFO] [stderr] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_episode_uris` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `index` [INFO] [stderr] --> src/handlers/search_results.rs:300:11 [INFO] [stderr] | [INFO] [stderr] 300 | let index = app.search_results.selected_tracks_index; [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_index` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `track_uris` [INFO] [stderr] --> src/handlers/search_results.rs:302:11 [INFO] [stderr] | [INFO] [stderr] 302 | let track_uris = tracks.map(|tracks| { [INFO] [stderr] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_track_uris` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `num_tracks` [INFO] [stderr] --> src/handlers/track_table.rs:134:15 [INFO] [stderr] | [INFO] [stderr] 134 | let num_tracks: usize = from_value(val.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_tracks` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `num_tracks` [INFO] [stderr] --> src/handlers/track_table.rs:182:15 [INFO] [stderr] | [INFO] [stderr] 182 | let num_tracks: usize = from_value(val.clone()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_tracks` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `current_playback_context` [INFO] [stderr] --> src/handlers/mod.rs:277:15 [INFO] [stderr] | [INFO] [stderr] 277 | if let Some(current_playback_context) = &app.current_playback_context { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_playback_context` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `album_id` [INFO] [stderr] --> src/network.rs:234:41 [INFO] [stderr] | [INFO] [stderr] 234 | IoEvent::CurrentUserSavedAlbumAdd(album_id) => { [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_album_id` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `show` [INFO] [stderr] --> src/network.rs:238:32 [INFO] [stderr] | [INFO] [stderr] 238 | IoEvent::GetShowEpisodes(show) => { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_show` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `album_id` [INFO] [stderr] --> src/network.rs:248:25 [INFO] [stderr] | [INFO] [stderr] 248 | IoEvent::GetAlbum(album_id) => { [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_album_id` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `track_id` [INFO] [stderr] --> src/network.rs:252:33 [INFO] [stderr] | [INFO] [stderr] 252 | IoEvent::GetAlbumForTrack(track_id) => { [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_track_id` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `user` [INFO] [stderr] --> src/network.rs:337:10 [INFO] [stderr] | [INFO] [stderr] 337 | Ok(user) => { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_user` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `app` [INFO] [stderr] --> src/network.rs:338:13 [INFO] [stderr] | [INFO] [stderr] 338 | let mut app = self.app.lock().await; [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_app` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/network.rs:377:11 [INFO] [stderr] | [INFO] [stderr] 377 | Err(e) => { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/network.rs:1092:15 [INFO] [stderr] | [INFO] [stderr] 1092 | Err(e) => { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `offset` [INFO] [stderr] --> src/network.rs:388:62 [INFO] [stderr] | [INFO] [stderr] 388 | async fn get_playlist_tracks(&mut self, playlist_id: &str, offset: u32) { [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:296:7 [INFO] [stderr] | [INFO] [stderr] 296 | let mut clap_app = Command::new(env!("CARGO_PKG_NAME")) [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `config_paths` [INFO] [stderr] --> src/main.rs:379:7 [INFO] [stderr] | [INFO] [stderr] 379 | let config_paths = client_config.get_or_build_paths()?; [INFO] [stderr] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_config_paths` [INFO] [stderr] [INFO] [stderr] warning: variant `Error` is never constructed [INFO] [stderr] --> src/app.rs:129:3 [INFO] [stderr] | [INFO] [stderr] 122 | pub enum ActiveBlock { [INFO] [stderr] | ----------- variant in this enum [INFO] [stderr] ... [INFO] [stderr] 129 | Error, [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `ActiveBlock` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: variants `Error`, `PodcastEpisodes`, and `Recommendations` are never constructed [INFO] [stderr] --> src/app.rs:153:3 [INFO] [stderr] | [INFO] [stderr] 147 | pub enum RouteId { [INFO] [stderr] | ------- variants in this enum [INFO] [stderr] ... [INFO] [stderr] 153 | Error, [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 161 | PodcastEpisodes, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] 162 | Recommendations, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `RouteId` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variant `RecommendedTracks` is never constructed [INFO] [stderr] --> src/app.rs:182:3 [INFO] [stderr] | [INFO] [stderr] 177 | pub enum TrackTableContext { [INFO] [stderr] | ----------------- variant in this enum [INFO] [stderr] ... [INFO] [stderr] 182 | RecommendedTracks, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `TrackTableContext` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variant `Simplified` is never constructed [INFO] [stderr] --> src/app.rs:188:3 [INFO] [stderr] | [INFO] [stderr] 187 | pub enum AlbumTableContext { [INFO] [stderr] | ----------------- variant in this enum [INFO] [stderr] 188 | Simplified, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `AlbumTableContext` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variant `Simplified` is never constructed [INFO] [stderr] --> src/app.rs:194:3 [INFO] [stderr] | [INFO] [stderr] 193 | pub enum EpisodeTableContext { [INFO] [stderr] | ------------------- variant in this enum [INFO] [stderr] 194 | Simplified, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `EpisodeTableContext` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: field `selected_index` is never read [INFO] [stderr] --> src/app.rs:246:7 [INFO] [stderr] | [INFO] [stderr] 244 | pub struct SelectedFullAlbum { [INFO] [stderr] | ----------------- field in this struct [INFO] [stderr] 245 | pub album: FullAlbum, [INFO] [stderr] 246 | pub selected_index: usize, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `SelectedFullAlbum` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: field `small_search_limit` is never read [INFO] [stderr] --> src/app.rs:314:7 [INFO] [stderr] | [INFO] [stderr] 268 | pub struct App { [INFO] [stderr] | --- field in this struct [INFO] [stderr] ... [INFO] [stderr] 314 | pub small_search_limit: u32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple methods are never used [INFO] [stderr] --> src/app.rs:1308:10 [INFO] [stderr] | [INFO] [stderr] 439 | impl App { [INFO] [stderr] | -------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 1308 | pub fn focus_component(&mut self, component: ComponentId) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1313 | pub fn hover_component(&mut self, component: ComponentId) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1318 | pub fn navigate_to_component(&mut self, component: ComponentId) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1333 | pub fn clear_hover(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1343 | pub fn get_component_focus_state(&self, component: &ComponentId) -> FocusState { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1348 | pub fn is_component_focused(&self, component: &ComponentId) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1353 | pub fn is_component_hovered(&self, component: &ComponentId) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1358 | pub fn get_focused_component(&self) -> Option<&ComponentId> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1363 | pub fn get_hovered_component(&self) -> Option<&ComponentId> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `render_pixelated_art` is never used [INFO] [stderr] --> src/album_art.rs:227:8 [INFO] [stderr] | [INFO] [stderr] 227 | pub fn render_pixelated_art(art: &PixelatedAlbumArt) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `exit_key` is never read [INFO] [stderr] --> src/event/events.rs:17:7 [INFO] [stderr] | [INFO] [stderr] 15 | pub struct EventConfig { [INFO] [stderr] | ----------- field in this struct [INFO] [stderr] 16 | /// The key that is used to exit the application. [INFO] [stderr] 17 | pub exit_key: Key, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `EventConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: method `try_next` is never used [INFO] [stderr] --> src/event/events.rs:148:10 [INFO] [stderr] | [INFO] [stderr] 52 | impl Events { [INFO] [stderr] | ----------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 148 | pub fn try_next(&self) -> Result, TryRecvError> { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple variants are never constructed [INFO] [stderr] --> src/focus_manager.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 14 | pub enum ComponentId { [INFO] [stderr] | ----------- variants in this enum [INFO] [stderr] ... [INFO] [stderr] 20 | Artist(ArtistBlock), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] 21 | TrackTable, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] 22 | EpisodeTable, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 23 | AlbumList, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 24 | AlbumTracks, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] 25 | RecentlyPlayed, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] 26 | Artists, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 27 | Podcasts, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 28 | Home, [INFO] [stderr] | ^^^^ [INFO] [stderr] 29 | SelectDevice, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 30 | PlayBar, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 31 | BasicView, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 32 | LogStream, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 33 | Analysis, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 34 | Dialog, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] 35 | Empty, [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `ComponentId` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: associated items `get_focused`, `get_hovered`, `navigate_to`, `from_active_block`, and `to_active_block` are never used [INFO] [stderr] --> src/focus_manager.rs:110:12 [INFO] [stderr] | [INFO] [stderr] 54 | impl FocusManager { [INFO] [stderr] | ----------------- associated items in this implementation [INFO] [stderr] ... [INFO] [stderr] 110 | pub fn get_focused(&self) -> Option<&ComponentId> { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 115 | pub fn get_hovered(&self) -> Option<&ComponentId> { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 121 | pub fn navigate_to(&mut self, component: ComponentId) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 132 | pub fn from_active_block(block: ActiveBlock) -> ComponentId { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 159 | pub fn to_active_block(&self, component: &ComponentId) -> ActiveBlock { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `0` is never read [INFO] [stderr] --> src/network.rs:46:11 [INFO] [stderr] | [INFO] [stderr] 46 | GetShow(String), [INFO] [stderr] | ------- ^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | field in this variant [INFO] [stderr] | [INFO] [stderr] = note: `IoEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stderr] | [INFO] [stderr] 46 - GetShow(String), [INFO] [stderr] 46 + GetShow(()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: field `0` is never read [INFO] [stderr] --> src/network.rs:49:20 [INFO] [stderr] | [INFO] [stderr] 49 | GetSearchResults(String), [INFO] [stderr] | ---------------- ^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | field in this variant [INFO] [stderr] | [INFO] [stderr] = note: `IoEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stderr] | [INFO] [stderr] 49 - GetSearchResults(String), [INFO] [stderr] 49 + GetSearchResults(()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: field `0` is never read [INFO] [stderr] --> src/network.rs:63:20 [INFO] [stderr] | [INFO] [stderr] 63 | GetAudioAnalysis(String), [INFO] [stderr] | ---------------- ^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | field in this variant [INFO] [stderr] | [INFO] [stderr] = note: `IoEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stderr] | [INFO] [stderr] 63 - GetAudioAnalysis(String), [INFO] [stderr] 63 + GetAudioAnalysis(()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: variants `GetArtistAlbums`, `GetEpisodes`, `GetRecommendations`, `VolumeUp`, and `VolumeDown` are never constructed [INFO] [stderr] --> src/network.rs:45:3 [INFO] [stderr] | [INFO] [stderr] 36 | pub enum IoEvent { [INFO] [stderr] | ------- variants in this enum [INFO] [stderr] ... [INFO] [stderr] 45 | GetArtistAlbums(String), [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] 46 | GetShow(String), [INFO] [stderr] 47 | GetEpisodes(String), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] 48 | GetRecommendations(String, String, String, String, String), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 57 | VolumeUp, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 58 | VolumeDown, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `IoEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: enum `PlayingItem` is never used [INFO] [stderr] --> src/network.rs:81:10 [INFO] [stderr] | [INFO] [stderr] 81 | pub enum PlayingItem { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `create_styled_block` is never used [INFO] [stderr] --> src/ui/mod.rs:76:4 [INFO] [stderr] | [INFO] [stderr] 76 | fn create_styled_block<'a>(title: &'a str, highlight_color: Color) -> Block<'a> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `draw_album_art` is never used [INFO] [stderr] --> src/ui/mod.rs:2359:4 [INFO] [stderr] | [INFO] [stderr] 2359 | fn draw_album_art(f: &mut Frame, app: &App, layout_chunk: Rect) { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stderr] --> src/main.rs:501:48 [INFO] [stderr] | [INFO] [stderr] 501 | let current_route = app.get_current_route().clone(); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = 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] [stderr] = note: `#[warn(noop_method_call)]` on by default [INFO] [stderr] help: remove this redundant call [INFO] [stderr] | [INFO] [stderr] 501 - let current_route = app.get_current_route().clone(); [INFO] [stderr] 501 + let current_route = app.get_current_route(); [INFO] [stderr] | [INFO] [stderr] help: if you meant to clone `Route`, implement `Clone` for it [INFO] [stderr] --> src/app.rs:168:1 [INFO] [stderr] | [INFO] [stderr] 168 + #[derive(Clone)] [INFO] [stderr] 169 | pub struct Route { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `spotify-tui` (bin "spt" test) generated 102 warnings (run `cargo fix --bin "spt" -p spotify-tui --tests` to apply 76 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.54s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/spt-308109e834ee6f19) [INFO] [stdout] [INFO] [stdout] running 50 tests [INFO] [stdout] test focus_manager::tests::test_focus_states ... ok [INFO] [stdout] test album_art::tests::test_ansi_color_conversion ... ok [INFO] [stdout] test focus_manager::tests::test_single_focus ... ok [INFO] [stdout] test handlers::common_key_events::tests::test_on_up_press_handler ... ok [INFO] [stdout] test handlers::common_key_events::tests::test_on_down_press_handler ... ok [INFO] [stdout] test handlers::album_tracks::tests::on_left_press ... ok [INFO] [stdout] test handlers::album_tracks::tests::on_esc ... ok [INFO] [stdout] test handlers::album_list::tests::on_left_press ... ok [INFO] [stdout] test handlers::artist::tests::on_esc ... ok [INFO] [stdout] test handlers::empty::tests::on_left_press ... ok [INFO] [stdout] test handlers::album_list::tests::on_esc ... ok [INFO] [stdout] test handlers::empty::tests::on_enter ... ok [INFO] [stdout] test handlers::home::tests::on_small_down_press ... ok [INFO] [stdout] test handlers::empty::tests::on_down_press ... ok [INFO] [stdout] test handlers::empty::tests::on_up_press ... ok [INFO] [stdout] test handlers::home::tests::on_large_down_press ... ok [INFO] [stdout] test handlers::home::tests::on_large_up_press ... ok [INFO] [stdout] test handlers::input::tests::test_compute_character_width_with_multiple_characters ... ok [INFO] [stdout] test handlers::input::tests::test_input_handler_backspace ... ok [INFO] [stdout] test handlers::input::tests::test_input_handler_clear_input_on_ctrl_l ... ok [INFO] [stdout] test handlers::home::tests::on_small_up_press ... ok [INFO] [stdout] test handlers::input::tests::test_input_handler_ctrl_u ... ok [INFO] [stdout] test handlers::input::tests::test_input_handler_ctrl_w ... ok [INFO] [stdout] test handlers::input::tests::test_input_handler_delete ... ok [INFO] [stdout] test handlers::empty::tests::on_right_press ... ok [INFO] [stdout] test handlers::input::tests::test_input_handler_ctrl_k ... ok [INFO] [stdout] test handlers::input::tests::test_input_handler_esc_back_to_playlist ... ok [INFO] [stdout] test handlers::input::tests::test_input_handler_on_enter_text_non_english_char ... ok [INFO] [stdout] test handlers::input::tests::test_input_handler_left_event ... ok [INFO] [stdout] test handlers::input::tests::test_input_handler_on_enter_text ... ok [INFO] [stdout] test handlers::input::tests::test_uri_parsing::album ... ok [INFO] [stdout] test handlers::input::tests::test_uri_parsing::artist ... ok [INFO] [stdout] test handlers::input::tests::test_uri_parsing::invalid_format_doesnt_match ... ok [INFO] [stdout] test handlers::input::tests::test_uri_parsing::mismatched_resource_types_do_not_match ... ok [INFO] [stdout] test handlers::input::tests::test_uri_parsing::parse_with_query_parameters ... ok [INFO] [stdout] test handlers::input::tests::test_input_handler_on_enter_text_wide_char ... ok [INFO] [stdout] test handlers::input::tests::test_uri_parsing::playlist ... ok [INFO] [stdout] test handlers::input::tests::test_uri_parsing::show ... ok [INFO] [stdout] test handlers::input::tests::test_uri_parsing::track ... ok [INFO] [stdout] test handlers::playbar::tests::on_left_press ... ok [INFO] [stdout] test handlers::recently_played::tests::on_esc ... ok [INFO] [stdout] test handlers::recently_played::tests::on_left_press ... ok [INFO] [stdout] test ui::util::tests::display_track_progress_test ... ok [INFO] [stdout] test ui::util::tests::get_track_progress_percentage_test ... ok [INFO] [stdout] test ui::util::tests::millis_to_minutes_test ... ok [INFO] [stdout] test user_config::tests::test_parse_key ... ok [INFO] [stdout] test user_config::tests::test_reserved_key ... ok [INFO] [stdout] test handlers::playlist::tests::test ... ok [INFO] [stdout] test user_config::tests::parse_theme_item_test ... ok [INFO] [stdout] test album_art::tests::test_placeholder_art ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 50 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "41dfddb1c2a924c85b4664b1dc21f23d86b3760dbac34fab672207b97dcb18a7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "41dfddb1c2a924c85b4664b1dc21f23d86b3760dbac34fab672207b97dcb18a7", kill_on_drop: false }` [INFO] [stdout] 41dfddb1c2a924c85b4664b1dc21f23d86b3760dbac34fab672207b97dcb18a7