[INFO] cloning repository https://github.com/Balthazzahr/omatunes
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Balthazzahr/omatunes" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBalthazzahr%2Fomatunes", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBalthazzahr%2Fomatunes'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 9f2bb454a233fae7618b746de32b86b822fe7158
[INFO] checking Balthazzahr/omatunes against 012c0bd4d516934012c9a1ecb26e9eb283d2ed75 for pr-133502-29
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBalthazzahr%2Fomatunes" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Balthazzahr/omatunes
[INFO] finished tweaking git repo https://github.com/Balthazzahr/omatunes
[INFO] tweaked toml for git repo https://github.com/Balthazzahr/omatunes written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Balthazzahr/omatunes on toolchain 012c0bd4d516934012c9a1ecb26e9eb283d2ed75
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+012c0bd4d516934012c9a1ecb26e9eb283d2ed75" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Balthazzahr/omatunes 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" "+012c0bd4d516934012c9a1ecb26e9eb283d2ed75" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded mpris-server v0.8.1
[INFO] [stderr]   Downloaded lofty v0.21.1
[INFO] [stderr]   Downloaded drm-ffi v0.9.1
[INFO] [stderr]   Downloaded drm-sys v0.8.1
[INFO] [stderr]   Downloaded coreaudio-sys v0.2.18
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/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:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] b46301799d863fe200a4133d887530bcd99714d201c509f81819aeeaa1ddadd5
[INFO] running `Command { std: "docker" "start" "b46301799d863fe200a4133d887530bcd99714d201c509f81819aeeaa1ddadd5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b46301799d863fe200a4133d887530bcd99714d201c509f81819aeeaa1ddadd5", 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" "b46301799d863fe200a4133d887530bcd99714d201c509f81819aeeaa1ddadd5" "/opt/rustwide/cargo-home/bin/cargo" "+012c0bd4d516934012c9a1ecb26e9eb283d2ed75" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b46301799d863fe200a4133d887530bcd99714d201c509f81819aeeaa1ddadd5", 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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b46301799d863fe200a4133d887530bcd99714d201c509f81819aeeaa1ddadd5" "/opt/rustwide/cargo-home/bin/cargo" "+012c0bd4d516934012c9a1ecb26e9eb283d2ed75" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]     Checking log v0.4.32
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]     Checking bitflags v2.13.0
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling zerocopy v0.8.52
[INFO] [stderr]    Compiling cc v1.2.63
[INFO] [stderr]     Checking memchr v2.8.1
[INFO] [stderr]    Compiling winnow v1.0.3
[INFO] [stderr]     Checking rustix v1.1.4
[INFO] [stderr]     Checking dlib v0.5.3
[INFO] [stderr]    Compiling wayland-sys v0.31.11
[INFO] [stderr]    Compiling wayland-client v0.31.14
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]     Checking event-listener v5.4.1
[INFO] [stderr]    Compiling wayland-backend v0.3.15
[INFO] [stderr]     Checking futures-lite v2.6.1
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling quick-xml v0.39.4
[INFO] [stderr]    Compiling async-io v2.6.0
[INFO] [stderr]     Checking async-channel v2.5.0
[INFO] [stderr]     Checking either v1.16.0
[INFO] [stderr]     Checking piper v0.2.5
[INFO] [stderr]     Checking rayon v1.12.0
[INFO] [stderr]     Checking async-lock v3.4.2
[INFO] [stderr]    Compiling toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking memmap2 v0.9.10
[INFO] [stderr]     Checking blocking v1.6.2
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking async-executor v1.14.0
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]    Compiling wayland-scanner v0.31.10
[INFO] [stderr]     Checking async-broadcast v0.7.2
[INFO] [stderr]     Checking ordered-stream v0.2.0
[INFO] [stderr]    Compiling toml_edit v0.25.12+spec-1.1.0
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking async-fs v2.2.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking euclid v0.22.14
[INFO] [stderr]    Compiling phf_shared v0.11.3
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]     Checking ahash v0.7.8
[INFO] [stderr]    Compiling proc-macro-crate v3.5.0
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking nix v0.29.0
[INFO] [stderr]    Compiling phf_generator v0.11.3
[INFO] [stderr]     Checking hashbrown v0.12.3
[INFO] [stderr]     Checking xdg-home v1.3.0
[INFO] [stderr]     Checking rustix v0.38.44
[INFO] [stderr]     Checking dirs-sys v0.3.7
[INFO] [stderr]     Checking dirs v4.0.0
[INFO] [stderr]     Checking lyon_geom v1.0.19
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stderr]     Checking zune-inflate v0.2.54
[INFO] [stderr]     Checking ordered-multimap v0.4.3
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]     Checking lyon_path v1.0.19
[INFO] [stderr]     Checking mio v1.2.1
[INFO] [stderr]     Checking rust-ini v0.18.0
[INFO] [stderr]     Checking socket2 v0.6.4
[INFO] [stderr]     Checking fontdb v0.16.2
[INFO] [stderr]     Checking jpeg-decoder v0.3.2
[INFO] [stderr]     Checking spirv v0.3.0+sdk-1.3.268.0
[INFO] [stderr]     Checking gpu-descriptor-types v0.1.2
[INFO] [stderr]     Checking polling v3.11.0
[INFO] [stderr]     Checking gethostname v1.1.0
[INFO] [stderr]     Checking gpu-alloc-types v0.3.0
[INFO] [stderr]     Checking x11rb v0.13.2
[INFO] [stderr]     Checking strict-num v0.1.1
[INFO] [stderr]    Compiling drm-sys v0.8.1
[INFO] [stderr]     Checking unicode-ident v1.0.24
[INFO] [stderr]     Checking unicode-bidi v0.3.18
[INFO] [stderr]     Checking tiff v0.9.1
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zvariant_utils v2.1.0
[INFO] [stderr]     Checking wayland-csd-frame v0.3.0
[INFO] [stderr]     Checking gpu-alloc v0.6.0
[INFO] [stderr]     Checking khronos-egl v6.0.0
[INFO] [stderr]    Compiling wgpu-core v0.19.4
[INFO] [stderr]     Checking wgpu-types v0.19.2
[INFO] [stderr]     Checking glow v0.13.1
[INFO] [stderr]     Checking linux-raw-sys v0.9.4
[INFO] [stderr]     Checking mutate_once v0.1.2
[INFO] [stderr]    Compiling drm-fourcc v2.2.0
[INFO] [stderr]     Checking renderdoc-sys v1.1.0
[INFO] [stderr]     Checking kamadak-exif v0.5.5
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]    Compiling wgpu v0.19.4
[INFO] [stderr]     Checking wayland-protocols v0.32.12
[INFO] [stderr]     Checking wayland-cursor v0.31.14
[INFO] [stderr]    Compiling tiny-xlib v0.2.5
[INFO] [stderr]     Checking svg_fmt v0.4.5
[INFO] [stderr]    Compiling smithay-client-toolkit v0.20.0
[INFO] [stderr]     Checking drm-ffi v0.9.1
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerocopy-derive v0.8.52
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling enumflags2_derive v0.7.12
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking zerofrom v0.1.8
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]     Checking yoke v0.8.3
[INFO] [stderr]     Checking symphonia-core v0.5.5
[INFO] [stderr]    Compiling zvariant_derive v4.2.0
[INFO] [stderr]    Compiling displaydoc v0.2.6
[INFO] [stderr]    Compiling zbus_macros v4.4.0
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]    Compiling profiling-procmacros v1.0.18
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]     Checking zerovec v0.11.6
[INFO] [stderr]     Checking profiling v1.0.18
[INFO] [stderr]     Checking font-types v0.7.3
[INFO] [stderr]     Checking enumflags2 v0.7.12
[INFO] [stderr]    Compiling phf_macros v0.11.3
[INFO] [stderr]     Checking zvariant v4.2.0
[INFO] [stderr]     Checking tinystr v0.8.3
[INFO] [stderr]     Checking icu_locale_core v2.2.0
[INFO] [stderr]     Checking phf v0.11.3
[INFO] [stderr]     Checking potential_utf v0.1.5
[INFO] [stderr]     Checking read-fonts v0.22.7
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking zerotrie v0.2.4
[INFO] [stderr]    Compiling palette_derive v0.7.6
[INFO] [stderr]     Checking futures-executor v0.3.32
[INFO] [stderr]     Checking icu_provider v2.2.0
[INFO] [stderr]     Checking icu_collections v2.2.0
[INFO] [stderr]     Checking symphonia-metadata v0.5.5
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]     Checking futures v0.3.32
[INFO] [stderr]    Compiling zvariant_utils v3.5.0
[INFO] [stderr]     Checking wayland-protocols-wlr v0.3.12
[INFO] [stderr]     Checking palette v0.7.6
[INFO] [stderr]     Checking tokio v1.52.3
[INFO] [stderr]     Checking rustybuzz v0.14.1
[INFO] [stderr]    Compiling equator-macro v0.4.2
[INFO] [stderr]     Checking zbus_names v3.0.0
[INFO] [stderr]    Compiling zvariant_derive v5.13.0
[INFO] [stderr]     Checking equator v0.4.2
[INFO] [stderr]     Checking icu_properties v2.2.0
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking exr v1.74.0
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking icu_normalizer v2.2.0
[INFO] [stderr]     Checking naga v0.19.2
[INFO] [stderr]     Checking tiny-skia-path v0.11.4
[INFO] [stderr]     Checking zbus v4.4.0
[INFO] [stderr]     Checking gpu-descriptor v0.2.4
[INFO] [stderr]     Checking idna_adapter v1.2.2
[INFO] [stderr]     Checking aligned-vec v0.6.4
[INFO] [stderr]     Checking tiny-skia v0.11.4
[INFO] [stderr]     Checking calloop v0.14.4
[INFO] [stderr]     Checking calloop-wayland-source v0.4.1
[INFO] [stderr]     Checking v_frame v0.3.9
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking symphonia-utils-xiph v0.5.5
[INFO] [stderr]     Checking wayland-protocols-experimental v20250721.0.1
[INFO] [stderr]     Checking wayland-protocols-misc v0.3.12
[INFO] [stderr]     Checking calloop v0.13.0
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking image v0.24.9
[INFO] [stderr]     Checking skrifa v0.22.3
[INFO] [stderr]     Checking form_urlencoded v1.2.2
[INFO] [stderr]     Checking as-slice v0.2.1
[INFO] [stderr]    Compiling proc-macro2-diagnostics v0.10.1
[INFO] [stderr]    Compiling av-scenechange v0.14.1
[INFO] [stderr]     Checking ctor v0.10.1
[INFO] [stderr]    Compiling built v0.8.1
[INFO] [stderr]     Checking float_next_after v1.0.0
[INFO] [stderr]    Compiling smithay-client-toolkit v0.19.2
[INFO] [stderr]    Compiling endi v1.1.1
[INFO] [stderr]     Checking ttf-parser v0.25.1
[INFO] [stderr]    Compiling rav1e v0.8.1
[INFO] [stderr]    Compiling zvariant v5.13.0
[INFO] [stderr]     Checking lyon_tessellation v1.0.20
[INFO] [stderr]     Checking swash v0.1.19
[INFO] [stderr]     Checking aligned v0.4.3
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking drm v0.14.1
[INFO] [stderr]     Checking owned_ttf_parser v0.25.1
[INFO] [stderr]     Checking calloop-wayland-source v0.3.0
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]     Checking dark-light v1.1.1
[INFO] [stderr]     Checking etagere v0.2.15
[INFO] [stderr]     Checking iced_core v0.13.2
[INFO] [stderr]     Checking lyon_algorithms v1.0.20
[INFO] [stderr]     Checking no_std_io2 v0.9.4
[INFO] [stderr]     Checking nom v8.0.0
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]    Compiling pastey v0.1.1
[INFO] [stderr]     Checking y4m v0.8.0
[INFO] [stderr]     Checking ab_glyph_rasterizer v0.1.10
[INFO] [stderr]     Checking lru v0.12.5
[INFO] [stderr]    Compiling yansi v1.0.1
[INFO] [stderr]     Checking wgpu-hal v0.19.5
[INFO] [stderr]    Compiling zbus_names v4.3.3
[INFO] [stderr]     Checking ab_glyph v0.2.32
[INFO] [stderr]     Checking iced_futures v0.13.2
[INFO] [stderr]     Checking smithay-clipboard v0.7.3
[INFO] [stderr]     Checking lyon v1.0.19
[INFO] [stderr]     Checking bitstream-io v4.10.0
[INFO] [stderr]     Checking softbuffer v0.4.8
[INFO] [stderr]     Checking cosmic-text v0.12.1
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]     Checking guillotiere v0.6.2
[INFO] [stderr]     Checking async-signal v0.2.14
[INFO] [stderr]     Checking maybe-rayon v0.1.1
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]    Compiling winit v0.30.13
[INFO] [stderr]     Checking itertools v0.14.0
[INFO] [stderr]    Compiling simd_helpers v0.1.0
[INFO] [stderr]     Checking iced_graphics v0.13.0
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking kurbo v0.10.4
[INFO] [stderr]     Checking imgref v1.12.2
[INFO] [stderr]     Checking regex-syntax v0.8.11
[INFO] [stderr]    Compiling audiopus_sys v0.2.2
[INFO] [stderr]    Compiling ouroboros_macro v0.18.5
[INFO] [stderr]     Checking loop9 v0.1.5
[INFO] [stderr]     Checking iced_tiny_skia v0.13.0
[INFO] [stderr]     Checking sctk-adwaita v0.10.1
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking async-process v2.5.0
[INFO] [stderr]    Compiling zbus_macros v5.17.0
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking clipboard_wayland v0.2.2
[INFO] [stderr]     Checking iced_runtime v0.13.2
[INFO] [stderr]     Checking clipboard_x11 v0.4.3
[INFO] [stderr]     Checking wayland-protocols-plasma v0.3.12
[INFO] [stderr]    Compiling async-recursion v1.1.1
[INFO] [stderr]     Checking xkbcommon-dl v0.4.2
[INFO] [stderr]     Checking uuid v1.23.4
[INFO] [stderr]     Checking avif-serialize v0.8.9
[INFO] [stderr]     Checking av1-grain v0.2.5
[INFO] [stderr]     Checking aliasable v0.1.3
[INFO] [stderr]     Checking dpi v0.1.2
[INFO] [stderr]     Checking fax v0.2.7
[INFO] [stderr]     Checking rgb v0.8.53
[INFO] [stderr]     Checking tiff v0.11.3
[INFO] [stderr]     Checking image-webp v0.2.4
[INFO] [stderr]     Checking regex v1.12.4
[INFO] [stderr]     Checking ouroboros v0.18.5
[INFO] [stderr]     Checking moxcms v0.8.1
[INFO] [stderr]     Checking window_clipboard v0.4.1
[INFO] [stderr]     Checking rand v0.9.4
[INFO] [stderr]     Checking alsa-sys v0.3.1
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking async-net v2.0.0
[INFO] [stderr]     Checking gif v0.14.2
[INFO] [stderr]     Checking png v0.18.1
[INFO] [stderr]    Compiling rfd v0.15.4
[INFO] [stderr]     Checking extended v0.1.0
[INFO] [stderr]     Checking zbus v5.17.0
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]     Checking jiff-core v0.1.0
[INFO] [stderr]     Checking anstream v1.0.0
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking transpose v0.2.3
[INFO] [stderr]     Checking symphonia-format-riff v0.5.5
[INFO] [stderr]     Checking alsa v0.9.1
[INFO] [stderr]     Checking jiff v0.2.35
[INFO] [stderr]     Checking env_filter v2.0.0
[INFO] [stderr]     Checking symphonia-format-ogg v0.5.5
[INFO] [stderr]     Checking symphonia-bundle-flac v0.5.5
[INFO] [stderr]     Checking symphonia-format-mkv v0.5.5
[INFO] [stderr]     Checking symphonia-codec-vorbis v0.5.5
[INFO] [stderr]     Checking ravif v0.13.0
[INFO] [stderr]     Checking symphonia-format-isomp4 v0.5.5
[INFO] [stderr]     Checking symphonia-format-caf v0.5.5
[INFO] [stderr]     Checking symphonia-bundle-mp3 v0.5.5
[INFO] [stderr]     Checking symphonia-codec-adpcm v0.5.5
[INFO] [stderr]     Checking image v0.25.10
[INFO] [stderr]     Checking symphonia-codec-alac v0.5.5
[INFO] [stderr]     Checking symphonia-codec-pcm v0.5.5
[INFO] [stderr]     Checking symphonia-codec-aac v0.5.5
[INFO] [stderr]     Checking iced_winit v0.13.0
[INFO] [stderr]    Compiling trait-variant v0.1.2
[INFO] [stderr]    Compiling lofty_attr v0.11.1
[INFO] [stderr]     Checking ogg_pager v0.6.1
[INFO] [stderr]     Checking primal-check v0.3.4
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking pollster v0.4.0
[INFO] [stderr]     Checking chrono v0.4.45
[INFO] [stderr]     Checking env_logger v0.11.11
[INFO] [stderr]     Checking cpal v0.15.3
[INFO] [stderr]     Checking lofty v0.21.1
[INFO] [stderr]     Checking symphonia v0.5.5
[INFO] [stderr]     Checking rustfft v6.4.1
[INFO] [stderr]     Checking mpris-server v0.8.1
[INFO] [stderr]     Checking opus v0.3.1
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking ashpd v0.11.1
[INFO] [stderr]     Checking arboard v3.6.1
[INFO] [stderr]     Checking iced_glyphon v0.6.0
[INFO] [stderr]     Checking iced_wgpu v0.13.5
[INFO] [stderr]     Checking iced_renderer v0.13.0
[INFO] [stderr]     Checking iced_widget v0.13.4
[INFO] [stderr]     Checking iced v0.13.1
[INFO] [stderr]     Checking omatunes v1.2.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `SmartPlaylist`
[INFO] [stdout]  --> src/ui/components/smart_playlist_builder.rs:5:112
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::library::smart_playlist::{RuleField, RuleOperator, DateUnit, SmartPlaylistOrder, SmartPlaylistRule, SmartPlaylist};
[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: `crate::stats::EarnedAchievement`
[INFO] [stdout]     --> src/ui/views/player.rs:1334:9
[INFO] [stdout]      |
[INFO] [stdout] 1334 |     use crate::stats::EarnedAchievement;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/ui/views/charts.rs:1:49
[INFO] [stdout]   |
[INFO] [stdout] 1 | use iced::widget::canvas::{self, Canvas, Frame, Path};
[INFO] [stdout]   |                                                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Size`
[INFO] [stdout]  --> src/ui/views/charts.rs:2:54
[INFO] [stdout]   |
[INFO] [stdout] 2 | use iced::{Color, Element, Length, Point, Rectangle, Size};
[INFO] [stdout]   |                                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ui::theme`
[INFO] [stdout]  --> src/ui/views/charts.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::ui::theme;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SmartPlaylist`
[INFO] [stdout]  --> src/ui/components/smart_playlist_builder.rs:5:112
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::library::smart_playlist::{RuleField, RuleOperator, DateUnit, SmartPlaylistOrder, SmartPlaylistRule, SmartPlaylist};
[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: `crate::stats::EarnedAchievement`
[INFO] [stdout]     --> src/ui/views/player.rs:1334:9
[INFO] [stdout]      |
[INFO] [stdout] 1334 |     use crate::stats::EarnedAchievement;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/ui/views/charts.rs:1:49
[INFO] [stdout]   |
[INFO] [stdout] 1 | use iced::widget::canvas::{self, Canvas, Frame, Path};
[INFO] [stdout]   |                                                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Size`
[INFO] [stdout]  --> src/ui/views/charts.rs:2:54
[INFO] [stdout]   |
[INFO] [stdout] 2 | use iced::{Color, Element, Length, Point, Rectangle, Size};
[INFO] [stdout]   |                                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ui::theme`
[INFO] [stdout]  --> src/ui/views/charts.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::ui::theme;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/components/settings_dialog.rs:162:23
[INFO] [stdout]     |
[INFO] [stdout] 162 |                 .step(0.01);
[INFO] [stdout]     |                       ^^^^ help: explicitly specify the type as `f32`: `0.01_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout]     = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/components/settings_dialog.rs:277:23
[INFO] [stdout]     |
[INFO] [stdout] 277 |                 .step(0.05);
[INFO] [stdout]     |                       ^^^^ help: explicitly specify the type as `f32`: `0.05_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/components/settings_dialog.rs:162:23
[INFO] [stdout]     |
[INFO] [stdout] 162 |                 .step(0.01);
[INFO] [stdout]     |                       ^^^^ help: explicitly specify the type as `f32`: `0.01_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout]     = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/components/settings_dialog.rs:277:23
[INFO] [stdout]     |
[INFO] [stdout] 277 |                 .step(0.05);
[INFO] [stdout]     |                       ^^^^ help: explicitly specify the type as `f32`: `0.05_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/views/player.rs:168:15
[INFO] [stdout]     |
[INFO] [stdout] 168 |         .step(0.01)
[INFO] [stdout]     |               ^^^^ help: explicitly specify the type as `f32`: `0.01_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/views/player.rs:168:15
[INFO] [stdout]     |
[INFO] [stdout] 168 |         .step(0.01)
[INFO] [stdout]     |               ^^^^ help: explicitly specify the type as `f32`: `0.01_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> src/app.rs:5444:13
[INFO] [stdout]      |
[INFO] [stdout] 5355 |             Message::SettingsCustomColorChanged(token, val) => {
[INFO] [stdout]      |             ----------------------------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 5444 |             Message::SettingsCustomColorChanged(token, val) => {
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> src/app.rs:5444:13
[INFO] [stdout]      |
[INFO] [stdout] 5355 |             Message::SettingsCustomColorChanged(token, val) => {
[INFO] [stdout]      |             ----------------------------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 5444 |             Message::SettingsCustomColorChanged(token, val) => {
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `breakdown`
[INFO] [stdout]     --> src/app.rs:6156:21
[INFO] [stdout]      |
[INFO] [stdout] 6156 |         if let Some(ref breakdown) = self.show_period_breakdown {
[INFO] [stdout]      |                     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_breakdown`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `breakdown`
[INFO] [stdout]     --> src/app.rs:6156:21
[INFO] [stdout]      |
[INFO] [stdout] 6156 |         if let Some(ref breakdown) = self.show_period_breakdown {
[INFO] [stdout]      |                     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_breakdown`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/stats.rs:299:22
[INFO] [stdout]     |
[INFO] [stdout] 294 |         "Platinum Crown" => 4,
[INFO] [stdout]     |         ---------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 299 |         "Platinum" | "Platinum Crown" => 4,
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/stats.rs:300:23
[INFO] [stdout]     |
[INFO] [stdout] 295 |         "Legendary Gem" => 5,
[INFO] [stdout]     |         --------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 300 |         "Legendary" | "Legendary Gem" => 5,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `period`
[INFO] [stdout]    --> src/stats.rs:289:30
[INFO] [stdout]     |
[INFO] [stdout] 289 | pub fn get_achievement_score(period: &str, tier: &str) -> u32 {
[INFO] [stdout]     |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_period`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/stats.rs:299:22
[INFO] [stdout]     |
[INFO] [stdout] 294 |         "Platinum Crown" => 4,
[INFO] [stdout]     |         ---------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 299 |         "Platinum" | "Platinum Crown" => 4,
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/stats.rs:300:23
[INFO] [stdout]     |
[INFO] [stdout] 295 |         "Legendary Gem" => 5,
[INFO] [stdout]     |         --------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 300 |         "Legendary" | "Legendary Gem" => 5,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `period`
[INFO] [stdout]    --> src/stats.rs:289:30
[INFO] [stdout]     |
[INFO] [stdout] 289 | pub fn get_achievement_score(period: &str, tier: &str) -> u32 {
[INFO] [stdout]     |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_period`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/stats.rs:489:9
[INFO] [stdout]     |
[INFO] [stdout] 489 |     let mut new_awards = Vec::new();
[INFO] [stdout]     |         ----^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/stats.rs:489:9
[INFO] [stdout]     |
[INFO] [stdout] 489 |     let mut new_awards = Vec::new();
[INFO] [stdout]     |         ----^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/stats.rs:965:13
[INFO] [stdout]     |
[INFO] [stdout] 965 |         let mut has_today_or_yesterday = active_dates.contains(&now) || active_dates.contains(&yesterday);
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/stats.rs:965:13
[INFO] [stdout]     |
[INFO] [stdout] 965 |         let mut has_today_or_yesterday = active_dates.contains(&now) || active_dates.contains(&yesterday);
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `track`
[INFO] [stdout]   --> src/ui/components/playlist_dialog.rs:46:38
[INFO] [stdout]    |
[INFO] [stdout] 46 |         PlaylistDialogMode::AddTrack(track) => {
[INFO] [stdout]    |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_track`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `track`
[INFO] [stdout]   --> src/ui/components/playlist_dialog.rs:46:38
[INFO] [stdout]    |
[INFO] [stdout] 46 |         PlaylistDialogMode::AddTrack(track) => {
[INFO] [stdout]    |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_track`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]    --> src/ui/views/library.rs:674:26
[INFO] [stdout]     |
[INFO] [stdout] 674 |             .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]     |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]    --> src/ui/views/library.rs:154:22
[INFO] [stdout]     |
[INFO] [stdout] 154 |         .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]   --> src/ui/views/library.rs:88:26
[INFO] [stdout]    |
[INFO] [stdout] 88 |             .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]    |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `all_category_row`
[INFO] [stdout]    --> src/ui/views/library.rs:887:9
[INFO] [stdout]     |
[INFO] [stdout] 887 |     let all_category_row: Element<'_, Message> = Space::with_height(0.0).into();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_all_category_row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]    --> src/ui/views/library.rs:674:26
[INFO] [stdout]     |
[INFO] [stdout] 674 |             .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]     |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]    --> src/ui/views/library.rs:154:22
[INFO] [stdout]     |
[INFO] [stdout] 154 |         .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]   --> src/ui/views/library.rs:88:26
[INFO] [stdout]    |
[INFO] [stdout] 88 |             .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]    |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `all_category_row`
[INFO] [stdout]    --> src/ui/views/library.rs:887:9
[INFO] [stdout]     |
[INFO] [stdout] 887 |     let all_category_row: Element<'_, Message> = Space::with_height(0.0).into();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_all_category_row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1841:17
[INFO] [stdout]      |
[INFO] [stdout] 1841 |         .style(|theme: &iced::Theme| iced::widget::container::Style {
[INFO] [stdout]      |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1822:18
[INFO] [stdout]      |
[INFO] [stdout] 1822 |     .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]      |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1780:17
[INFO] [stdout]      |
[INFO] [stdout] 1780 |         .style(|theme: &iced::Theme| iced::widget::container::Style {
[INFO] [stdout]      |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1761:18
[INFO] [stdout]      |
[INFO] [stdout] 1761 |     .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]      |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1636:22
[INFO] [stdout]      |
[INFO] [stdout] 1636 |         .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]      |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1717:21
[INFO] [stdout]      |
[INFO] [stdout] 1717 |             .style(|theme: &iced::Theme| iced::widget::container::Style {
[INFO] [stdout]      |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1698:22
[INFO] [stdout]      |
[INFO] [stdout] 1698 |         .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]      |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1599:17
[INFO] [stdout]      |
[INFO] [stdout] 1599 |         .style(|theme: &iced::Theme| iced::widget::container::Style {
[INFO] [stdout]      |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1581:22
[INFO] [stdout]      |
[INFO] [stdout] 1581 |         .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]      |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1515:17
[INFO] [stdout]      |
[INFO] [stdout] 1515 |         .style(|theme: &iced::Theme| iced::widget::container::Style {
[INFO] [stdout]      |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1484:18
[INFO] [stdout]      |
[INFO] [stdout] 1484 |     .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]      |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1410:21
[INFO] [stdout]      |
[INFO] [stdout] 1410 |             .style(|theme: &iced::Theme| iced::widget::container::Style {
[INFO] [stdout]      |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1378:22
[INFO] [stdout]      |
[INFO] [stdout] 1378 |         .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]      |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1841:17
[INFO] [stdout]      |
[INFO] [stdout] 1841 |         .style(|theme: &iced::Theme| iced::widget::container::Style {
[INFO] [stdout]      |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1822:18
[INFO] [stdout]      |
[INFO] [stdout] 1822 |     .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]      |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1780:17
[INFO] [stdout]      |
[INFO] [stdout] 1780 |         .style(|theme: &iced::Theme| iced::widget::container::Style {
[INFO] [stdout]      |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1761:18
[INFO] [stdout]      |
[INFO] [stdout] 1761 |     .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]      |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1636:22
[INFO] [stdout]      |
[INFO] [stdout] 1636 |         .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]      |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1717:21
[INFO] [stdout]      |
[INFO] [stdout] 1717 |             .style(|theme: &iced::Theme| iced::widget::container::Style {
[INFO] [stdout]      |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1698:22
[INFO] [stdout]      |
[INFO] [stdout] 1698 |         .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]      |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1599:17
[INFO] [stdout]      |
[INFO] [stdout] 1599 |         .style(|theme: &iced::Theme| iced::widget::container::Style {
[INFO] [stdout]      |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1581:22
[INFO] [stdout]      |
[INFO] [stdout] 1581 |         .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]      |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1515:17
[INFO] [stdout]      |
[INFO] [stdout] 1515 |         .style(|theme: &iced::Theme| iced::widget::container::Style {
[INFO] [stdout]      |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1484:18
[INFO] [stdout]      |
[INFO] [stdout] 1484 |     .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]      |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1410:21
[INFO] [stdout]      |
[INFO] [stdout] 1410 |             .style(|theme: &iced::Theme| iced::widget::container::Style {
[INFO] [stdout]      |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1378:22
[INFO] [stdout]      |
[INFO] [stdout] 1378 |         .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]      |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]    --> src/ui/views/player.rs:175:17
[INFO] [stdout]     |
[INFO] [stdout] 175 |         .style(|theme: &iced::Theme| iced::widget::container::Style {
[INFO] [stdout]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `centering_space`
[INFO] [stdout]   --> src/ui/views/player.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let centering_space = if is_allowed { (btn_slot_height - btn_content_height) / 2.0 } else { 0.0 };
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_centering_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]    --> src/ui/views/player.rs:175:17
[INFO] [stdout]     |
[INFO] [stdout] 175 |         .style(|theme: &iced::Theme| iced::widget::container::Style {
[INFO] [stdout]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `centering_space`
[INFO] [stdout]   --> src/ui/views/player.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let centering_space = if is_allowed { (btn_slot_height - btn_content_height) / 2.0 } else { 0.0 };
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_centering_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]     --> src/ui/views/player.rs:1477:14
[INFO] [stdout]      |
[INFO] [stdout] 1477 |         for (idx, item) in page_items.enumerate() {
[INFO] [stdout]      |              ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tier_name`
[INFO] [stdout]     --> src/ui/views/player.rs:1582:21
[INFO] [stdout]      |
[INFO] [stdout] 1582 |                 let tier_name = crate::stats::TIERS[i];
[INFO] [stdout]      |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tier_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]     --> src/ui/views/player.rs:1477:14
[INFO] [stdout]      |
[INFO] [stdout] 1477 |         for (idx, item) in page_items.enumerate() {
[INFO] [stdout]      |              ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tier_name`
[INFO] [stdout]     --> src/ui/views/player.rs:1582:21
[INFO] [stdout]      |
[INFO] [stdout] 1582 |                 let tier_name = crate::stats::TIERS[i];
[INFO] [stdout]      |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tier_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ui/views/spectrum.rs:148:17
[INFO] [stdout]     |
[INFO] [stdout] 148 |             let mut peak_vel = 0.0_f32;
[INFO] [stdout]     |                 ----^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `peak_vel`
[INFO] [stdout]    --> src/ui/views/spectrum.rs:148:17
[INFO] [stdout]     |
[INFO] [stdout] 148 |             let mut peak_vel = 0.0_f32;
[INFO] [stdout]     |                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_peak_vel`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ui/views/spectrum.rs:148:17
[INFO] [stdout]     |
[INFO] [stdout] 148 |             let mut peak_vel = 0.0_f32;
[INFO] [stdout]     |                 ----^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `peak_vel`
[INFO] [stdout]    --> src/ui/views/spectrum.rs:148:17
[INFO] [stdout]     |
[INFO] [stdout] 148 |             let mut peak_vel = 0.0_f32;
[INFO] [stdout]     |                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_peak_vel`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `curtain_t`
[INFO] [stdout]    --> src/ui/views/spectrum.rs:588:17
[INFO] [stdout]     |
[INFO] [stdout] 588 |             let curtain_t = (c as f32 + 1.0) / num_curtains as f32;
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_curtain_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `neon_purple`
[INFO] [stdout]    --> src/ui/views/spectrum.rs:645:13
[INFO] [stdout]     |
[INFO] [stdout] 645 |         let neon_purple = Color::from_rgb(0.50, 0.0, 0.85);   // #8000d9
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_neon_purple`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sunset_orange`
[INFO] [stdout]    --> src/ui/views/spectrum.rs:646:13
[INFO] [stdout]     |
[INFO] [stdout] 646 |         let sunset_orange = Color::from_rgb(1.0, 0.40, 0.0); // #ff6600
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sunset_orange`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `curtain_t`
[INFO] [stdout]    --> src/ui/views/spectrum.rs:588:17
[INFO] [stdout]     |
[INFO] [stdout] 588 |             let curtain_t = (c as f32 + 1.0) / num_curtains as f32;
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_curtain_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `neon_purple`
[INFO] [stdout]    --> src/ui/views/spectrum.rs:645:13
[INFO] [stdout]     |
[INFO] [stdout] 645 |         let neon_purple = Color::from_rgb(0.50, 0.0, 0.85);   // #8000d9
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_neon_purple`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sunset_orange`
[INFO] [stdout]    --> src/ui/views/spectrum.rs:646:13
[INFO] [stdout]     |
[INFO] [stdout] 646 |         let sunset_orange = Color::from_rgb(1.0, 0.40, 0.0); // #ff6600
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sunset_orange`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `header_view` is never used
[INFO] [stdout]     --> src/app.rs:7389:8
[INFO] [stdout]      |
[INFO] [stdout]  750 | impl AppState {
[INFO] [stdout]      | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 7389 |     fn header_view(&self) -> Element<'_, Message> {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sidebar_width_path` is never used
[INFO] [stdout]     --> src/app.rs:7644:4
[INFO] [stdout]      |
[INFO] [stdout] 7644 | fn sidebar_width_path() -> PathBuf {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_sidebar_width` is never used
[INFO] [stdout]     --> src/app.rs:7650:4
[INFO] [stdout]      |
[INFO] [stdout] 7650 | fn load_sidebar_width() -> f32 {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_sidebar_width` is never used
[INFO] [stdout]     --> src/app.rs:7658:4
[INFO] [stdout]      |
[INFO] [stdout] 7658 | fn save_sidebar_width(width: f32) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `right_panel_width_path` is never used
[INFO] [stdout]     --> src/app.rs:7666:4
[INFO] [stdout]      |
[INFO] [stdout] 7666 | fn right_panel_width_path() -> PathBuf {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_right_panel_width` is never used
[INFO] [stdout]     --> src/app.rs:7672:4
[INFO] [stdout]      |
[INFO] [stdout] 7672 | fn load_right_panel_width() -> Option<f32> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_right_panel_width` is never used
[INFO] [stdout]     --> src/app.rs:7678:4
[INFO] [stdout]      |
[INFO] [stdout] 7678 | fn save_right_panel_width(width: f32) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_stat_row` is never used
[INFO] [stdout]    --> src/ui/views/player.rs:341:4
[INFO] [stdout]     |
[INFO] [stdout] 341 | fn render_stat_row(label: String, value: String) -> Element<'static, Message> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_leaderboard_minutes` is never used
[INFO] [stdout]    --> src/ui/views/player.rs:351:4
[INFO] [stdout]     |
[INFO] [stdout] 351 | fn render_leaderboard_minutes(title: String, entries: Vec<(String, f64)>) -> Element<'static, Message> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_leaderboard_counts` is never used
[INFO] [stdout]    --> src/ui/views/player.rs:381:4
[INFO] [stdout]     |
[INFO] [stdout] 381 | fn render_leaderboard_counts(title: String, entries: Vec<(String, u32)>) -> Element<'static, Message> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `header_view` is never used
[INFO] [stdout]     --> src/app.rs:7389:8
[INFO] [stdout]      |
[INFO] [stdout]  750 | impl AppState {
[INFO] [stdout]      | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 7389 |     fn header_view(&self) -> Element<'_, Message> {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sidebar_width_path` is never used
[INFO] [stdout]     --> src/app.rs:7644:4
[INFO] [stdout]      |
[INFO] [stdout] 7644 | fn sidebar_width_path() -> PathBuf {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_sidebar_width` is never used
[INFO] [stdout]     --> src/app.rs:7650:4
[INFO] [stdout]      |
[INFO] [stdout] 7650 | fn load_sidebar_width() -> f32 {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_sidebar_width` is never used
[INFO] [stdout]     --> src/app.rs:7658:4
[INFO] [stdout]      |
[INFO] [stdout] 7658 | fn save_sidebar_width(width: f32) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `right_panel_width_path` is never used
[INFO] [stdout]     --> src/app.rs:7666:4
[INFO] [stdout]      |
[INFO] [stdout] 7666 | fn right_panel_width_path() -> PathBuf {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_right_panel_width` is never used
[INFO] [stdout]     --> src/app.rs:7672:4
[INFO] [stdout]      |
[INFO] [stdout] 7672 | fn load_right_panel_width() -> Option<f32> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_right_panel_width` is never used
[INFO] [stdout]     --> src/app.rs:7678:4
[INFO] [stdout]      |
[INFO] [stdout] 7678 | fn save_right_panel_width(width: f32) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_stat_row` is never used
[INFO] [stdout]    --> src/ui/views/player.rs:341:4
[INFO] [stdout]     |
[INFO] [stdout] 341 | fn render_stat_row(label: String, value: String) -> Element<'static, Message> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_leaderboard_minutes` is never used
[INFO] [stdout]    --> src/ui/views/player.rs:351:4
[INFO] [stdout]     |
[INFO] [stdout] 351 | fn render_leaderboard_minutes(title: String, entries: Vec<(String, f64)>) -> Element<'static, Message> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_leaderboard_counts` is never used
[INFO] [stdout]    --> src/ui/views/player.rs:381:4
[INFO] [stdout]     |
[INFO] [stdout] 381 | fn render_leaderboard_counts(title: String, entries: Vec<(String, u32)>) -> Element<'static, Message> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/bin/test_opus_read.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::path::Path;
[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::path::Path`
[INFO] [stdout]  --> src/bin/test_opus_read.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::path::Path;
[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::path::Path`
[INFO] [stdout]  --> src/bin/test_scan_full.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::path::Path;
[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::path::Path`
[INFO] [stdout]  --> src/bin/test_scan_full.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::path::Path;
[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: `spectrum::SpectrumAnalyzer`
[INFO] [stdout]  --> src/audio/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use spectrum::SpectrumAnalyzer;
[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: `models::Track`
[INFO] [stdout]  --> src/library/mod.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use models::Track;
[INFO] [stdout]   |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SmartPlaylist`
[INFO] [stdout]  --> src/ui/components/smart_playlist_builder.rs:5:112
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::library::smart_playlist::{RuleField, RuleOperator, DateUnit, SmartPlaylistOrder, SmartPlaylistRule, SmartPlaylist};
[INFO] [stdout]   |                                                                                                                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::stats::EarnedAchievement`
[INFO] [stdout]     --> src/ui/views/player.rs:1334:9
[INFO] [stdout]      |
[INFO] [stdout] 1334 |     use crate::stats::EarnedAchievement;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/ui/views/charts.rs:1:49
[INFO] [stdout]   |
[INFO] [stdout] 1 | use iced::widget::canvas::{self, Canvas, Frame, Path};
[INFO] [stdout]   |                                                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Size`
[INFO] [stdout]  --> src/ui/views/charts.rs:2:54
[INFO] [stdout]   |
[INFO] [stdout] 2 | use iced::{Color, Element, Length, Point, Rectangle, Size};
[INFO] [stdout]   |                                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ui::theme`
[INFO] [stdout]  --> src/ui/views/charts.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::ui::theme;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `spectrum::SpectrumAnalyzer`
[INFO] [stdout]  --> src/audio/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use spectrum::SpectrumAnalyzer;
[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: `models::Track`
[INFO] [stdout]  --> src/library/mod.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use models::Track;
[INFO] [stdout]   |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SmartPlaylist`
[INFO] [stdout]  --> src/ui/components/smart_playlist_builder.rs:5:112
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::library::smart_playlist::{RuleField, RuleOperator, DateUnit, SmartPlaylistOrder, SmartPlaylistRule, SmartPlaylist};
[INFO] [stdout]   |                                                                                                                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::stats::EarnedAchievement`
[INFO] [stdout]     --> src/ui/views/player.rs:1334:9
[INFO] [stdout]      |
[INFO] [stdout] 1334 |     use crate::stats::EarnedAchievement;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/ui/views/charts.rs:1:49
[INFO] [stdout]   |
[INFO] [stdout] 1 | use iced::widget::canvas::{self, Canvas, Frame, Path};
[INFO] [stdout]   |                                                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Size`
[INFO] [stdout]  --> src/ui/views/charts.rs:2:54
[INFO] [stdout]   |
[INFO] [stdout] 2 | use iced::{Color, Element, Length, Point, Rectangle, Size};
[INFO] [stdout]   |                                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ui::theme`
[INFO] [stdout]  --> src/ui/views/charts.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::ui::theme;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/components/settings_dialog.rs:162:23
[INFO] [stdout]     |
[INFO] [stdout] 162 |                 .step(0.01);
[INFO] [stdout]     |                       ^^^^ help: explicitly specify the type as `f32`: `0.01_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout]     = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/components/settings_dialog.rs:277:23
[INFO] [stdout]     |
[INFO] [stdout] 277 |                 .step(0.05);
[INFO] [stdout]     |                       ^^^^ help: explicitly specify the type as `f32`: `0.05_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/components/settings_dialog.rs:162:23
[INFO] [stdout]     |
[INFO] [stdout] 162 |                 .step(0.01);
[INFO] [stdout]     |                       ^^^^ help: explicitly specify the type as `f32`: `0.01_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout]     = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/components/settings_dialog.rs:277:23
[INFO] [stdout]     |
[INFO] [stdout] 277 |                 .step(0.05);
[INFO] [stdout]     |                       ^^^^ help: explicitly specify the type as `f32`: `0.05_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/views/player.rs:168:15
[INFO] [stdout]     |
[INFO] [stdout] 168 |         .step(0.01)
[INFO] [stdout]     |               ^^^^ help: explicitly specify the type as `f32`: `0.01_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/views/player.rs:168:15
[INFO] [stdout]     |
[INFO] [stdout] 168 |         .step(0.01)
[INFO] [stdout]     |               ^^^^ help: explicitly specify the type as `f32`: `0.01_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> src/app.rs:5444:13
[INFO] [stdout]      |
[INFO] [stdout] 5355 |             Message::SettingsCustomColorChanged(token, val) => {
[INFO] [stdout]      |             ----------------------------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 5444 |             Message::SettingsCustomColorChanged(token, val) => {
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> src/app.rs:5444:13
[INFO] [stdout]      |
[INFO] [stdout] 5355 |             Message::SettingsCustomColorChanged(token, val) => {
[INFO] [stdout]      |             ----------------------------------------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 5444 |             Message::SettingsCustomColorChanged(token, val) => {
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `breakdown`
[INFO] [stdout]     --> src/app.rs:6156:21
[INFO] [stdout]      |
[INFO] [stdout] 6156 |         if let Some(ref breakdown) = self.show_period_breakdown {
[INFO] [stdout]      |                     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_breakdown`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `breakdown`
[INFO] [stdout]     --> src/app.rs:6156:21
[INFO] [stdout]      |
[INFO] [stdout] 6156 |         if let Some(ref breakdown) = self.show_period_breakdown {
[INFO] [stdout]      |                     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_breakdown`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/stats.rs:299:22
[INFO] [stdout]     |
[INFO] [stdout] 294 |         "Platinum Crown" => 4,
[INFO] [stdout]     |         ---------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 299 |         "Platinum" | "Platinum Crown" => 4,
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/stats.rs:300:23
[INFO] [stdout]     |
[INFO] [stdout] 295 |         "Legendary Gem" => 5,
[INFO] [stdout]     |         --------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 300 |         "Legendary" | "Legendary Gem" => 5,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `period`
[INFO] [stdout]    --> src/stats.rs:289:30
[INFO] [stdout]     |
[INFO] [stdout] 289 | pub fn get_achievement_score(period: &str, tier: &str) -> u32 {
[INFO] [stdout]     |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_period`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/stats.rs:489:9
[INFO] [stdout]     |
[INFO] [stdout] 489 |     let mut new_awards = Vec::new();
[INFO] [stdout]     |         ----^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/stats.rs:965:13
[INFO] [stdout]     |
[INFO] [stdout] 965 |         let mut has_today_or_yesterday = active_dates.contains(&now) || active_dates.contains(&yesterday);
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/stats.rs:299:22
[INFO] [stdout]     |
[INFO] [stdout] 294 |         "Platinum Crown" => 4,
[INFO] [stdout]     |         ---------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 299 |         "Platinum" | "Platinum Crown" => 4,
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/stats.rs:300:23
[INFO] [stdout]     |
[INFO] [stdout] 295 |         "Legendary Gem" => 5,
[INFO] [stdout]     |         --------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 300 |         "Legendary" | "Legendary Gem" => 5,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `period`
[INFO] [stdout]    --> src/stats.rs:289:30
[INFO] [stdout]     |
[INFO] [stdout] 289 | pub fn get_achievement_score(period: &str, tier: &str) -> u32 {
[INFO] [stdout]     |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_period`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/stats.rs:489:9
[INFO] [stdout]     |
[INFO] [stdout] 489 |     let mut new_awards = Vec::new();
[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: `track`
[INFO] [stdout]   --> src/ui/components/playlist_dialog.rs:46:38
[INFO] [stdout]    |
[INFO] [stdout] 46 |         PlaylistDialogMode::AddTrack(track) => {
[INFO] [stdout]    |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_track`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/stats.rs:965:13
[INFO] [stdout]     |
[INFO] [stdout] 965 |         let mut has_today_or_yesterday = active_dates.contains(&now) || active_dates.contains(&yesterday);
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `track`
[INFO] [stdout]   --> src/ui/components/playlist_dialog.rs:46:38
[INFO] [stdout]    |
[INFO] [stdout] 46 |         PlaylistDialogMode::AddTrack(track) => {
[INFO] [stdout]    |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_track`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]    --> src/ui/views/library.rs:674:26
[INFO] [stdout]     |
[INFO] [stdout] 674 |             .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]     |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]    --> src/ui/views/library.rs:154:22
[INFO] [stdout]     |
[INFO] [stdout] 154 |         .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]   --> src/ui/views/library.rs:88:26
[INFO] [stdout]    |
[INFO] [stdout] 88 |             .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]    |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `all_category_row`
[INFO] [stdout]    --> src/ui/views/library.rs:887:9
[INFO] [stdout]     |
[INFO] [stdout] 887 |     let all_category_row: Element<'_, Message> = Space::with_height(0.0).into();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_all_category_row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1841:17
[INFO] [stdout]      |
[INFO] [stdout] 1841 |         .style(|theme: &iced::Theme| iced::widget::container::Style {
[INFO] [stdout]      |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1822:18
[INFO] [stdout]      |
[INFO] [stdout] 1822 |     .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]      |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1780:17
[INFO] [stdout]      |
[INFO] [stdout] 1780 |         .style(|theme: &iced::Theme| iced::widget::container::Style {
[INFO] [stdout]      |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1761:18
[INFO] [stdout]      |
[INFO] [stdout] 1761 |     .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]      |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1636:22
[INFO] [stdout]      |
[INFO] [stdout] 1636 |         .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]      |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1717:21
[INFO] [stdout]      |
[INFO] [stdout] 1717 |             .style(|theme: &iced::Theme| iced::widget::container::Style {
[INFO] [stdout]      |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1698:22
[INFO] [stdout]      |
[INFO] [stdout] 1698 |         .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]      |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1599:17
[INFO] [stdout]      |
[INFO] [stdout] 1599 |         .style(|theme: &iced::Theme| iced::widget::container::Style {
[INFO] [stdout]      |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1581:22
[INFO] [stdout]      |
[INFO] [stdout] 1581 |         .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]      |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1515:17
[INFO] [stdout]      |
[INFO] [stdout] 1515 |         .style(|theme: &iced::Theme| iced::widget::container::Style {
[INFO] [stdout]      |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1484:18
[INFO] [stdout]      |
[INFO] [stdout] 1484 |     .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]      |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1410:21
[INFO] [stdout]      |
[INFO] [stdout] 1410 |             .style(|theme: &iced::Theme| iced::widget::container::Style {
[INFO] [stdout]      |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1378:22
[INFO] [stdout]      |
[INFO] [stdout] 1378 |         .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]      |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]    --> src/ui/views/player.rs:175:17
[INFO] [stdout]     |
[INFO] [stdout] 175 |         .style(|theme: &iced::Theme| iced::widget::container::Style {
[INFO] [stdout]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `centering_space`
[INFO] [stdout]   --> src/ui/views/player.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let centering_space = if is_allowed { (btn_slot_height - btn_content_height) / 2.0 } else { 0.0 };
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_centering_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]     --> src/ui/views/player.rs:1477:14
[INFO] [stdout]      |
[INFO] [stdout] 1477 |         for (idx, item) in page_items.enumerate() {
[INFO] [stdout]      |              ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tier_name`
[INFO] [stdout]     --> src/ui/views/player.rs:1582:21
[INFO] [stdout]      |
[INFO] [stdout] 1582 |                 let tier_name = crate::stats::TIERS[i];
[INFO] [stdout]      |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tier_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]    --> src/ui/views/library.rs:674:26
[INFO] [stdout]     |
[INFO] [stdout] 674 |             .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]     |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]    --> src/ui/views/library.rs:154:22
[INFO] [stdout]     |
[INFO] [stdout] 154 |         .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]   --> src/ui/views/library.rs:88:26
[INFO] [stdout]    |
[INFO] [stdout] 88 |             .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]    |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `all_category_row`
[INFO] [stdout]    --> src/ui/views/library.rs:887:9
[INFO] [stdout]     |
[INFO] [stdout] 887 |     let all_category_row: Element<'_, Message> = Space::with_height(0.0).into();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_all_category_row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ui/views/spectrum.rs:148:17
[INFO] [stdout]     |
[INFO] [stdout] 148 |             let mut peak_vel = 0.0_f32;
[INFO] [stdout]     |                 ----^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `peak_vel`
[INFO] [stdout]    --> src/ui/views/spectrum.rs:148:17
[INFO] [stdout]     |
[INFO] [stdout] 148 |             let mut peak_vel = 0.0_f32;
[INFO] [stdout]     |                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_peak_vel`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `curtain_t`
[INFO] [stdout]    --> src/ui/views/spectrum.rs:588:17
[INFO] [stdout]     |
[INFO] [stdout] 588 |             let curtain_t = (c as f32 + 1.0) / num_curtains as f32;
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_curtain_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `neon_purple`
[INFO] [stdout]    --> src/ui/views/spectrum.rs:645:13
[INFO] [stdout]     |
[INFO] [stdout] 645 |         let neon_purple = Color::from_rgb(0.50, 0.0, 0.85);   // #8000d9
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_neon_purple`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sunset_orange`
[INFO] [stdout]    --> src/ui/views/spectrum.rs:646:13
[INFO] [stdout]     |
[INFO] [stdout] 646 |         let sunset_orange = Color::from_rgb(1.0, 0.40, 0.0); // #ff6600
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sunset_orange`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1841:17
[INFO] [stdout]      |
[INFO] [stdout] 1841 |         .style(|theme: &iced::Theme| iced::widget::container::Style {
[INFO] [stdout]      |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1822:18
[INFO] [stdout]      |
[INFO] [stdout] 1822 |     .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]      |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1780:17
[INFO] [stdout]      |
[INFO] [stdout] 1780 |         .style(|theme: &iced::Theme| iced::widget::container::Style {
[INFO] [stdout]      |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1761:18
[INFO] [stdout]      |
[INFO] [stdout] 1761 |     .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]      |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1636:22
[INFO] [stdout]      |
[INFO] [stdout] 1636 |         .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]      |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1717:21
[INFO] [stdout]      |
[INFO] [stdout] 1717 |             .style(|theme: &iced::Theme| iced::widget::container::Style {
[INFO] [stdout]      |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1698:22
[INFO] [stdout]      |
[INFO] [stdout] 1698 |         .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]      |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1599:17
[INFO] [stdout]      |
[INFO] [stdout] 1599 |         .style(|theme: &iced::Theme| iced::widget::container::Style {
[INFO] [stdout]      |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1581:22
[INFO] [stdout]      |
[INFO] [stdout] 1581 |         .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]      |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1515:17
[INFO] [stdout]      |
[INFO] [stdout] 1515 |         .style(|theme: &iced::Theme| iced::widget::container::Style {
[INFO] [stdout]      |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1484:18
[INFO] [stdout]      |
[INFO] [stdout] 1484 |     .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]      |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1410:21
[INFO] [stdout]      |
[INFO] [stdout] 1410 |             .style(|theme: &iced::Theme| iced::widget::container::Style {
[INFO] [stdout]      |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]     --> src/ui/views/library.rs:1378:22
[INFO] [stdout]      |
[INFO] [stdout] 1378 |         .style(move |theme: &iced::Theme, status: iced::widget::button::Status| {
[INFO] [stdout]      |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `theme`
[INFO] [stdout]    --> src/ui/views/player.rs:175:17
[INFO] [stdout]     |
[INFO] [stdout] 175 |         .style(|theme: &iced::Theme| iced::widget::container::Style {
[INFO] [stdout]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `centering_space`
[INFO] [stdout]   --> src/ui/views/player.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let centering_space = if is_allowed { (btn_slot_height - btn_content_height) / 2.0 } else { 0.0 };
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_centering_space`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `created_at` is never read
[INFO] [stdout]   --> src/app.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub struct StatsNotification {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub created_at: std::time::Instant,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `StatsNotification` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> src/app.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub enum Message {
[INFO] [stdout]     |          ------- variants in this enum
[INFO] [stdout] 122 |     SelectFolder(PathBuf),
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 123 |     FolderScanned(PathBuf, Vec<Track>),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 124 |
[INFO] [stdout] 125 |     PlayTrack(Track),
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 126 |     PlayTracks(Vec<Track>),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 127 |     PlayAlbum(String),
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     AddToPlaylist(String, Track),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 170 |     CreatePlaylist(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     SortBy(SortColumn),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     PlaylistDialogToggleAddAlbum(bool),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 233 |     RenamePlaylist(String, String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     OpenShortcuts,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 260 |     AddAlbumToPlaylist(String, String),         // (AlbumName, PlaylistName)
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     MoveColumnLeft(crate::db::TableColumn),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 275 |     MoveColumnRight(crate::db::TableColumn),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 287 |     HoverSidebarSearch(bool),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 310 |     SettingsLanguageChanged(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 311 |     SettingsSeekStepChanged(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 312 |     SettingsVolumeStepChanged(f32),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 350 |     SelectQueueTrack(usize, Track),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 351 |     RemoveQueueTrack(usize),
[INFO] [stdout] 352 |     MoveQueueTrackUp(usize),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 353 |     MoveQueueTrackDown(usize),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Message` 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 `header_view` is never used
[INFO] [stdout]     --> src/app.rs:7389:8
[INFO] [stdout]      |
[INFO] [stdout]  750 | impl AppState {
[INFO] [stdout]      | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 7389 |     fn header_view(&self) -> Element<'_, Message> {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sidebar_width_path` is never used
[INFO] [stdout]     --> src/app.rs:7644:4
[INFO] [stdout]      |
[INFO] [stdout] 7644 | fn sidebar_width_path() -> PathBuf {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_sidebar_width` is never used
[INFO] [stdout]     --> src/app.rs:7650:4
[INFO] [stdout]      |
[INFO] [stdout] 7650 | fn load_sidebar_width() -> f32 {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_sidebar_width` is never used
[INFO] [stdout]     --> src/app.rs:7658:4
[INFO] [stdout]      |
[INFO] [stdout] 7658 | fn save_sidebar_width(width: f32) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `right_panel_width_path` is never used
[INFO] [stdout]     --> src/app.rs:7666:4
[INFO] [stdout]      |
[INFO] [stdout] 7666 | fn right_panel_width_path() -> PathBuf {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_right_panel_width` is never used
[INFO] [stdout]     --> src/app.rs:7672:4
[INFO] [stdout]      |
[INFO] [stdout] 7672 | fn load_right_panel_width() -> Option<f32> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_right_panel_width` is never used
[INFO] [stdout]     --> src/app.rs:7678:4
[INFO] [stdout]      |
[INFO] [stdout] 7678 | fn save_right_panel_width(width: f32) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Next` and `Previous` are never constructed
[INFO] [stdout]   --> src/audio/player.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub enum AudioCommand {
[INFO] [stdout]    |          ------------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 65 |     Next,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 66 |     Previous,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AudioCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `path` is never read
[INFO] [stdout]   --> src/audio/player.rs:71:15
[INFO] [stdout]    |
[INFO] [stdout] 71 |     Playing { path: PathBuf },
[INFO] [stdout]    |     -------   ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AudioEvent` 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: struct `Artist` is never constructed
[INFO] [stdout]   --> src/library/models.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub struct Artist {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Playlist` is never constructed
[INFO] [stdout]   --> src/library/models.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub struct Playlist {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `snapshot` is never used
[INFO] [stdout]   --> src/library/pending.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn snapshot() -> Vec<(PathBuf, bool)> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_empty` is never used
[INFO] [stdout]   --> src/library/pending.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn is_empty() -> bool {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `len` is never used
[INFO] [stdout]   --> src/library/pending.rs:39:8
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn len() -> usize {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flush_all` is never used
[INFO] [stdout]   --> src/library/pending.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub fn flush_all() -> usize {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_like_status` is never used
[INFO] [stdout]   --> src/library/scanner.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn write_like_status(path: &Path, is_liked: bool) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sidebar_folders` is never read
[INFO] [stdout]  --> src/locale.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Strings {
[INFO] [stdout]   |            ------- field in this struct
[INFO] [stdout] 6 |     pub sidebar_folders:  &'static str,
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PeriodStats` is never constructed
[INFO] [stdout]    --> src/stats.rs:850:12
[INFO] [stdout]     |
[INFO] [stdout] 850 | pub struct PeriodStats {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StreakStats` is never constructed
[INFO] [stdout]    --> src/stats.rs:863:12
[INFO] [stdout]     |
[INFO] [stdout] 863 | pub struct StreakStats {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UniqueStats` is never constructed
[INFO] [stdout]    --> src/stats.rs:869:12
[INFO] [stdout]     |
[INFO] [stdout] 869 | pub struct UniqueStats {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_period_stats` is never used
[INFO] [stdout]    --> src/stats.rs:879:8
[INFO] [stdout]     |
[INFO] [stdout] 879 | pub fn get_period_stats() -> PeriodStats {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_streak_stats` is never used
[INFO] [stdout]    --> src/stats.rs:946:8
[INFO] [stdout]     |
[INFO] [stdout] 946 | pub fn get_streak_stats() -> StreakStats {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_unique_stats` is never used
[INFO] [stdout]     --> src/stats.rs:1006:8
[INFO] [stdout]      |
[INFO] [stdout] 1006 | pub fn get_unique_stats(all_tracks: &[crate::library::models::Track]) -> UniqueStats {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_combined_monthly_leaderboard` is never used
[INFO] [stdout]     --> src/stats.rs:1052:8
[INFO] [stdout]      |
[INFO] [stdout] 1052 | pub fn get_combined_monthly_leaderboard() -> Vec<(String, f64, u32)> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_combined_all_time_leaderboard` is never used
[INFO] [stdout]     --> src/stats.rs:1082:8
[INFO] [stdout]      |
[INFO] [stdout] 1082 | pub fn get_combined_all_time_leaderboard() -> Vec<(String, f64, u32)> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RowStats` is never constructed
[INFO] [stdout]     --> src/stats.rs:1108:12
[INFO] [stdout]      |
[INFO] [stdout] 1108 | pub struct RowStats {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_restructured_stats` is never used
[INFO] [stdout]     --> src/stats.rs:1455:8
[INFO] [stdout]      |
[INFO] [stdout] 1455 | pub fn get_restructured_stats(tracks: &[crate::library::models::Track]) -> Vec<RowStats> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SmartPlaylistBuilderEventEx` is never used
[INFO] [stdout]    --> src/ui/components/smart_playlist_builder.rs:501:10
[INFO] [stdout]     |
[INFO] [stdout] 501 | pub enum SmartPlaylistBuilderEventEx {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICON_REPEAT_ONE` is never used
[INFO] [stdout]   --> src/ui/icons.rs:37:11
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub const ICON_REPEAT_ONE: &str = "\u{f1b8}";  //
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICON_VOL_MUTE` is never used
[INFO] [stdout]   --> src/ui/icons.rs:39:11
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub const ICON_VOL_MUTE: &str = "\u{f026}";  //
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICON_TRASH` is never used
[INFO] [stdout]   --> src/ui/icons.rs:45:11
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub const ICON_TRASH:      &str = "\u{f1f8}";  //
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICON_COPY` is never used
[INFO] [stdout]   --> src/ui/icons.rs:46:11
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub const ICON_COPY:       &str = "\u{f0c5}";  //
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICON_STATS` is never used
[INFO] [stdout]   --> src/ui/icons.rs:50:11
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub const ICON_STATS:      &str = "\u{f0126}"; // nf-md-chart-bar
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICON_CALENDAR_TODAY` is never used
[INFO] [stdout]   --> src/ui/icons.rs:51:11
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub const ICON_CALENDAR_TODAY: &str = "\u{f00ea}"; // nf-md-calendar-today
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICON_CALENDAR_MONTH` is never used
[INFO] [stdout]   --> src/ui/icons.rs:52:11
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub const ICON_CALENDAR_MONTH: &str = "\u{f0e17}"; // nf-md-calendar-month
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICON_CLOCK` is never used
[INFO] [stdout]   --> src/ui/icons.rs:60:11
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub const ICON_CLOCK:      &str = "\u{f017}";  // clock (nf-fa-clock_o)
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICON_TROPHY_FA` is never used
[INFO] [stdout]   --> src/ui/icons.rs:64:11
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub const ICON_TROPHY_FA:     &str = "\u{f091}"; // trophy (nf-fa-trophy)
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICON_AWARD` is never used
[INFO] [stdout]   --> src/ui/icons.rs:65:11
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub const ICON_AWARD:         &str = "\u{f559}"; // award ribbon (nf-fa-award)
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICON_MEDAL` is never used
[INFO] [stdout]   --> src/ui/icons.rs:66:11
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub const ICON_MEDAL:         &str = "\u{f5a2}"; // medal with star (nf-fa-medal)
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICON_HEADPHONES` is never used
[INFO] [stdout]   --> src/ui/icons.rs:86:11
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub const ICON_HEADPHONES:   &str = "\u{f025}";  // nf-fa-headphones — Bronze
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICON_STAR` is never used
[INFO] [stdout]   --> src/ui/icons.rs:87:11
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub const ICON_STAR:         &str = "\u{f005}";  // nf-fa-star — Silver
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICON_ARROW_DOWN` is never used
[INFO] [stdout]   --> src/ui/icons.rs:89:11
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub const ICON_ARROW_DOWN:   &str = "\u{f063}";  // nf-fa-arrow_down
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `color_to_hex` is never used
[INFO] [stdout]    --> src/ui/theme.rs:145:8
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub fn color_to_hex(c: Color) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blue` is never used
[INFO] [stdout]    --> src/ui/theme.rs:455:11
[INFO] [stdout]     |
[INFO] [stdout] 455 | color_fn!(blue,     blue);
[INFO] [stdout]     |           ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `color_fn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `header` is never used
[INFO] [stdout]    --> src/ui/theme.rs:486:8
[INFO] [stdout]     |
[INFO] [stdout] 486 | pub fn header(_: &iced::Theme) -> container::Style {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_stat_row` is never used
[INFO] [stdout]    --> src/ui/views/player.rs:341:4
[INFO] [stdout]     |
[INFO] [stdout] 341 | fn render_stat_row(label: String, value: String) -> Element<'static, Message> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_leaderboard_minutes` is never used
[INFO] [stdout]    --> src/ui/views/player.rs:351:4
[INFO] [stdout]     |
[INFO] [stdout] 351 | fn render_leaderboard_minutes(title: String, entries: Vec<(String, f64)>) -> Element<'static, Message> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_leaderboard_counts` is never used
[INFO] [stdout]    --> src/ui/views/player.rs:381:4
[INFO] [stdout]     |
[INFO] [stdout] 381 | fn render_leaderboard_counts(title: String, entries: Vec<(String, u32)>) -> Element<'static, Message> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PieSlice` is never constructed
[INFO] [stdout]  --> src/ui/views/charts.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct PieSlice {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PieChartProgram` is never constructed
[INFO] [stdout]   --> src/ui/views/charts.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct PieChartProgram {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `view_pie_chart` is never used
[INFO] [stdout]   --> src/ui/views/charts.rs:72:8
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub fn view_pie_chart(slices: Vec<PieSlice>) -> Element<'static, Message> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `idx`
[INFO] [stdout]     --> src/ui/views/player.rs:1477:14
[INFO] [stdout]      |
[INFO] [stdout] 1477 |         for (idx, item) in page_items.enumerate() {
[INFO] [stdout]      |              ^^^ help: if this is intentional, prefix it with an underscore: `_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tier_name`
[INFO] [stdout]     --> src/ui/views/player.rs:1582:21
[INFO] [stdout]      |
[INFO] [stdout] 1582 |                 let tier_name = crate::stats::TIERS[i];
[INFO] [stdout]      |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tier_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ui/views/spectrum.rs:148:17
[INFO] [stdout]     |
[INFO] [stdout] 148 |             let mut peak_vel = 0.0_f32;
[INFO] [stdout]     |                 ----^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `peak_vel`
[INFO] [stdout]    --> src/ui/views/spectrum.rs:148:17
[INFO] [stdout]     |
[INFO] [stdout] 148 |             let mut peak_vel = 0.0_f32;
[INFO] [stdout]     |                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_peak_vel`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `curtain_t`
[INFO] [stdout]    --> src/ui/views/spectrum.rs:588:17
[INFO] [stdout]     |
[INFO] [stdout] 588 |             let curtain_t = (c as f32 + 1.0) / num_curtains as f32;
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_curtain_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `neon_purple`
[INFO] [stdout]    --> src/ui/views/spectrum.rs:645:13
[INFO] [stdout]     |
[INFO] [stdout] 645 |         let neon_purple = Color::from_rgb(0.50, 0.0, 0.85);   // #8000d9
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_neon_purple`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sunset_orange`
[INFO] [stdout]    --> src/ui/views/spectrum.rs:646:13
[INFO] [stdout]     |
[INFO] [stdout] 646 |         let sunset_orange = Color::from_rgb(1.0, 0.40, 0.0); // #ff6600
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sunset_orange`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `created_at` is never read
[INFO] [stdout]   --> src/app.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub struct StatsNotification {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub created_at: std::time::Instant,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `StatsNotification` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> src/app.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub enum Message {
[INFO] [stdout]     |          ------- variants in this enum
[INFO] [stdout] 122 |     SelectFolder(PathBuf),
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 123 |     FolderScanned(PathBuf, Vec<Track>),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 124 |
[INFO] [stdout] 125 |     PlayTrack(Track),
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 126 |     PlayTracks(Vec<Track>),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 127 |     PlayAlbum(String),
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     AddToPlaylist(String, Track),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 170 |     CreatePlaylist(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     SortBy(SortColumn),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     PlaylistDialogToggleAddAlbum(bool),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 233 |     RenamePlaylist(String, String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     OpenShortcuts,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 260 |     AddAlbumToPlaylist(String, String),         // (AlbumName, PlaylistName)
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     MoveColumnLeft(crate::db::TableColumn),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 275 |     MoveColumnRight(crate::db::TableColumn),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 287 |     HoverSidebarSearch(bool),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 310 |     SettingsLanguageChanged(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 311 |     SettingsSeekStepChanged(String),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 312 |     SettingsVolumeStepChanged(f32),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 350 |     SelectQueueTrack(usize, Track),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 351 |     RemoveQueueTrack(usize),
[INFO] [stdout] 352 |     MoveQueueTrackUp(usize),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 353 |     MoveQueueTrackDown(usize),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Message` 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 `header_view` is never used
[INFO] [stdout]     --> src/app.rs:7389:8
[INFO] [stdout]      |
[INFO] [stdout]  750 | impl AppState {
[INFO] [stdout]      | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 7389 |     fn header_view(&self) -> Element<'_, Message> {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sidebar_width_path` is never used
[INFO] [stdout]     --> src/app.rs:7644:4
[INFO] [stdout]      |
[INFO] [stdout] 7644 | fn sidebar_width_path() -> PathBuf {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_sidebar_width` is never used
[INFO] [stdout]     --> src/app.rs:7650:4
[INFO] [stdout]      |
[INFO] [stdout] 7650 | fn load_sidebar_width() -> f32 {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_sidebar_width` is never used
[INFO] [stdout]     --> src/app.rs:7658:4
[INFO] [stdout]      |
[INFO] [stdout] 7658 | fn save_sidebar_width(width: f32) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `right_panel_width_path` is never used
[INFO] [stdout]     --> src/app.rs:7666:4
[INFO] [stdout]      |
[INFO] [stdout] 7666 | fn right_panel_width_path() -> PathBuf {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_right_panel_width` is never used
[INFO] [stdout]     --> src/app.rs:7672:4
[INFO] [stdout]      |
[INFO] [stdout] 7672 | fn load_right_panel_width() -> Option<f32> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_right_panel_width` is never used
[INFO] [stdout]     --> src/app.rs:7678:4
[INFO] [stdout]      |
[INFO] [stdout] 7678 | fn save_right_panel_width(width: f32) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Next` and `Previous` are never constructed
[INFO] [stdout]   --> src/audio/player.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub enum AudioCommand {
[INFO] [stdout]    |          ------------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 65 |     Next,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 66 |     Previous,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AudioCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `path` is never read
[INFO] [stdout]   --> src/audio/player.rs:71:15
[INFO] [stdout]    |
[INFO] [stdout] 71 |     Playing { path: PathBuf },
[INFO] [stdout]    |     -------   ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AudioEvent` 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: struct `Artist` is never constructed
[INFO] [stdout]   --> src/library/models.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub struct Artist {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Playlist` is never constructed
[INFO] [stdout]   --> src/library/models.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub struct Playlist {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `snapshot` is never used
[INFO] [stdout]   --> src/library/pending.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn snapshot() -> Vec<(PathBuf, bool)> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_empty` is never used
[INFO] [stdout]   --> src/library/pending.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn is_empty() -> bool {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `len` is never used
[INFO] [stdout]   --> src/library/pending.rs:39:8
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn len() -> usize {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flush_all` is never used
[INFO] [stdout]   --> src/library/pending.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub fn flush_all() -> usize {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_like_status` is never used
[INFO] [stdout]   --> src/library/scanner.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn write_like_status(path: &Path, is_liked: bool) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sidebar_folders` is never read
[INFO] [stdout]  --> src/locale.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Strings {
[INFO] [stdout]   |            ------- field in this struct
[INFO] [stdout] 6 |     pub sidebar_folders:  &'static str,
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PeriodStats` is never constructed
[INFO] [stdout]    --> src/stats.rs:850:12
[INFO] [stdout]     |
[INFO] [stdout] 850 | pub struct PeriodStats {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StreakStats` is never constructed
[INFO] [stdout]    --> src/stats.rs:863:12
[INFO] [stdout]     |
[INFO] [stdout] 863 | pub struct StreakStats {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UniqueStats` is never constructed
[INFO] [stdout]    --> src/stats.rs:869:12
[INFO] [stdout]     |
[INFO] [stdout] 869 | pub struct UniqueStats {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_period_stats` is never used
[INFO] [stdout]    --> src/stats.rs:879:8
[INFO] [stdout]     |
[INFO] [stdout] 879 | pub fn get_period_stats() -> PeriodStats {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_streak_stats` is never used
[INFO] [stdout]    --> src/stats.rs:946:8
[INFO] [stdout]     |
[INFO] [stdout] 946 | pub fn get_streak_stats() -> StreakStats {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_unique_stats` is never used
[INFO] [stdout]     --> src/stats.rs:1006:8
[INFO] [stdout]      |
[INFO] [stdout] 1006 | pub fn get_unique_stats(all_tracks: &[crate::library::models::Track]) -> UniqueStats {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_combined_monthly_leaderboard` is never used
[INFO] [stdout]     --> src/stats.rs:1052:8
[INFO] [stdout]      |
[INFO] [stdout] 1052 | pub fn get_combined_monthly_leaderboard() -> Vec<(String, f64, u32)> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_combined_all_time_leaderboard` is never used
[INFO] [stdout]     --> src/stats.rs:1082:8
[INFO] [stdout]      |
[INFO] [stdout] 1082 | pub fn get_combined_all_time_leaderboard() -> Vec<(String, f64, u32)> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RowStats` is never constructed
[INFO] [stdout]     --> src/stats.rs:1108:12
[INFO] [stdout]      |
[INFO] [stdout] 1108 | pub struct RowStats {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_restructured_stats` is never used
[INFO] [stdout]     --> src/stats.rs:1455:8
[INFO] [stdout]      |
[INFO] [stdout] 1455 | pub fn get_restructured_stats(tracks: &[crate::library::models::Track]) -> Vec<RowStats> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SmartPlaylistBuilderEventEx` is never used
[INFO] [stdout]    --> src/ui/components/smart_playlist_builder.rs:501:10
[INFO] [stdout]     |
[INFO] [stdout] 501 | pub enum SmartPlaylistBuilderEventEx {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICON_REPEAT_ONE` is never used
[INFO] [stdout]   --> src/ui/icons.rs:37:11
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub const ICON_REPEAT_ONE: &str = "\u{f1b8}";  //
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICON_VOL_MUTE` is never used
[INFO] [stdout]   --> src/ui/icons.rs:39:11
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub const ICON_VOL_MUTE: &str = "\u{f026}";  //
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICON_TRASH` is never used
[INFO] [stdout]   --> src/ui/icons.rs:45:11
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub const ICON_TRASH:      &str = "\u{f1f8}";  //
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICON_COPY` is never used
[INFO] [stdout]   --> src/ui/icons.rs:46:11
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub const ICON_COPY:       &str = "\u{f0c5}";  //
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICON_STATS` is never used
[INFO] [stdout]   --> src/ui/icons.rs:50:11
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub const ICON_STATS:      &str = "\u{f0126}"; // nf-md-chart-bar
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICON_CALENDAR_TODAY` is never used
[INFO] [stdout]   --> src/ui/icons.rs:51:11
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub const ICON_CALENDAR_TODAY: &str = "\u{f00ea}"; // nf-md-calendar-today
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICON_CALENDAR_MONTH` is never used
[INFO] [stdout]   --> src/ui/icons.rs:52:11
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub const ICON_CALENDAR_MONTH: &str = "\u{f0e17}"; // nf-md-calendar-month
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICON_CLOCK` is never used
[INFO] [stdout]   --> src/ui/icons.rs:60:11
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub const ICON_CLOCK:      &str = "\u{f017}";  // clock (nf-fa-clock_o)
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICON_TROPHY_FA` is never used
[INFO] [stdout]   --> src/ui/icons.rs:64:11
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub const ICON_TROPHY_FA:     &str = "\u{f091}"; // trophy (nf-fa-trophy)
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICON_AWARD` is never used
[INFO] [stdout]   --> src/ui/icons.rs:65:11
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub const ICON_AWARD:         &str = "\u{f559}"; // award ribbon (nf-fa-award)
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICON_MEDAL` is never used
[INFO] [stdout]   --> src/ui/icons.rs:66:11
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub const ICON_MEDAL:         &str = "\u{f5a2}"; // medal with star (nf-fa-medal)
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICON_HEADPHONES` is never used
[INFO] [stdout]   --> src/ui/icons.rs:86:11
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub const ICON_HEADPHONES:   &str = "\u{f025}";  // nf-fa-headphones — Bronze
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICON_STAR` is never used
[INFO] [stdout]   --> src/ui/icons.rs:87:11
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub const ICON_STAR:         &str = "\u{f005}";  // nf-fa-star — Silver
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ICON_ARROW_DOWN` is never used
[INFO] [stdout]   --> src/ui/icons.rs:89:11
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub const ICON_ARROW_DOWN:   &str = "\u{f063}";  // nf-fa-arrow_down
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `color_to_hex` is never used
[INFO] [stdout]    --> src/ui/theme.rs:145:8
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub fn color_to_hex(c: Color) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blue` is never used
[INFO] [stdout]    --> src/ui/theme.rs:455:11
[INFO] [stdout]     |
[INFO] [stdout] 455 | color_fn!(blue,     blue);
[INFO] [stdout]     |           ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `color_fn` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `header` is never used
[INFO] [stdout]    --> src/ui/theme.rs:486:8
[INFO] [stdout]     |
[INFO] [stdout] 486 | pub fn header(_: &iced::Theme) -> container::Style {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_stat_row` is never used
[INFO] [stdout]    --> src/ui/views/player.rs:341:4
[INFO] [stdout]     |
[INFO] [stdout] 341 | fn render_stat_row(label: String, value: String) -> Element<'static, Message> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_leaderboard_minutes` is never used
[INFO] [stdout]    --> src/ui/views/player.rs:351:4
[INFO] [stdout]     |
[INFO] [stdout] 351 | fn render_leaderboard_minutes(title: String, entries: Vec<(String, f64)>) -> Element<'static, Message> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_leaderboard_counts` is never used
[INFO] [stdout]    --> src/ui/views/player.rs:381:4
[INFO] [stdout]     |
[INFO] [stdout] 381 | fn render_leaderboard_counts(title: String, entries: Vec<(String, u32)>) -> Element<'static, Message> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PieSlice` is never constructed
[INFO] [stdout]  --> src/ui/views/charts.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct PieSlice {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PieChartProgram` is never constructed
[INFO] [stdout]   --> src/ui/views/charts.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct PieChartProgram {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `view_pie_chart` is never used
[INFO] [stdout]   --> src/ui/views/charts.rs:72:8
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub fn view_pie_chart(slices: Vec<PieSlice>) -> Element<'static, Message> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5m 04s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nix v0.29.0, wgpu v0.19.4, wgpu-core v0.19.4, wgpu-hal v0.19.5, winit v0.30.13
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] running `Command { std: "docker" "inspect" "b46301799d863fe200a4133d887530bcd99714d201c509f81819aeeaa1ddadd5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b46301799d863fe200a4133d887530bcd99714d201c509f81819aeeaa1ddadd5", kill_on_drop: false }`
[INFO] [stdout] b46301799d863fe200a4133d887530bcd99714d201c509f81819aeeaa1ddadd5
