[INFO] cloning repository https://github.com/lukitaz-r/rustlink
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/lukitaz-r/rustlink" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flukitaz-r%2Frustlink", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flukitaz-r%2Frustlink'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7175f6c309c59913fe47b4f778efd292fafa60f6
[INFO] testing lukitaz-r/rustlink against 1.97.0-beta.6 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flukitaz-r%2Frustlink" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/lukitaz-r/rustlink
[INFO] finished tweaking git repo https://github.com/lukitaz-r/rustlink
[INFO] tweaked toml for git repo https://github.com/lukitaz-r/rustlink written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/lukitaz-r/rustlink on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/lukitaz-r/rustlink 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" "+1.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded zmij v1.0.3
[INFO] [stderr]   Downloaded compression-codecs v0.4.35
[INFO] [stderr]   Downloaded async-compression v0.4.36
[INFO] [stderr]   Downloaded find-msvc-tools v0.1.6
[INFO] [stderr]   Downloaded fastwebsockets v0.6.0
[INFO] [stderr]   Downloaded cc v1.2.51
[INFO] [stderr]   Downloaded serde_json v1.0.148
[INFO] [stderr]   Downloaded sysinfo v0.26.9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 7612e34453eb6e4f9e44a1341c68aeef74e4324708e9c1eb19db31f2a6692ec1
[INFO] running `Command { std: "docker" "start" "7612e34453eb6e4f9e44a1341c68aeef74e4324708e9c1eb19db31f2a6692ec1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7612e34453eb6e4f9e44a1341c68aeef74e4324708e9c1eb19db31f2a6692ec1", 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" "7612e34453eb6e4f9e44a1341c68aeef74e4324708e9c1eb19db31f2a6692ec1" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7612e34453eb6e4f9e44a1341c68aeef74e4324708e9c1eb19db31f2a6692ec1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7612e34453eb6e4f9e44a1341c68aeef74e4324708e9c1eb19db31f2a6692ec1" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.22
[INFO] [stderr]    Compiling libc v0.2.178
[INFO] [stderr]    Compiling bytes v1.11.0
[INFO] [stderr]    Compiling find-msvc-tools v0.1.6
[INFO] [stderr]    Compiling futures-core v0.3.31
[INFO] [stderr]    Compiling futures-sink v0.3.31
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling slab v0.4.11
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling zerocopy v0.8.31
[INFO] [stderr]    Compiling indexmap v2.12.1
[INFO] [stderr]    Compiling alloc-no-stdlib v2.0.4
[INFO] [stderr]    Compiling rustls-pki-types v1.13.2
[INFO] [stderr]    Compiling openssl v0.10.75
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.104
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling cc v1.2.51
[INFO] [stderr]    Compiling alloc-stdlib v0.2.2
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling rustls v0.23.35
[INFO] [stderr]    Compiling brotli-decompressor v5.0.0
[INFO] [stderr]    Compiling ipnet v2.11.0
[INFO] [stderr]    Compiling zmij v1.0.3
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]    Compiling flate2 v1.1.5
[INFO] [stderr]    Compiling compression-core v0.4.31
[INFO] [stderr]    Compiling serde_json v1.0.148
[INFO] [stderr]    Compiling utf-8 v0.7.6
[INFO] [stderr]    Compiling ryu v1.0.22
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling webpki-roots v1.0.4
[INFO] [stderr]    Compiling regex-syntax v0.8.8
[INFO] [stderr]    Compiling data-encoding v2.9.0
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling syn v2.0.111
[INFO] [stderr]    Compiling matchit v0.8.4
[INFO] [stderr]    Compiling simdutf8 v0.1.5
[INFO] [stderr]    Compiling iana-time-zone v0.1.64
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling socket2 v0.6.1
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling brotli v8.0.2
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling chrono v0.4.42
[INFO] [stderr]    Compiling openssl-sys v0.9.111
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling axum-core v0.5.6
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling sysinfo v0.26.9
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling compression-codecs v0.4.35
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling rustls-webpki v0.103.8
[INFO] [stderr]    Compiling tokio v1.48.0
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.7
[INFO] [stderr]    Compiling tungstenite v0.21.0
[INFO] [stderr]    Compiling tokio-util v0.7.17
[INFO] [stderr]    Compiling tower v0.5.2
[INFO] [stderr]    Compiling async-compression v0.4.36
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling fastwebsockets v0.6.0
[INFO] [stderr]    Compiling tokio-tungstenite v0.21.0
[INFO] [stderr]    Compiling h2 v0.4.12
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling hyper-util v0.1.19
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling axum v0.8.8
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling rustlink v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `decode_track`
[INFO] [stdout]  --> src/api/players.rs:2:20
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::utils::{decode_track, send_response};
[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::managers::player_manager::PlayerManager`
[INFO] [stdout]  --> src/api/players.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::managers::player_manager::PlayerManager;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/api/players.rs:6:22
[INFO] [stdout]   |
[INFO] [stdout] 6 |     extract::{State, Path},
[INFO] [stdout]   |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Utc`
[INFO] [stdout]   --> src/api/sessions.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use chrono::Utc;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]  --> src/managers/connection_manager.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::time::{Duration, Instant};
[INFO] [stdout]   |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::time::interval`
[INFO] [stdout]  --> src/managers/connection_manager.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use tokio::time::interval;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::stats::RustlinkMock`
[INFO] [stdout]  --> src/managers/connection_manager.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::types::stats::RustlinkMock;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SystemTime` and `UNIX_EPOCH`
[INFO] [stdout]  --> src/managers/rate_limit_manager.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::time::{SystemTime, UNIX_EPOCH};
[INFO] [stdout]   |                 ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::PI`
[INFO] [stdout]  --> src/playback/filters/chorus.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::f32::consts::PI;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::stats::RustlinkMock`
[INFO] [stdout]  --> src/playback/player.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::types::stats::RustlinkMock;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `json`
[INFO] [stdout]  --> src/sources/youtube/common.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | use serde_json::{json, Value};
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `logger`
[INFO] [stdout]  --> src/sources/youtube/common.rs:5:34
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::utils::{encode_track, logger};
[INFO] [stdout]   |                                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `logger`
[INFO] [stdout]  --> src/sources/youtube/clients/android.rs:2:34
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::utils::{make_request, logger};
[INFO] [stdout]   |                                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `YoutubeUrlType` and `check_url_type`
[INFO] [stdout]  --> src/sources/youtube/clients/android.rs:4:52
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::sources::youtube::common::{build_track, check_url_type, YoutubeUrlType};
[INFO] [stdout]   |                                                    ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::utils::logger`
[INFO] [stdout]  --> src/sources/youtube/clients/android_vr.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::utils::logger;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `logger` and `make_request`
[INFO] [stdout]  --> src/sources/youtube/youtube.rs:3:20
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::utils::{make_request, logger};
[INFO] [stdout]   |                    ^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RequestOptions`
[INFO] [stdout]  --> src/sources/youtube/youtube.rs:4:26
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::types::http::{RequestOptions, NodelinkMock};
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Value` and `json`
[INFO] [stdout]  --> src/sources/youtube/cipher_manager.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | use serde_json::{json, Value};
[INFO] [stdout]   |                  ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `logger` and `make_request`
[INFO] [stdout]  --> src/sources/youtube/cipher_manager.rs:2:20
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::utils::{make_request, logger};
[INFO] [stdout]   |                    ^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RequestOptions`
[INFO] [stdout]  --> src/sources/youtube/cipher_manager.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::types::http::{RequestOptions, NodelinkMock};
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Value` and `json`
[INFO] [stdout]  --> src/sources/youtube/oauth.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | use serde_json::{json, Value};
[INFO] [stdout]   |                  ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `logger` and `make_request`
[INFO] [stdout]  --> src/sources/youtube/oauth.rs:2:20
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::utils::{make_request, logger};
[INFO] [stdout]   |                    ^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RequestOptions`
[INFO] [stdout]  --> src/sources/youtube/oauth.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::types::http::{RequestOptions, NodelinkMock};
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `client::*`
[INFO] [stdout]   --> src/types/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use client::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `http::*`
[INFO] [stdout]   --> src/types/mod.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use http::*;
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `logger::*`
[INFO] [stdout]   --> src/types/mod.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use logger::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `stats::*`
[INFO] [stdout]   --> src/types/mod.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use stats::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tracks::*`
[INFO] [stdout]   --> src/types/mod.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub use tracks::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `versions::*`
[INFO] [stdout]   --> src/types/mod.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use versions::*;
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `json`
[INFO] [stdout]  --> src/utils/makeRequest.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | use serde_json::{json, Value};
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StatusCode`
[INFO] [stdout]  --> src/utils/makeRequest.rs:6:34
[INFO] [stdout]   |
[INFO] [stdout] 6 | use reqwest::{header::*, Method, StatusCode, Client};
[INFO] [stdout]   |                                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `check_for_updates::check_for_updates`
[INFO] [stdout]   --> src/utils/mod.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub use check_for_updates::check_for_updates;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `generate_random_letters::generate_random_letters`
[INFO] [stdout]   --> src/utils/mod.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub use generate_random_letters::generate_random_letters;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `http1_make_request::http1_make_request`
[INFO] [stdout]   --> src/utils/mod.rs:68:9
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub use http1_make_request::http1_make_request;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `internal_logger::init_logger`
[INFO] [stdout]   --> src/utils/mod.rs:69:9
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub use internal_logger::init_logger;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `load_hls::load_hls`
[INFO] [stdout]   --> src/utils/mod.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub use load_hls::load_hls;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `load_hls_playlist::load_hls_playlist`
[INFO] [stdout]   --> src/utils/mod.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub use load_hls_playlist::load_hls_playlist;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parse_client::parse_client`
[INFO] [stdout]   --> src/utils/mod.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub use parse_client::parse_client;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parse_semver::parse_semver`
[INFO] [stdout]   --> src/utils/mod.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub use parse_semver::parse_semver;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `send_error_response::send_error_response`
[INFO] [stdout]   --> src/utils/mod.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub use send_error_response::send_error_response;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `validate_property::validate_property`
[INFO] [stdout]   --> src/utils/mod.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub use validate_property::validate_property;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `verify_discord_id::verify_discord_id`
[INFO] [stdout]   --> src/utils/mod.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub use verify_discord_id::verify_discord_id;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `verify_method::verify_method`
[INFO] [stdout]   --> src/utils/mod.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub use verify_method::verify_method;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `version::VersionResult`
[INFO] [stdout]   --> src/utils/mod.rs:81:9
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub use version::VersionResult;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session`
[INFO] [stdout]   --> src/api/sessions.rs:28:17
[INFO] [stdout]    |
[INFO] [stdout] 28 |     if let Some(session) = rustlink_write.sessions.get_mut(&session_id) {
[INFO] [stdout]    |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_time`
[INFO] [stdout]   --> src/managers/connection_manager.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let start_time = Instant::now();
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/playback/filters/chorus.rs:26:13
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let mut lfos = [
[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/playback/filters/phaser.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let mut left_lfo = Lfo::new(Waveform::Sine, 0.0, 1.0);
[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/playback/filters/phaser.rs:33:13
[INFO] [stdout]    |
[INFO] [stdout] 33 |         let mut right_lfo = Lfo::new(Waveform::Sine, 0.0, 1.0);
[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/sources/youtube/common.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let mut title = String::from("Unknown Title");
[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/sources/youtube/common.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let mut author = String::from("Unknown Author");
[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/sources/youtube/common.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |     let mut length_ms = 0;
[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/sources/youtube/common.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let mut is_stream = true;
[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/sources/youtube/common.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let mut artwork_url = None;
[INFO] [stdout]    |         ----^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `full_api_response`
[INFO] [stdout]   --> src/sources/youtube/common.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     full_api_response: Option<&Value>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_full_api_response`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `uri` is never read
[INFO] [stdout]   --> src/sources/youtube/common.rs:48:19
[INFO] [stdout]    |
[INFO] [stdout] 48 |     let mut uri = String::new();
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 78 |     uri = if is_yt_music { format!("https://music.youtube.com/watch?v={}", vid) } else { format!("https://www.youtube.com/watch?v={}...
[INFO] [stdout]    |     --- `uri` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/utils/getStats.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let mut frame_stats = if players > 0 {
[INFO] [stdout]   |         ----^^^^^^^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TEST_FILE_URL` is never used
[INFO] [stdout]  --> src/managers/connection_manager.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const TEST_FILE_URL: &str = "http://cachefly.cachefly.net/10mb.test";
[INFO] [stdout]   |       ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `status`, `metrics`, and `is_checking` are never read
[INFO] [stdout]   --> src/managers/connection_manager.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct ConnectionManager {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     status: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 14 |     metrics: serde_json::Value,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 15 |     is_checking: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `check_connection` is never used
[INFO] [stdout]   --> src/managers/connection_manager.rs:36:18
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl ConnectionManager {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub async fn check_connection(&mut self) {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IpData` is never constructed
[INFO] [stdout]  --> src/managers/dos_protection_manager.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct IpData {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DosProtectionManager` is never constructed
[INFO] [stdout]   --> src/managers/dos_protection_manager.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct DosProtectionManager {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `check` are never used
[INFO] [stdout]   --> src/managers/dos_protection_manager.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl DosProtectionManager {
[INFO] [stdout]    | ------------------------- associated items in this implementation
[INFO] [stdout] 16 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn check(&mut self, remote_address: &str) -> Result<(), String> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `lyrics_sources` is never read
[INFO] [stdout]  --> src/managers/lyrics_manager.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct LyricsManager {
[INFO] [stdout]   |            ------------- field in this struct
[INFO] [stdout] 7 |     lyrics_sources: HashMap<String, LyricsSource>,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `session_id` is never read
[INFO] [stdout]  --> src/managers/player_manager.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct PlayerManager {
[INFO] [stdout]   |            ------------- field in this struct
[INFO] [stdout] 7 |     sender: mpsc::Sender<AudioEngineCommand>,
[INFO] [stdout] 8 |     session_id: String,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `PlayerManager` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/managers/player_manager.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl PlayerManager {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 12 |     pub fn new(sender: mpsc::Sender<AudioEngineCommand>, session_id: String) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub async fn create(&self, guild_id: String, user_id: String, voice: Option<Value>) -> Result<Value, String> {
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub async fn play(&self, guild_id: String, track_payload: Value) -> Result<Value, String> {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub async fn stop(&self, guild_id: String) -> Result<Value, String> {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub async fn pause(&self, guild_id: String, should_pause: bool) -> Result<Value, String> {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub async fn seek(&self, guild_id: String, position: i64) -> Result<Value, String> {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub async fn set_volume(&self, guild_id: String, level: u64) -> Result<Value, String> {
[INFO] [stdout]    |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |         pub async fn set_voice(&self, guild_id: String, session_id: String, token: String, endpoint: String) -> Result<Value, String> {
[INFO] [stdout]    |                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RateLimitEntry` is never constructed
[INFO] [stdout]  --> src/managers/rate_limit_manager.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct RateLimitEntry {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RateLimitManager` is never constructed
[INFO] [stdout]  --> src/managers/rate_limit_manager.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct RateLimitManager {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `check` are never used
[INFO] [stdout]   --> src/managers/rate_limit_manager.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl RateLimitManager {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] 14 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn check(&mut self, _identifier: &str) -> bool {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `ip_blocks` and `banned_ips` are never read
[INFO] [stdout]  --> src/managers/route_planner_manager.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct RoutePlannerManager {
[INFO] [stdout]   |            ------------------- fields in this struct
[INFO] [stdout] 4 |     ip_blocks: Vec<String>,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 5 |     banned_ips: HashMap<String, u128>,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_ip`, `ban_ip`, and `free_ip` are never used
[INFO] [stdout]   --> src/managers/route_planner_manager.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl RoutePlannerManager {
[INFO] [stdout]    | ------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn get_ip(&self) -> Option<String> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn ban_ip(&mut self, ip: String) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn free_ip(&mut self, ip: &str) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id`, `user_id`, and `client_info` are never read
[INFO] [stdout]   --> src/managers/session_manager.rs:9:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct Session {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout]  9 |     pub id: String,
[INFO] [stdout]    |         ^^
[INFO] [stdout] 10 |     pub user_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 11 |     pub client_info: Option<Value>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `audio_engine_sender` is never read
[INFO] [stdout]   --> src/managers/session_manager.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct SessionManager {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 16 |     pub sessions: HashMap<String, Session>,
[INFO] [stdout] 17 |     audio_engine_sender: mpsc::Sender<AudioEngineCommand>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `create` and `delete` are never used
[INFO] [stdout]   --> src/managers/session_manager.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl SessionManager {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn create(&mut self, _request: &Value, _client_info: Option<Value>) -> String {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn delete(&mut self, session_id: &str) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `stats` is never read
[INFO] [stdout]  --> src/managers/stats_manager.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct StatsManager {
[INFO] [stdout]   |            ------------ field in this struct
[INFO] [stdout] 6 |     stats: Arc<Mutex<serde_json::Value>>,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `StatsManager` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_snapshot` is never used
[INFO] [stdout]   --> src/managers/stats_manager.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl StatsManager {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn get_snapshot(&self) -> serde_json::Value {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x1`, `y1`, and `a` are never read
[INFO] [stdout]  --> src/playback/filters/dsp/allpass.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct Allpass {
[INFO] [stdout]   |            ------- fields in this struct
[INFO] [stdout] 2 |     x1: f32,
[INFO] [stdout]   |     ^^
[INFO] [stdout] 3 |     y1: f32,
[INFO] [stdout]   |     ^^
[INFO] [stdout] 4 |     a: f32,
[INFO] [stdout]   |     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_coefficient` and `process` are never used
[INFO] [stdout]   --> src/playback/filters/dsp/allpass.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl Allpass {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn set_coefficient(&mut self, a: f32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn process(&mut self, sample: f32) -> f32 {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp_16_bit` is never used
[INFO] [stdout]  --> src/playback/filters/dsp/clamp_16_bit.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn clamp_16_bit(sample: f32) -> i16 {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `buffer`, `size`, and `write_index` are never read
[INFO] [stdout]  --> src/playback/filters/dsp/delay.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct DelayLine {
[INFO] [stdout]   |            --------- fields in this struct
[INFO] [stdout] 2 |     buffer: Vec<i16>,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 3 |     size: usize,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 4 |     write_index: usize,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `write`, `read`, and `clear` are never used
[INFO] [stdout]   --> src/playback/filters/dsp/delay.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl DelayLine {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn write(&mut self, sample: i16) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn read(&self, delay_in_samples: f32) -> i16 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SAMPLE_RATE` is never used
[INFO] [stdout]  --> src/playback/filters/dsp/lfo.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const SAMPLE_RATE: f32 = 48000.0;
[INFO] [stdout]   |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `phase` and `waveform` are never read
[INFO] [stdout]  --> src/playback/filters/dsp/lfo.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Lfo {
[INFO] [stdout]   |            --- fields in this struct
[INFO] [stdout] 7 |     phase: f32,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 8 |     waveform: Waveform,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_waveform`, `get_value`, and `process` are never used
[INFO] [stdout]   --> src/playback/filters/dsp/lfo.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Lfo {
[INFO] [stdout]    | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn set_waveform(&mut self, waveform: Waveform) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn get_value(&mut self) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn process(&mut self) -> f32 {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Square`, `Sawtooth`, and `Triangle` are never constructed
[INFO] [stdout]  --> src/playback/filters/dsp/waves.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum Waveform {
[INFO] [stdout]   |          -------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 7 |     Square,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 8 |     Sawtooth,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 9 |     Triangle,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Waveform` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `apply` is never used
[INFO] [stdout]   --> src/playback/filters/dsp/waves.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Waveform {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] 13 |     pub fn apply(&self, phase: f32) -> f32 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `priority` is never read
[INFO] [stdout]  --> src/playback/filters/channel_mix.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct ChannelMix {
[INFO] [stdout]   |            ---------- field in this struct
[INFO] [stdout] 4 |     pub priority: u32,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]   --> src/playback/filters/channel_mix.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl ChannelMix {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn process(&self, chunk: &mut [i16]) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `priority` and `delays` are never read
[INFO] [stdout]   --> src/playback/filters/chorus.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Chorus {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 11 |     pub priority: u32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 12 |     lfos: [Lfo; 4],
[INFO] [stdout] 13 |     delays: Vec<DelayLine>, // Using Vec because DelayLine size is dynamic or unknown at compile time? No, but to store multiple.
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]   --> src/playback/filters/chorus.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl Chorus {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn process(&mut self, chunk: &mut [i16]) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `linear_to_db` is never used
[INFO] [stdout]  --> src/playback/filters/compressor.rs:8:4
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn linear_to_db(linear: f32) -> f32 {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `priority` and `envelope` are never read
[INFO] [stdout]   --> src/playback/filters/compressor.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Compressor {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 17 |     pub priority: u32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     envelope: f32,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]   --> src/playback/filters/compressor.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl Compressor {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn process(&mut self, chunk: &mut [i16]) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_INT_16` is never used
[INFO] [stdout]  --> src/playback/filters/distortion.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const MAX_INT_16: f32 = 32767.0;
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `priority` is never read
[INFO] [stdout]  --> src/playback/filters/distortion.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Distortion {
[INFO] [stdout]   |            ---------- field in this struct
[INFO] [stdout] 7 |     pub priority: u32,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]   --> src/playback/filters/distortion.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Distortion {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn process(&self, chunk: &mut [i16]) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `priority`, `left_delay`, and `right_delay` are never read
[INFO] [stdout]   --> src/playback/filters/echo.rs:8:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct Echo {
[INFO] [stdout]    |            ---- fields in this struct
[INFO] [stdout]  8 |     pub priority: u32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |     left_delay: DelayLine,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 14 |     right_delay: DelayLine,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]   --> src/playback/filters/echo.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl Echo {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn process(&mut self, chunk: &mut [i16]) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/playback/filters/equalizer.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct FilterState {
[INFO] [stdout]    |        ----------- fields in this struct
[INFO] [stdout] 15 |     xl1: f32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 16 |     xl2: f32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 17 |     yl1: f32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 18 |     yl2: f32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 19 |     xr1: f32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 20 |     xr2: f32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 21 |     yr1: f32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 22 |     yr2: f32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FilterState` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `b0`, `b1`, `b2`, `a1`, and `a2` are never read
[INFO] [stdout]   --> src/playback/filters/equalizer.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | struct FilterCoefficients {
[INFO] [stdout]    |        ------------------ fields in this struct
[INFO] [stdout] 27 |     b0: f32,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 28 |     b1: f32,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 29 |     b2: f32,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 30 |     a1: f32,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 31 |     a2: f32,
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FilterCoefficients` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `priority` is never read
[INFO] [stdout]   --> src/playback/filters/equalizer.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct Equalizer {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 35 |     pub priority: u32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]    --> src/playback/filters/equalizer.rs:117:12
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl Equalizer {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn process(&mut self, chunk: &mut [i16]) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `priority` is never read
[INFO] [stdout]  --> src/playback/filters/highpass.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Highpass {
[INFO] [stdout]   |            -------- field in this struct
[INFO] [stdout] 4 |     pub priority: u32,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]   --> src/playback/filters/highpass.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Highpass {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn process(&mut self, chunk: &mut [i16]) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `priority` is never read
[INFO] [stdout]  --> src/playback/filters/karaoke.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Karaoke {
[INFO] [stdout]   |            ------- field in this struct
[INFO] [stdout] 6 |     pub priority: u32,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]    --> src/playback/filters/karaoke.rs:111:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl Karaoke {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn process(&mut self, chunk: &mut [i16]) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `priority` is never read
[INFO] [stdout]  --> src/playback/filters/lowpass.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Lowpass {
[INFO] [stdout]   |            ------- field in this struct
[INFO] [stdout] 4 |     pub priority: u32,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]   --> src/playback/filters/lowpass.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl Lowpass {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn process(&mut self, chunk: &mut [i16]) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `priority`, `left_filters`, `right_filters`, `last_left_feedback`, and `last_right_feedback` are never read
[INFO] [stdout]   --> src/playback/filters/phaser.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Phaser {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 11 |     pub priority: u32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     left_filters: Vec<Allpass>,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 22 |     right_filters: Vec<Allpass>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 23 |     last_left_feedback: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 24 |     last_right_feedback: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]   --> src/playback/filters/phaser.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl Phaser {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn process(&mut self, chunk: &mut [i16]) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `priority` is never read
[INFO] [stdout]  --> src/playback/filters/rotation.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Rotation {
[INFO] [stdout]   |            -------- field in this struct
[INFO] [stdout] 6 |     pub priority: u32,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]   --> src/playback/filters/rotation.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Rotation {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn process(&mut self, chunk: &mut [i16]) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cubic_interpolate` is never used
[INFO] [stdout]  --> src/playback/filters/timescale.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn cubic_interpolate(p0: f32, p1: f32, p2: f32, p3: f32, t: f32) -> f32 {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `priority` and `input_buffer` are never read
[INFO] [stdout]   --> src/playback/filters/timescale.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Timescale {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 14 |     pub priority: u32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     input_buffer: Vec<i16>,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]   --> src/playback/filters/timescale.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl Timescale {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn process(&mut self, chunk: &[i16]) -> Vec<i16> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `priority` is never read
[INFO] [stdout]  --> src/playback/filters/tremolo.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Tremolo {
[INFO] [stdout]   |            ------- field in this struct
[INFO] [stdout] 6 |     pub priority: u32,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]   --> src/playback/filters/tremolo.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Tremolo {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn process(&mut self, chunk: &mut [i16]) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `priority`, `left_delay`, and `right_delay` are never read
[INFO] [stdout]   --> src/playback/filters/vibrato.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct Vibrato {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 10 |     pub priority: u32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 11 |     lfo: Lfo,
[INFO] [stdout] 12 |     left_delay: DelayLine,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 13 |     right_delay: DelayLine,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]   --> src/playback/filters/vibrato.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl Vibrato {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn process(&mut self, chunk: &mut [i16]) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]    --> src/playback/filters_manager.rs:194:12
[INFO] [stdout]     |
[INFO] [stdout]  36 | impl FiltersManager {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub fn process(&mut self, chunk: &[i16]) -> Vec<i16> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `filters_manager` is never read
[INFO] [stdout]   --> src/playback/player.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct Player {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 21 |     filters_manager: Option<FiltersManager>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `stats_manager` and `route_planner` are never read
[INFO] [stdout]   --> src/playback/audio_engine.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct AudioEngine {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 14 |     players: HashMap<String, Player>,
[INFO] [stdout] 15 |     stats_manager: StatsManager,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     route_planner: RoutePlannerManager,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `YoutubeUrlType` is never used
[INFO] [stdout]  --> src/sources/youtube/common.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum YoutubeUrlType {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_url_type` is never used
[INFO] [stdout]   --> src/sources/youtube/common.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn check_url_type(url: &str, is_yt_music: bool) -> YoutubeUrlType {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_client_context` and `search` are never used
[INFO] [stdout]   --> src/sources/youtube/clients/android_vr.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl AndroidVRClient {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 10 |     pub fn get_client_context(&self, hl: &str, gl: &str, visitor_data: Option<&str>) -> Value {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub async fn search(&self, _query: &str, _nodelink: &NodelinkMock) -> Value {
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_client_context` and `search` are never used
[INFO] [stdout]   --> src/sources/youtube/clients/ios.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl IosClient {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  9 |     pub fn get_client_context(&self, hl: &str, gl: &str, visitor_data: Option<&str>) -> Value {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub async fn search(&self, _query: &str, _nodelink: &NodelinkMock) -> Value {
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_client_context` and `search` are never used
[INFO] [stdout]   --> src/sources/youtube/clients/music.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl MusicClient {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  9 |     pub fn get_client_context(&self, hl: &str, gl: &str) -> Value {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub async fn search(&self, _query: &str, _nodelink: &NodelinkMock) -> Value {
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_client_context` and `resolve` are never used
[INFO] [stdout]   --> src/sources/youtube/clients/tv.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl TvClient {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  9 |     pub fn get_client_context(&self, hl: &str, gl: &str) -> Value {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub async fn resolve(&self, _url: &str, _nodelink: &NodelinkMock) -> Value {
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_client_context` and `resolve` are never used
[INFO] [stdout]   --> src/sources/youtube/clients/tv_embedded.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl TvEmbeddedClient {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  9 |     pub fn get_client_context(&self, hl: &str, gl: &str) -> Value {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub async fn resolve(&self, _url: &str, _nodelink: &NodelinkMock) -> Value {
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_client_context` and `search` are never used
[INFO] [stdout]   --> src/sources/youtube/clients/web.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl WebClient {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  9 |     pub fn get_client_context(&self, hl: &str, gl: &str) -> Value {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub async fn search(&self, _query: &str, _nodelink: &NodelinkMock) -> Value {
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/sources/youtube/youtube.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct YoutubeSource {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 17 |     cipher_manager: CipherManager,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 18 |     oauth: OAuth,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 19 |     android: AndroidClient,
[INFO] [stdout] 20 |     android_vr: AndroidVRClient,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 21 |     ios: IosClient,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 22 |     music: MusicClient,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 23 |     tv: TvClient,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 24 |     tv_embedded: TvEmbeddedClient,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 25 |     web: WebClient,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setup` is never used
[INFO] [stdout]   --> src/sources/youtube/youtube.rs:43:18
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl YoutubeSource {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub async fn setup(&mut self) -> bool {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_timestamp` and `resolve_url` are never used
[INFO] [stdout]   --> src/sources/youtube/cipher_manager.rs:12:18
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl CipherManager {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub async fn get_timestamp(&self, _player_url: &str, _nodelink: &NodelinkMock) -> Result<String, String> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub async fn resolve_url(&self, stream_url: &str, _nodelink: &NodelinkMock) -> Result<String, String> {
[INFO] [stdout]    |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `refresh_token` and `access_token` are never read
[INFO] [stdout]  --> src/sources/youtube/oauth.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct OAuth {
[INFO] [stdout]   |            ----- fields in this struct
[INFO] [stdout] 6 |     refresh_token: Option<String>,
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 7 |     access_token: Option<String>,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_access_token` is never used
[INFO] [stdout]   --> src/sources/youtube/oauth.rs:18:18
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl OAuth {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub async fn get_access_token(&mut self, _nodelink: &NodelinkMock) -> Option<String> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeezerSource` is never constructed
[INFO] [stdout]  --> src/sources/deezer.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct DeezerSource;
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BandcampSource` is never constructed
[INFO] [stdout]  --> src/sources/bandcamp.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct BandcampSource;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HttpSource` is never constructed
[INFO] [stdout]  --> src/sources/http.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct HttpSource;
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LocalSource` is never constructed
[INFO] [stdout]  --> src/sources/local.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct LocalSource;
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TwitchSource` is never constructed
[INFO] [stdout]  --> src/sources/twitch.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct TwitchSource;
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NicovideoSource` is never constructed
[INFO] [stdout]  --> src/sources/nicovideo.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct NicovideoSource;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RedditSource` is never constructed
[INFO] [stdout]  --> src/sources/reddit.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct RedditSource;
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InstagramSource` is never constructed
[INFO] [stdout]  --> src/sources/instagram.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct InstagramSource;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KwaiSource` is never constructed
[INFO] [stdout]  --> src/sources/kwai.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct KwaiSource;
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LastfmSource` is never constructed
[INFO] [stdout]  --> src/sources/lastfm.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct LastfmSource;
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GoogleTtsSource` is never constructed
[INFO] [stdout]  --> src/sources/google_tts.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct GoogleTtsSource;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TidalSource` is never constructed
[INFO] [stdout]  --> src/sources/tidal.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct TidalSource;
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClientInfo` is never constructed
[INFO] [stdout]  --> src/types/client.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct ClientInfo {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `status`, `headers`, and `raw_body` are never read
[INFO] [stdout]   --> src/types/http.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct ResponseResult {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 34 |     pub status: StatusCode,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 35 |     pub headers: HeaderMap,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 36 |     pub body: Option<Value>,
[INFO] [stdout] 37 |     pub raw_body: Option<Vec<u8>>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileConfig` is never constructed
[INFO] [stdout]  --> src/types/logger.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct FileConfig {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LoggingConfig` is never constructed
[INFO] [stdout]  --> src/types/logger.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct LoggingConfig {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Config` is never constructed
[INFO] [stdout]   --> src/types/logger.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Config {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `CreatePlayer`, `LoadTracks`, `LoadLyrics`, and `GetSources` are never constructed
[INFO] [stdout]   --> src/types/audio_engine.rs:6:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub enum AudioEngineCommand {
[INFO] [stdout]    |          ------------------ variants in this enum
[INFO] [stdout]  6 |     CreatePlayer {
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     LoadTracks {
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     LoadLyrics {
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     GetSources {
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AudioEngineCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_file_logger` is never used
[INFO] [stdout]  --> src/utils/initLogger.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn init_file_logger(config: &LoggingConfig) -> Option<File> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_logger` is never used
[INFO] [stdout]   --> src/utils/initLogger.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn init_logger(config: Config) -> Option<File> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_property` is never used
[INFO] [stdout]  --> src/utils/validateProperty.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn validate_property<T, F>(property: T, validator: F, error_message: &str) -> Result<(), String>
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_for_updates` is never used
[INFO] [stdout]  --> src/utils/checkForUpdates.rs:4:14
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub async fn check_for_updates() {
[INFO] [stdout]   |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `index` is never used
[INFO] [stdout]   --> src/utils/logger.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl LogLevel {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 41 |     fn index(&self) -> u8 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `SEMVER_REGEX` is never used
[INFO] [stdout]  --> src/utils/parseSemver.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | static SEMVER_REGEX: Lazy<Regex> = Lazy::new(|| {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Semver` is never constructed
[INFO] [stdout]  --> src/utils/parseSemver.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct Semver {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_semver` is never used
[INFO] [stdout]   --> src/utils/parseSemver.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn parse_semver(version: &str) -> Option<Semver> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_client` is never used
[INFO] [stdout]  --> src/utils/parseClient.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn parse_client(agent: Option<&str>) -> Option<ClientInfo> {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_random_letters` is never used
[INFO] [stdout]  --> src/utils/generateRandomLetters.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn generate_random_letters(l: usize) -> String {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DISCORD_ID_REGEX` is never used
[INFO] [stdout]  --> src/utils/verifyDiscordID.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | static DISCORD_ID_REGEX: Lazy<Regex> = Lazy::new(|| Regex::new(r"^\d{18,19}$").unwrap());
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify_discord_id` is never used
[INFO] [stdout]  --> src/utils/verifyDiscordID.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn verify_discord_id(id: impl ToString) -> bool {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify_method` is never used
[INFO] [stdout]  --> src/utils/verifyMethod.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn verify_method(
[INFO] [stdout]   |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `send_error_response` is never used
[INFO] [stdout]  --> src/utils/sendErrorResponse.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn send_error_response(
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_hls` is never used
[INFO] [stdout]  --> src/utils/loadHLS.rs:6:14
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub async fn load_hls(url: &str, _stream: &mut Vec<u8> /* Mocked stream */, _once_ended: bool, _should_end: bool) -> bool {
[INFO] [stdout]   |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_hls_playlist` is never used
[INFO] [stdout]  --> src/utils/loadHLSPlaylist.rs:7:14
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub async fn load_hls_playlist(url: &str, stream: &mut Vec<u8>) -> bool {
[INFO] [stdout]   |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 26s
[INFO] running `Command { std: "docker" "inspect" "7612e34453eb6e4f9e44a1341c68aeef74e4324708e9c1eb19db31f2a6692ec1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7612e34453eb6e4f9e44a1341c68aeef74e4324708e9c1eb19db31f2a6692ec1" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustlink v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `decode_track`
[INFO] [stdout]  --> src/api/players.rs:2:20
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::utils::{decode_track, send_response};
[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::managers::player_manager::PlayerManager`
[INFO] [stdout]  --> src/api/players.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::managers::player_manager::PlayerManager;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/api/players.rs:6:22
[INFO] [stdout]   |
[INFO] [stdout] 6 |     extract::{State, Path},
[INFO] [stdout]   |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Utc`
[INFO] [stdout]   --> src/api/sessions.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use chrono::Utc;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]  --> src/managers/connection_manager.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::time::{Duration, Instant};
[INFO] [stdout]   |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::time::interval`
[INFO] [stdout]  --> src/managers/connection_manager.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use tokio::time::interval;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::stats::RustlinkMock`
[INFO] [stdout]  --> src/managers/connection_manager.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::types::stats::RustlinkMock;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SystemTime` and `UNIX_EPOCH`
[INFO] [stdout]  --> src/managers/rate_limit_manager.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::time::{SystemTime, UNIX_EPOCH};
[INFO] [stdout]   |                 ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::PI`
[INFO] [stdout]  --> src/playback/filters/chorus.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::f32::consts::PI;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::stats::RustlinkMock`
[INFO] [stdout]  --> src/playback/player.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::types::stats::RustlinkMock;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `json`
[INFO] [stdout]  --> src/sources/youtube/common.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | use serde_json::{json, Value};
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `logger`
[INFO] [stdout]  --> src/sources/youtube/common.rs:5:34
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::utils::{encode_track, logger};
[INFO] [stdout]   |                                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `logger`
[INFO] [stdout]  --> src/sources/youtube/clients/android.rs:2:34
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::utils::{make_request, logger};
[INFO] [stdout]   |                                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `YoutubeUrlType` and `check_url_type`
[INFO] [stdout]  --> src/sources/youtube/clients/android.rs:4:52
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::sources::youtube::common::{build_track, check_url_type, YoutubeUrlType};
[INFO] [stdout]   |                                                    ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::utils::logger`
[INFO] [stdout]  --> src/sources/youtube/clients/android_vr.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::utils::logger;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `logger` and `make_request`
[INFO] [stdout]  --> src/sources/youtube/youtube.rs:3:20
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::utils::{make_request, logger};
[INFO] [stdout]   |                    ^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RequestOptions`
[INFO] [stdout]  --> src/sources/youtube/youtube.rs:4:26
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::types::http::{RequestOptions, NodelinkMock};
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Value` and `json`
[INFO] [stdout]  --> src/sources/youtube/cipher_manager.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | use serde_json::{json, Value};
[INFO] [stdout]   |                  ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `logger` and `make_request`
[INFO] [stdout]  --> src/sources/youtube/cipher_manager.rs:2:20
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::utils::{make_request, logger};
[INFO] [stdout]   |                    ^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RequestOptions`
[INFO] [stdout]  --> src/sources/youtube/cipher_manager.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::types::http::{RequestOptions, NodelinkMock};
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Value` and `json`
[INFO] [stdout]  --> src/sources/youtube/oauth.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | use serde_json::{json, Value};
[INFO] [stdout]   |                  ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `logger` and `make_request`
[INFO] [stdout]  --> src/sources/youtube/oauth.rs:2:20
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::utils::{make_request, logger};
[INFO] [stdout]   |                    ^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RequestOptions`
[INFO] [stdout]  --> src/sources/youtube/oauth.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::types::http::{RequestOptions, NodelinkMock};
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `client::*`
[INFO] [stdout]   --> src/types/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use client::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `http::*`
[INFO] [stdout]   --> src/types/mod.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use http::*;
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `logger::*`
[INFO] [stdout]   --> src/types/mod.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use logger::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `stats::*`
[INFO] [stdout]   --> src/types/mod.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use stats::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tracks::*`
[INFO] [stdout]   --> src/types/mod.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub use tracks::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `versions::*`
[INFO] [stdout]   --> src/types/mod.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use versions::*;
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `json`
[INFO] [stdout]  --> src/utils/makeRequest.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | use serde_json::{json, Value};
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StatusCode`
[INFO] [stdout]  --> src/utils/makeRequest.rs:6:34
[INFO] [stdout]   |
[INFO] [stdout] 6 | use reqwest::{header::*, Method, StatusCode, Client};
[INFO] [stdout]   |                                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `check_for_updates::check_for_updates`
[INFO] [stdout]   --> src/utils/mod.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub use check_for_updates::check_for_updates;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `generate_random_letters::generate_random_letters`
[INFO] [stdout]   --> src/utils/mod.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub use generate_random_letters::generate_random_letters;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `http1_make_request::http1_make_request`
[INFO] [stdout]   --> src/utils/mod.rs:68:9
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub use http1_make_request::http1_make_request;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `internal_logger::init_logger`
[INFO] [stdout]   --> src/utils/mod.rs:69:9
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub use internal_logger::init_logger;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `load_hls::load_hls`
[INFO] [stdout]   --> src/utils/mod.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub use load_hls::load_hls;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `load_hls_playlist::load_hls_playlist`
[INFO] [stdout]   --> src/utils/mod.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub use load_hls_playlist::load_hls_playlist;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parse_client::parse_client`
[INFO] [stdout]   --> src/utils/mod.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub use parse_client::parse_client;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parse_semver::parse_semver`
[INFO] [stdout]   --> src/utils/mod.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub use parse_semver::parse_semver;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `send_error_response::send_error_response`
[INFO] [stdout]   --> src/utils/mod.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub use send_error_response::send_error_response;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `validate_property::validate_property`
[INFO] [stdout]   --> src/utils/mod.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub use validate_property::validate_property;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `verify_discord_id::verify_discord_id`
[INFO] [stdout]   --> src/utils/mod.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub use verify_discord_id::verify_discord_id;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `verify_method::verify_method`
[INFO] [stdout]   --> src/utils/mod.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub use verify_method::verify_method;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `version::VersionResult`
[INFO] [stdout]   --> src/utils/mod.rs:81:9
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub use version::VersionResult;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session`
[INFO] [stdout]   --> src/api/sessions.rs:28:17
[INFO] [stdout]    |
[INFO] [stdout] 28 |     if let Some(session) = rustlink_write.sessions.get_mut(&session_id) {
[INFO] [stdout]    |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_time`
[INFO] [stdout]   --> src/managers/connection_manager.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let start_time = Instant::now();
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/playback/filters/chorus.rs:26:13
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let mut lfos = [
[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/playback/filters/phaser.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let mut left_lfo = Lfo::new(Waveform::Sine, 0.0, 1.0);
[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/playback/filters/phaser.rs:33:13
[INFO] [stdout]    |
[INFO] [stdout] 33 |         let mut right_lfo = Lfo::new(Waveform::Sine, 0.0, 1.0);
[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/sources/youtube/common.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let mut title = String::from("Unknown Title");
[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/sources/youtube/common.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let mut author = String::from("Unknown Author");
[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/sources/youtube/common.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |     let mut length_ms = 0;
[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/sources/youtube/common.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let mut is_stream = true;
[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/sources/youtube/common.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let mut artwork_url = None;
[INFO] [stdout]    |         ----^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `full_api_response`
[INFO] [stdout]   --> src/sources/youtube/common.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     full_api_response: Option<&Value>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_full_api_response`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `uri` is never read
[INFO] [stdout]   --> src/sources/youtube/common.rs:48:19
[INFO] [stdout]    |
[INFO] [stdout] 48 |     let mut uri = String::new();
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 78 |     uri = if is_yt_music { format!("https://music.youtube.com/watch?v={}", vid) } else { format!("https://www.youtube.com/watch?v={}...
[INFO] [stdout]    |     --- `uri` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/utils/getStats.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let mut frame_stats = if players > 0 {
[INFO] [stdout]   |         ----^^^^^^^^^^^
[INFO] [stdout]   |         |
[INFO] [stdout]   |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TEST_FILE_URL` is never used
[INFO] [stdout]  --> src/managers/connection_manager.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const TEST_FILE_URL: &str = "http://cachefly.cachefly.net/10mb.test";
[INFO] [stdout]   |       ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `status`, `metrics`, and `is_checking` are never read
[INFO] [stdout]   --> src/managers/connection_manager.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct ConnectionManager {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     status: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 14 |     metrics: serde_json::Value,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 15 |     is_checking: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `check_connection` is never used
[INFO] [stdout]   --> src/managers/connection_manager.rs:36:18
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl ConnectionManager {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub async fn check_connection(&mut self) {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IpData` is never constructed
[INFO] [stdout]  --> src/managers/dos_protection_manager.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct IpData {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DosProtectionManager` is never constructed
[INFO] [stdout]   --> src/managers/dos_protection_manager.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct DosProtectionManager {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `check` are never used
[INFO] [stdout]   --> src/managers/dos_protection_manager.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl DosProtectionManager {
[INFO] [stdout]    | ------------------------- associated items in this implementation
[INFO] [stdout] 16 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn check(&mut self, remote_address: &str) -> Result<(), String> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `lyrics_sources` is never read
[INFO] [stdout]  --> src/managers/lyrics_manager.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct LyricsManager {
[INFO] [stdout]   |            ------------- field in this struct
[INFO] [stdout] 7 |     lyrics_sources: HashMap<String, LyricsSource>,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `session_id` is never read
[INFO] [stdout]  --> src/managers/player_manager.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct PlayerManager {
[INFO] [stdout]   |            ------------- field in this struct
[INFO] [stdout] 7 |     sender: mpsc::Sender<AudioEngineCommand>,
[INFO] [stdout] 8 |     session_id: String,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `PlayerManager` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/managers/player_manager.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl PlayerManager {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 12 |     pub fn new(sender: mpsc::Sender<AudioEngineCommand>, session_id: String) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub async fn create(&self, guild_id: String, user_id: String, voice: Option<Value>) -> Result<Value, String> {
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub async fn play(&self, guild_id: String, track_payload: Value) -> Result<Value, String> {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub async fn stop(&self, guild_id: String) -> Result<Value, String> {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub async fn pause(&self, guild_id: String, should_pause: bool) -> Result<Value, String> {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub async fn seek(&self, guild_id: String, position: i64) -> Result<Value, String> {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub async fn set_volume(&self, guild_id: String, level: u64) -> Result<Value, String> {
[INFO] [stdout]    |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |         pub async fn set_voice(&self, guild_id: String, session_id: String, token: String, endpoint: String) -> Result<Value, String> {
[INFO] [stdout]    |                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RateLimitEntry` is never constructed
[INFO] [stdout]  --> src/managers/rate_limit_manager.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct RateLimitEntry {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RateLimitManager` is never constructed
[INFO] [stdout]  --> src/managers/rate_limit_manager.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct RateLimitManager {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `check` are never used
[INFO] [stdout]   --> src/managers/rate_limit_manager.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl RateLimitManager {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] 14 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn check(&mut self, _identifier: &str) -> bool {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `ip_blocks` and `banned_ips` are never read
[INFO] [stdout]  --> src/managers/route_planner_manager.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct RoutePlannerManager {
[INFO] [stdout]   |            ------------------- fields in this struct
[INFO] [stdout] 4 |     ip_blocks: Vec<String>,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 5 |     banned_ips: HashMap<String, u128>,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_ip`, `ban_ip`, and `free_ip` are never used
[INFO] [stdout]   --> src/managers/route_planner_manager.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl RoutePlannerManager {
[INFO] [stdout]    | ------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn get_ip(&self) -> Option<String> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn ban_ip(&mut self, ip: String) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn free_ip(&mut self, ip: &str) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id`, `user_id`, and `client_info` are never read
[INFO] [stdout]   --> src/managers/session_manager.rs:9:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct Session {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout]  9 |     pub id: String,
[INFO] [stdout]    |         ^^
[INFO] [stdout] 10 |     pub user_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 11 |     pub client_info: Option<Value>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `audio_engine_sender` is never read
[INFO] [stdout]   --> src/managers/session_manager.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct SessionManager {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 16 |     pub sessions: HashMap<String, Session>,
[INFO] [stdout] 17 |     audio_engine_sender: mpsc::Sender<AudioEngineCommand>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `create` and `delete` are never used
[INFO] [stdout]   --> src/managers/session_manager.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl SessionManager {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn create(&mut self, _request: &Value, _client_info: Option<Value>) -> String {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn delete(&mut self, session_id: &str) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `stats` is never read
[INFO] [stdout]  --> src/managers/stats_manager.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct StatsManager {
[INFO] [stdout]   |            ------------ field in this struct
[INFO] [stdout] 6 |     stats: Arc<Mutex<serde_json::Value>>,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `StatsManager` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_snapshot` is never used
[INFO] [stdout]   --> src/managers/stats_manager.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl StatsManager {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn get_snapshot(&self) -> serde_json::Value {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x1`, `y1`, and `a` are never read
[INFO] [stdout]  --> src/playback/filters/dsp/allpass.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct Allpass {
[INFO] [stdout]   |            ------- fields in this struct
[INFO] [stdout] 2 |     x1: f32,
[INFO] [stdout]   |     ^^
[INFO] [stdout] 3 |     y1: f32,
[INFO] [stdout]   |     ^^
[INFO] [stdout] 4 |     a: f32,
[INFO] [stdout]   |     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_coefficient` and `process` are never used
[INFO] [stdout]   --> src/playback/filters/dsp/allpass.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl Allpass {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn set_coefficient(&mut self, a: f32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn process(&mut self, sample: f32) -> f32 {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp_16_bit` is never used
[INFO] [stdout]  --> src/playback/filters/dsp/clamp_16_bit.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn clamp_16_bit(sample: f32) -> i16 {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `buffer`, `size`, and `write_index` are never read
[INFO] [stdout]  --> src/playback/filters/dsp/delay.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct DelayLine {
[INFO] [stdout]   |            --------- fields in this struct
[INFO] [stdout] 2 |     buffer: Vec<i16>,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 3 |     size: usize,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 4 |     write_index: usize,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `write`, `read`, and `clear` are never used
[INFO] [stdout]   --> src/playback/filters/dsp/delay.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl DelayLine {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn write(&mut self, sample: i16) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn read(&self, delay_in_samples: f32) -> i16 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SAMPLE_RATE` is never used
[INFO] [stdout]  --> src/playback/filters/dsp/lfo.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const SAMPLE_RATE: f32 = 48000.0;
[INFO] [stdout]   |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `phase` and `waveform` are never read
[INFO] [stdout]  --> src/playback/filters/dsp/lfo.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Lfo {
[INFO] [stdout]   |            --- fields in this struct
[INFO] [stdout] 7 |     phase: f32,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 8 |     waveform: Waveform,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_waveform`, `get_value`, and `process` are never used
[INFO] [stdout]   --> src/playback/filters/dsp/lfo.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Lfo {
[INFO] [stdout]    | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn set_waveform(&mut self, waveform: Waveform) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn get_value(&mut self) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn process(&mut self) -> f32 {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Square`, `Sawtooth`, and `Triangle` are never constructed
[INFO] [stdout]  --> src/playback/filters/dsp/waves.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum Waveform {
[INFO] [stdout]   |          -------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 7 |     Square,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 8 |     Sawtooth,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 9 |     Triangle,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Waveform` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `apply` is never used
[INFO] [stdout]   --> src/playback/filters/dsp/waves.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Waveform {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] 13 |     pub fn apply(&self, phase: f32) -> f32 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `priority` is never read
[INFO] [stdout]  --> src/playback/filters/channel_mix.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct ChannelMix {
[INFO] [stdout]   |            ---------- field in this struct
[INFO] [stdout] 4 |     pub priority: u32,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]   --> src/playback/filters/channel_mix.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl ChannelMix {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn process(&self, chunk: &mut [i16]) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `priority` and `delays` are never read
[INFO] [stdout]   --> src/playback/filters/chorus.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Chorus {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 11 |     pub priority: u32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 12 |     lfos: [Lfo; 4],
[INFO] [stdout] 13 |     delays: Vec<DelayLine>, // Using Vec because DelayLine size is dynamic or unknown at compile time? No, but to store multiple.
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]   --> src/playback/filters/chorus.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl Chorus {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn process(&mut self, chunk: &mut [i16]) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `linear_to_db` is never used
[INFO] [stdout]  --> src/playback/filters/compressor.rs:8:4
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn linear_to_db(linear: f32) -> f32 {
[INFO] [stdout]   |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `priority` and `envelope` are never read
[INFO] [stdout]   --> src/playback/filters/compressor.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Compressor {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 17 |     pub priority: u32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     envelope: f32,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]   --> src/playback/filters/compressor.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl Compressor {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn process(&mut self, chunk: &mut [i16]) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_INT_16` is never used
[INFO] [stdout]  --> src/playback/filters/distortion.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const MAX_INT_16: f32 = 32767.0;
[INFO] [stdout]   |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `priority` is never read
[INFO] [stdout]  --> src/playback/filters/distortion.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Distortion {
[INFO] [stdout]   |            ---------- field in this struct
[INFO] [stdout] 7 |     pub priority: u32,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]   --> src/playback/filters/distortion.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Distortion {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn process(&self, chunk: &mut [i16]) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `priority`, `left_delay`, and `right_delay` are never read
[INFO] [stdout]   --> src/playback/filters/echo.rs:8:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct Echo {
[INFO] [stdout]    |            ---- fields in this struct
[INFO] [stdout]  8 |     pub priority: u32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |     left_delay: DelayLine,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 14 |     right_delay: DelayLine,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]   --> src/playback/filters/echo.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl Echo {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn process(&mut self, chunk: &mut [i16]) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/playback/filters/equalizer.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct FilterState {
[INFO] [stdout]    |        ----------- fields in this struct
[INFO] [stdout] 15 |     xl1: f32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 16 |     xl2: f32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 17 |     yl1: f32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 18 |     yl2: f32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 19 |     xr1: f32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 20 |     xr2: f32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 21 |     yr1: f32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 22 |     yr2: f32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FilterState` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `b0`, `b1`, `b2`, `a1`, and `a2` are never read
[INFO] [stdout]   --> src/playback/filters/equalizer.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | struct FilterCoefficients {
[INFO] [stdout]    |        ------------------ fields in this struct
[INFO] [stdout] 27 |     b0: f32,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 28 |     b1: f32,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 29 |     b2: f32,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 30 |     a1: f32,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 31 |     a2: f32,
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FilterCoefficients` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `priority` is never read
[INFO] [stdout]   --> src/playback/filters/equalizer.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct Equalizer {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 35 |     pub priority: u32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]    --> src/playback/filters/equalizer.rs:117:12
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl Equalizer {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn process(&mut self, chunk: &mut [i16]) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `priority` is never read
[INFO] [stdout]  --> src/playback/filters/highpass.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Highpass {
[INFO] [stdout]   |            -------- field in this struct
[INFO] [stdout] 4 |     pub priority: u32,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]   --> src/playback/filters/highpass.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Highpass {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn process(&mut self, chunk: &mut [i16]) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `priority` is never read
[INFO] [stdout]  --> src/playback/filters/karaoke.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Karaoke {
[INFO] [stdout]   |            ------- field in this struct
[INFO] [stdout] 6 |     pub priority: u32,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]    --> src/playback/filters/karaoke.rs:111:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl Karaoke {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn process(&mut self, chunk: &mut [i16]) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `priority` is never read
[INFO] [stdout]  --> src/playback/filters/lowpass.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Lowpass {
[INFO] [stdout]   |            ------- field in this struct
[INFO] [stdout] 4 |     pub priority: u32,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]   --> src/playback/filters/lowpass.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl Lowpass {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn process(&mut self, chunk: &mut [i16]) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `priority`, `left_filters`, `right_filters`, `last_left_feedback`, and `last_right_feedback` are never read
[INFO] [stdout]   --> src/playback/filters/phaser.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Phaser {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 11 |     pub priority: u32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     left_filters: Vec<Allpass>,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 22 |     right_filters: Vec<Allpass>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 23 |     last_left_feedback: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 24 |     last_right_feedback: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]   --> src/playback/filters/phaser.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl Phaser {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn process(&mut self, chunk: &mut [i16]) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `priority` is never read
[INFO] [stdout]  --> src/playback/filters/rotation.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Rotation {
[INFO] [stdout]   |            -------- field in this struct
[INFO] [stdout] 6 |     pub priority: u32,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]   --> src/playback/filters/rotation.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Rotation {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn process(&mut self, chunk: &mut [i16]) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cubic_interpolate` is never used
[INFO] [stdout]  --> src/playback/filters/timescale.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn cubic_interpolate(p0: f32, p1: f32, p2: f32, p3: f32, t: f32) -> f32 {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `priority` and `input_buffer` are never read
[INFO] [stdout]   --> src/playback/filters/timescale.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Timescale {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 14 |     pub priority: u32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     input_buffer: Vec<i16>,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]   --> src/playback/filters/timescale.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl Timescale {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn process(&mut self, chunk: &[i16]) -> Vec<i16> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `priority` is never read
[INFO] [stdout]  --> src/playback/filters/tremolo.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct Tremolo {
[INFO] [stdout]   |            ------- field in this struct
[INFO] [stdout] 6 |     pub priority: u32,
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]   --> src/playback/filters/tremolo.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Tremolo {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn process(&mut self, chunk: &mut [i16]) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `priority`, `left_delay`, and `right_delay` are never read
[INFO] [stdout]   --> src/playback/filters/vibrato.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct Vibrato {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 10 |     pub priority: u32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 11 |     lfo: Lfo,
[INFO] [stdout] 12 |     left_delay: DelayLine,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 13 |     right_delay: DelayLine,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]   --> src/playback/filters/vibrato.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl Vibrato {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn process(&mut self, chunk: &mut [i16]) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `process` is never used
[INFO] [stdout]    --> src/playback/filters_manager.rs:194:12
[INFO] [stdout]     |
[INFO] [stdout]  36 | impl FiltersManager {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub fn process(&mut self, chunk: &[i16]) -> Vec<i16> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `filters_manager` is never read
[INFO] [stdout]   --> src/playback/player.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct Player {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 21 |     filters_manager: Option<FiltersManager>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `stats_manager` and `route_planner` are never read
[INFO] [stdout]   --> src/playback/audio_engine.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct AudioEngine {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 14 |     players: HashMap<String, Player>,
[INFO] [stdout] 15 |     stats_manager: StatsManager,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     route_planner: RoutePlannerManager,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `YoutubeUrlType` is never used
[INFO] [stdout]  --> src/sources/youtube/common.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum YoutubeUrlType {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_url_type` is never used
[INFO] [stdout]   --> src/sources/youtube/common.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn check_url_type(url: &str, is_yt_music: bool) -> YoutubeUrlType {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_client_context` and `search` are never used
[INFO] [stdout]   --> src/sources/youtube/clients/android_vr.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  7 | impl AndroidVRClient {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 10 |     pub fn get_client_context(&self, hl: &str, gl: &str, visitor_data: Option<&str>) -> Value {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub async fn search(&self, _query: &str, _nodelink: &NodelinkMock) -> Value {
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_client_context` and `search` are never used
[INFO] [stdout]   --> src/sources/youtube/clients/ios.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl IosClient {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  9 |     pub fn get_client_context(&self, hl: &str, gl: &str, visitor_data: Option<&str>) -> Value {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub async fn search(&self, _query: &str, _nodelink: &NodelinkMock) -> Value {
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_client_context` and `search` are never used
[INFO] [stdout]   --> src/sources/youtube/clients/music.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl MusicClient {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  9 |     pub fn get_client_context(&self, hl: &str, gl: &str) -> Value {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub async fn search(&self, _query: &str, _nodelink: &NodelinkMock) -> Value {
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_client_context` and `resolve` are never used
[INFO] [stdout]   --> src/sources/youtube/clients/tv.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl TvClient {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  9 |     pub fn get_client_context(&self, hl: &str, gl: &str) -> Value {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub async fn resolve(&self, _url: &str, _nodelink: &NodelinkMock) -> Value {
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_client_context` and `resolve` are never used
[INFO] [stdout]   --> src/sources/youtube/clients/tv_embedded.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl TvEmbeddedClient {
[INFO] [stdout]    | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  9 |     pub fn get_client_context(&self, hl: &str, gl: &str) -> Value {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub async fn resolve(&self, _url: &str, _nodelink: &NodelinkMock) -> Value {
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_client_context` and `search` are never used
[INFO] [stdout]   --> src/sources/youtube/clients/web.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl WebClient {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  9 |     pub fn get_client_context(&self, hl: &str, gl: &str) -> Value {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub async fn search(&self, _query: &str, _nodelink: &NodelinkMock) -> Value {
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/sources/youtube/youtube.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct YoutubeSource {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 17 |     cipher_manager: CipherManager,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 18 |     oauth: OAuth,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 19 |     android: AndroidClient,
[INFO] [stdout] 20 |     android_vr: AndroidVRClient,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 21 |     ios: IosClient,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 22 |     music: MusicClient,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 23 |     tv: TvClient,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 24 |     tv_embedded: TvEmbeddedClient,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 25 |     web: WebClient,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `setup` is never used
[INFO] [stdout]   --> src/sources/youtube/youtube.rs:43:18
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl YoutubeSource {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub async fn setup(&mut self) -> bool {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_timestamp` and `resolve_url` are never used
[INFO] [stdout]   --> src/sources/youtube/cipher_manager.rs:12:18
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl CipherManager {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub async fn get_timestamp(&self, _player_url: &str, _nodelink: &NodelinkMock) -> Result<String, String> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub async fn resolve_url(&self, stream_url: &str, _nodelink: &NodelinkMock) -> Result<String, String> {
[INFO] [stdout]    |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `refresh_token` and `access_token` are never read
[INFO] [stdout]  --> src/sources/youtube/oauth.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct OAuth {
[INFO] [stdout]   |            ----- fields in this struct
[INFO] [stdout] 6 |     refresh_token: Option<String>,
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 7 |     access_token: Option<String>,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_access_token` is never used
[INFO] [stdout]   --> src/sources/youtube/oauth.rs:18:18
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl OAuth {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub async fn get_access_token(&mut self, _nodelink: &NodelinkMock) -> Option<String> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeezerSource` is never constructed
[INFO] [stdout]  --> src/sources/deezer.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct DeezerSource;
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BandcampSource` is never constructed
[INFO] [stdout]  --> src/sources/bandcamp.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct BandcampSource;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HttpSource` is never constructed
[INFO] [stdout]  --> src/sources/http.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct HttpSource;
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LocalSource` is never constructed
[INFO] [stdout]  --> src/sources/local.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct LocalSource;
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TwitchSource` is never constructed
[INFO] [stdout]  --> src/sources/twitch.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct TwitchSource;
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NicovideoSource` is never constructed
[INFO] [stdout]  --> src/sources/nicovideo.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct NicovideoSource;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RedditSource` is never constructed
[INFO] [stdout]  --> src/sources/reddit.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct RedditSource;
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InstagramSource` is never constructed
[INFO] [stdout]  --> src/sources/instagram.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct InstagramSource;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KwaiSource` is never constructed
[INFO] [stdout]  --> src/sources/kwai.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct KwaiSource;
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LastfmSource` is never constructed
[INFO] [stdout]  --> src/sources/lastfm.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct LastfmSource;
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GoogleTtsSource` is never constructed
[INFO] [stdout]  --> src/sources/google_tts.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct GoogleTtsSource;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TidalSource` is never constructed
[INFO] [stdout]  --> src/sources/tidal.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct TidalSource;
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClientInfo` is never constructed
[INFO] [stdout]  --> src/types/client.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct ClientInfo {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `status`, `headers`, and `raw_body` are never read
[INFO] [stdout]   --> src/types/http.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct ResponseResult {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 34 |     pub status: StatusCode,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 35 |     pub headers: HeaderMap,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 36 |     pub body: Option<Value>,
[INFO] [stdout] 37 |     pub raw_body: Option<Vec<u8>>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileConfig` is never constructed
[INFO] [stdout]  --> src/types/logger.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct FileConfig {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LoggingConfig` is never constructed
[INFO] [stdout]  --> src/types/logger.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct LoggingConfig {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Config` is never constructed
[INFO] [stdout]   --> src/types/logger.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Config {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `CreatePlayer`, `LoadTracks`, `LoadLyrics`, and `GetSources` are never constructed
[INFO] [stdout]   --> src/types/audio_engine.rs:6:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub enum AudioEngineCommand {
[INFO] [stdout]    |          ------------------ variants in this enum
[INFO] [stdout]  6 |     CreatePlayer {
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     LoadTracks {
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     LoadLyrics {
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     GetSources {
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AudioEngineCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_file_logger` is never used
[INFO] [stdout]  --> src/utils/initLogger.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn init_file_logger(config: &LoggingConfig) -> Option<File> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_logger` is never used
[INFO] [stdout]   --> src/utils/initLogger.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn init_logger(config: Config) -> Option<File> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_property` is never used
[INFO] [stdout]  --> src/utils/validateProperty.rs:1:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn validate_property<T, F>(property: T, validator: F, error_message: &str) -> Result<(), String>
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_for_updates` is never used
[INFO] [stdout]  --> src/utils/checkForUpdates.rs:4:14
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub async fn check_for_updates() {
[INFO] [stdout]   |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `index` is never used
[INFO] [stdout]   --> src/utils/logger.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl LogLevel {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 41 |     fn index(&self) -> u8 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `SEMVER_REGEX` is never used
[INFO] [stdout]  --> src/utils/parseSemver.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | static SEMVER_REGEX: Lazy<Regex> = Lazy::new(|| {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Semver` is never constructed
[INFO] [stdout]  --> src/utils/parseSemver.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct Semver {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_semver` is never used
[INFO] [stdout]   --> src/utils/parseSemver.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn parse_semver(version: &str) -> Option<Semver> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_client` is never used
[INFO] [stdout]  --> src/utils/parseClient.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn parse_client(agent: Option<&str>) -> Option<ClientInfo> {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_random_letters` is never used
[INFO] [stdout]  --> src/utils/generateRandomLetters.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn generate_random_letters(l: usize) -> String {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DISCORD_ID_REGEX` is never used
[INFO] [stdout]  --> src/utils/verifyDiscordID.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | static DISCORD_ID_REGEX: Lazy<Regex> = Lazy::new(|| Regex::new(r"^\d{18,19}$").unwrap());
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify_discord_id` is never used
[INFO] [stdout]  --> src/utils/verifyDiscordID.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn verify_discord_id(id: impl ToString) -> bool {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify_method` is never used
[INFO] [stdout]  --> src/utils/verifyMethod.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn verify_method(
[INFO] [stdout]   |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `send_error_response` is never used
[INFO] [stdout]  --> src/utils/sendErrorResponse.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn send_error_response(
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_hls` is never used
[INFO] [stdout]  --> src/utils/loadHLS.rs:6:14
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub async fn load_hls(url: &str, _stream: &mut Vec<u8> /* Mocked stream */, _once_ended: bool, _should_end: bool) -> bool {
[INFO] [stdout]   |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_hls_playlist` is never used
[INFO] [stdout]  --> src/utils/loadHLSPlaylist.rs:7:14
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub async fn load_hls_playlist(url: &str, stream: &mut Vec<u8>) -> bool {
[INFO] [stdout]   |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 3.93s
[INFO] running `Command { std: "docker" "inspect" "7612e34453eb6e4f9e44a1341c68aeef74e4324708e9c1eb19db31f2a6692ec1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7612e34453eb6e4f9e44a1341c68aeef74e4324708e9c1eb19db31f2a6692ec1" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `decode_track`
[INFO] [stderr]  --> src/api/players.rs:2:20
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::utils::{decode_track, send_response};
[INFO] [stderr]   |                    ^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::managers::player_manager::PlayerManager`
[INFO] [stderr]  --> src/api/players.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::managers::player_manager::PlayerManager;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Path`
[INFO] [stderr]  --> src/api/players.rs:6:22
[INFO] [stderr]   |
[INFO] [stderr] 6 |     extract::{State, Path},
[INFO] [stderr]   |                      ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `chrono::Utc`
[INFO] [stderr]   --> src/api/sessions.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 12 | use chrono::Utc;
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Duration`
[INFO] [stderr]  --> src/managers/connection_manager.rs:2:17
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::time::{Duration, Instant};
[INFO] [stderr]   |                 ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `tokio::time::interval`
[INFO] [stderr]  --> src/managers/connection_manager.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use tokio::time::interval;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::types::stats::RustlinkMock`
[INFO] [stderr]  --> src/managers/connection_manager.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::types::stats::RustlinkMock;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `SystemTime` and `UNIX_EPOCH`
[INFO] [stderr]  --> src/managers/rate_limit_manager.rs:2:17
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::time::{SystemTime, UNIX_EPOCH};
[INFO] [stderr]   |                 ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::f32::consts::PI`
[INFO] [stderr]  --> src/playback/filters/chorus.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use std::f32::consts::PI;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::types::stats::RustlinkMock`
[INFO] [stderr]  --> src/playback/player.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::types::stats::RustlinkMock;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `json`
[INFO] [stderr]  --> src/sources/youtube/common.rs:1:18
[INFO] [stderr]   |
[INFO] [stderr] 1 | use serde_json::{json, Value};
[INFO] [stderr]   |                  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `logger`
[INFO] [stderr]  --> src/sources/youtube/common.rs:5:34
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::utils::{encode_track, logger};
[INFO] [stderr]   |                                  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `logger`
[INFO] [stderr]  --> src/sources/youtube/clients/android.rs:2:34
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::utils::{make_request, logger};
[INFO] [stderr]   |                                  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `YoutubeUrlType` and `check_url_type`
[INFO] [stderr]  --> src/sources/youtube/clients/android.rs:4:52
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::sources::youtube::common::{build_track, check_url_type, YoutubeUrlType};
[INFO] [stderr]   |                                                    ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::utils::logger`
[INFO] [stderr]  --> src/sources/youtube/clients/android_vr.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::utils::logger;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `logger` and `make_request`
[INFO] [stderr]  --> src/sources/youtube/youtube.rs:3:20
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::utils::{make_request, logger};
[INFO] [stderr]   |                    ^^^^^^^^^^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `RequestOptions`
[INFO] [stderr]  --> src/sources/youtube/youtube.rs:4:26
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::types::http::{RequestOptions, NodelinkMock};
[INFO] [stderr]   |                          ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Value` and `json`
[INFO] [stderr]  --> src/sources/youtube/cipher_manager.rs:1:18
[INFO] [stderr]   |
[INFO] [stderr] 1 | use serde_json::{json, Value};
[INFO] [stderr]   |                  ^^^^  ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `logger` and `make_request`
[INFO] [stderr]  --> src/sources/youtube/cipher_manager.rs:2:20
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::utils::{make_request, logger};
[INFO] [stderr]   |                    ^^^^^^^^^^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `RequestOptions`
[INFO] [stderr]  --> src/sources/youtube/cipher_manager.rs:3:26
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::types::http::{RequestOptions, NodelinkMock};
[INFO] [stderr]   |                          ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Value` and `json`
[INFO] [stderr]  --> src/sources/youtube/oauth.rs:1:18
[INFO] [stderr]   |
[INFO] [stderr] 1 | use serde_json::{json, Value};
[INFO] [stderr]   |                  ^^^^  ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `logger` and `make_request`
[INFO] [stderr]  --> src/sources/youtube/oauth.rs:2:20
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::utils::{make_request, logger};
[INFO] [stderr]   |                    ^^^^^^^^^^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `RequestOptions`
[INFO] [stderr]  --> src/sources/youtube/oauth.rs:3:26
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::types::http::{RequestOptions, NodelinkMock};
[INFO] [stderr]   |                          ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `client::*`
[INFO] [stderr]   --> src/types/mod.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub use client::*;
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `http::*`
[INFO] [stderr]   --> src/types/mod.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub use http::*;
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `logger::*`
[INFO] [stderr]   --> src/types/mod.rs:12:9
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub use logger::*;
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `stats::*`
[INFO] [stderr]   --> src/types/mod.rs:13:9
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub use stats::*;
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `tracks::*`
[INFO] [stderr]   --> src/types/mod.rs:14:9
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub use tracks::*;
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `versions::*`
[INFO] [stderr]   --> src/types/mod.rs:15:9
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub use versions::*;
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `json`
[INFO] [stderr]  --> src/utils/makeRequest.rs:5:18
[INFO] [stderr]   |
[INFO] [stderr] 5 | use serde_json::{json, Value};
[INFO] [stderr]   |                  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `StatusCode`
[INFO] [stderr]  --> src/utils/makeRequest.rs:6:34
[INFO] [stderr]   |
[INFO] [stderr] 6 | use reqwest::{header::*, Method, StatusCode, Client};
[INFO] [stderr]   |                                  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `check_for_updates::check_for_updates`
[INFO] [stderr]   --> src/utils/mod.rs:63:9
[INFO] [stderr]    |
[INFO] [stderr] 63 | pub use check_for_updates::check_for_updates;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `generate_random_letters::generate_random_letters`
[INFO] [stderr]   --> src/utils/mod.rs:66:9
[INFO] [stderr]    |
[INFO] [stderr] 66 | pub use generate_random_letters::generate_random_letters;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `http1_make_request::http1_make_request`
[INFO] [stderr]   --> src/utils/mod.rs:68:9
[INFO] [stderr]    |
[INFO] [stderr] 68 | pub use http1_make_request::http1_make_request;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `internal_logger::init_logger`
[INFO] [stderr]   --> src/utils/mod.rs:69:9
[INFO] [stderr]    |
[INFO] [stderr] 69 | pub use internal_logger::init_logger;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `load_hls::load_hls`
[INFO] [stderr]   --> src/utils/mod.rs:70:9
[INFO] [stderr]    |
[INFO] [stderr] 70 | pub use load_hls::load_hls;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `load_hls_playlist::load_hls_playlist`
[INFO] [stderr]   --> src/utils/mod.rs:71:9
[INFO] [stderr]    |
[INFO] [stderr] 71 | pub use load_hls_playlist::load_hls_playlist;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `parse_client::parse_client`
[INFO] [stderr]   --> src/utils/mod.rs:74:9
[INFO] [stderr]    |
[INFO] [stderr] 74 | pub use parse_client::parse_client;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `parse_semver::parse_semver`
[INFO] [stderr]   --> src/utils/mod.rs:75:9
[INFO] [stderr]    |
[INFO] [stderr] 75 | pub use parse_semver::parse_semver;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `send_error_response::send_error_response`
[INFO] [stderr]   --> src/utils/mod.rs:76:9
[INFO] [stderr]    |
[INFO] [stderr] 76 | pub use send_error_response::send_error_response;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `validate_property::validate_property`
[INFO] [stderr]   --> src/utils/mod.rs:78:9
[INFO] [stderr]    |
[INFO] [stderr] 78 | pub use validate_property::validate_property;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `verify_discord_id::verify_discord_id`
[INFO] [stderr]   --> src/utils/mod.rs:79:9
[INFO] [stderr]    |
[INFO] [stderr] 79 | pub use verify_discord_id::verify_discord_id;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `verify_method::verify_method`
[INFO] [stderr]   --> src/utils/mod.rs:80:9
[INFO] [stderr]    |
[INFO] [stderr] 80 | pub use verify_method::verify_method;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `version::VersionResult`
[INFO] [stderr]   --> src/utils/mod.rs:81:9
[INFO] [stderr]    |
[INFO] [stderr] 81 | pub use version::VersionResult;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `session`
[INFO] [stderr]   --> src/api/sessions.rs:28:17
[INFO] [stderr]    |
[INFO] [stderr] 28 |     if let Some(session) = rustlink_write.sessions.get_mut(&session_id) {
[INFO] [stderr]    |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `start_time`
[INFO] [stderr]   --> src/managers/connection_manager.rs:42:13
[INFO] [stderr]    |
[INFO] [stderr] 42 |         let start_time = Instant::now();
[INFO] [stderr]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/playback/filters/chorus.rs:26:13
[INFO] [stderr]    |
[INFO] [stderr] 26 |         let mut lfos = [
[INFO] [stderr]    |             ----^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/playback/filters/phaser.rs:32:13
[INFO] [stderr]    |
[INFO] [stderr] 32 |         let mut left_lfo = Lfo::new(Waveform::Sine, 0.0, 1.0);
[INFO] [stderr]    |             ----^^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/playback/filters/phaser.rs:33:13
[INFO] [stderr]    |
[INFO] [stderr] 33 |         let mut right_lfo = Lfo::new(Waveform::Sine, 0.0, 1.0);
[INFO] [stderr]    |             ----^^^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/sources/youtube/common.rs:43:9
[INFO] [stderr]    |
[INFO] [stderr] 43 |     let mut title = String::from("Unknown Title");
[INFO] [stderr]    |         ----^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/sources/youtube/common.rs:44:9
[INFO] [stderr]    |
[INFO] [stderr] 44 |     let mut author = String::from("Unknown Author");
[INFO] [stderr]    |         ----^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/sources/youtube/common.rs:45:9
[INFO] [stderr]    |
[INFO] [stderr] 45 |     let mut length_ms = 0;
[INFO] [stderr]    |         ----^^^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/sources/youtube/common.rs:46:9
[INFO] [stderr]    |
[INFO] [stderr] 46 |     let mut is_stream = true;
[INFO] [stderr]    |         ----^^^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/sources/youtube/common.rs:47:9
[INFO] [stderr]    |
[INFO] [stderr] 47 |     let mut artwork_url = None;
[INFO] [stderr]    |         ----^^^^^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `full_api_response`
[INFO] [stderr]   --> src/sources/youtube/common.rs:40:5
[INFO] [stderr]    |
[INFO] [stderr] 40 |     full_api_response: Option<&Value>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_full_api_response`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `uri` is never read
[INFO] [stderr]   --> src/sources/youtube/common.rs:48:19
[INFO] [stderr]    |
[INFO] [stderr] 48 |     let mut uri = String::new();
[INFO] [stderr]    |                   ^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 78 |     uri = if is_yt_music { format!("https://music.youtube.com/watch?v={}", vid) } else { format!("https://www.youtube.com/watch?v={}...
[INFO] [stderr]    |     --- `uri` is overwritten here before the previous value is read
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]  --> src/utils/getStats.rs:8:9
[INFO] [stderr]   |
[INFO] [stderr] 8 |     let mut frame_stats = if players > 0 {
[INFO] [stderr]   |         ----^^^^^^^^^^^
[INFO] [stderr]   |         |
[INFO] [stderr]   |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TEST_FILE_URL` is never used
[INFO] [stderr]  --> src/managers/connection_manager.rs:8:7
[INFO] [stderr]   |
[INFO] [stderr] 8 | const TEST_FILE_URL: &str = "http://cachefly.cachefly.net/10mb.test";
[INFO] [stderr]   |       ^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `status`, `metrics`, and `is_checking` are never read
[INFO] [stderr]   --> src/managers/connection_manager.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub struct ConnectionManager {
[INFO] [stderr]    |            ----------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 13 |     status: String,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 14 |     metrics: serde_json::Value,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] 15 |     is_checking: bool,
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `check_connection` is never used
[INFO] [stderr]   --> src/managers/connection_manager.rs:36:18
[INFO] [stderr]    |
[INFO] [stderr] 18 | impl ConnectionManager {
[INFO] [stderr]    | ---------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 36 |     pub async fn check_connection(&mut self) {
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `IpData` is never constructed
[INFO] [stderr]  --> src/managers/dos_protection_manager.rs:4:8
[INFO] [stderr]   |
[INFO] [stderr] 4 | struct IpData {
[INFO] [stderr]   |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `DosProtectionManager` is never constructed
[INFO] [stderr]   --> src/managers/dos_protection_manager.rs:10:12
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub struct DosProtectionManager {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `check` are never used
[INFO] [stderr]   --> src/managers/dos_protection_manager.rs:16:12
[INFO] [stderr]    |
[INFO] [stderr] 15 | impl DosProtectionManager {
[INFO] [stderr]    | ------------------------- associated items in this implementation
[INFO] [stderr] 16 |     pub fn new() -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 23 |     pub fn check(&mut self, remote_address: &str) -> Result<(), String> {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `lyrics_sources` is never read
[INFO] [stderr]  --> src/managers/lyrics_manager.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub struct LyricsManager {
[INFO] [stderr]   |            ------------- field in this struct
[INFO] [stderr] 7 |     lyrics_sources: HashMap<String, LyricsSource>,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `session_id` is never read
[INFO] [stderr]  --> src/managers/player_manager.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub struct PlayerManager {
[INFO] [stderr]   |            ------------- field in this struct
[INFO] [stderr] 7 |     sender: mpsc::Sender<AudioEngineCommand>,
[INFO] [stderr] 8 |     session_id: String,
[INFO] [stderr]   |     ^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `PlayerManager` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]   --> src/managers/player_manager.rs:12:12
[INFO] [stderr]    |
[INFO] [stderr] 11 | impl PlayerManager {
[INFO] [stderr]    | ------------------ associated items in this implementation
[INFO] [stderr] 12 |     pub fn new(sender: mpsc::Sender<AudioEngineCommand>, session_id: String) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 19 |     pub async fn create(&self, guild_id: String, user_id: String, voice: Option<Value>) -> Result<Value, String> {
[INFO] [stderr]    |                  ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 48 |     pub async fn play(&self, guild_id: String, track_payload: Value) -> Result<Value, String> {
[INFO] [stderr]    |                  ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 52 |     pub async fn stop(&self, guild_id: String) -> Result<Value, String> {
[INFO] [stderr]    |                  ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 56 |     pub async fn pause(&self, guild_id: String, should_pause: bool) -> Result<Value, String> {
[INFO] [stderr]    |                  ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 60 |     pub async fn seek(&self, guild_id: String, position: i64) -> Result<Value, String> {
[INFO] [stderr]    |                  ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 64 |     pub async fn set_volume(&self, guild_id: String, level: u64) -> Result<Value, String> {
[INFO] [stderr]    |                  ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 72 |         pub async fn set_voice(&self, guild_id: String, session_id: String, token: String, endpoint: String) -> Result<Value, String> {
[INFO] [stderr]    |                      ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `RateLimitEntry` is never constructed
[INFO] [stderr]  --> src/managers/rate_limit_manager.rs:4:8
[INFO] [stderr]   |
[INFO] [stderr] 4 | struct RateLimitEntry {
[INFO] [stderr]   |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `RateLimitManager` is never constructed
[INFO] [stderr]  --> src/managers/rate_limit_manager.rs:8:12
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub struct RateLimitManager {
[INFO] [stderr]   |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `check` are never used
[INFO] [stderr]   --> src/managers/rate_limit_manager.rs:14:12
[INFO] [stderr]    |
[INFO] [stderr] 13 | impl RateLimitManager {
[INFO] [stderr]    | --------------------- associated items in this implementation
[INFO] [stderr] 14 |     pub fn new() -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 21 |     pub fn check(&mut self, _identifier: &str) -> bool {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `ip_blocks` and `banned_ips` are never read
[INFO] [stderr]  --> src/managers/route_planner_manager.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub struct RoutePlannerManager {
[INFO] [stderr]   |            ------------------- fields in this struct
[INFO] [stderr] 4 |     ip_blocks: Vec<String>,
[INFO] [stderr]   |     ^^^^^^^^^
[INFO] [stderr] 5 |     banned_ips: HashMap<String, u128>,
[INFO] [stderr]   |     ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_ip`, `ban_ip`, and `free_ip` are never used
[INFO] [stderr]   --> src/managers/route_planner_manager.rs:16:12
[INFO] [stderr]    |
[INFO] [stderr]  8 | impl RoutePlannerManager {
[INFO] [stderr]    | ------------------------ methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 16 |     pub fn get_ip(&self) -> Option<String> {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 21 |     pub fn ban_ip(&mut self, ip: String) {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 26 |     pub fn free_ip(&mut self, ip: &str) {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `id`, `user_id`, and `client_info` are never read
[INFO] [stderr]   --> src/managers/session_manager.rs:9:9
[INFO] [stderr]    |
[INFO] [stderr]  8 | pub struct Session {
[INFO] [stderr]    |            ------- fields in this struct
[INFO] [stderr]  9 |     pub id: String,
[INFO] [stderr]    |         ^^
[INFO] [stderr] 10 |     pub user_id: Option<String>,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 11 |     pub client_info: Option<Value>,
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `audio_engine_sender` is never read
[INFO] [stderr]   --> src/managers/session_manager.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub struct SessionManager {
[INFO] [stderr]    |            -------------- field in this struct
[INFO] [stderr] 16 |     pub sessions: HashMap<String, Session>,
[INFO] [stderr] 17 |     audio_engine_sender: mpsc::Sender<AudioEngineCommand>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `create` and `delete` are never used
[INFO] [stderr]   --> src/managers/session_manager.rs:28:12
[INFO] [stderr]    |
[INFO] [stderr] 20 | impl SessionManager {
[INFO] [stderr]    | ------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 28 |     pub fn create(&mut self, _request: &Value, _client_info: Option<Value>) -> String {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 50 |     pub fn delete(&mut self, session_id: &str) {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `stats` is never read
[INFO] [stderr]  --> src/managers/stats_manager.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub struct StatsManager {
[INFO] [stderr]   |            ------------ field in this struct
[INFO] [stderr] 6 |     stats: Arc<Mutex<serde_json::Value>>,
[INFO] [stderr]   |     ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `StatsManager` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_snapshot` is never used
[INFO] [stderr]   --> src/managers/stats_manager.rs:27:12
[INFO] [stderr]    |
[INFO] [stderr]  9 | impl StatsManager {
[INFO] [stderr]    | ----------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 27 |     pub fn get_snapshot(&self) -> serde_json::Value {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `x1`, `y1`, and `a` are never read
[INFO] [stderr]  --> src/playback/filters/dsp/allpass.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub struct Allpass {
[INFO] [stderr]   |            ------- fields in this struct
[INFO] [stderr] 2 |     x1: f32,
[INFO] [stderr]   |     ^^
[INFO] [stderr] 3 |     y1: f32,
[INFO] [stderr]   |     ^^
[INFO] [stderr] 4 |     a: f32,
[INFO] [stderr]   |     ^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `set_coefficient` and `process` are never used
[INFO] [stderr]   --> src/playback/filters/dsp/allpass.rs:16:12
[INFO] [stderr]    |
[INFO] [stderr]  7 | impl Allpass {
[INFO] [stderr]    | ------------ methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 16 |     pub fn set_coefficient(&mut self, a: f32) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 20 |     pub fn process(&mut self, sample: f32) -> f32 {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `clamp_16_bit` is never used
[INFO] [stderr]  --> src/playback/filters/dsp/clamp_16_bit.rs:1:8
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub fn clamp_16_bit(sample: f32) -> i16 {
[INFO] [stderr]   |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `buffer`, `size`, and `write_index` are never read
[INFO] [stderr]  --> src/playback/filters/dsp/delay.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub struct DelayLine {
[INFO] [stderr]   |            --------- fields in this struct
[INFO] [stderr] 2 |     buffer: Vec<i16>,
[INFO] [stderr]   |     ^^^^^^
[INFO] [stderr] 3 |     size: usize,
[INFO] [stderr]   |     ^^^^
[INFO] [stderr] 4 |     write_index: usize,
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `write`, `read`, and `clear` are never used
[INFO] [stderr]   --> src/playback/filters/dsp/delay.rs:16:12
[INFO] [stderr]    |
[INFO] [stderr]  7 | impl DelayLine {
[INFO] [stderr]    | -------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 16 |     pub fn write(&mut self, sample: i16) {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 21 |     pub fn read(&self, delay_in_samples: f32) -> i16 {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 31 |     pub fn clear(&mut self) {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SAMPLE_RATE` is never used
[INFO] [stderr]  --> src/playback/filters/dsp/lfo.rs:4:7
[INFO] [stderr]   |
[INFO] [stderr] 4 | const SAMPLE_RATE: f32 = 48000.0;
[INFO] [stderr]   |       ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `phase` and `waveform` are never read
[INFO] [stderr]  --> src/playback/filters/dsp/lfo.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub struct Lfo {
[INFO] [stderr]   |            --- fields in this struct
[INFO] [stderr] 7 |     phase: f32,
[INFO] [stderr]   |     ^^^^^
[INFO] [stderr] 8 |     waveform: Waveform,
[INFO] [stderr]   |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `set_waveform`, `get_value`, and `process` are never used
[INFO] [stderr]   --> src/playback/filters/dsp/lfo.rs:23:12
[INFO] [stderr]    |
[INFO] [stderr] 13 | impl Lfo {
[INFO] [stderr]    | -------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 23 |     pub fn set_waveform(&mut self, waveform: Waveform) {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 32 |     pub fn get_value(&mut self) -> f32 {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 44 |     pub fn process(&mut self) -> f32 {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Square`, `Sawtooth`, and `Triangle` are never constructed
[INFO] [stderr]  --> src/playback/filters/dsp/waves.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub enum Waveform {
[INFO] [stderr]   |          -------- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 7 |     Square,
[INFO] [stderr]   |     ^^^^^^
[INFO] [stderr] 8 |     Sawtooth,
[INFO] [stderr]   |     ^^^^^^^^
[INFO] [stderr] 9 |     Triangle,
[INFO] [stderr]   |     ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `Waveform` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `apply` is never used
[INFO] [stderr]   --> src/playback/filters/dsp/waves.rs:13:12
[INFO] [stderr]    |
[INFO] [stderr] 12 | impl Waveform {
[INFO] [stderr]    | ------------- method in this implementation
[INFO] [stderr] 13 |     pub fn apply(&self, phase: f32) -> f32 {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `priority` is never read
[INFO] [stderr]  --> src/playback/filters/channel_mix.rs:4:9
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub struct ChannelMix {
[INFO] [stderr]   |            ---------- field in this struct
[INFO] [stderr] 4 |     pub priority: u32,
[INFO] [stderr]   |         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `process` is never used
[INFO] [stderr]   --> src/playback/filters/channel_mix.rs:35:12
[INFO] [stderr]    |
[INFO] [stderr] 11 | impl ChannelMix {
[INFO] [stderr]    | --------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 35 |     pub fn process(&self, chunk: &mut [i16]) {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `priority` and `delays` are never read
[INFO] [stderr]   --> src/playback/filters/chorus.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub struct Chorus {
[INFO] [stderr]    |            ------ fields in this struct
[INFO] [stderr] 11 |     pub priority: u32,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] 12 |     lfos: [Lfo; 4],
[INFO] [stderr] 13 |     delays: Vec<DelayLine>, // Using Vec because DelayLine size is dynamic or unknown at compile time? No, but to store multiple.
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `process` is never used
[INFO] [stderr]   --> src/playback/filters/chorus.rs:79:12
[INFO] [stderr]    |
[INFO] [stderr] 21 | impl Chorus {
[INFO] [stderr]    | ----------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 79 |     pub fn process(&mut self, chunk: &mut [i16]) {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `linear_to_db` is never used
[INFO] [stderr]  --> src/playback/filters/compressor.rs:8:4
[INFO] [stderr]   |
[INFO] [stderr] 8 | fn linear_to_db(linear: f32) -> f32 {
[INFO] [stderr]   |    ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `priority` and `envelope` are never read
[INFO] [stderr]   --> src/playback/filters/compressor.rs:17:9
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub struct Compressor {
[INFO] [stderr]    |            ---------- fields in this struct
[INFO] [stderr] 17 |     pub priority: u32,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 26 |     envelope: f32,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `process` is never used
[INFO] [stderr]   --> src/playback/filters/compressor.rs:74:12
[INFO] [stderr]    |
[INFO] [stderr] 29 | impl Compressor {
[INFO] [stderr]    | --------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 74 |     pub fn process(&mut self, chunk: &mut [i16]) {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX_INT_16` is never used
[INFO] [stderr]  --> src/playback/filters/distortion.rs:4:7
[INFO] [stderr]   |
[INFO] [stderr] 4 | const MAX_INT_16: f32 = 32767.0;
[INFO] [stderr]   |       ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `priority` is never read
[INFO] [stderr]  --> src/playback/filters/distortion.rs:7:9
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub struct Distortion {
[INFO] [stderr]   |            ---------- field in this struct
[INFO] [stderr] 7 |     pub priority: u32,
[INFO] [stderr]   |         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `process` is never used
[INFO] [stderr]   --> src/playback/filters/distortion.rs:54:12
[INFO] [stderr]    |
[INFO] [stderr] 18 | impl Distortion {
[INFO] [stderr]    | --------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 54 |     pub fn process(&self, chunk: &mut [i16]) {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `priority`, `left_delay`, and `right_delay` are never read
[INFO] [stderr]   --> src/playback/filters/echo.rs:8:9
[INFO] [stderr]    |
[INFO] [stderr]  7 | pub struct Echo {
[INFO] [stderr]    |            ---- fields in this struct
[INFO] [stderr]  8 |     pub priority: u32,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 13 |     left_delay: DelayLine,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 14 |     right_delay: DelayLine,
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `process` is never used
[INFO] [stderr]   --> src/playback/filters/echo.rs:39:12
[INFO] [stderr]    |
[INFO] [stderr] 17 | impl Echo {
[INFO] [stderr]    | --------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 39 |     pub fn process(&mut self, chunk: &mut [i16]) {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple fields are never read
[INFO] [stderr]   --> src/playback/filters/equalizer.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 14 | struct FilterState {
[INFO] [stderr]    |        ----------- fields in this struct
[INFO] [stderr] 15 |     xl1: f32,
[INFO] [stderr]    |     ^^^
[INFO] [stderr] 16 |     xl2: f32,
[INFO] [stderr]    |     ^^^
[INFO] [stderr] 17 |     yl1: f32,
[INFO] [stderr]    |     ^^^
[INFO] [stderr] 18 |     yl2: f32,
[INFO] [stderr]    |     ^^^
[INFO] [stderr] 19 |     xr1: f32,
[INFO] [stderr]    |     ^^^
[INFO] [stderr] 20 |     xr2: f32,
[INFO] [stderr]    |     ^^^
[INFO] [stderr] 21 |     yr1: f32,
[INFO] [stderr]    |     ^^^
[INFO] [stderr] 22 |     yr2: f32,
[INFO] [stderr]    |     ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `FilterState` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `b0`, `b1`, `b2`, `a1`, and `a2` are never read
[INFO] [stderr]   --> src/playback/filters/equalizer.rs:27:5
[INFO] [stderr]    |
[INFO] [stderr] 26 | struct FilterCoefficients {
[INFO] [stderr]    |        ------------------ fields in this struct
[INFO] [stderr] 27 |     b0: f32,
[INFO] [stderr]    |     ^^
[INFO] [stderr] 28 |     b1: f32,
[INFO] [stderr]    |     ^^
[INFO] [stderr] 29 |     b2: f32,
[INFO] [stderr]    |     ^^
[INFO] [stderr] 30 |     a1: f32,
[INFO] [stderr]    |     ^^
[INFO] [stderr] 31 |     a2: f32,
[INFO] [stderr]    |     ^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `FilterCoefficients` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `priority` is never read
[INFO] [stderr]   --> src/playback/filters/equalizer.rs:35:9
[INFO] [stderr]    |
[INFO] [stderr] 34 | pub struct Equalizer {
[INFO] [stderr]    |            --------- field in this struct
[INFO] [stderr] 35 |     pub priority: u32,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `process` is never used
[INFO] [stderr]    --> src/playback/filters/equalizer.rs:117:12
[INFO] [stderr]     |
[INFO] [stderr]  40 | impl Equalizer {
[INFO] [stderr]     | -------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 117 |     pub fn process(&mut self, chunk: &mut [i16]) {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `priority` is never read
[INFO] [stderr]  --> src/playback/filters/highpass.rs:4:9
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub struct Highpass {
[INFO] [stderr]   |            -------- field in this struct
[INFO] [stderr] 4 |     pub priority: u32,
[INFO] [stderr]   |         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `process` is never used
[INFO] [stderr]   --> src/playback/filters/highpass.rs:41:12
[INFO] [stderr]    |
[INFO] [stderr] 13 | impl Highpass {
[INFO] [stderr]    | ------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 41 |     pub fn process(&mut self, chunk: &mut [i16]) {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `priority` is never read
[INFO] [stderr]  --> src/playback/filters/karaoke.rs:6:9
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub struct Karaoke {
[INFO] [stderr]   |            ------- field in this struct
[INFO] [stderr] 6 |     pub priority: u32,
[INFO] [stderr]   |         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `process` is never used
[INFO] [stderr]    --> src/playback/filters/karaoke.rs:111:12
[INFO] [stderr]     |
[INFO] [stderr]  27 | impl Karaoke {
[INFO] [stderr]     | ------------ method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 111 |     pub fn process(&mut self, chunk: &mut [i16]) {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `priority` is never read
[INFO] [stderr]  --> src/playback/filters/lowpass.rs:4:9
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub struct Lowpass {
[INFO] [stderr]   |            ------- field in this struct
[INFO] [stderr] 4 |     pub priority: u32,
[INFO] [stderr]   |         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `process` is never used
[INFO] [stderr]   --> src/playback/filters/lowpass.rs:35:12
[INFO] [stderr]    |
[INFO] [stderr] 11 | impl Lowpass {
[INFO] [stderr]    | ------------ method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 35 |     pub fn process(&mut self, chunk: &mut [i16]) {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `priority`, `left_filters`, `right_filters`, `last_left_feedback`, and `last_right_feedback` are never read
[INFO] [stderr]   --> src/playback/filters/phaser.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub struct Phaser {
[INFO] [stderr]    |            ------ fields in this struct
[INFO] [stderr] 11 |     pub priority: u32,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 21 |     left_filters: Vec<Allpass>,
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] 22 |     right_filters: Vec<Allpass>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] 23 |     last_left_feedback: f32,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 24 |     last_right_feedback: f32,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `process` is never used
[INFO] [stderr]   --> src/playback/filters/phaser.rs:83:12
[INFO] [stderr]    |
[INFO] [stderr] 27 | impl Phaser {
[INFO] [stderr]    | ----------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 83 |     pub fn process(&mut self, chunk: &mut [i16]) {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `priority` is never read
[INFO] [stderr]  --> src/playback/filters/rotation.rs:6:9
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub struct Rotation {
[INFO] [stderr]   |            -------- field in this struct
[INFO] [stderr] 6 |     pub priority: u32,
[INFO] [stderr]   |         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `process` is never used
[INFO] [stderr]   --> src/playback/filters/rotation.rs:23:12
[INFO] [stderr]    |
[INFO] [stderr] 10 | impl Rotation {
[INFO] [stderr]    | ------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 23 |     pub fn process(&mut self, chunk: &mut [i16]) {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `cubic_interpolate` is never used
[INFO] [stderr]  --> src/playback/filters/timescale.rs:3:4
[INFO] [stderr]   |
[INFO] [stderr] 3 | fn cubic_interpolate(p0: f32, p1: f32, p2: f32, p3: f32, t: f32) -> f32 {
[INFO] [stderr]   |    ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `priority` and `input_buffer` are never read
[INFO] [stderr]   --> src/playback/filters/timescale.rs:14:9
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub struct Timescale {
[INFO] [stderr]    |            --------- fields in this struct
[INFO] [stderr] 14 |     pub priority: u32,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 19 |     input_buffer: Vec<i16>,
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `process` is never used
[INFO] [stderr]   --> src/playback/filters/timescale.rs:43:12
[INFO] [stderr]    |
[INFO] [stderr] 22 | impl Timescale {
[INFO] [stderr]    | -------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 43 |     pub fn process(&mut self, chunk: &[i16]) -> Vec<i16> {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `priority` is never read
[INFO] [stderr]  --> src/playback/filters/tremolo.rs:6:9
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub struct Tremolo {
[INFO] [stderr]   |            ------- field in this struct
[INFO] [stderr] 6 |     pub priority: u32,
[INFO] [stderr]   |         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `process` is never used
[INFO] [stderr]   --> src/playback/filters/tremolo.rs:25:12
[INFO] [stderr]    |
[INFO] [stderr] 10 | impl Tremolo {
[INFO] [stderr]    | ------------ method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 25 |     pub fn process(&mut self, chunk: &mut [i16]) {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `priority`, `left_delay`, and `right_delay` are never read
[INFO] [stderr]   --> src/playback/filters/vibrato.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr]  9 | pub struct Vibrato {
[INFO] [stderr]    |            ------- fields in this struct
[INFO] [stderr] 10 |     pub priority: u32,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] 11 |     lfo: Lfo,
[INFO] [stderr] 12 |     left_delay: DelayLine,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 13 |     right_delay: DelayLine,
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `process` is never used
[INFO] [stderr]   --> src/playback/filters/vibrato.rs:37:12
[INFO] [stderr]    |
[INFO] [stderr] 17 | impl Vibrato {
[INFO] [stderr]    | ------------ method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 37 |     pub fn process(&mut self, chunk: &mut [i16]) {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `process` is never used
[INFO] [stderr]    --> src/playback/filters_manager.rs:194:12
[INFO] [stderr]     |
[INFO] [stderr]  36 | impl FiltersManager {
[INFO] [stderr]     | ------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 194 |     pub fn process(&mut self, chunk: &[i16]) -> Vec<i16> {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `filters_manager` is never read
[INFO] [stderr]   --> src/playback/player.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr]  9 | pub struct Player {
[INFO] [stderr]    |            ------ field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 21 |     filters_manager: Option<FiltersManager>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `stats_manager` and `route_planner` are never read
[INFO] [stderr]   --> src/playback/audio_engine.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub struct AudioEngine {
[INFO] [stderr]    |            ----------- fields in this struct
[INFO] [stderr] 14 |     players: HashMap<String, Player>,
[INFO] [stderr] 15 |     stats_manager: StatsManager,
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 18 |     route_planner: RoutePlannerManager,
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `YoutubeUrlType` is never used
[INFO] [stderr]  --> src/sources/youtube/common.rs:7:10
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub enum YoutubeUrlType {
[INFO] [stderr]   |          ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `check_url_type` is never used
[INFO] [stderr]   --> src/sources/youtube/common.rs:14:8
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub fn check_url_type(url: &str, is_yt_music: bool) -> YoutubeUrlType {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_client_context` and `search` are never used
[INFO] [stderr]   --> src/sources/youtube/clients/android_vr.rs:10:12
[INFO] [stderr]    |
[INFO] [stderr]  7 | impl AndroidVRClient {
[INFO] [stderr]    | -------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 10 |     pub fn get_client_context(&self, hl: &str, gl: &str, visitor_data: Option<&str>) -> Value {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 28 |     pub async fn search(&self, _query: &str, _nodelink: &NodelinkMock) -> Value {
[INFO] [stderr]    |                  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_client_context` and `search` are never used
[INFO] [stderr]   --> src/sources/youtube/clients/ios.rs:9:12
[INFO] [stderr]    |
[INFO] [stderr]  6 | impl IosClient {
[INFO] [stderr]    | -------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  9 |     pub fn get_client_context(&self, hl: &str, gl: &str, visitor_data: Option<&str>) -> Value {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 28 |     pub async fn search(&self, _query: &str, _nodelink: &NodelinkMock) -> Value {
[INFO] [stderr]    |                  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_client_context` and `search` are never used
[INFO] [stderr]   --> src/sources/youtube/clients/music.rs:9:12
[INFO] [stderr]    |
[INFO] [stderr]  6 | impl MusicClient {
[INFO] [stderr]    | ---------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  9 |     pub fn get_client_context(&self, hl: &str, gl: &str) -> Value {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 25 |     pub async fn search(&self, _query: &str, _nodelink: &NodelinkMock) -> Value {
[INFO] [stderr]    |                  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_client_context` and `resolve` are never used
[INFO] [stderr]   --> src/sources/youtube/clients/tv.rs:9:12
[INFO] [stderr]    |
[INFO] [stderr]  6 | impl TvClient {
[INFO] [stderr]    | ------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  9 |     pub fn get_client_context(&self, hl: &str, gl: &str) -> Value {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 23 |     pub async fn resolve(&self, _url: &str, _nodelink: &NodelinkMock) -> Value {
[INFO] [stderr]    |                  ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_client_context` and `resolve` are never used
[INFO] [stderr]   --> src/sources/youtube/clients/tv_embedded.rs:9:12
[INFO] [stderr]    |
[INFO] [stderr]  6 | impl TvEmbeddedClient {
[INFO] [stderr]    | --------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  9 |     pub fn get_client_context(&self, hl: &str, gl: &str) -> Value {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 24 |     pub async fn resolve(&self, _url: &str, _nodelink: &NodelinkMock) -> Value {
[INFO] [stderr]    |                  ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_client_context` and `search` are never used
[INFO] [stderr]   --> src/sources/youtube/clients/web.rs:9:12
[INFO] [stderr]    |
[INFO] [stderr]  6 | impl WebClient {
[INFO] [stderr]    | -------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  9 |     pub fn get_client_context(&self, hl: &str, gl: &str) -> Value {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 24 |     pub async fn search(&self, _query: &str, _nodelink: &NodelinkMock) -> Value {
[INFO] [stderr]    |                  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple fields are never read
[INFO] [stderr]   --> src/sources/youtube/youtube.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub struct YoutubeSource {
[INFO] [stderr]    |            ------------- fields in this struct
[INFO] [stderr] 17 |     cipher_manager: CipherManager,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 18 |     oauth: OAuth,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 19 |     android: AndroidClient,
[INFO] [stderr] 20 |     android_vr: AndroidVRClient,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 21 |     ios: IosClient,
[INFO] [stderr]    |     ^^^
[INFO] [stderr] 22 |     music: MusicClient,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 23 |     tv: TvClient,
[INFO] [stderr]    |     ^^
[INFO] [stderr] 24 |     tv_embedded: TvEmbeddedClient,
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 25 |     web: WebClient,
[INFO] [stderr]    |     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `setup` is never used
[INFO] [stderr]   --> src/sources/youtube/youtube.rs:43:18
[INFO] [stderr]    |
[INFO] [stderr] 28 | impl YoutubeSource {
[INFO] [stderr]    | ------------------ method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 43 |     pub async fn setup(&mut self) -> bool {
[INFO] [stderr]    |                  ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_timestamp` and `resolve_url` are never used
[INFO] [stderr]   --> src/sources/youtube/cipher_manager.rs:12:18
[INFO] [stderr]    |
[INFO] [stderr]  9 | impl CipherManager {
[INFO] [stderr]    | ------------------ methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 12 |     pub async fn get_timestamp(&self, _player_url: &str, _nodelink: &NodelinkMock) -> Result<String, String> {
[INFO] [stderr]    |                  ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 17 |     pub async fn resolve_url(&self, stream_url: &str, _nodelink: &NodelinkMock) -> Result<String, String> {
[INFO] [stderr]    |                  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `refresh_token` and `access_token` are never read
[INFO] [stderr]  --> src/sources/youtube/oauth.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub struct OAuth {
[INFO] [stderr]   |            ----- fields in this struct
[INFO] [stderr] 6 |     refresh_token: Option<String>,
[INFO] [stderr]   |     ^^^^^^^^^^^^^
[INFO] [stderr] 7 |     access_token: Option<String>,
[INFO] [stderr]   |     ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_access_token` is never used
[INFO] [stderr]   --> src/sources/youtube/oauth.rs:18:18
[INFO] [stderr]    |
[INFO] [stderr] 10 | impl OAuth {
[INFO] [stderr]    | ---------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 18 |     pub async fn get_access_token(&mut self, _nodelink: &NodelinkMock) -> Option<String> {
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `DeezerSource` is never constructed
[INFO] [stderr]  --> src/sources/deezer.rs:6:12
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub struct DeezerSource;
[INFO] [stderr]   |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `BandcampSource` is never constructed
[INFO] [stderr]  --> src/sources/bandcamp.rs:6:12
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub struct BandcampSource;
[INFO] [stderr]   |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `HttpSource` is never constructed
[INFO] [stderr]  --> src/sources/http.rs:6:12
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub struct HttpSource;
[INFO] [stderr]   |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `LocalSource` is never constructed
[INFO] [stderr]  --> src/sources/local.rs:6:12
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub struct LocalSource;
[INFO] [stderr]   |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `TwitchSource` is never constructed
[INFO] [stderr]  --> src/sources/twitch.rs:6:12
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub struct TwitchSource;
[INFO] [stderr]   |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `NicovideoSource` is never constructed
[INFO] [stderr]  --> src/sources/nicovideo.rs:6:12
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub struct NicovideoSource;
[INFO] [stderr]   |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `RedditSource` is never constructed
[INFO] [stderr]  --> src/sources/reddit.rs:6:12
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub struct RedditSource;
[INFO] [stderr]   |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `InstagramSource` is never constructed
[INFO] [stderr]  --> src/sources/instagram.rs:6:12
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub struct InstagramSource;
[INFO] [stderr]   |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `KwaiSource` is never constructed
[INFO] [stderr]  --> src/sources/kwai.rs:6:12
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub struct KwaiSource;
[INFO] [stderr]   |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `LastfmSource` is never constructed
[INFO] [stderr]  --> src/sources/lastfm.rs:6:12
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub struct LastfmSource;
[INFO] [stderr]   |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `GoogleTtsSource` is never constructed
[INFO] [stderr]  --> src/sources/google_tts.rs:6:12
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub struct GoogleTtsSource;
[INFO] [stderr]   |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `TidalSource` is never constructed
[INFO] [stderr]  --> src/sources/tidal.rs:6:12
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub struct TidalSource;
[INFO] [stderr]   |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ClientInfo` is never constructed
[INFO] [stderr]  --> src/types/client.rs:2:12
[INFO] [stderr]   |
[INFO] [stderr] 2 | pub struct ClientInfo {
[INFO] [stderr]   |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `status`, `headers`, and `raw_body` are never read
[INFO] [stderr]   --> src/types/http.rs:34:9
[INFO] [stderr]    |
[INFO] [stderr] 33 | pub struct ResponseResult {
[INFO] [stderr]    |            -------------- fields in this struct
[INFO] [stderr] 34 |     pub status: StatusCode,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr] 35 |     pub headers: HeaderMap,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 36 |     pub body: Option<Value>,
[INFO] [stderr] 37 |     pub raw_body: Option<Vec<u8>>,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `FileConfig` is never constructed
[INFO] [stderr]  --> src/types/logger.rs:1:12
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub struct FileConfig {
[INFO] [stderr]   |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `LoggingConfig` is never constructed
[INFO] [stderr]  --> src/types/logger.rs:6:12
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub struct LoggingConfig {
[INFO] [stderr]   |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Config` is never constructed
[INFO] [stderr]   --> src/types/logger.rs:10:12
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub struct Config {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `CreatePlayer`, `LoadTracks`, `LoadLyrics`, and `GetSources` are never constructed
[INFO] [stderr]   --> src/types/audio_engine.rs:6:5
[INFO] [stderr]    |
[INFO] [stderr]  5 | pub enum AudioEngineCommand {
[INFO] [stderr]    |          ------------------ variants in this enum
[INFO] [stderr]  6 |     CreatePlayer {
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 23 |     LoadTracks {
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 27 |     LoadLyrics {
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 31 |     GetSources {
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `AudioEngineCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: function `init_file_logger` is never used
[INFO] [stderr]  --> src/utils/initLogger.rs:9:8
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub fn init_file_logger(config: &LoggingConfig) -> Option<File> {
[INFO] [stderr]   |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `init_logger` is never used
[INFO] [stderr]   --> src/utils/initLogger.rs:48:8
[INFO] [stderr]    |
[INFO] [stderr] 48 | pub fn init_logger(config: Config) -> Option<File> {
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `validate_property` is never used
[INFO] [stderr]  --> src/utils/validateProperty.rs:1:8
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub fn validate_property<T, F>(property: T, validator: F, error_message: &str) -> Result<(), String>
[INFO] [stderr]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `check_for_updates` is never used
[INFO] [stderr]  --> src/utils/checkForUpdates.rs:4:14
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub async fn check_for_updates() {
[INFO] [stderr]   |              ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `index` is never used
[INFO] [stderr]   --> src/utils/logger.rs:41:8
[INFO] [stderr]    |
[INFO] [stderr] 17 | impl LogLevel {
[INFO] [stderr]    | ------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 41 |     fn index(&self) -> u8 {
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static `SEMVER_REGEX` is never used
[INFO] [stderr]  --> src/utils/parseSemver.rs:4:8
[INFO] [stderr]   |
[INFO] [stderr] 4 | static SEMVER_REGEX: Lazy<Regex> = Lazy::new(|| {
[INFO] [stderr]   |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Semver` is never constructed
[INFO] [stderr]  --> src/utils/parseSemver.rs:9:12
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub struct Semver {
[INFO] [stderr]   |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_semver` is never used
[INFO] [stderr]   --> src/utils/parseSemver.rs:17:8
[INFO] [stderr]    |
[INFO] [stderr] 17 | pub fn parse_semver(version: &str) -> Option<Semver> {
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_client` is never used
[INFO] [stderr]  --> src/utils/parseClient.rs:3:8
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub fn parse_client(agent: Option<&str>) -> Option<ClientInfo> {
[INFO] [stderr]   |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `generate_random_letters` is never used
[INFO] [stderr]  --> src/utils/generateRandomLetters.rs:3:8
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub fn generate_random_letters(l: usize) -> String {
[INFO] [stderr]   |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static `DISCORD_ID_REGEX` is never used
[INFO] [stderr]  --> src/utils/verifyDiscordID.rs:4:8
[INFO] [stderr]   |
[INFO] [stderr] 4 | static DISCORD_ID_REGEX: Lazy<Regex> = Lazy::new(|| Regex::new(r"^\d{18,19}$").unwrap());
[INFO] [stderr]   |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `verify_discord_id` is never used
[INFO] [stderr]  --> src/utils/verifyDiscordID.rs:6:8
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub fn verify_discord_id(id: impl ToString) -> bool {
[INFO] [stderr]   |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `verify_method` is never used
[INFO] [stderr]  --> src/utils/verifyMethod.rs:9:8
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub fn verify_method(
[INFO] [stderr]   |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `send_error_response` is never used
[INFO] [stderr]  --> src/utils/sendErrorResponse.rs:8:8
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub fn send_error_response(
[INFO] [stderr]   |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `load_hls` is never used
[INFO] [stderr]  --> src/utils/loadHLS.rs:6:14
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub async fn load_hls(url: &str, _stream: &mut Vec<u8> /* Mocked stream */, _once_ended: bool, _should_end: bool) -> bool {
[INFO] [stderr]   |              ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `load_hls_playlist` is never used
[INFO] [stderr]  --> src/utils/loadHLSPlaylist.rs:7:14
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub async fn load_hls_playlist(url: &str, stream: &mut Vec<u8>) -> bool {
[INFO] [stderr]   |              ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `rustlink` (bin "rustlink" test) generated 169 warnings (run `cargo fix --bin "rustlink" -p rustlink --tests` to apply 56 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.37s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/rustlink-a48d42a7638fcfeb)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "7612e34453eb6e4f9e44a1341c68aeef74e4324708e9c1eb19db31f2a6692ec1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7612e34453eb6e4f9e44a1341c68aeef74e4324708e9c1eb19db31f2a6692ec1", kill_on_drop: false }`
[INFO] [stdout] 7612e34453eb6e4f9e44a1341c68aeef74e4324708e9c1eb19db31f2a6692ec1
