[INFO] cloning repository https://github.com/KittydaCat/autofy
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/KittydaCat/autofy" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKittydaCat%2Fautofy", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKittydaCat%2Fautofy'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0d6648f7231ce02e6fab8bed51a37143bf2b7613
[INFO] testing KittydaCat/autofy against 1.99.0-beta.1+cargoflags=--release for beta-release-1.99-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKittydaCat%2Fautofy" "/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/KittydaCat/autofy
[INFO] finished tweaking git repo https://github.com/KittydaCat/autofy
[INFO] tweaked toml for git repo https://github.com/KittydaCat/autofy written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/KittydaCat/autofy on toolchain 1.99.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.1" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 217 packages to highest Rust 1.99.0-beta.1 compatible versions
[INFO] [stderr]       Adding crossterm v0.28.1 (available: v0.29.0)
[INFO] [stderr]       Adding generic-array v0.14.7 (available: v0.14.9)
[INFO] [stderr]       Adding itertools v0.14.0 (available: v0.15.0)
[INFO] [stderr]       Adding ratatui v0.29.0 (available: v0.30.2)
[INFO] [stderr]       Adding rspotify v0.14.0 (available: v0.16.1)
[INFO] [stderr]       Adding unicode-width v0.2.0 (available: v0.2.2)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.1" "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/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] d2259ad3c84b2b129a6b0087c0f6e3bd3d1249eda750b3324ff4077179f4adfa
[INFO] running `Command { std: "docker" "start" "d2259ad3c84b2b129a6b0087c0f6e3bd3d1249eda750b3324ff4077179f4adfa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d2259ad3c84b2b129a6b0087c0f6e3bd3d1249eda750b3324ff4077179f4adfa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d2259ad3c84b2b129a6b0087c0f6e3bd3d1249eda750b3324ff4077179f4adfa" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d2259ad3c84b2b129a6b0087c0f6e3bd3d1249eda750b3324ff4077179f4adfa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d2259ad3c84b2b129a6b0087c0f6e3bd3d1249eda750b3324ff4077179f4adfa" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v3.0.4
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling smallvec v1.16.0
[INFO] [stderr]    Compiling litemap v0.8.3
[INFO] [stderr]    Compiling writeable v0.6.4
[INFO] [stderr]    Compiling icu_properties_data v2.3.0
[INFO] [stderr]    Compiling icu_normalizer_data v2.3.0
[INFO] [stderr]    Compiling find-msvc-tools v0.1.11
[INFO] [stderr]    Compiling log v0.4.34
[INFO] [stderr]    Compiling memchr v2.8.3
[INFO] [stderr]    Compiling rustversion v1.0.23
[INFO] [stderr]    Compiling num-conv v0.2.2
[INFO] [stderr]    Compiling time-core v0.1.9
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling cookie v0.18.2
[INFO] [stderr]    Compiling cc v1.4.4
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling time-macros v0.2.32
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling rustls v0.23.43
[INFO] [stderr]    Compiling indexmap v2.14.1
[INFO] [stderr]    Compiling webpki-roots v1.0.9
[INFO] [stderr]    Compiling thread_local v1.1.10
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling object v0.37.3
[INFO] [stderr]    Compiling either v1.18.0
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling webpki-roots v0.26.11
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling socks v0.3.4
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling mio v1.2.3
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling eyre v0.6.14
[INFO] [stderr]    Compiling instability v0.3.13
[INFO] [stderr]    Compiling gimli v0.32.3
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling color-spantrace v0.3.0
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling enum_dispatch v0.3.13
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling maybe-async v0.2.11
[INFO] [stderr]    Compiling tracing-error v0.2.1
[INFO] [stderr]    Compiling indenter v0.3.4
[INFO] [stderr]    Compiling rustc-demangle v0.1.28
[INFO] [stderr]    Compiling time v0.3.55
[INFO] [stderr]    Compiling unicode-segmentation v1.13.3
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling owo-colors v4.4.0
[INFO] [stderr]    Compiling compact_str v0.8.2
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling rspotify-macros v0.14.0
[INFO] [stderr]    Compiling dotenvy v0.15.7
[INFO] [stderr]    Compiling cassowary v0.3.0
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling unicode-width v0.2.0
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling unicode-truncate v1.1.0
[INFO] [stderr]    Compiling darling_core v0.24.1
[INFO] [stderr]    Compiling addr2line v0.25.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.6
[INFO] [stderr]    Compiling displaydoc v0.2.7
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling thiserror-impl v2.0.20
[INFO] [stderr]    Compiling zerotrie v0.2.5
[INFO] [stderr]    Compiling thiserror v2.0.20
[INFO] [stderr]    Compiling zerovec v0.11.8
[INFO] [stderr]    Compiling tinystr v0.8.4
[INFO] [stderr]    Compiling potential_utf v0.1.6
[INFO] [stderr]    Compiling icu_collections v2.3.0
[INFO] [stderr]    Compiling icu_locale_core v2.3.0
[INFO] [stderr]    Compiling darling_macro v0.24.1
[INFO] [stderr]    Compiling backtrace v0.3.76
[INFO] [stderr]    Compiling darling v0.24.1
[INFO] [stderr]    Compiling icu_provider v2.3.1
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling icu_properties v2.3.0
[INFO] [stderr]    Compiling icu_normalizer v2.3.0
[INFO] [stderr]    Compiling ratatui v0.29.0
[INFO] [stderr]    Compiling color-eyre v0.6.5
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling rspotify-model v0.14.0
[INFO] [stderr]    Compiling cookie_store v0.21.1
[INFO] [stderr]    Compiling webbrowser v1.2.4
[INFO] [stderr]    Compiling rustls-webpki v0.103.15
[INFO] [stderr]    Compiling ureq v2.12.1
[INFO] [stderr]    Compiling rspotify-http v0.14.0
[INFO] [stderr]    Compiling rspotify v0.14.0
[INFO] [stderr]    Compiling Autofy v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `AuthCodeSpotify`, `Credentials`, `OAuth`, and `scopes`
[INFO] [stdout]  --> src/main.rs:3:16
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rspotify::{scopes, AuthCodeSpotify, Credentials, OAuth};
[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: `rspotify::prelude::OAuthClient`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rspotify::prelude::OAuthClient;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Pipe`, `Playlist`, `Source`, and `update_spotify`
[INFO] [stdout]  --> src/main.rs:5:22
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::backend::{Playlist, Pipe, Source, update_spotify};
[INFO] [stdout]   |                      ^^^^^^^^  ^^^^  ^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Frame`
[INFO] [stdout]  --> src/frontend.rs:3:32
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ratatui::{DefaultTerminal, Frame};
[INFO] [stdout]   |                                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StatefulWidget`
[INFO] [stdout]  --> src/frontend.rs:6:31
[INFO] [stdout]   |
[INFO] [stdout] 6 | use ratatui::prelude::{Color, StatefulWidget, Style, Widget};
[INFO] [stdout]   |                               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HighlightSpacing` and `List`
[INFO] [stdout]  --> src/frontend.rs:7:40
[INFO] [stdout]   |
[INFO] [stdout] 7 | use ratatui::widgets::{Block, Borders, HighlightSpacing, List, ListItem, ListState};
[INFO] [stdout]   |                                        ^^^^^^^^^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `song`
[INFO] [stdout]   --> src/backend.rs:96:23
[INFO] [stdout]    |
[INFO] [stdout] 96 |     fn matches(&self, song: &PlayableId, client: &AuthCodeSpotify) -> bool {
[INFO] [stdout]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_song`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client`
[INFO] [stdout]   --> src/backend.rs:96:42
[INFO] [stdout]    |
[INFO] [stdout] 96 |     fn matches(&self, song: &PlayableId, client: &AuthCodeSpotify) -> bool {
[INFO] [stdout]    |                                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/backend.rs:144:13
[INFO] [stdout]     |
[INFO] [stdout] 144 |         let mut songs_to_add = songs.iter()
[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: unused variable: `x`
[INFO] [stdout]    --> src/frontend.rs:157:13
[INFO] [stdout]     |
[INFO] [stdout] 157 |             x => {dbg!(code);}
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area`
[INFO] [stdout]    --> src/frontend.rs:350:21
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn render(self, area: Rect, buf: &mut Buffer) {
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]    --> src/frontend.rs:350:33
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn render(self, area: Rect, buf: &mut Buffer) {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `main_block`
[INFO] [stdout]    --> src/frontend.rs:351:13
[INFO] [stdout]     |
[INFO] [stdout] 351 |         let main_block = Block::new()
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_main_block`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PREFIX` is never used
[INFO] [stdout]  --> src/backend.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const PREFIX: &str = "Autofy";
[INFO] [stdout]   |       ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `sources`, and `is_shadow` are never read
[INFO] [stdout]   --> src/backend.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct Playlist {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 10 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 11 |     pub(crate) sources: Vec<Pipe>,
[INFO] [stdout]    |                ^^^^^^^
[INFO] [stdout] 12 |     // allow_duplicates: bool, // will be assumed false for now
[INFO] [stdout] 13 |     pub(crate) is_shadow: bool,
[INFO] [stdout]    |                ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Playlist` 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 `get_songs` is never used
[INFO] [stdout]   --> src/backend.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Playlist {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] 17 |     fn get_songs(&self, client: &AuthCodeSpotify) -> Vec<PlayableId> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `source`, `filters`, and `name` are never read
[INFO] [stdout]   --> src/backend.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Pipe {
[INFO] [stdout]    |            ---- fields in this struct
[INFO] [stdout] 34 |     pub source: Source,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 35 |     pub filters: Vec<Filter>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 36 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Pipe` 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 `get_songs` is never used
[INFO] [stdout]   --> src/backend.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 39 | impl Pipe {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 40 |     fn get_songs(&self, client: &AuthCodeSpotify) -> Vec<PlayableId> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Songs`, `AutoPlaylist`, `Playlist`, and `Album` are never constructed
[INFO] [stdout]   --> src/backend.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub enum Source {
[INFO] [stdout]    |          ------ variants in this enum
[INFO] [stdout] 56 |     // this just seems like a playlist might be able to be shared
[INFO] [stdout] 57 |     Songs {raw_imports: Vec<model::PlayableId<'static>>, name: String},
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 58 |
[INFO] [stdout] 59 |     AutoPlaylist(Playlist),
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 60 |     Playlist(model::PlaylistId<'static>),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 61 |     Album(model::AlbumId<'static>),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Source` 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 `get_songs` is never used
[INFO] [stdout]   --> src/backend.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | impl Source {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 65 |     fn get_songs(&self, client: &AuthCodeSpotify) -> Vec<PlayableId> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `name` and `matches` are never used
[INFO] [stdout]   --> src/backend.rs:92:19
[INFO] [stdout]    |
[INFO] [stdout] 90 | impl Filter {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] 91 |
[INFO] [stdout] 92 |     pub(crate) fn name(&self) -> &str {
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96 |     fn matches(&self, song: &PlayableId, client: &AuthCodeSpotify) -> bool {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_spotify` is never used
[INFO] [stdout]    --> src/backend.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub fn update_spotify(playlists: &[Playlist], client: &AuthCodeSpotify, user_id: UserId) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_auth` is never used
[INFO] [stdout]    --> src/backend.rs:171:8
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub fn get_auth() -> color_eyre::Result<AuthCodeSpotify> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main` is never used
[INFO] [stdout]    --> src/backend.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 | pub fn main() -> color_eyre::Result<()> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `playlists_list_state` is never read
[INFO] [stdout]   --> src/frontend.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     EditingPlaylists {
[INFO] [stdout]    |     ---------------- field in this variant
[INFO] [stdout] 15 |         playlists_list_state: ListState,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Screen` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `EditingSources` and `EditingFilters` are never constructed
[INFO] [stdout]   --> src/frontend.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | enum Screen{
[INFO] [stdout]    |      ------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 20 |     EditingSources {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     EditingFilters {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Screen` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `demote` and `promote` are never used
[INFO] [stdout]   --> src/frontend.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl Screen {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] 33 |
[INFO] [stdout] 34 |     fn demote(self) -> Self {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     fn promote(self) -> Self {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `playlists` and `screen` are never read
[INFO] [stdout]    --> src/frontend.rs:112:5
[INFO] [stdout]     |
[INFO] [stdout] 111 | struct App {
[INFO] [stdout]     |        --- fields in this struct
[INFO] [stdout] 112 |     playlists: Vec<backend::Playlist>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 113 |     screen: Screen,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `App` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_items` and `get_items2` are never used
[INFO] [stdout]    --> src/frontend.rs:162:8
[INFO] [stdout]     |
[INFO] [stdout] 120 | impl App {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 162 |     fn get_items(&self) -> [Option<Vec<ListItem>>;3] {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 |     fn get_items2(&self) -> [Option<(ListState, Vec<ListItem>)>;3] {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/backend.rs:17:18
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn get_songs(&self, client: &AuthCodeSpotify) -> Vec<PlayableId> {
[INFO] [stdout]    |                  ^^^^^ the lifetime is elided here       ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn get_songs(&self, client: &AuthCodeSpotify) -> Vec<PlayableId<'_>> {
[INFO] [stdout]    |                                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/backend.rs:40:18
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn get_songs(&self, client: &AuthCodeSpotify) -> Vec<PlayableId> {
[INFO] [stdout]    |                  ^^^^^ the lifetime is elided here       ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn get_songs(&self, client: &AuthCodeSpotify) -> Vec<PlayableId<'_>> {
[INFO] [stdout]    |                                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/backend.rs:65:18
[INFO] [stdout]    |
[INFO] [stdout] 65 |     fn get_songs(&self, client: &AuthCodeSpotify) -> Vec<PlayableId> {
[INFO] [stdout]    |                  ^^^^^ the lifetime is elided here       ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 65 |     fn get_songs(&self, client: &AuthCodeSpotify) -> Vec<PlayableId<'_>> {
[INFO] [stdout]    |                                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/frontend.rs:162:18
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn get_items(&self) -> [Option<Vec<ListItem>>;3] {
[INFO] [stdout]     |                  ^^^^^                 ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn get_items(&self) -> [Option<Vec<ListItem<'_>>>;3] {
[INFO] [stdout]     |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/frontend.rs:269:19
[INFO] [stdout]     |
[INFO] [stdout] 269 |     fn get_items2(&self) -> [Option<(ListState, Vec<ListItem>)>;3] {
[INFO] [stdout]     |                   ^^^^^ the lifetime is elided here ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 269 |     fn get_items2(&self) -> [Option<(ListState, Vec<ListItem<'_>>)>;3] {
[INFO] [stdout]     |                                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 31s
[INFO] running `Command { std: "docker" "inspect" "d2259ad3c84b2b129a6b0087c0f6e3bd3d1249eda750b3324ff4077179f4adfa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d2259ad3c84b2b129a6b0087c0f6e3bd3d1249eda750b3324ff4077179f4adfa" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling Autofy v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `AuthCodeSpotify`, `Credentials`, `OAuth`, and `scopes`
[INFO] [stdout]  --> src/main.rs:3:16
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rspotify::{scopes, AuthCodeSpotify, Credentials, OAuth};
[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: `rspotify::prelude::OAuthClient`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rspotify::prelude::OAuthClient;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Pipe`, `Playlist`, `Source`, and `update_spotify`
[INFO] [stdout]  --> src/main.rs:5:22
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::backend::{Playlist, Pipe, Source, update_spotify};
[INFO] [stdout]   |                      ^^^^^^^^  ^^^^  ^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Frame`
[INFO] [stdout]  --> src/frontend.rs:3:32
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ratatui::{DefaultTerminal, Frame};
[INFO] [stdout]   |                                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StatefulWidget`
[INFO] [stdout]  --> src/frontend.rs:6:31
[INFO] [stdout]   |
[INFO] [stdout] 6 | use ratatui::prelude::{Color, StatefulWidget, Style, Widget};
[INFO] [stdout]   |                               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HighlightSpacing` and `List`
[INFO] [stdout]  --> src/frontend.rs:7:40
[INFO] [stdout]   |
[INFO] [stdout] 7 | use ratatui::widgets::{Block, Borders, HighlightSpacing, List, ListItem, ListState};
[INFO] [stdout]   |                                        ^^^^^^^^^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `song`
[INFO] [stdout]   --> src/backend.rs:96:23
[INFO] [stdout]    |
[INFO] [stdout] 96 |     fn matches(&self, song: &PlayableId, client: &AuthCodeSpotify) -> bool {
[INFO] [stdout]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_song`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `client`
[INFO] [stdout]   --> src/backend.rs:96:42
[INFO] [stdout]    |
[INFO] [stdout] 96 |     fn matches(&self, song: &PlayableId, client: &AuthCodeSpotify) -> bool {
[INFO] [stdout]    |                                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/backend.rs:144:13
[INFO] [stdout]     |
[INFO] [stdout] 144 |         let mut songs_to_add = songs.iter()
[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: unused variable: `x`
[INFO] [stdout]    --> src/frontend.rs:157:13
[INFO] [stdout]     |
[INFO] [stdout] 157 |             x => {dbg!(code);}
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area`
[INFO] [stdout]    --> src/frontend.rs:350:21
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn render(self, area: Rect, buf: &mut Buffer) {
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf`
[INFO] [stdout]    --> src/frontend.rs:350:33
[INFO] [stdout]     |
[INFO] [stdout] 350 |     fn render(self, area: Rect, buf: &mut Buffer) {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `main_block`
[INFO] [stdout]    --> src/frontend.rs:351:13
[INFO] [stdout]     |
[INFO] [stdout] 351 |         let main_block = Block::new()
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_main_block`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PREFIX` is never used
[INFO] [stdout]  --> src/backend.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const PREFIX: &str = "Autofy";
[INFO] [stdout]   |       ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `sources`, and `is_shadow` are never read
[INFO] [stdout]   --> src/backend.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct Playlist {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 10 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 11 |     pub(crate) sources: Vec<Pipe>,
[INFO] [stdout]    |                ^^^^^^^
[INFO] [stdout] 12 |     // allow_duplicates: bool, // will be assumed false for now
[INFO] [stdout] 13 |     pub(crate) is_shadow: bool,
[INFO] [stdout]    |                ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Playlist` 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 `get_songs` is never used
[INFO] [stdout]   --> src/backend.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Playlist {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] 17 |     fn get_songs(&self, client: &AuthCodeSpotify) -> Vec<PlayableId> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `source`, `filters`, and `name` are never read
[INFO] [stdout]   --> src/backend.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Pipe {
[INFO] [stdout]    |            ---- fields in this struct
[INFO] [stdout] 34 |     pub source: Source,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 35 |     pub filters: Vec<Filter>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 36 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Pipe` 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 `get_songs` is never used
[INFO] [stdout]   --> src/backend.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 39 | impl Pipe {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 40 |     fn get_songs(&self, client: &AuthCodeSpotify) -> Vec<PlayableId> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Songs`, `AutoPlaylist`, `Playlist`, and `Album` are never constructed
[INFO] [stdout]   --> src/backend.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub enum Source {
[INFO] [stdout]    |          ------ variants in this enum
[INFO] [stdout] 56 |     // this just seems like a playlist might be able to be shared
[INFO] [stdout] 57 |     Songs {raw_imports: Vec<model::PlayableId<'static>>, name: String},
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 58 |
[INFO] [stdout] 59 |     AutoPlaylist(Playlist),
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 60 |     Playlist(model::PlaylistId<'static>),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 61 |     Album(model::AlbumId<'static>),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Source` 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 `get_songs` is never used
[INFO] [stdout]   --> src/backend.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | impl Source {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 65 |     fn get_songs(&self, client: &AuthCodeSpotify) -> Vec<PlayableId> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `name` and `matches` are never used
[INFO] [stdout]   --> src/backend.rs:92:19
[INFO] [stdout]    |
[INFO] [stdout] 90 | impl Filter {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] 91 |
[INFO] [stdout] 92 |     pub(crate) fn name(&self) -> &str {
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96 |     fn matches(&self, song: &PlayableId, client: &AuthCodeSpotify) -> bool {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_spotify` is never used
[INFO] [stdout]    --> src/backend.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub fn update_spotify(playlists: &[Playlist], client: &AuthCodeSpotify, user_id: UserId) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_auth` is never used
[INFO] [stdout]    --> src/backend.rs:171:8
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub fn get_auth() -> color_eyre::Result<AuthCodeSpotify> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `main` is never used
[INFO] [stdout]    --> src/backend.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 | pub fn main() -> color_eyre::Result<()> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `playlists_list_state` is never read
[INFO] [stdout]   --> src/frontend.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     EditingPlaylists {
[INFO] [stdout]    |     ---------------- field in this variant
[INFO] [stdout] 15 |         playlists_list_state: ListState,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Screen` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `EditingSources` and `EditingFilters` are never constructed
[INFO] [stdout]   --> src/frontend.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | enum Screen{
[INFO] [stdout]    |      ------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 20 |     EditingSources {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     EditingFilters {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Screen` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `demote` and `promote` are never used
[INFO] [stdout]   --> src/frontend.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl Screen {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] 33 |
[INFO] [stdout] 34 |     fn demote(self) -> Self {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     fn promote(self) -> Self {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `playlists` and `screen` are never read
[INFO] [stdout]    --> src/frontend.rs:112:5
[INFO] [stdout]     |
[INFO] [stdout] 111 | struct App {
[INFO] [stdout]     |        --- fields in this struct
[INFO] [stdout] 112 |     playlists: Vec<backend::Playlist>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 113 |     screen: Screen,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `App` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_items` and `get_items2` are never used
[INFO] [stdout]    --> src/frontend.rs:162:8
[INFO] [stdout]     |
[INFO] [stdout] 120 | impl App {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 162 |     fn get_items(&self) -> [Option<Vec<ListItem>>;3] {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 |     fn get_items2(&self) -> [Option<(ListState, Vec<ListItem>)>;3] {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/backend.rs:17:18
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn get_songs(&self, client: &AuthCodeSpotify) -> Vec<PlayableId> {
[INFO] [stdout]    |                  ^^^^^ the lifetime is elided here       ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn get_songs(&self, client: &AuthCodeSpotify) -> Vec<PlayableId<'_>> {
[INFO] [stdout]    |                                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/backend.rs:40:18
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn get_songs(&self, client: &AuthCodeSpotify) -> Vec<PlayableId> {
[INFO] [stdout]    |                  ^^^^^ the lifetime is elided here       ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn get_songs(&self, client: &AuthCodeSpotify) -> Vec<PlayableId<'_>> {
[INFO] [stdout]    |                                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/backend.rs:65:18
[INFO] [stdout]    |
[INFO] [stdout] 65 |     fn get_songs(&self, client: &AuthCodeSpotify) -> Vec<PlayableId> {
[INFO] [stdout]    |                  ^^^^^ the lifetime is elided here       ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 65 |     fn get_songs(&self, client: &AuthCodeSpotify) -> Vec<PlayableId<'_>> {
[INFO] [stdout]    |                                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/frontend.rs:162:18
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn get_items(&self) -> [Option<Vec<ListItem>>;3] {
[INFO] [stdout]     |                  ^^^^^                 ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn get_items(&self) -> [Option<Vec<ListItem<'_>>>;3] {
[INFO] [stdout]     |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/frontend.rs:269:19
[INFO] [stdout]     |
[INFO] [stdout] 269 |     fn get_items2(&self) -> [Option<(ListState, Vec<ListItem>)>;3] {
[INFO] [stdout]     |                   ^^^^^ the lifetime is elided here ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 269 |     fn get_items2(&self) -> [Option<(ListState, Vec<ListItem<'_>>)>;3] {
[INFO] [stdout]     |                                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.63s
[INFO] running `Command { std: "docker" "inspect" "d2259ad3c84b2b129a6b0087c0f6e3bd3d1249eda750b3324ff4077179f4adfa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "d2259ad3c84b2b129a6b0087c0f6e3bd3d1249eda750b3324ff4077179f4adfa" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: unused imports: `AuthCodeSpotify`, `Credentials`, `OAuth`, and `scopes`
[INFO] [stderr]  --> src/main.rs:3:16
[INFO] [stderr]   |
[INFO] [stderr] 3 | use rspotify::{scopes, AuthCodeSpotify, Credentials, OAuth};
[INFO] [stderr]   |                ^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `rspotify::prelude::OAuthClient`
[INFO] [stderr]  --> src/main.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use rspotify::prelude::OAuthClient;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Pipe`, `Playlist`, `Source`, and `update_spotify`
[INFO] [stderr]  --> src/main.rs:5:22
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::backend::{Playlist, Pipe, Source, update_spotify};
[INFO] [stderr]   |                      ^^^^^^^^  ^^^^  ^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Frame`
[INFO] [stderr]  --> src/frontend.rs:3:32
[INFO] [stderr]   |
[INFO] [stderr] 3 | use ratatui::{DefaultTerminal, Frame};
[INFO] [stderr]   |                                ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `StatefulWidget`
[INFO] [stderr]  --> src/frontend.rs:6:31
[INFO] [stderr]   |
[INFO] [stderr] 6 | use ratatui::prelude::{Color, StatefulWidget, Style, Widget};
[INFO] [stderr]   |                               ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `HighlightSpacing` and `List`
[INFO] [stderr]  --> src/frontend.rs:7:40
[INFO] [stderr]   |
[INFO] [stderr] 7 | use ratatui::widgets::{Block, Borders, HighlightSpacing, List, ListItem, ListState};
[INFO] [stderr]   |                                        ^^^^^^^^^^^^^^^^  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `song`
[INFO] [stderr]   --> src/backend.rs:96:23
[INFO] [stderr]    |
[INFO] [stderr] 96 |     fn matches(&self, song: &PlayableId, client: &AuthCodeSpotify) -> bool {
[INFO] [stderr]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_song`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `client`
[INFO] [stderr]   --> src/backend.rs:96:42
[INFO] [stderr]    |
[INFO] [stderr] 96 |     fn matches(&self, song: &PlayableId, client: &AuthCodeSpotify) -> bool {
[INFO] [stderr]    |                                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_client`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/backend.rs:144:13
[INFO] [stderr]     |
[INFO] [stderr] 144 |         let mut songs_to_add = songs.iter()
[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: unused variable: `x`
[INFO] [stderr]    --> src/frontend.rs:157:13
[INFO] [stderr]     |
[INFO] [stderr] 157 |             x => {dbg!(code);}
[INFO] [stderr]     |             ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `area`
[INFO] [stderr]    --> src/frontend.rs:350:21
[INFO] [stderr]     |
[INFO] [stderr] 350 |     fn render(self, area: Rect, buf: &mut Buffer) {
[INFO] [stderr]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `buf`
[INFO] [stderr]    --> src/frontend.rs:350:33
[INFO] [stderr]     |
[INFO] [stderr] 350 |     fn render(self, area: Rect, buf: &mut Buffer) {
[INFO] [stderr]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_buf`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `main_block`
[INFO] [stderr]    --> src/frontend.rs:351:13
[INFO] [stderr]     |
[INFO] [stderr] 351 |         let main_block = Block::new()
[INFO] [stderr]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_main_block`
[INFO] [stderr] 
[INFO] [stderr] warning: constant `PREFIX` is never used
[INFO] [stderr]  --> src/backend.rs:6:7
[INFO] [stderr]   |
[INFO] [stderr] 6 | const PREFIX: &str = "Autofy";
[INFO] [stderr]   |       ^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `name`, `sources`, and `is_shadow` are never read
[INFO] [stderr]   --> src/backend.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr]  9 | pub struct Playlist {
[INFO] [stderr]    |            -------- fields in this struct
[INFO] [stderr] 10 |     pub name: String,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr] 11 |     pub(crate) sources: Vec<Pipe>,
[INFO] [stderr]    |                ^^^^^^^
[INFO] [stderr] 12 |     // allow_duplicates: bool, // will be assumed false for now
[INFO] [stderr] 13 |     pub(crate) is_shadow: bool,
[INFO] [stderr]    |                ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Playlist` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_songs` is never used
[INFO] [stderr]   --> src/backend.rs:17:8
[INFO] [stderr]    |
[INFO] [stderr] 16 | impl Playlist {
[INFO] [stderr]    | ------------- method in this implementation
[INFO] [stderr] 17 |     fn get_songs(&self, client: &AuthCodeSpotify) -> Vec<PlayableId> {
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `source`, `filters`, and `name` are never read
[INFO] [stderr]   --> src/backend.rs:34:9
[INFO] [stderr]    |
[INFO] [stderr] 33 | pub struct Pipe {
[INFO] [stderr]    |            ---- fields in this struct
[INFO] [stderr] 34 |     pub source: Source,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr] 35 |     pub filters: Vec<Filter>,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 36 |     pub name: String,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Pipe` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_songs` is never used
[INFO] [stderr]   --> src/backend.rs:40:8
[INFO] [stderr]    |
[INFO] [stderr] 39 | impl Pipe {
[INFO] [stderr]    | --------- method in this implementation
[INFO] [stderr] 40 |     fn get_songs(&self, client: &AuthCodeSpotify) -> Vec<PlayableId> {
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Songs`, `AutoPlaylist`, `Playlist`, and `Album` are never constructed
[INFO] [stderr]   --> src/backend.rs:57:5
[INFO] [stderr]    |
[INFO] [stderr] 55 | pub enum Source {
[INFO] [stderr]    |          ------ variants in this enum
[INFO] [stderr] 56 |     // this just seems like a playlist might be able to be shared
[INFO] [stderr] 57 |     Songs {raw_imports: Vec<model::PlayableId<'static>>, name: String},
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 58 |
[INFO] [stderr] 59 |     AutoPlaylist(Playlist),
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] 60 |     Playlist(model::PlaylistId<'static>),
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 61 |     Album(model::AlbumId<'static>),
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Source` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_songs` is never used
[INFO] [stderr]   --> src/backend.rs:65:8
[INFO] [stderr]    |
[INFO] [stderr] 64 | impl Source {
[INFO] [stderr]    | ----------- method in this implementation
[INFO] [stderr] 65 |     fn get_songs(&self, client: &AuthCodeSpotify) -> Vec<PlayableId> {
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `name` and `matches` are never used
[INFO] [stderr]   --> src/backend.rs:92:19
[INFO] [stderr]    |
[INFO] [stderr] 90 | impl Filter {
[INFO] [stderr]    | ----------- methods in this implementation
[INFO] [stderr] 91 |
[INFO] [stderr] 92 |     pub(crate) fn name(&self) -> &str {
[INFO] [stderr]    |                   ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 96 |     fn matches(&self, song: &PlayableId, client: &AuthCodeSpotify) -> bool {
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `update_spotify` is never used
[INFO] [stderr]    --> src/backend.rs:103:8
[INFO] [stderr]     |
[INFO] [stderr] 103 | pub fn update_spotify(playlists: &[Playlist], client: &AuthCodeSpotify, user_id: UserId) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_auth` is never used
[INFO] [stderr]    --> src/backend.rs:171:8
[INFO] [stderr]     |
[INFO] [stderr] 171 | pub fn get_auth() -> color_eyre::Result<AuthCodeSpotify> {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `main` is never used
[INFO] [stderr]    --> src/backend.rs:191:8
[INFO] [stderr]     |
[INFO] [stderr] 191 | pub fn main() -> color_eyre::Result<()> {
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `playlists_list_state` is never read
[INFO] [stderr]   --> src/frontend.rs:15:9
[INFO] [stderr]    |
[INFO] [stderr] 14 |     EditingPlaylists {
[INFO] [stderr]    |     ---------------- field in this variant
[INFO] [stderr] 15 |         playlists_list_state: ListState,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Screen` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `EditingSources` and `EditingFilters` are never constructed
[INFO] [stderr]   --> src/frontend.rs:20:5
[INFO] [stderr]    |
[INFO] [stderr] 12 | enum Screen{
[INFO] [stderr]    |      ------ variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 20 |     EditingSources {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 25 |     EditingFilters {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Screen` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `demote` and `promote` are never used
[INFO] [stderr]   --> src/frontend.rs:34:8
[INFO] [stderr]    |
[INFO] [stderr] 32 | impl Screen {
[INFO] [stderr]    | ----------- methods in this implementation
[INFO] [stderr] 33 |
[INFO] [stderr] 34 |     fn demote(self) -> Self {
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 69 |     fn promote(self) -> Self {
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `playlists` and `screen` are never read
[INFO] [stderr]    --> src/frontend.rs:112:5
[INFO] [stderr]     |
[INFO] [stderr] 111 | struct App {
[INFO] [stderr]     |        --- fields in this struct
[INFO] [stderr] 112 |     playlists: Vec<backend::Playlist>,
[INFO] [stderr]     |     ^^^^^^^^^
[INFO] [stderr] 113 |     screen: Screen,
[INFO] [stderr]     |     ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `App` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_items` and `get_items2` are never used
[INFO] [stderr]    --> src/frontend.rs:162:8
[INFO] [stderr]     |
[INFO] [stderr] 120 | impl App {
[INFO] [stderr]     | -------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 162 |     fn get_items(&self) -> [Option<Vec<ListItem>>;3] {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 269 |     fn get_items2(&self) -> [Option<(ListState, Vec<ListItem>)>;3] {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/backend.rs:17:18
[INFO] [stderr]    |
[INFO] [stderr] 17 |     fn get_songs(&self, client: &AuthCodeSpotify) -> Vec<PlayableId> {
[INFO] [stderr]    |                  ^^^^^ the lifetime is elided here       ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 17 |     fn get_songs(&self, client: &AuthCodeSpotify) -> Vec<PlayableId<'_>> {
[INFO] [stderr]    |                                                                    ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/backend.rs:40:18
[INFO] [stderr]    |
[INFO] [stderr] 40 |     fn get_songs(&self, client: &AuthCodeSpotify) -> Vec<PlayableId> {
[INFO] [stderr]    |                  ^^^^^ the lifetime is elided here       ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 40 |     fn get_songs(&self, client: &AuthCodeSpotify) -> Vec<PlayableId<'_>> {
[INFO] [stderr]    |                                                                    ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/backend.rs:65:18
[INFO] [stderr]    |
[INFO] [stderr] 65 |     fn get_songs(&self, client: &AuthCodeSpotify) -> Vec<PlayableId> {
[INFO] [stderr]    |                  ^^^^^ the lifetime is elided here       ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 65 |     fn get_songs(&self, client: &AuthCodeSpotify) -> Vec<PlayableId<'_>> {
[INFO] [stderr]    |                                                                    ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/frontend.rs:162:18
[INFO] [stderr]     |
[INFO] [stderr] 162 |     fn get_items(&self) -> [Option<Vec<ListItem>>;3] {
[INFO] [stderr]     |                  ^^^^^                 ^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                  |
[INFO] [stderr]     |                  the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 162 |     fn get_items(&self) -> [Option<Vec<ListItem<'_>>>;3] {
[INFO] [stderr]     |                                                ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/frontend.rs:269:19
[INFO] [stderr]     |
[INFO] [stderr] 269 |     fn get_items2(&self) -> [Option<(ListState, Vec<ListItem>)>;3] {
[INFO] [stderr]     |                   ^^^^^ the lifetime is elided here ^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 269 |     fn get_items2(&self) -> [Option<(ListState, Vec<ListItem<'_>>)>;3] {
[INFO] [stderr]     |                                                             ++++
[INFO] [stderr] 
[INFO] [stderr] warning: `Autofy` (bin "Autofy" test) generated 34 warnings (run `cargo fix --bin "Autofy" -p Autofy --tests` to apply 18 suggestions)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.24s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/deps/Autofy-5f96a68f9ddfe985)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "d2259ad3c84b2b129a6b0087c0f6e3bd3d1249eda750b3324ff4077179f4adfa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d2259ad3c84b2b129a6b0087c0f6e3bd3d1249eda750b3324ff4077179f4adfa", kill_on_drop: false }`
[INFO] [stdout] d2259ad3c84b2b129a6b0087c0f6e3bd3d1249eda750b3324ff4077179f4adfa
