[INFO] cloning repository https://github.com/imaviso/jellyfin-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/imaviso/jellyfin-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fimaviso%2Fjellyfin-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fimaviso%2Fjellyfin-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e354f4a4f8c8a1614affed39e094e1fa793a404d
[INFO] testing imaviso/jellyfin-rust against master#2fd6efc32704647e64d3d646d21c4c68eae100e4 for pr-149852-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fimaviso%2Fjellyfin-rust" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/imaviso/jellyfin-rust
[INFO] finished tweaking git repo https://github.com/imaviso/jellyfin-rust
[INFO] tweaked toml for git repo https://github.com/imaviso/jellyfin-rust written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/imaviso/jellyfin-rust on toolchain 2fd6efc32704647e64d3d646d21c4c68eae100e4
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/imaviso/jellyfin-rust 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" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 6b98d1b52afea6c515060e2e950b8b302705caa4ae413437dec9dac828c52b14
[INFO] running `Command { std: "docker" "start" "-a" "6b98d1b52afea6c515060e2e950b8b302705caa4ae413437dec9dac828c52b14", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6b98d1b52afea6c515060e2e950b8b302705caa4ae413437dec9dac828c52b14", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6b98d1b52afea6c515060e2e950b8b302705caa4ae413437dec9dac828c52b14", kill_on_drop: false }`
[INFO] [stdout] 6b98d1b52afea6c515060e2e950b8b302705caa4ae413437dec9dac828c52b14
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9d454472d54d5969d824f282b4290ea47c9f2a82ca4de43836991ca84559daa8
[INFO] running `Command { std: "docker" "start" "-a" "9d454472d54d5969d824f282b4290ea47c9f2a82ca4de43836991ca84559daa8", kill_on_drop: false }`
[INFO] [stderr]    Compiling bytes v1.11.0
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling find-msvc-tools v0.1.7
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling icu_properties_data v2.1.2
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]    Compiling socket2 v0.6.1
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling zmij v1.0.12
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling zerocopy v0.8.33
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling cc v1.2.52
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling futures-sink v0.3.31
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling crc v3.4.0
[INFO] [stderr]    Compiling crossbeam-queue v0.3.12
[INFO] [stderr]    Compiling atoi v2.0.0
[INFO] [stderr]    Compiling spin v0.9.8
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling http v0.2.12
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling futures-intrusive v0.5.0
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling chrono v0.4.42
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling rustls v0.21.12
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling uuid v1.19.0
[INFO] [stderr]    Compiling flume v0.11.1
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling unicase v2.9.0
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling http-body v0.4.6
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling heck v0.4.1
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling libsqlite3-sys v0.27.0
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling sqlformat v0.2.6
[INFO] [stderr]    Compiling socket2 v0.5.10
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling winnow v0.7.14
[INFO] [stderr]    Compiling base64ct v1.8.2
[INFO] [stderr]    Compiling hashlink v0.8.4
[INFO] [stderr]    Compiling dirs-sys v0.4.1
[INFO] [stderr]    Compiling password-hash v0.5.0
[INFO] [stderr]    Compiling tempfile v3.24.0
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling blake2 v0.10.6
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling argon2 v0.5.3
[INFO] [stderr]    Compiling dirs v5.0.1
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling sct v0.7.1
[INFO] [stderr]    Compiling rustls-webpki v0.101.7
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling axum-macros v0.4.2
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling tower v0.4.13
[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 icu_provider v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling axum-core v0.4.5
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling sqlx-core v0.7.4
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling tokio-rustls v0.24.1
[INFO] [stderr]    Compiling tower v0.5.2
[INFO] [stderr]    Compiling h2 v0.3.27
[INFO] [stderr]    Compiling tower-http v0.5.2
[INFO] [stderr]    Compiling hyper-util v0.1.19
[INFO] [stderr]    Compiling axum v0.7.9
[INFO] [stderr]    Compiling sqlx-sqlite v0.7.4
[INFO] [stderr]    Compiling sqlx-macros-core v0.7.4
[INFO] [stderr]    Compiling sqlx-macros v0.7.4
[INFO] [stderr]    Compiling hyper v0.14.32
[INFO] [stderr]    Compiling sqlx v0.7.4
[INFO] [stderr]    Compiling hyper-rustls v0.24.2
[INFO] [stderr]    Compiling reqwest v0.11.27
[INFO] [stderr]    Compiling jellyfin-rust v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `response::IntoResponse`
[INFO] [stdout]  --> src/api/favorites.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     response::IntoResponse,
[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: `ImageTags`
[INFO] [stdout]   --> src/api/filters.rs:14:33
[INFO] [stdout]    |
[INFO] [stdout] 14 | use super::items::{BaseItemDto, ImageTags, UserItemDataDto};
[INFO] [stdout]    |                                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `get_user_item_data`
[INFO] [stdout]   --> src/api/home.rs:13:20
[INFO] [stdout]    |
[INFO] [stdout] 13 | use super::items::{get_user_item_data, BaseItemDto, ImageTags, ItemsResponse, UserItemDataDto};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ImageTags`
[INFO] [stdout]   --> src/api/sessions.rs:14:33
[INFO] [stdout]    |
[INFO] [stdout] 14 | use super::items::{BaseItemDto, ImageTags, UserItemDataDto};
[INFO] [stdout]    |                                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serialize`
[INFO] [stdout]  --> src/api/shows.rs:9:26
[INFO] [stdout]   |
[INFO] [stdout] 9 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Deserialize`
[INFO] [stdout]  --> src/api/system.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime` and `Utc`
[INFO] [stdout]  --> src/models/mod.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use chrono::{DateTime, Utc};
[INFO] [stdout]   |              ^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::Uuid`
[INFO] [stdout]  --> src/models/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use uuid::Uuid;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::Deserialize`
[INFO] [stdout]  --> src/services/anidb.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use serde::Deserialize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serialize`
[INFO] [stdout]  --> src/services/tmdb.rs:6:26
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]     --> src/api/items.rs:2793:9
[INFO] [stdout]      |
[INFO] [stdout] 2793 |     let item: MediaItem = sqlx::query_as("SELECT * FROM media_items WHERE id = ?")
[INFO] [stdout]      |         ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]    --> src/api/library.rs:152:5
[INFO] [stdout]     |
[INFO] [stdout] 152 |     body: Option<Json<AddVirtualFolderBody>>,
[INFO] [stdout]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_body`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/api/subtitles.rs:600:5
[INFO] [stdout]     |
[INFO] [stdout] 600 |     state: &AppState,
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `year`
[INFO] [stdout]    --> src/services/anilist.rs:422:68
[INFO] [stdout]     |
[INFO] [stdout] 422 |     fn is_title_match(&self, query_clean: &str, media: &MediaData, year: Option<i32>) -> bool {
[INFO] [stdout]     |                                                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_year`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `user_id` is never read
[INFO] [stdout]   --> src/api/collections.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct CollectionsQuery {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] 31 |     pub user_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CollectionsQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `parent_id` and `is_locked` are never read
[INFO] [stdout]   --> src/api/collections.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct CreateCollectionRequest {
[INFO] [stdout]    |            ----------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub parent_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 42 |     pub is_locked: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CreateCollectionRequest` 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 `is_favorite` is never used
[INFO] [stdout]    --> src/api/favorites.rs:146:14
[INFO] [stdout]     |
[INFO] [stdout] 146 | pub async fn is_favorite(pool: &sqlx::SqlitePool, user_id: &str, item_id: &str) -> bool {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `user_id`, `is_favorite`, and `sort_by` are never read
[INFO] [stdout]   --> src/api/filters.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct FilterQuery {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub user_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 37 |     pub is_favorite: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 38 |     pub sort_by: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FilterQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `fields`, `image_type_limit`, and `enable_image_types` are never read
[INFO] [stdout]   --> src/api/home.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct LatestQuery {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fields: Vec<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 67 |     pub image_type_limit: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 68 |     pub enable_image_types: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LatestQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/api/home.rs:86:9
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub struct ResumeQuery {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 86 |     pub user_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 87 |     pub limit: Option<i32>,
[INFO] [stdout] 88 |     pub parent_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 89 |     pub fields: Vec<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 90 |     pub media_types: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 91 |     pub enable_image_types: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 92 |     pub enable_total_record_count: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 93 |     pub enable_user_data: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ResumeQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/api/home.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub struct NextUpQuery {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 115 |     pub user_id: Option<String>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 116 |     pub parent_id: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 117 |     pub fields: Vec<String>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 118 |     pub limit: Option<i32>,
[INFO] [stdout] 119 |     pub image_type_limit: Option<i32>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 120 |     pub next_up_date_cutoff: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 121 |     pub disable_first_episode: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 122 |     pub enable_resumable: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 123 |     pub enable_rewatching: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NextUpQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/api/images.rs:157:9
[INFO] [stdout]     |
[INFO] [stdout] 156 | pub struct ImageQuery {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 157 |     pub max_width: Option<u32>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 158 |     pub max_height: Option<u32>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 159 |     pub width: Option<u32>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 160 |     pub height: Option<u32>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 161 |     pub quality: Option<u32>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 162 |     pub fill_width: Option<u32>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 163 |     pub fill_height: Option<u32>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 164 |     pub tag: Option<String>,
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ImageQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `index` is never read
[INFO] [stdout]    --> src/api/images.rs:182:5
[INFO] [stdout]     |
[INFO] [stdout] 177 | pub struct ImagePathIndexed {
[INFO] [stdout]     |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 182 |     index: u32,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ImagePathIndexed` 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 `store_image` is never used
[INFO] [stdout]    --> src/api/images.rs:355:14
[INFO] [stdout]     |
[INFO] [stdout] 355 | pub async fn store_image(
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/api/items.rs:387:9
[INFO] [stdout]     |
[INFO] [stdout] 386 | pub struct FiltersQuery {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 387 |     pub user_id: Option<String>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 388 |     pub parent_id: Option<String>,
[INFO] [stdout] 389 |     pub include_item_types: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 390 |     pub is_airing: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 391 |     pub is_movie: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 392 |     pub is_sports: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 393 |     pub is_kids: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 394 |     pub is_news: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 395 |     pub is_series: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 396 |     pub recursive: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FiltersQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `exclude_item_types`, `fields`, `genres`, `genre_ids`, and `media_types` are never read
[INFO] [stdout]    --> src/api/items.rs:634:9
[INFO] [stdout]     |
[INFO] [stdout] 631 | pub struct GetItemsQuery {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 634 |     pub exclude_item_types: Option<Vec<String>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 640 |     pub fields: Option<Vec<String>>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 645 |     pub genres: Option<Vec<String>>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 646 |     pub genre_ids: Option<Vec<String>>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 647 |     pub media_types: Option<Vec<String>>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GetItemsQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]     --> src/api/items.rs:1651:9
[INFO] [stdout]      |
[INFO] [stdout] 1646 | pub struct SearchHintsQuery {
[INFO] [stdout]      |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1651 |     pub media_types: Option<String>,
[INFO] [stdout]      |         ^^^^^^^^^^^
[INFO] [stdout] 1652 |     pub is_movie: Option<bool>,
[INFO] [stdout]      |         ^^^^^^^^
[INFO] [stdout] 1653 |     pub is_series: Option<bool>,
[INFO] [stdout]      |         ^^^^^^^^^
[INFO] [stdout] 1654 |     pub is_news: Option<bool>,
[INFO] [stdout]      |         ^^^^^^^
[INFO] [stdout] 1655 |     pub is_kids: Option<bool>,
[INFO] [stdout]      |         ^^^^^^^
[INFO] [stdout] 1656 |     pub is_sports: Option<bool>,
[INFO] [stdout]      |         ^^^^^^^^^
[INFO] [stdout] 1657 |     #[serde(rename = "userId")]
[INFO] [stdout] 1658 |     pub user_id: Option<String>,
[INFO] [stdout]      |         ^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `SearchHintsQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `regenerate_trickplay` is never read
[INFO] [stdout]     --> src/api/items.rs:1978:9
[INFO] [stdout]      |
[INFO] [stdout] 1968 | pub struct RefreshQuery {
[INFO] [stdout]      |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1978 |     pub regenerate_trickplay: Option<bool>,
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `RefreshQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `start_index`, `limit`, and `include_all_languages` are never read
[INFO] [stdout]     --> src/api/items.rs:2563:9
[INFO] [stdout]      |
[INFO] [stdout] 2560 | pub struct RemoteImagesQuery {
[INFO] [stdout]      |            ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 2563 |     pub start_index: Option<i32>,
[INFO] [stdout]      |         ^^^^^^^^^^^
[INFO] [stdout] 2564 |     pub limit: Option<i32>,
[INFO] [stdout]      |         ^^^^^
[INFO] [stdout] 2565 |     pub include_all_languages: Option<bool>,
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `RemoteImagesQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `include_disabled_providers` is never read
[INFO] [stdout]     --> src/api/items.rs:3141:9
[INFO] [stdout]      |
[INFO] [stdout] 3136 | pub struct SeriesInfoRemoteSearchQuery {
[INFO] [stdout]      |            --------------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 3141 |     pub include_disabled_providers: bool,
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `SeriesInfoRemoteSearchQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `provider_ids` is never read
[INFO] [stdout]     --> src/api/items.rs:3149:9
[INFO] [stdout]      |
[INFO] [stdout] 3146 | pub struct SeriesSearchInfo {
[INFO] [stdout]      |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 3149 |     pub provider_ids: Option<std::collections::HashMap<String, String>>,
[INFO] [stdout]      |         ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `SeriesSearchInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `include_disabled_providers` is never read
[INFO] [stdout]     --> src/api/items.rs:3159:9
[INFO] [stdout]      |
[INFO] [stdout] 3154 | pub struct MovieInfoRemoteSearchQuery {
[INFO] [stdout]      |            -------------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 3159 |     pub include_disabled_providers: bool,
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `MovieInfoRemoteSearchQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `provider_ids` is never read
[INFO] [stdout]     --> src/api/items.rs:3167:9
[INFO] [stdout]      |
[INFO] [stdout] 3164 | pub struct MovieSearchInfo {
[INFO] [stdout]      |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 3167 |     pub provider_ids: Option<std::collections::HashMap<String, String>>,
[INFO] [stdout]      |         ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `MovieSearchInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `library_options` is never read
[INFO] [stdout]   --> src/api/library.rs:93:9
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub struct AddVirtualFolderBody {
[INFO] [stdout]    |            -------------------- field in this struct
[INFO] [stdout] 93 |     pub library_options: Option<LibraryOptions>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AddVirtualFolderBody` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `library_options` are never read
[INFO] [stdout]    --> src/api/library.rs:248:9
[INFO] [stdout]     |
[INFO] [stdout] 247 | pub struct UpdateLibraryOptionsRequest {
[INFO] [stdout]     |            --------------------------- fields in this struct
[INFO] [stdout] 248 |     pub id: String,
[INFO] [stdout]     |         ^^
[INFO] [stdout] 249 |     pub library_options: LibraryOptions,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UpdateLibraryOptionsRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `user_id`, `parent_id`, and `fields` are never read
[INFO] [stdout]   --> src/api/movies.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct RecommendationsQuery {
[INFO] [stdout]    |            -------------------- fields in this struct
[INFO] [stdout] 24 |     pub user_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 25 |     pub parent_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 26 |     pub fields: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RecommendationsQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `person_types` and `user_id` are never read
[INFO] [stdout]   --> src/api/persons.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct PersonsQuery {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 33 |     pub search_term: Option<String>,
[INFO] [stdout] 34 |     pub person_types: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub user_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PersonsQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `image_type` is never read
[INFO] [stdout]    --> src/api/persons.rs:221:5
[INFO] [stdout]     |
[INFO] [stdout] 218 | pub struct PersonImagePath {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 221 |     image_type: String,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PersonImagePath` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `max_width`, `max_height`, and `tag` are never read
[INFO] [stdout]    --> src/api/persons.rs:236:9
[INFO] [stdout]     |
[INFO] [stdout] 235 | pub struct ImageQuery {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 236 |     pub max_width: Option<u32>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 237 |     pub max_height: Option<u32>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 238 |     pub tag: Option<String>,
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ImageQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `media_source_id`, `audio_stream_index`, `subtitle_stream_index`, `play_method`, and `play_session_id` are never read
[INFO] [stdout]   --> src/api/playback.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct PlaybackStartInfo {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub media_source_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 50 |     pub audio_stream_index: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 51 |     pub subtitle_stream_index: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 52 |     pub play_method: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 53 |     pub play_session_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PlaybackStartInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `is_muted`, `volume_level`, `play_method`, `play_session_id`, and `repeat_mode` are never read
[INFO] [stdout]   --> src/api/playback.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct PlaybackProgressInfo {
[INFO] [stdout]    |            -------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub is_muted: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 64 |     pub volume_level: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 65 |     pub play_method: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 66 |     pub play_session_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 67 |     pub repeat_mode: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PlaybackProgressInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `media_source_id` and `play_session_id` are never read
[INFO] [stdout]   --> src/api/playback.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct PlaybackStopInfo {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub media_source_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 77 |     pub play_session_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PlaybackStopInfo` 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 `get_playback_progress` is never used
[INFO] [stdout]    --> src/api/playback.rs:433:14
[INFO] [stdout]     |
[INFO] [stdout] 433 | pub async fn get_playback_progress(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/api/playbackinfo.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct PlaybackInfoQuery {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] 29 |     pub user_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 30 |     pub max_streaming_bitrate: Option<i64>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 31 |     pub start_time_ticks: Option<i64>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 32 |     pub audio_stream_index: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 33 |     pub subtitle_stream_index: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 34 |     pub max_audio_channels: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 35 |     pub media_source_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 36 |     pub live_stream_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 37 |     pub auto_open_live_stream: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 38 |     pub enable_direct_play: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 39 |     pub enable_direct_stream: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 40 |     pub enable_transcoding: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 41 |     pub allow_video_stream_copy: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 42 |     pub allow_audio_stream_copy: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PlaybackInfoQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `user_id` is never read
[INFO] [stdout]   --> src/api/playlists.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct PlaylistsQuery {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 29 |     pub user_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PlaylistsQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `user_id` is never read
[INFO] [stdout]   --> src/api/playlists.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct CreatePlaylistRequest {
[INFO] [stdout]    |            --------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub user_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CreatePlaylistRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `user_id` is never read
[INFO] [stdout]   --> src/api/playlists.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 64 | struct PlaylistRow {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 67 |     user_id: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PlaylistRow` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_str` is never used
[INFO] [stdout]   --> src/api/segments.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl MediaSegmentType {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] 34 |     fn as_str(&self) -> &'static str {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `import_edl_file` is never used
[INFO] [stdout]    --> src/api/segments.rs:235:14
[INFO] [stdout]     |
[INFO] [stdout] 235 | pub async fn import_edl_file(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_intro` is never used
[INFO] [stdout]    --> src/api/segments.rs:283:14
[INFO] [stdout]     |
[INFO] [stdout] 283 | pub async fn has_intro(pool: &sqlx::SqlitePool, item_id: &str) -> bool {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_intro` is never used
[INFO] [stdout]    --> src/api/segments.rs:296:14
[INFO] [stdout]     |
[INFO] [stdout] 296 | pub async fn get_intro(pool: &sqlx::SqlitePool, item_id: &str) -> Option<(i64, i64)> {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_outro` is never used
[INFO] [stdout]    --> src/api/segments.rs:310:14
[INFO] [stdout]     |
[INFO] [stdout] 310 | pub async fn get_outro(pool: &sqlx::SqlitePool, item_id: &str) -> Option<(i64, i64)> {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `controlling_user_id` is never read
[INFO] [stdout]   --> src/api/sessions.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct PlaybackCommandBody {
[INFO] [stdout]    |            ------------------- field in this struct
[INFO] [stdout] 74 |     pub seek_position_ticks: Option<i64>,
[INFO] [stdout] 75 |     pub controlling_user_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PlaybackCommandBody` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timeout_ms` is never read
[INFO] [stdout]   --> src/api/sessions.rs:83:9
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub struct MessageBody {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub timeout_ms: Option<i64>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MessageBody` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `play_state` is never read
[INFO] [stdout]    --> src/api/sessions.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout]  87 | struct SessionRow {
[INFO] [stdout]     |        ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 100 |     play_state: Option<String>,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SessionRow` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `user_id`, `fields`, `is_special_season`, `is_missing`, and `adjacent_to` are never read
[INFO] [stdout]   --> src/api/shows.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct SeasonsQuery {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 26 |     pub user_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 27 |     pub fields: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 28 |     pub is_special_season: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 29 |     pub is_missing: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 30 |     pub adjacent_to: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SeasonsQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `user_id`, `fields`, `is_missing`, `adjacent_to`, and `start_item_id` are never read
[INFO] [stdout]   --> src/api/shows.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct EpisodesQuery {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 36 |     pub user_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 37 |     pub fields: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub is_missing: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 41 |     pub adjacent_to: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub start_item_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EpisodesQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `is_perfect_match` and `is_forced` are never read
[INFO] [stdout]    --> src/api/subtitles.rs:357:9
[INFO] [stdout]     |
[INFO] [stdout] 356 | pub struct SearchSubtitlesQuery {
[INFO] [stdout]     |            -------------------- fields in this struct
[INFO] [stdout] 357 |     pub is_perfect_match: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 358 |     pub is_forced: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SearchSubtitlesQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `static_stream`, `media_source_id`, `device_id`, `audio_codec`, `video_codec`, and `container` are never read
[INFO] [stdout]   --> src/api/videos.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct StreamQuery {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 37 |     pub static_stream: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 38 |     pub media_source_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 39 |     pub device_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 40 |     pub audio_codec: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 41 |     pub video_codec: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 42 |     pub container: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `StreamQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `container` is never read
[INFO] [stdout]    --> src/api/videos.rs:233:5
[INFO] [stdout]     |
[INFO] [stdout] 230 | pub struct VideoPath {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 233 |     container: Option<String>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `VideoPath` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `media_source_id` is never read
[INFO] [stdout]    --> src/api/videos.rs:256:9
[INFO] [stdout]     |
[INFO] [stdout] 255 | pub struct TrickplayQuery {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] 256 |     pub media_source_id: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TrickplayQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `user_id`, `include_external_content`, and `include_hidden` are never read
[INFO] [stdout]   --> src/api/views.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct UserViewsQuery {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 23 |     pub user_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 24 |     pub include_external_content: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 25 |     pub include_hidden: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UserViewsQuery` 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 `configure_connection` is never used
[INFO] [stdout]   --> src/db/mod.rs:11:14
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub async fn configure_connection(pool: &SqlitePool) -> Result<()> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `optimize` is never used
[INFO] [stdout]    --> src/db/mod.rs:492:14
[INFO] [stdout]     |
[INFO] [stdout] 492 | pub async fn optimize(pool: &SqlitePool) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_pending_image_count` is never used
[INFO] [stdout]    --> src/db/mod.rs:581:14
[INFO] [stdout]     |
[INFO] [stdout] 581 | pub async fn get_pending_image_count(pool: &SqlitePool) -> Result<i64> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `attempts` is never read
[INFO] [stdout]    --> src/db/mod.rs:594:9
[INFO] [stdout]     |
[INFO] [stdout] 589 | pub struct PendingImage {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 594 |     pub attempts: i32,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PendingImage` 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 `get_pending_thumbnail_count` is never used
[INFO] [stdout]    --> src/db/mod.rs:674:14
[INFO] [stdout]     |
[INFO] [stdout] 674 | pub async fn get_pending_thumbnail_count(pool: &SqlitePool) -> Result<i64> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `attempts` is never read
[INFO] [stdout]    --> src/db/mod.rs:731:9
[INFO] [stdout]     |
[INFO] [stdout] 727 | pub struct PendingThumbnail {
[INFO] [stdout]     |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 731 |     pub attempts: i32,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PendingThumbnail` 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 `update_fts_item` is never used
[INFO] [stdout]    --> src/db/mod.rs:793:14
[INFO] [stdout]     |
[INFO] [stdout] 793 | pub async fn update_fts_item(pool: &SqlitePool, item_id: &str) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `search_items_fts` is never used
[INFO] [stdout]    --> src/db/mod.rs:824:14
[INFO] [stdout]     |
[INFO] [stdout] 824 | pub async fn search_items_fts(pool: &SqlitePool, query: &str, limit: i32) -> Result<Vec<String>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prepare_fts_query` is never used
[INFO] [stdout]    --> src/db/mod.rs:853:4
[INFO] [stdout]     |
[INFO] [stdout] 853 | fn prepare_fts_query(query: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LibraryType` is never used
[INFO] [stdout]   --> src/models/mod.rs:37:10
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub enum LibraryType {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ItemType` is never used
[INFO] [stdout]   --> src/models/mod.rs:70:10
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub enum ItemType {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Image` is never constructed
[INFO] [stdout]   --> src/models/mod.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub struct Image {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ImageType` is never used
[INFO] [stdout]   --> src/models/mod.rs:89:10
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub enum ImageType {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PlaybackProgress` is never constructed
[INFO] [stdout]   --> src/models/mod.rs:97:12
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub struct PlaybackProgress {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DB_BATCH_SIZE` is never used
[INFO] [stdout]   --> src/scanner/mod.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const DB_BATCH_SIZE: usize = 50;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DiscoveredEpisode` is never constructed
[INFO] [stdout]   --> src/scanner/mod.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | struct DiscoveredEpisode {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DiscoveredMovie` is never constructed
[INFO] [stdout]   --> src/scanner/mod.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | struct DiscoveredMovie {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scan_library` is never used
[INFO] [stdout]    --> src/scanner/mod.rs:344:14
[INFO] [stdout]     |
[INFO] [stdout] 344 | pub async fn scan_library(
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `by_path` is never read
[INFO] [stdout]    --> src/scanner/mod.rs:500:5
[INFO] [stdout]     |
[INFO] [stdout] 498 | struct SeriesCache {
[INFO] [stdout]     |        ----------- field in this struct
[INFO] [stdout] 499 |     /// Map of folder path -> (series_id, metadata)
[INFO] [stdout] 500 |     by_path: std::collections::HashMap<String, (String, Option<UnifiedMetadata>)>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SeriesCache` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scan_tv_library` is never used
[INFO] [stdout]    --> src/scanner/mod.rs:696:10
[INFO] [stdout]     |
[INFO] [stdout] 696 | async fn scan_tv_library(
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_unmatched_series_for_retry` is never used
[INFO] [stdout]     --> src/scanner/mod.rs:1344:10
[INFO] [stdout]      |
[INFO] [stdout] 1344 | async fn get_unmatched_series_for_retry(
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_unmatched_tracking` is never used
[INFO] [stdout]     --> src/scanner/mod.rs:1372:10
[INFO] [stdout]      |
[INFO] [stdout] 1372 | async fn clear_unmatched_tracking(pool: &SqlitePool, series_id: &str) -> Result<()> {
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `revoke_session` is never used
[INFO] [stdout]    --> src/services/auth.rs:173:14
[INFO] [stdout]     |
[INFO] [stdout] 173 | pub async fn revoke_session(pool: &SqlitePool, token: &str) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `revoke_all_user_sessions` is never used
[INFO] [stdout]    --> src/services/auth.rs:183:14
[INFO] [stdout]     |
[INFO] [stdout] 183 | pub async fn revoke_all_user_sessions(pool: &SqlitePool, user_id: &str) -> Result<i32> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_duration` is never used
[INFO] [stdout]    --> src/services/mediainfo.rs:359:8
[INFO] [stdout]     |
[INFO] [stdout] 359 | pub fn format_duration(ticks: i64) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `image_cache_dir` is never read
[INFO] [stdout]   --> src/services/anidb.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct AniDBClient {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 24 |     client: Client,
[INFO] [stdout] 25 |     image_cache_dir: PathBuf,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AniDBAnime` is never constructed
[INFO] [stdout]   --> src/services/anidb.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct AniDBAnime {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `title_romaji` and `rating` are never read
[INFO] [stdout]   --> src/services/anidb.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct AniDBEpisode {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub title_romaji: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub rating: Option<f64>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AniDBEpisode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `download_image` is never used
[INFO] [stdout]    --> src/services/anidb.rs:272:18
[INFO] [stdout]     |
[INFO] [stdout]  73 | impl AniDBClient {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 272 |     pub async fn download_image(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `end_date`, `format`, and `status` are never read
[INFO] [stdout]   --> src/services/anilist.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct MediaData {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub end_date: Option<FuzzyDate>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub format: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 65 |     pub status: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MediaData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `role` is never read
[INFO] [stdout]    --> src/services/anilist.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub struct CharacterEdge {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 111 |     pub node: Option<Character>,
[INFO] [stdout] 112 |     pub role: Option<String>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CharacterEdge` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `image` are never read
[INFO] [stdout]    --> src/services/anilist.rs:119:9
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub struct Character {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 119 |     pub id: i64,
[INFO] [stdout]     |         ^^
[INFO] [stdout] 120 |     pub name: Option<CharacterName>,
[INFO] [stdout] 121 |     pub image: Option<CharacterImage>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Character` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `native` is never read
[INFO] [stdout]    --> src/services/anilist.rs:127:9
[INFO] [stdout]     |
[INFO] [stdout] 125 | pub struct CharacterName {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 126 |     pub full: Option<String>,
[INFO] [stdout] 127 |     pub native: Option<String>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CharacterName` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `large` and `medium` are never read
[INFO] [stdout]    --> src/services/anilist.rs:132:9
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub struct CharacterImage {
[INFO] [stdout]     |            -------------- fields in this struct
[INFO] [stdout] 132 |     pub large: Option<String>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 133 |     pub medium: Option<String>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CharacterImage` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `native` is never read
[INFO] [stdout]    --> src/services/anilist.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub struct StaffName {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 146 |     pub full: Option<String>,
[INFO] [stdout] 147 |     pub native: Option<String>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StaffName` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `anime_type`, `episodes`, `status`, `picture`, `thumbnail`, and `tags` are never read
[INFO] [stdout]   --> src/services/anime_db.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct AnimeEntry {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub anime_type: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 26 |     pub episodes: i32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 27 |     pub status: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub picture: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 31 |     pub thumbnail: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub tags: Vec<String>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AnimeEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `season` is never read
[INFO] [stdout]   --> src/services/anime_db.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct AnimeSeason {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 39 |     pub season: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AnimeSeason` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `find_by_anidb_id` and `find_by_mal_id` are never used
[INFO] [stdout]    --> src/services/anime_db.rs:319:18
[INFO] [stdout]     |
[INFO] [stdout] 106 | impl AnimeOfflineDatabase {
[INFO] [stdout]     | ------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 319 |     pub async fn find_by_anidb_id(&self, anidb_id: i64) -> Result<Option<AnimeEntry>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 335 |     pub async fn find_by_mal_id(&self, mal_id: i64) -> Result<Option<AnimeEntry>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pagination` is never read
[INFO] [stdout]   --> src/services/jikan.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct JikanSearchResponse {
[INFO] [stdout]    |            ------------------- field in this struct
[INFO] [stdout] 29 |     pub data: Vec<JikanAnime>,
[INFO] [stdout] 30 |     pub pagination: Option<JikanPagination>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `JikanSearchResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `last_visible_page` and `has_next_page` are never read
[INFO] [stdout]   --> src/services/jikan.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct JikanPagination {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 35 |     pub last_visible_page: i32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 36 |     pub has_next_page: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `JikanPagination` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/services/jikan.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct JikanAnime {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 41 |     pub mal_id: i64,
[INFO] [stdout] 42 |     pub url: Option<String>,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub source: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub airing: Option<bool>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 54 |     pub aired: Option<JikanAired>,
[INFO] [stdout] 55 |     pub duration: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 56 |     pub rating: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 57 |     pub score: Option<f64>,
[INFO] [stdout] 58 |     pub scored_by: Option<i64>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 59 |     pub rank: Option<i32>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 60 |     pub popularity: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 61 |     pub members: Option<i64>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 62 |     pub favorites: Option<i64>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 63 |     pub synopsis: Option<String>,
[INFO] [stdout] 64 |     pub background: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 65 |     pub season: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub demographics: Option<Vec<JikanGenre>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `JikanAnime` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `small_image_url` is never read
[INFO] [stdout]   --> src/services/jikan.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub struct JikanImageSet {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 81 |     pub image_url: Option<String>,
[INFO] [stdout] 82 |     pub small_image_url: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `JikanImageSet` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `to` and `string` are never read
[INFO] [stdout]   --> src/services/jikan.rs:89:9
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub struct JikanAired {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 88 |     pub from: Option<String>,
[INFO] [stdout] 89 |     pub to: Option<String>,
[INFO] [stdout]    |         ^^
[INFO] [stdout] 90 |     pub string: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `JikanAired` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `mal_id` is never read
[INFO] [stdout]   --> src/services/jikan.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub struct JikanStudio {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 95 |     pub mal_id: i64,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `JikanStudio` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `mal_id` is never read
[INFO] [stdout]    --> src/services/jikan.rs:101:9
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub struct JikanGenre {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] 101 |     pub mal_id: i64,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `JikanGenre` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JikanAnimeFull` is never constructed
[INFO] [stdout]    --> src/services/jikan.rs:108:12
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub struct JikanAnimeFull {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JikanRelation` is never constructed
[INFO] [stdout]    --> src/services/jikan.rs:117:12
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub struct JikanRelation {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JikanRelationEntry` is never constructed
[INFO] [stdout]    --> src/services/jikan.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub struct JikanRelationEntry {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JikanExternal` is never constructed
[INFO] [stdout]    --> src/services/jikan.rs:131:12
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub struct JikanExternal {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JikanStreaming` is never constructed
[INFO] [stdout]    --> src/services/jikan.rs:137:12
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub struct JikanStreaming {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `status` is never read
[INFO] [stdout]    --> src/services/jikan.rs:159:9
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub struct JikanMetadata {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub status: Option<String>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `JikanMetadata` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_anime_full` is never used
[INFO] [stdout]    --> src/services/jikan.rs:261:18
[INFO] [stdout]     |
[INFO] [stdout] 162 | impl JikanClient {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub async fn get_anime_full(&self, mal_id: i64) -> Result<Option<JikanAnimeFull>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name_original`, `episode_count`, and `runtime_minutes` are never read
[INFO] [stdout]   --> src/services/metadata.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct UnifiedMetadata {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub name_original: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub episode_count: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 27 |     pub runtime_minutes: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UnifiedMetadata` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `runtime_minutes` and `still_url` are never read
[INFO] [stdout]   --> src/services/metadata.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct EpisodeMetadata {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub runtime_minutes: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 64 |     pub still_url: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EpisodeMetadata` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `image_cache_dir` is never read
[INFO] [stdout]   --> src/services/metadata.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub struct MetadataService {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 73 |     image_cache_dir: PathBuf,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_available`, `get_smart_metadata`, `cache_images`, and `download_image` are never used
[INFO] [stdout]    --> src/services/metadata.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout]  76 | impl MetadataService {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn is_available(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 687 |     pub async fn get_smart_metadata(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 760 |     pub async fn cache_images(
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 785 |     async fn download_image(&self, url: &str, item_id: &str, image_type: &str) -> Result<PathBuf> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TMDB_IMAGE_BASE` is never used
[INFO] [stdout]   --> src/services/tmdb.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const TMDB_IMAGE_BASE: &str = "https://image.tmdb.org/t/p";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `image_cache_dir` is never read
[INFO] [stdout]   --> src/services/tmdb.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct TmdbClient {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 17 |     image_cache_dir: PathBuf,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `total_results` is never read
[INFO] [stdout]   --> src/services/tmdb.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct TvSearchResults {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 23 |     pub results: Vec<TvSearchResult>,
[INFO] [stdout] 24 |     pub total_results: i32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TvSearchResults` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `backdrop_path`, `vote_average`, and `vote_count` are never read
[INFO] [stdout]   --> src/services/tmdb.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct TvSearchResult {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub backdrop_path: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 36 |     pub vote_average: Option<f64>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 37 |     pub vote_count: Option<i64>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TvSearchResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `total_results` is never read
[INFO] [stdout]   --> src/services/tmdb.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct MovieSearchResults {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] 43 |     pub results: Vec<MovieSearchResult>,
[INFO] [stdout] 44 |     pub total_results: i32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MovieSearchResults` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `backdrop_path`, `vote_average`, and `vote_count` are never read
[INFO] [stdout]   --> src/services/tmdb.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct MovieSearchResult {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub backdrop_path: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 56 |     pub vote_average: Option<f64>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 57 |     pub vote_count: Option<i64>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MovieSearchResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `original_name`, `last_air_date`, `number_of_seasons`, `number_of_episodes`, and `status` are never read
[INFO] [stdout]   --> src/services/tmdb.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct TvDetails {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub original_name: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub last_air_date: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub number_of_seasons: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 73 |     pub number_of_episodes: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 74 |     pub status: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TvDetails` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `original_title` and `status` are never read
[INFO] [stdout]   --> src/services/tmdb.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub struct MovieDetails {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub original_title: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub status: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MovieDetails` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id`, `name`, `overview`, `poster_path`, `season_number`, and `air_date` are never read
[INFO] [stdout]    --> src/services/tmdb.rs:101:9
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub struct SeasonDetails {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] 101 |     pub id: i64,
[INFO] [stdout]     |         ^^
[INFO] [stdout] 102 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 103 |     pub overview: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 104 |     pub poster_path: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 105 |     pub season_number: i32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 106 |     pub air_date: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SeasonDetails` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `season_number` is never read
[INFO] [stdout]    --> src/services/tmdb.rs:117:9
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct EpisodeInfo {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub season_number: i32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `EpisodeInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]    --> src/services/tmdb.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 125 | pub struct Genre {
[INFO] [stdout]     |            ----- field in this struct
[INFO] [stdout] 126 |     pub id: i64,
[INFO] [stdout]     |         ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Genre` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tvdb_id` is never read
[INFO] [stdout]    --> src/services/tmdb.rs:133:9
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub struct ExternalIds {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] 132 |     pub imdb_id: Option<String>,
[INFO] [stdout] 133 |     pub tvdb_id: Option<i64>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ExternalIds` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `order` is never read
[INFO] [stdout]    --> src/services/tmdb.rs:150:9
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub struct CastMember {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub order: Option<i32>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CastMember` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `department` is never read
[INFO] [stdout]    --> src/services/tmdb.rs:159:9
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub struct CrewMember {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub department: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CrewMember` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ImageSize` is never used
[INFO] [stdout]    --> src/services/tmdb.rs:192:10
[INFO] [stdout]     |
[INFO] [stdout] 192 | pub enum ImageSize {
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_str` is never used
[INFO] [stdout]    --> src/services/tmdb.rs:210:8
[INFO] [stdout]     |
[INFO] [stdout] 209 | impl ImageSize {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 210 |     fn as_str(&self) -> &'static str {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `download_image` and `cache_item_images` are never used
[INFO] [stdout]    --> src/services/tmdb.rs:361:18
[INFO] [stdout]     |
[INFO] [stdout] 223 | impl TmdbClient {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 361 |     pub async fn download_image(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 671 |     pub async fn cache_item_images(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3m 10s
[INFO] running `Command { std: "docker" "inspect" "9d454472d54d5969d824f282b4290ea47c9f2a82ca4de43836991ca84559daa8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9d454472d54d5969d824f282b4290ea47c9f2a82ca4de43836991ca84559daa8", kill_on_drop: false }`
[INFO] [stdout] 9d454472d54d5969d824f282b4290ea47c9f2a82ca4de43836991ca84559daa8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2f4100d47793318dfe82f78711e10c47db23525d1a5ab71746d64c8ade3505c0
[INFO] running `Command { std: "docker" "start" "-a" "2f4100d47793318dfe82f78711e10c47db23525d1a5ab71746d64c8ade3505c0", kill_on_drop: false }`
[INFO] [stderr]    Compiling jellyfin-rust v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `response::IntoResponse`
[INFO] [stdout]  --> src/api/favorites.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     response::IntoResponse,
[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: `ImageTags`
[INFO] [stdout]   --> src/api/filters.rs:14:33
[INFO] [stdout]    |
[INFO] [stdout] 14 | use super::items::{BaseItemDto, ImageTags, UserItemDataDto};
[INFO] [stdout]    |                                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `get_user_item_data`
[INFO] [stdout]   --> src/api/home.rs:13:20
[INFO] [stdout]    |
[INFO] [stdout] 13 | use super::items::{get_user_item_data, BaseItemDto, ImageTags, ItemsResponse, UserItemDataDto};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ImageTags`
[INFO] [stdout]   --> src/api/sessions.rs:14:33
[INFO] [stdout]    |
[INFO] [stdout] 14 | use super::items::{BaseItemDto, ImageTags, UserItemDataDto};
[INFO] [stdout]    |                                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serialize`
[INFO] [stdout]  --> src/api/shows.rs:9:26
[INFO] [stdout]   |
[INFO] [stdout] 9 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Deserialize`
[INFO] [stdout]  --> src/api/system.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime` and `Utc`
[INFO] [stdout]  --> src/models/mod.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | use chrono::{DateTime, Utc};
[INFO] [stdout]   |              ^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `uuid::Uuid`
[INFO] [stdout]  --> src/models/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use uuid::Uuid;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::Deserialize`
[INFO] [stdout]  --> src/services/anidb.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use serde::Deserialize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serialize`
[INFO] [stdout]  --> src/services/tmdb.rs:6:26
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]     --> src/api/items.rs:2793:9
[INFO] [stdout]      |
[INFO] [stdout] 2793 |     let item: MediaItem = sqlx::query_as("SELECT * FROM media_items WHERE id = ?")
[INFO] [stdout]      |         ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body`
[INFO] [stdout]    --> src/api/library.rs:152:5
[INFO] [stdout]     |
[INFO] [stdout] 152 |     body: Option<Json<AddVirtualFolderBody>>,
[INFO] [stdout]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_body`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> src/api/subtitles.rs:600:5
[INFO] [stdout]     |
[INFO] [stdout] 600 |     state: &AppState,
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `year`
[INFO] [stdout]    --> src/services/anilist.rs:422:68
[INFO] [stdout]     |
[INFO] [stdout] 422 |     fn is_title_match(&self, query_clean: &str, media: &MediaData, year: Option<i32>) -> bool {
[INFO] [stdout]     |                                                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_year`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `user_id` is never read
[INFO] [stdout]   --> src/api/collections.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct CollectionsQuery {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] 31 |     pub user_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CollectionsQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `parent_id` and `is_locked` are never read
[INFO] [stdout]   --> src/api/collections.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct CreateCollectionRequest {
[INFO] [stdout]    |            ----------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub parent_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 42 |     pub is_locked: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CreateCollectionRequest` 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 `is_favorite` is never used
[INFO] [stdout]    --> src/api/favorites.rs:146:14
[INFO] [stdout]     |
[INFO] [stdout] 146 | pub async fn is_favorite(pool: &sqlx::SqlitePool, user_id: &str, item_id: &str) -> bool {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `user_id`, `is_favorite`, and `sort_by` are never read
[INFO] [stdout]   --> src/api/filters.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct FilterQuery {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub user_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 37 |     pub is_favorite: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 38 |     pub sort_by: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FilterQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `fields`, `image_type_limit`, and `enable_image_types` are never read
[INFO] [stdout]   --> src/api/home.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct LatestQuery {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fields: Vec<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 67 |     pub image_type_limit: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 68 |     pub enable_image_types: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LatestQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/api/home.rs:86:9
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub struct ResumeQuery {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 86 |     pub user_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 87 |     pub limit: Option<i32>,
[INFO] [stdout] 88 |     pub parent_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 89 |     pub fields: Vec<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 90 |     pub media_types: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 91 |     pub enable_image_types: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 92 |     pub enable_total_record_count: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 93 |     pub enable_user_data: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ResumeQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/api/home.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub struct NextUpQuery {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 115 |     pub user_id: Option<String>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 116 |     pub parent_id: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 117 |     pub fields: Vec<String>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 118 |     pub limit: Option<i32>,
[INFO] [stdout] 119 |     pub image_type_limit: Option<i32>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 120 |     pub next_up_date_cutoff: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 121 |     pub disable_first_episode: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 122 |     pub enable_resumable: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 123 |     pub enable_rewatching: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NextUpQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/api/images.rs:157:9
[INFO] [stdout]     |
[INFO] [stdout] 156 | pub struct ImageQuery {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 157 |     pub max_width: Option<u32>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 158 |     pub max_height: Option<u32>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 159 |     pub width: Option<u32>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 160 |     pub height: Option<u32>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 161 |     pub quality: Option<u32>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 162 |     pub fill_width: Option<u32>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 163 |     pub fill_height: Option<u32>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 164 |     pub tag: Option<String>,
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ImageQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `index` is never read
[INFO] [stdout]    --> src/api/images.rs:182:5
[INFO] [stdout]     |
[INFO] [stdout] 177 | pub struct ImagePathIndexed {
[INFO] [stdout]     |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 182 |     index: u32,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ImagePathIndexed` 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 `store_image` is never used
[INFO] [stdout]    --> src/api/images.rs:355:14
[INFO] [stdout]     |
[INFO] [stdout] 355 | pub async fn store_image(
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/api/items.rs:387:9
[INFO] [stdout]     |
[INFO] [stdout] 386 | pub struct FiltersQuery {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 387 |     pub user_id: Option<String>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 388 |     pub parent_id: Option<String>,
[INFO] [stdout] 389 |     pub include_item_types: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 390 |     pub is_airing: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 391 |     pub is_movie: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 392 |     pub is_sports: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 393 |     pub is_kids: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 394 |     pub is_news: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 395 |     pub is_series: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 396 |     pub recursive: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FiltersQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `exclude_item_types`, `fields`, `genres`, `genre_ids`, and `media_types` are never read
[INFO] [stdout]    --> src/api/items.rs:634:9
[INFO] [stdout]     |
[INFO] [stdout] 631 | pub struct GetItemsQuery {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 634 |     pub exclude_item_types: Option<Vec<String>>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 640 |     pub fields: Option<Vec<String>>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 645 |     pub genres: Option<Vec<String>>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 646 |     pub genre_ids: Option<Vec<String>>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 647 |     pub media_types: Option<Vec<String>>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GetItemsQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]     --> src/api/items.rs:1651:9
[INFO] [stdout]      |
[INFO] [stdout] 1646 | pub struct SearchHintsQuery {
[INFO] [stdout]      |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1651 |     pub media_types: Option<String>,
[INFO] [stdout]      |         ^^^^^^^^^^^
[INFO] [stdout] 1652 |     pub is_movie: Option<bool>,
[INFO] [stdout]      |         ^^^^^^^^
[INFO] [stdout] 1653 |     pub is_series: Option<bool>,
[INFO] [stdout]      |         ^^^^^^^^^
[INFO] [stdout] 1654 |     pub is_news: Option<bool>,
[INFO] [stdout]      |         ^^^^^^^
[INFO] [stdout] 1655 |     pub is_kids: Option<bool>,
[INFO] [stdout]      |         ^^^^^^^
[INFO] [stdout] 1656 |     pub is_sports: Option<bool>,
[INFO] [stdout]      |         ^^^^^^^^^
[INFO] [stdout] 1657 |     #[serde(rename = "userId")]
[INFO] [stdout] 1658 |     pub user_id: Option<String>,
[INFO] [stdout]      |         ^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `SearchHintsQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `regenerate_trickplay` is never read
[INFO] [stdout]     --> src/api/items.rs:1978:9
[INFO] [stdout]      |
[INFO] [stdout] 1968 | pub struct RefreshQuery {
[INFO] [stdout]      |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1978 |     pub regenerate_trickplay: Option<bool>,
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `RefreshQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `start_index`, `limit`, and `include_all_languages` are never read
[INFO] [stdout]     --> src/api/items.rs:2563:9
[INFO] [stdout]      |
[INFO] [stdout] 2560 | pub struct RemoteImagesQuery {
[INFO] [stdout]      |            ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 2563 |     pub start_index: Option<i32>,
[INFO] [stdout]      |         ^^^^^^^^^^^
[INFO] [stdout] 2564 |     pub limit: Option<i32>,
[INFO] [stdout]      |         ^^^^^
[INFO] [stdout] 2565 |     pub include_all_languages: Option<bool>,
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `RemoteImagesQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `include_disabled_providers` is never read
[INFO] [stdout]     --> src/api/items.rs:3141:9
[INFO] [stdout]      |
[INFO] [stdout] 3136 | pub struct SeriesInfoRemoteSearchQuery {
[INFO] [stdout]      |            --------------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 3141 |     pub include_disabled_providers: bool,
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `SeriesInfoRemoteSearchQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `provider_ids` is never read
[INFO] [stdout]     --> src/api/items.rs:3149:9
[INFO] [stdout]      |
[INFO] [stdout] 3146 | pub struct SeriesSearchInfo {
[INFO] [stdout]      |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 3149 |     pub provider_ids: Option<std::collections::HashMap<String, String>>,
[INFO] [stdout]      |         ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `SeriesSearchInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `include_disabled_providers` is never read
[INFO] [stdout]     --> src/api/items.rs:3159:9
[INFO] [stdout]      |
[INFO] [stdout] 3154 | pub struct MovieInfoRemoteSearchQuery {
[INFO] [stdout]      |            -------------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 3159 |     pub include_disabled_providers: bool,
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `MovieInfoRemoteSearchQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `provider_ids` is never read
[INFO] [stdout]     --> src/api/items.rs:3167:9
[INFO] [stdout]      |
[INFO] [stdout] 3164 | pub struct MovieSearchInfo {
[INFO] [stdout]      |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 3167 |     pub provider_ids: Option<std::collections::HashMap<String, String>>,
[INFO] [stdout]      |         ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `MovieSearchInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `library_options` is never read
[INFO] [stdout]   --> src/api/library.rs:93:9
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub struct AddVirtualFolderBody {
[INFO] [stdout]    |            -------------------- field in this struct
[INFO] [stdout] 93 |     pub library_options: Option<LibraryOptions>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AddVirtualFolderBody` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `library_options` are never read
[INFO] [stdout]    --> src/api/library.rs:248:9
[INFO] [stdout]     |
[INFO] [stdout] 247 | pub struct UpdateLibraryOptionsRequest {
[INFO] [stdout]     |            --------------------------- fields in this struct
[INFO] [stdout] 248 |     pub id: String,
[INFO] [stdout]     |         ^^
[INFO] [stdout] 249 |     pub library_options: LibraryOptions,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UpdateLibraryOptionsRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `user_id`, `parent_id`, and `fields` are never read
[INFO] [stdout]   --> src/api/movies.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct RecommendationsQuery {
[INFO] [stdout]    |            -------------------- fields in this struct
[INFO] [stdout] 24 |     pub user_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 25 |     pub parent_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 26 |     pub fields: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RecommendationsQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `person_types` and `user_id` are never read
[INFO] [stdout]   --> src/api/persons.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct PersonsQuery {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 33 |     pub search_term: Option<String>,
[INFO] [stdout] 34 |     pub person_types: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub user_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PersonsQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `image_type` is never read
[INFO] [stdout]    --> src/api/persons.rs:221:5
[INFO] [stdout]     |
[INFO] [stdout] 218 | pub struct PersonImagePath {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 221 |     image_type: String,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PersonImagePath` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `max_width`, `max_height`, and `tag` are never read
[INFO] [stdout]    --> src/api/persons.rs:236:9
[INFO] [stdout]     |
[INFO] [stdout] 235 | pub struct ImageQuery {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 236 |     pub max_width: Option<u32>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 237 |     pub max_height: Option<u32>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 238 |     pub tag: Option<String>,
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ImageQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `media_source_id`, `audio_stream_index`, `subtitle_stream_index`, `play_method`, and `play_session_id` are never read
[INFO] [stdout]   --> src/api/playback.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct PlaybackStartInfo {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub media_source_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 50 |     pub audio_stream_index: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 51 |     pub subtitle_stream_index: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 52 |     pub play_method: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 53 |     pub play_session_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PlaybackStartInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `is_muted`, `volume_level`, `play_method`, `play_session_id`, and `repeat_mode` are never read
[INFO] [stdout]   --> src/api/playback.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct PlaybackProgressInfo {
[INFO] [stdout]    |            -------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub is_muted: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 64 |     pub volume_level: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 65 |     pub play_method: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 66 |     pub play_session_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 67 |     pub repeat_mode: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PlaybackProgressInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `media_source_id` and `play_session_id` are never read
[INFO] [stdout]   --> src/api/playback.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct PlaybackStopInfo {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub media_source_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 77 |     pub play_session_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PlaybackStopInfo` 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 `get_playback_progress` is never used
[INFO] [stdout]    --> src/api/playback.rs:433:14
[INFO] [stdout]     |
[INFO] [stdout] 433 | pub async fn get_playback_progress(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/api/playbackinfo.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct PlaybackInfoQuery {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] 29 |     pub user_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 30 |     pub max_streaming_bitrate: Option<i64>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 31 |     pub start_time_ticks: Option<i64>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 32 |     pub audio_stream_index: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 33 |     pub subtitle_stream_index: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 34 |     pub max_audio_channels: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 35 |     pub media_source_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 36 |     pub live_stream_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 37 |     pub auto_open_live_stream: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 38 |     pub enable_direct_play: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 39 |     pub enable_direct_stream: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 40 |     pub enable_transcoding: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 41 |     pub allow_video_stream_copy: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 42 |     pub allow_audio_stream_copy: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PlaybackInfoQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `user_id` is never read
[INFO] [stdout]   --> src/api/playlists.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct PlaylistsQuery {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 29 |     pub user_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PlaylistsQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `user_id` is never read
[INFO] [stdout]   --> src/api/playlists.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct CreatePlaylistRequest {
[INFO] [stdout]    |            --------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub user_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CreatePlaylistRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `user_id` is never read
[INFO] [stdout]   --> src/api/playlists.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 64 | struct PlaylistRow {
[INFO] [stdout]    |        ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 67 |     user_id: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PlaylistRow` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_str` is never used
[INFO] [stdout]   --> src/api/segments.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl MediaSegmentType {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] 34 |     fn as_str(&self) -> &'static str {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `import_edl_file` is never used
[INFO] [stdout]    --> src/api/segments.rs:235:14
[INFO] [stdout]     |
[INFO] [stdout] 235 | pub async fn import_edl_file(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_intro` is never used
[INFO] [stdout]    --> src/api/segments.rs:283:14
[INFO] [stdout]     |
[INFO] [stdout] 283 | pub async fn has_intro(pool: &sqlx::SqlitePool, item_id: &str) -> bool {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_intro` is never used
[INFO] [stdout]    --> src/api/segments.rs:296:14
[INFO] [stdout]     |
[INFO] [stdout] 296 | pub async fn get_intro(pool: &sqlx::SqlitePool, item_id: &str) -> Option<(i64, i64)> {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_outro` is never used
[INFO] [stdout]    --> src/api/segments.rs:310:14
[INFO] [stdout]     |
[INFO] [stdout] 310 | pub async fn get_outro(pool: &sqlx::SqlitePool, item_id: &str) -> Option<(i64, i64)> {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `controlling_user_id` is never read
[INFO] [stdout]   --> src/api/sessions.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct PlaybackCommandBody {
[INFO] [stdout]    |            ------------------- field in this struct
[INFO] [stdout] 74 |     pub seek_position_ticks: Option<i64>,
[INFO] [stdout] 75 |     pub controlling_user_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PlaybackCommandBody` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timeout_ms` is never read
[INFO] [stdout]   --> src/api/sessions.rs:83:9
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub struct MessageBody {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub timeout_ms: Option<i64>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MessageBody` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `play_state` is never read
[INFO] [stdout]    --> src/api/sessions.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout]  87 | struct SessionRow {
[INFO] [stdout]     |        ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 100 |     play_state: Option<String>,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SessionRow` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `user_id`, `fields`, `is_special_season`, `is_missing`, and `adjacent_to` are never read
[INFO] [stdout]   --> src/api/shows.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct SeasonsQuery {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 26 |     pub user_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 27 |     pub fields: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 28 |     pub is_special_season: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 29 |     pub is_missing: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 30 |     pub adjacent_to: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SeasonsQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `user_id`, `fields`, `is_missing`, `adjacent_to`, and `start_item_id` are never read
[INFO] [stdout]   --> src/api/shows.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct EpisodesQuery {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 36 |     pub user_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 37 |     pub fields: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub is_missing: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 41 |     pub adjacent_to: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub start_item_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EpisodesQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `is_perfect_match` and `is_forced` are never read
[INFO] [stdout]    --> src/api/subtitles.rs:357:9
[INFO] [stdout]     |
[INFO] [stdout] 356 | pub struct SearchSubtitlesQuery {
[INFO] [stdout]     |            -------------------- fields in this struct
[INFO] [stdout] 357 |     pub is_perfect_match: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 358 |     pub is_forced: Option<bool>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SearchSubtitlesQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `static_stream`, `media_source_id`, `device_id`, `audio_codec`, `video_codec`, and `container` are never read
[INFO] [stdout]   --> src/api/videos.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct StreamQuery {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 37 |     pub static_stream: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 38 |     pub media_source_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 39 |     pub device_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 40 |     pub audio_codec: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 41 |     pub video_codec: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 42 |     pub container: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `StreamQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `container` is never read
[INFO] [stdout]    --> src/api/videos.rs:233:5
[INFO] [stdout]     |
[INFO] [stdout] 230 | pub struct VideoPath {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 233 |     container: Option<String>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `VideoPath` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `media_source_id` is never read
[INFO] [stdout]    --> src/api/videos.rs:256:9
[INFO] [stdout]     |
[INFO] [stdout] 255 | pub struct TrickplayQuery {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] 256 |     pub media_source_id: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TrickplayQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `user_id`, `include_external_content`, and `include_hidden` are never read
[INFO] [stdout]   --> src/api/views.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct UserViewsQuery {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 23 |     pub user_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 24 |     pub include_external_content: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 25 |     pub include_hidden: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UserViewsQuery` 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 `configure_connection` is never used
[INFO] [stdout]   --> src/db/mod.rs:11:14
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub async fn configure_connection(pool: &SqlitePool) -> Result<()> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `optimize` is never used
[INFO] [stdout]    --> src/db/mod.rs:492:14
[INFO] [stdout]     |
[INFO] [stdout] 492 | pub async fn optimize(pool: &SqlitePool) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_pending_image_count` is never used
[INFO] [stdout]    --> src/db/mod.rs:581:14
[INFO] [stdout]     |
[INFO] [stdout] 581 | pub async fn get_pending_image_count(pool: &SqlitePool) -> Result<i64> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `attempts` is never read
[INFO] [stdout]    --> src/db/mod.rs:594:9
[INFO] [stdout]     |
[INFO] [stdout] 589 | pub struct PendingImage {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 594 |     pub attempts: i32,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PendingImage` 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 `get_pending_thumbnail_count` is never used
[INFO] [stdout]    --> src/db/mod.rs:674:14
[INFO] [stdout]     |
[INFO] [stdout] 674 | pub async fn get_pending_thumbnail_count(pool: &SqlitePool) -> Result<i64> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `attempts` is never read
[INFO] [stdout]    --> src/db/mod.rs:731:9
[INFO] [stdout]     |
[INFO] [stdout] 727 | pub struct PendingThumbnail {
[INFO] [stdout]     |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 731 |     pub attempts: i32,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PendingThumbnail` 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 `update_fts_item` is never used
[INFO] [stdout]    --> src/db/mod.rs:793:14
[INFO] [stdout]     |
[INFO] [stdout] 793 | pub async fn update_fts_item(pool: &SqlitePool, item_id: &str) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `search_items_fts` is never used
[INFO] [stdout]    --> src/db/mod.rs:824:14
[INFO] [stdout]     |
[INFO] [stdout] 824 | pub async fn search_items_fts(pool: &SqlitePool, query: &str, limit: i32) -> Result<Vec<String>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prepare_fts_query` is never used
[INFO] [stdout]    --> src/db/mod.rs:853:4
[INFO] [stdout]     |
[INFO] [stdout] 853 | fn prepare_fts_query(query: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LibraryType` is never used
[INFO] [stdout]   --> src/models/mod.rs:37:10
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub enum LibraryType {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ItemType` is never used
[INFO] [stdout]   --> src/models/mod.rs:70:10
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub enum ItemType {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Image` is never constructed
[INFO] [stdout]   --> src/models/mod.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub struct Image {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ImageType` is never used
[INFO] [stdout]   --> src/models/mod.rs:89:10
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub enum ImageType {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PlaybackProgress` is never constructed
[INFO] [stdout]   --> src/models/mod.rs:97:12
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub struct PlaybackProgress {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DB_BATCH_SIZE` is never used
[INFO] [stdout]   --> src/scanner/mod.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const DB_BATCH_SIZE: usize = 50;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DiscoveredEpisode` is never constructed
[INFO] [stdout]   --> src/scanner/mod.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | struct DiscoveredEpisode {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DiscoveredMovie` is never constructed
[INFO] [stdout]   --> src/scanner/mod.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | struct DiscoveredMovie {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scan_library` is never used
[INFO] [stdout]    --> src/scanner/mod.rs:344:14
[INFO] [stdout]     |
[INFO] [stdout] 344 | pub async fn scan_library(
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `by_path` is never read
[INFO] [stdout]    --> src/scanner/mod.rs:500:5
[INFO] [stdout]     |
[INFO] [stdout] 498 | struct SeriesCache {
[INFO] [stdout]     |        ----------- field in this struct
[INFO] [stdout] 499 |     /// Map of folder path -> (series_id, metadata)
[INFO] [stdout] 500 |     by_path: std::collections::HashMap<String, (String, Option<UnifiedMetadata>)>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SeriesCache` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scan_tv_library` is never used
[INFO] [stdout]    --> src/scanner/mod.rs:696:10
[INFO] [stdout]     |
[INFO] [stdout] 696 | async fn scan_tv_library(
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_unmatched_series_for_retry` is never used
[INFO] [stdout]     --> src/scanner/mod.rs:1344:10
[INFO] [stdout]      |
[INFO] [stdout] 1344 | async fn get_unmatched_series_for_retry(
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_unmatched_tracking` is never used
[INFO] [stdout]     --> src/scanner/mod.rs:1372:10
[INFO] [stdout]      |
[INFO] [stdout] 1372 | async fn clear_unmatched_tracking(pool: &SqlitePool, series_id: &str) -> Result<()> {
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `revoke_session` is never used
[INFO] [stdout]    --> src/services/auth.rs:173:14
[INFO] [stdout]     |
[INFO] [stdout] 173 | pub async fn revoke_session(pool: &SqlitePool, token: &str) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `revoke_all_user_sessions` is never used
[INFO] [stdout]    --> src/services/auth.rs:183:14
[INFO] [stdout]     |
[INFO] [stdout] 183 | pub async fn revoke_all_user_sessions(pool: &SqlitePool, user_id: &str) -> Result<i32> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `image_cache_dir` is never read
[INFO] [stdout]   --> src/services/anidb.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct AniDBClient {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 24 |     client: Client,
[INFO] [stdout] 25 |     image_cache_dir: PathBuf,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AniDBAnime` is never constructed
[INFO] [stdout]   --> src/services/anidb.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct AniDBAnime {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `title_romaji` and `rating` are never read
[INFO] [stdout]   --> src/services/anidb.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct AniDBEpisode {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub title_romaji: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub rating: Option<f64>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AniDBEpisode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `download_image` is never used
[INFO] [stdout]    --> src/services/anidb.rs:272:18
[INFO] [stdout]     |
[INFO] [stdout]  73 | impl AniDBClient {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 272 |     pub async fn download_image(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `end_date`, `format`, and `status` are never read
[INFO] [stdout]   --> src/services/anilist.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct MediaData {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub end_date: Option<FuzzyDate>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub format: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 65 |     pub status: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MediaData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `role` is never read
[INFO] [stdout]    --> src/services/anilist.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub struct CharacterEdge {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 111 |     pub node: Option<Character>,
[INFO] [stdout] 112 |     pub role: Option<String>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CharacterEdge` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `image` are never read
[INFO] [stdout]    --> src/services/anilist.rs:119:9
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub struct Character {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 119 |     pub id: i64,
[INFO] [stdout]     |         ^^
[INFO] [stdout] 120 |     pub name: Option<CharacterName>,
[INFO] [stdout] 121 |     pub image: Option<CharacterImage>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Character` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `native` is never read
[INFO] [stdout]    --> src/services/anilist.rs:127:9
[INFO] [stdout]     |
[INFO] [stdout] 125 | pub struct CharacterName {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 126 |     pub full: Option<String>,
[INFO] [stdout] 127 |     pub native: Option<String>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CharacterName` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `large` and `medium` are never read
[INFO] [stdout]    --> src/services/anilist.rs:132:9
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub struct CharacterImage {
[INFO] [stdout]     |            -------------- fields in this struct
[INFO] [stdout] 132 |     pub large: Option<String>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 133 |     pub medium: Option<String>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CharacterImage` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `native` is never read
[INFO] [stdout]    --> src/services/anilist.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub struct StaffName {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 146 |     pub full: Option<String>,
[INFO] [stdout] 147 |     pub native: Option<String>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `StaffName` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `anime_type`, `episodes`, `status`, `picture`, `thumbnail`, and `tags` are never read
[INFO] [stdout]   --> src/services/anime_db.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct AnimeEntry {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub anime_type: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 26 |     pub episodes: i32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 27 |     pub status: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub picture: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 31 |     pub thumbnail: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub tags: Vec<String>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AnimeEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `season` is never read
[INFO] [stdout]   --> src/services/anime_db.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct AnimeSeason {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 39 |     pub season: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AnimeSeason` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `find_by_anidb_id` and `find_by_mal_id` are never used
[INFO] [stdout]    --> src/services/anime_db.rs:319:18
[INFO] [stdout]     |
[INFO] [stdout] 106 | impl AnimeOfflineDatabase {
[INFO] [stdout]     | ------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 319 |     pub async fn find_by_anidb_id(&self, anidb_id: i64) -> Result<Option<AnimeEntry>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 335 |     pub async fn find_by_mal_id(&self, mal_id: i64) -> Result<Option<AnimeEntry>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pagination` is never read
[INFO] [stdout]   --> src/services/jikan.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct JikanSearchResponse {
[INFO] [stdout]    |            ------------------- field in this struct
[INFO] [stdout] 29 |     pub data: Vec<JikanAnime>,
[INFO] [stdout] 30 |     pub pagination: Option<JikanPagination>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `JikanSearchResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `last_visible_page` and `has_next_page` are never read
[INFO] [stdout]   --> src/services/jikan.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct JikanPagination {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 35 |     pub last_visible_page: i32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 36 |     pub has_next_page: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `JikanPagination` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/services/jikan.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct JikanAnime {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 41 |     pub mal_id: i64,
[INFO] [stdout] 42 |     pub url: Option<String>,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub source: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub airing: Option<bool>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 54 |     pub aired: Option<JikanAired>,
[INFO] [stdout] 55 |     pub duration: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 56 |     pub rating: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 57 |     pub score: Option<f64>,
[INFO] [stdout] 58 |     pub scored_by: Option<i64>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 59 |     pub rank: Option<i32>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 60 |     pub popularity: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 61 |     pub members: Option<i64>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 62 |     pub favorites: Option<i64>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 63 |     pub synopsis: Option<String>,
[INFO] [stdout] 64 |     pub background: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 65 |     pub season: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub demographics: Option<Vec<JikanGenre>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `JikanAnime` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `small_image_url` is never read
[INFO] [stdout]   --> src/services/jikan.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub struct JikanImageSet {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 81 |     pub image_url: Option<String>,
[INFO] [stdout] 82 |     pub small_image_url: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `JikanImageSet` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `to` and `string` are never read
[INFO] [stdout]   --> src/services/jikan.rs:89:9
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub struct JikanAired {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 88 |     pub from: Option<String>,
[INFO] [stdout] 89 |     pub to: Option<String>,
[INFO] [stdout]    |         ^^
[INFO] [stdout] 90 |     pub string: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `JikanAired` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `mal_id` is never read
[INFO] [stdout]   --> src/services/jikan.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub struct JikanStudio {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 95 |     pub mal_id: i64,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `JikanStudio` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `mal_id` is never read
[INFO] [stdout]    --> src/services/jikan.rs:101:9
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub struct JikanGenre {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] 101 |     pub mal_id: i64,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `JikanGenre` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JikanAnimeFull` is never constructed
[INFO] [stdout]    --> src/services/jikan.rs:108:12
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub struct JikanAnimeFull {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JikanRelation` is never constructed
[INFO] [stdout]    --> src/services/jikan.rs:117:12
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub struct JikanRelation {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JikanRelationEntry` is never constructed
[INFO] [stdout]    --> src/services/jikan.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub struct JikanRelationEntry {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JikanExternal` is never constructed
[INFO] [stdout]    --> src/services/jikan.rs:131:12
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub struct JikanExternal {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JikanStreaming` is never constructed
[INFO] [stdout]    --> src/services/jikan.rs:137:12
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub struct JikanStreaming {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `status` is never read
[INFO] [stdout]    --> src/services/jikan.rs:159:9
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub struct JikanMetadata {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub status: Option<String>,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `JikanMetadata` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_anime_full` is never used
[INFO] [stdout]    --> src/services/jikan.rs:261:18
[INFO] [stdout]     |
[INFO] [stdout] 162 | impl JikanClient {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub async fn get_anime_full(&self, mal_id: i64) -> Result<Option<JikanAnimeFull>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name_original`, `episode_count`, and `runtime_minutes` are never read
[INFO] [stdout]   --> src/services/metadata.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct UnifiedMetadata {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub name_original: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub episode_count: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 27 |     pub runtime_minutes: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UnifiedMetadata` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `runtime_minutes` and `still_url` are never read
[INFO] [stdout]   --> src/services/metadata.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct EpisodeMetadata {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub runtime_minutes: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 64 |     pub still_url: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EpisodeMetadata` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `image_cache_dir` is never read
[INFO] [stdout]   --> src/services/metadata.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub struct MetadataService {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 73 |     image_cache_dir: PathBuf,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_available`, `get_smart_metadata`, `cache_images`, and `download_image` are never used
[INFO] [stdout]    --> src/services/metadata.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout]  76 | impl MetadataService {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn is_available(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 687 |     pub async fn get_smart_metadata(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 760 |     pub async fn cache_images(
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 785 |     async fn download_image(&self, url: &str, item_id: &str, image_type: &str) -> Result<PathBuf> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TMDB_IMAGE_BASE` is never used
[INFO] [stdout]   --> src/services/tmdb.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const TMDB_IMAGE_BASE: &str = "https://image.tmdb.org/t/p";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `image_cache_dir` is never read
[INFO] [stdout]   --> src/services/tmdb.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct TmdbClient {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 17 |     image_cache_dir: PathBuf,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `total_results` is never read
[INFO] [stdout]   --> src/services/tmdb.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct TvSearchResults {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 23 |     pub results: Vec<TvSearchResult>,
[INFO] [stdout] 24 |     pub total_results: i32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TvSearchResults` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `backdrop_path`, `vote_average`, and `vote_count` are never read
[INFO] [stdout]   --> src/services/tmdb.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct TvSearchResult {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub backdrop_path: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 36 |     pub vote_average: Option<f64>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 37 |     pub vote_count: Option<i64>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TvSearchResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `total_results` is never read
[INFO] [stdout]   --> src/services/tmdb.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct MovieSearchResults {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] 43 |     pub results: Vec<MovieSearchResult>,
[INFO] [stdout] 44 |     pub total_results: i32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MovieSearchResults` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `backdrop_path`, `vote_average`, and `vote_count` are never read
[INFO] [stdout]   --> src/services/tmdb.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct MovieSearchResult {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub backdrop_path: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 56 |     pub vote_average: Option<f64>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 57 |     pub vote_count: Option<i64>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MovieSearchResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `original_name`, `last_air_date`, `number_of_seasons`, `number_of_episodes`, and `status` are never read
[INFO] [stdout]   --> src/services/tmdb.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct TvDetails {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub original_name: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub last_air_date: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub number_of_seasons: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 73 |     pub number_of_episodes: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 74 |     pub status: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TvDetails` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `original_title` and `status` are never read
[INFO] [stdout]   --> src/services/tmdb.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub struct MovieDetails {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub original_title: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub status: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MovieDetails` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id`, `name`, `overview`, `poster_path`, `season_number`, and `air_date` are never read
[INFO] [stdout]    --> src/services/tmdb.rs:101:9
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub struct SeasonDetails {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] 101 |     pub id: i64,
[INFO] [stdout]     |         ^^
[INFO] [stdout] 102 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 103 |     pub overview: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 104 |     pub poster_path: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 105 |     pub season_number: i32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 106 |     pub air_date: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SeasonDetails` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `season_number` is never read
[INFO] [stdout]    --> src/services/tmdb.rs:117:9
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct EpisodeInfo {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub season_number: i32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `EpisodeInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]    --> src/services/tmdb.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 125 | pub struct Genre {
[INFO] [stdout]     |            ----- field in this struct
[INFO] [stdout] 126 |     pub id: i64,
[INFO] [stdout]     |         ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Genre` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tvdb_id` is never read
[INFO] [stdout]    --> src/services/tmdb.rs:133:9
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub struct ExternalIds {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] 132 |     pub imdb_id: Option<String>,
[INFO] [stdout] 133 |     pub tvdb_id: Option<i64>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ExternalIds` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `order` is never read
[INFO] [stdout]    --> src/services/tmdb.rs:150:9
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub struct CastMember {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub order: Option<i32>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CastMember` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `department` is never read
[INFO] [stdout]    --> src/services/tmdb.rs:159:9
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub struct CrewMember {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub department: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CrewMember` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `PosterSmall`, `PosterMedium`, `PosterOriginal`, `Backdrop`, and `BackdropOriginal` are never constructed
[INFO] [stdout]    --> src/services/tmdb.rs:194:5
[INFO] [stdout]     |
[INFO] [stdout] 192 | pub enum ImageSize {
[INFO] [stdout]     |          --------- variants in this enum
[INFO] [stdout] 193 |     /// w185 - small poster
[INFO] [stdout] 194 |     PosterSmall,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 195 |     /// w342 - medium poster
[INFO] [stdout] 196 |     PosterMedium,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |     PosterOriginal,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 201 |     /// w780 - backdrop
[INFO] [stdout] 202 |     Backdrop,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     BackdropOriginal,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ImageSize` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `download_image` and `cache_item_images` are never used
[INFO] [stdout]    --> src/services/tmdb.rs:361:18
[INFO] [stdout]     |
[INFO] [stdout] 223 | impl TmdbClient {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 361 |     pub async fn download_image(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 671 |     pub async fn cache_item_images(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 26.23s
[INFO] running `Command { std: "docker" "inspect" "2f4100d47793318dfe82f78711e10c47db23525d1a5ab71746d64c8ade3505c0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2f4100d47793318dfe82f78711e10c47db23525d1a5ab71746d64c8ade3505c0", kill_on_drop: false }`
[INFO] [stdout] 2f4100d47793318dfe82f78711e10c47db23525d1a5ab71746d64c8ade3505c0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 9db20c84aa90e4f00bfadc69fe9cbc62f460b09af785c74f62ec7639bbeddd29
[INFO] running `Command { std: "docker" "start" "-a" "9db20c84aa90e4f00bfadc69fe9cbc62f460b09af785c74f62ec7639bbeddd29", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `response::IntoResponse`
[INFO] [stderr]  --> src/api/favorites.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 |     response::IntoResponse,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ImageTags`
[INFO] [stderr]   --> src/api/filters.rs:14:33
[INFO] [stderr]    |
[INFO] [stderr] 14 | use super::items::{BaseItemDto, ImageTags, UserItemDataDto};
[INFO] [stderr]    |                                 ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `get_user_item_data`
[INFO] [stderr]   --> src/api/home.rs:13:20
[INFO] [stderr]    |
[INFO] [stderr] 13 | use super::items::{get_user_item_data, BaseItemDto, ImageTags, ItemsResponse, UserItemDataDto};
[INFO] [stderr]    |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ImageTags`
[INFO] [stderr]   --> src/api/sessions.rs:14:33
[INFO] [stderr]    |
[INFO] [stderr] 14 | use super::items::{BaseItemDto, ImageTags, UserItemDataDto};
[INFO] [stderr]    |                                 ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Serialize`
[INFO] [stderr]  --> src/api/shows.rs:9:26
[INFO] [stderr]   |
[INFO] [stderr] 9 | use serde::{Deserialize, Serialize};
[INFO] [stderr]   |                          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Deserialize`
[INFO] [stderr]  --> src/api/system.rs:7:13
[INFO] [stderr]   |
[INFO] [stderr] 7 | use serde::{Deserialize, Serialize};
[INFO] [stderr]   |             ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `DateTime` and `Utc`
[INFO] [stderr]  --> src/models/mod.rs:1:14
[INFO] [stderr]   |
[INFO] [stderr] 1 | use chrono::{DateTime, Utc};
[INFO] [stderr]   |              ^^^^^^^^  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `uuid::Uuid`
[INFO] [stderr]  --> src/models/mod.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use uuid::Uuid;
[INFO] [stderr]   |     ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `serde::Deserialize`
[INFO] [stderr]  --> src/services/anidb.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use serde::Deserialize;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Serialize`
[INFO] [stderr]  --> src/services/tmdb.rs:6:26
[INFO] [stderr]   |
[INFO] [stderr] 6 | use serde::{Deserialize, Serialize};
[INFO] [stderr]   |                          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `item`
[INFO] [stderr]     --> src/api/items.rs:2793:9
[INFO] [stderr]      |
[INFO] [stderr] 2793 |     let item: MediaItem = sqlx::query_as("SELECT * FROM media_items WHERE id = ?")
[INFO] [stderr]      |         ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `body`
[INFO] [stderr]    --> src/api/library.rs:152:5
[INFO] [stderr]     |
[INFO] [stderr] 152 |     body: Option<Json<AddVirtualFolderBody>>,
[INFO] [stderr]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_body`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `state`
[INFO] [stderr]    --> src/api/subtitles.rs:600:5
[INFO] [stderr]     |
[INFO] [stderr] 600 |     state: &AppState,
[INFO] [stderr]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `year`
[INFO] [stderr]    --> src/services/anilist.rs:422:68
[INFO] [stderr]     |
[INFO] [stderr] 422 |     fn is_title_match(&self, query_clean: &str, media: &MediaData, year: Option<i32>) -> bool {
[INFO] [stderr]     |                                                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_year`
[INFO] [stderr] 
[INFO] [stderr] warning: field `user_id` is never read
[INFO] [stderr]   --> src/api/collections.rs:31:9
[INFO] [stderr]    |
[INFO] [stderr] 30 | pub struct CollectionsQuery {
[INFO] [stderr]    |            ---------------- field in this struct
[INFO] [stderr] 31 |     pub user_id: Option<String>,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `CollectionsQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `parent_id` and `is_locked` are never read
[INFO] [stderr]   --> src/api/collections.rs:41:9
[INFO] [stderr]    |
[INFO] [stderr] 38 | pub struct CreateCollectionRequest {
[INFO] [stderr]    |            ----------------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 41 |     pub parent_id: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] 42 |     pub is_locked: Option<bool>,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `CreateCollectionRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_favorite` is never used
[INFO] [stderr]    --> src/api/favorites.rs:146:14
[INFO] [stderr]     |
[INFO] [stderr] 146 | pub async fn is_favorite(pool: &sqlx::SqlitePool, user_id: &str, item_id: &str) -> bool {
[INFO] [stderr]     |              ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `user_id`, `is_favorite`, and `sort_by` are never read
[INFO] [stderr]   --> src/api/filters.rs:36:9
[INFO] [stderr]    |
[INFO] [stderr] 31 | pub struct FilterQuery {
[INFO] [stderr]    |            ----------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 36 |     pub user_id: Option<String>,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 37 |     pub is_favorite: Option<bool>,
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr] 38 |     pub sort_by: Option<String>,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `FilterQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `fields`, `image_type_limit`, and `enable_image_types` are never read
[INFO] [stderr]   --> src/api/home.rs:66:9
[INFO] [stderr]    |
[INFO] [stderr] 63 | pub struct LatestQuery {
[INFO] [stderr]    |            ----------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 66 |     pub fields: Vec<String>,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr] 67 |     pub image_type_limit: Option<i32>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^
[INFO] [stderr] 68 |     pub enable_image_types: Vec<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `LatestQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: multiple fields are never read
[INFO] [stderr]   --> src/api/home.rs:86:9
[INFO] [stderr]    |
[INFO] [stderr] 85 | pub struct ResumeQuery {
[INFO] [stderr]    |            ----------- fields in this struct
[INFO] [stderr] 86 |     pub user_id: Option<String>,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 87 |     pub limit: Option<i32>,
[INFO] [stderr] 88 |     pub parent_id: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] 89 |     pub fields: Vec<String>,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr] 90 |     pub media_types: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr] 91 |     pub enable_image_types: Vec<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 92 |     pub enable_total_record_count: Option<bool>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 93 |     pub enable_user_data: Option<bool>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ResumeQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: multiple fields are never read
[INFO] [stderr]    --> src/api/home.rs:115:9
[INFO] [stderr]     |
[INFO] [stderr] 114 | pub struct NextUpQuery {
[INFO] [stderr]     |            ----------- fields in this struct
[INFO] [stderr] 115 |     pub user_id: Option<String>,
[INFO] [stderr]     |         ^^^^^^^
[INFO] [stderr] 116 |     pub parent_id: Option<String>,
[INFO] [stderr]     |         ^^^^^^^^^
[INFO] [stderr] 117 |     pub fields: Vec<String>,
[INFO] [stderr]     |         ^^^^^^
[INFO] [stderr] 118 |     pub limit: Option<i32>,
[INFO] [stderr] 119 |     pub image_type_limit: Option<i32>,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^
[INFO] [stderr] 120 |     pub next_up_date_cutoff: Option<String>,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 121 |     pub disable_first_episode: Option<bool>,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 122 |     pub enable_resumable: Option<bool>,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^
[INFO] [stderr] 123 |     pub enable_rewatching: Option<bool>,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `NextUpQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: multiple fields are never read
[INFO] [stderr]    --> src/api/images.rs:157:9
[INFO] [stderr]     |
[INFO] [stderr] 156 | pub struct ImageQuery {
[INFO] [stderr]     |            ---------- fields in this struct
[INFO] [stderr] 157 |     pub max_width: Option<u32>,
[INFO] [stderr]     |         ^^^^^^^^^
[INFO] [stderr] 158 |     pub max_height: Option<u32>,
[INFO] [stderr]     |         ^^^^^^^^^^
[INFO] [stderr] 159 |     pub width: Option<u32>,
[INFO] [stderr]     |         ^^^^^
[INFO] [stderr] 160 |     pub height: Option<u32>,
[INFO] [stderr]     |         ^^^^^^
[INFO] [stderr] 161 |     pub quality: Option<u32>,
[INFO] [stderr]     |         ^^^^^^^
[INFO] [stderr] 162 |     pub fill_width: Option<u32>,
[INFO] [stderr]     |         ^^^^^^^^^^
[INFO] [stderr] 163 |     pub fill_height: Option<u32>,
[INFO] [stderr]     |         ^^^^^^^^^^^
[INFO] [stderr] 164 |     pub tag: Option<String>,
[INFO] [stderr]     |         ^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ImageQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `index` is never read
[INFO] [stderr]    --> src/api/images.rs:182:5
[INFO] [stderr]     |
[INFO] [stderr] 177 | pub struct ImagePathIndexed {
[INFO] [stderr]     |            ---------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 182 |     index: u32,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ImagePathIndexed` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: function `store_image` is never used
[INFO] [stderr]    --> src/api/images.rs:355:14
[INFO] [stderr]     |
[INFO] [stderr] 355 | pub async fn store_image(
[INFO] [stderr]     |              ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple fields are never read
[INFO] [stderr]    --> src/api/items.rs:387:9
[INFO] [stderr]     |
[INFO] [stderr] 386 | pub struct FiltersQuery {
[INFO] [stderr]     |            ------------ fields in this struct
[INFO] [stderr] 387 |     pub user_id: Option<String>,
[INFO] [stderr]     |         ^^^^^^^
[INFO] [stderr] 388 |     pub parent_id: Option<String>,
[INFO] [stderr] 389 |     pub include_item_types: Option<String>,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 390 |     pub is_airing: Option<bool>,
[INFO] [stderr]     |         ^^^^^^^^^
[INFO] [stderr] 391 |     pub is_movie: Option<bool>,
[INFO] [stderr]     |         ^^^^^^^^
[INFO] [stderr] 392 |     pub is_sports: Option<bool>,
[INFO] [stderr]     |         ^^^^^^^^^
[INFO] [stderr] 393 |     pub is_kids: Option<bool>,
[INFO] [stderr]     |         ^^^^^^^
[INFO] [stderr] 394 |     pub is_news: Option<bool>,
[INFO] [stderr]     |         ^^^^^^^
[INFO] [stderr] 395 |     pub is_series: Option<bool>,
[INFO] [stderr]     |         ^^^^^^^^^
[INFO] [stderr] 396 |     pub recursive: Option<bool>,
[INFO] [stderr]     |         ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `FiltersQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `exclude_item_types`, `fields`, `genres`, `genre_ids`, and `media_types` are never read
[INFO] [stderr]    --> src/api/items.rs:634:9
[INFO] [stderr]     |
[INFO] [stderr] 631 | pub struct GetItemsQuery {
[INFO] [stderr]     |            ------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 634 |     pub exclude_item_types: Option<Vec<String>>,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 640 |     pub fields: Option<Vec<String>>,
[INFO] [stderr]     |         ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 645 |     pub genres: Option<Vec<String>>,
[INFO] [stderr]     |         ^^^^^^
[INFO] [stderr] 646 |     pub genre_ids: Option<Vec<String>>,
[INFO] [stderr]     |         ^^^^^^^^^
[INFO] [stderr] 647 |     pub media_types: Option<Vec<String>>,
[INFO] [stderr]     |         ^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `GetItemsQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: multiple fields are never read
[INFO] [stderr]     --> src/api/items.rs:1651:9
[INFO] [stderr]      |
[INFO] [stderr] 1646 | pub struct SearchHintsQuery {
[INFO] [stderr]      |            ---------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 1651 |     pub media_types: Option<String>,
[INFO] [stderr]      |         ^^^^^^^^^^^
[INFO] [stderr] 1652 |     pub is_movie: Option<bool>,
[INFO] [stderr]      |         ^^^^^^^^
[INFO] [stderr] 1653 |     pub is_series: Option<bool>,
[INFO] [stderr]      |         ^^^^^^^^^
[INFO] [stderr] 1654 |     pub is_news: Option<bool>,
[INFO] [stderr]      |         ^^^^^^^
[INFO] [stderr] 1655 |     pub is_kids: Option<bool>,
[INFO] [stderr]      |         ^^^^^^^
[INFO] [stderr] 1656 |     pub is_sports: Option<bool>,
[INFO] [stderr]      |         ^^^^^^^^^
[INFO] [stderr] 1657 |     #[serde(rename = "userId")]
[INFO] [stderr] 1658 |     pub user_id: Option<String>,
[INFO] [stderr]      |         ^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: `SearchHintsQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `regenerate_trickplay` is never read
[INFO] [stderr]     --> src/api/items.rs:1978:9
[INFO] [stderr]      |
[INFO] [stderr] 1968 | pub struct RefreshQuery {
[INFO] [stderr]      |            ------------ field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 1978 |     pub regenerate_trickplay: Option<bool>,
[INFO] [stderr]      |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: `RefreshQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `start_index`, `limit`, and `include_all_languages` are never read
[INFO] [stderr]     --> src/api/items.rs:2563:9
[INFO] [stderr]      |
[INFO] [stderr] 2560 | pub struct RemoteImagesQuery {
[INFO] [stderr]      |            ----------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 2563 |     pub start_index: Option<i32>,
[INFO] [stderr]      |         ^^^^^^^^^^^
[INFO] [stderr] 2564 |     pub limit: Option<i32>,
[INFO] [stderr]      |         ^^^^^
[INFO] [stderr] 2565 |     pub include_all_languages: Option<bool>,
[INFO] [stderr]      |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: `RemoteImagesQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `include_disabled_providers` is never read
[INFO] [stderr]     --> src/api/items.rs:3141:9
[INFO] [stderr]      |
[INFO] [stderr] 3136 | pub struct SeriesInfoRemoteSearchQuery {
[INFO] [stderr]      |            --------------------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 3141 |     pub include_disabled_providers: bool,
[INFO] [stderr]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: `SeriesInfoRemoteSearchQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `provider_ids` is never read
[INFO] [stderr]     --> src/api/items.rs:3149:9
[INFO] [stderr]      |
[INFO] [stderr] 3146 | pub struct SeriesSearchInfo {
[INFO] [stderr]      |            ---------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 3149 |     pub provider_ids: Option<std::collections::HashMap<String, String>>,
[INFO] [stderr]      |         ^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: `SeriesSearchInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `include_disabled_providers` is never read
[INFO] [stderr]     --> src/api/items.rs:3159:9
[INFO] [stderr]      |
[INFO] [stderr] 3154 | pub struct MovieInfoRemoteSearchQuery {
[INFO] [stderr]      |            -------------------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 3159 |     pub include_disabled_providers: bool,
[INFO] [stderr]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: `MovieInfoRemoteSearchQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `provider_ids` is never read
[INFO] [stderr]     --> src/api/items.rs:3167:9
[INFO] [stderr]      |
[INFO] [stderr] 3164 | pub struct MovieSearchInfo {
[INFO] [stderr]      |            --------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 3167 |     pub provider_ids: Option<std::collections::HashMap<String, String>>,
[INFO] [stderr]      |         ^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: `MovieSearchInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `library_options` is never read
[INFO] [stderr]   --> src/api/library.rs:93:9
[INFO] [stderr]    |
[INFO] [stderr] 92 | pub struct AddVirtualFolderBody {
[INFO] [stderr]    |            -------------------- field in this struct
[INFO] [stderr] 93 |     pub library_options: Option<LibraryOptions>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `AddVirtualFolderBody` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `id` and `library_options` are never read
[INFO] [stderr]    --> src/api/library.rs:248:9
[INFO] [stderr]     |
[INFO] [stderr] 247 | pub struct UpdateLibraryOptionsRequest {
[INFO] [stderr]     |            --------------------------- fields in this struct
[INFO] [stderr] 248 |     pub id: String,
[INFO] [stderr]     |         ^^
[INFO] [stderr] 249 |     pub library_options: LibraryOptions,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `UpdateLibraryOptionsRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `user_id`, `parent_id`, and `fields` are never read
[INFO] [stderr]   --> src/api/movies.rs:24:9
[INFO] [stderr]    |
[INFO] [stderr] 23 | pub struct RecommendationsQuery {
[INFO] [stderr]    |            -------------------- fields in this struct
[INFO] [stderr] 24 |     pub user_id: Option<String>,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 25 |     pub parent_id: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] 26 |     pub fields: Option<String>,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `RecommendationsQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `person_types` and `user_id` are never read
[INFO] [stderr]   --> src/api/persons.rs:34:9
[INFO] [stderr]    |
[INFO] [stderr] 32 | pub struct PersonsQuery {
[INFO] [stderr]    |            ------------ fields in this struct
[INFO] [stderr] 33 |     pub search_term: Option<String>,
[INFO] [stderr] 34 |     pub person_types: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 37 |     pub user_id: Option<String>,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `PersonsQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `image_type` is never read
[INFO] [stderr]    --> src/api/persons.rs:221:5
[INFO] [stderr]     |
[INFO] [stderr] 218 | pub struct PersonImagePath {
[INFO] [stderr]     |            --------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 221 |     image_type: String,
[INFO] [stderr]     |     ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `PersonImagePath` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `max_width`, `max_height`, and `tag` are never read
[INFO] [stderr]    --> src/api/persons.rs:236:9
[INFO] [stderr]     |
[INFO] [stderr] 235 | pub struct ImageQuery {
[INFO] [stderr]     |            ---------- fields in this struct
[INFO] [stderr] 236 |     pub max_width: Option<u32>,
[INFO] [stderr]     |         ^^^^^^^^^
[INFO] [stderr] 237 |     pub max_height: Option<u32>,
[INFO] [stderr]     |         ^^^^^^^^^^
[INFO] [stderr] 238 |     pub tag: Option<String>,
[INFO] [stderr]     |         ^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ImageQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `media_source_id`, `audio_stream_index`, `subtitle_stream_index`, `play_method`, and `play_session_id` are never read
[INFO] [stderr]   --> src/api/playback.rs:49:9
[INFO] [stderr]    |
[INFO] [stderr] 45 | pub struct PlaybackStartInfo {
[INFO] [stderr]    |            ----------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 49 |     pub media_source_id: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr] 50 |     pub audio_stream_index: Option<i32>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 51 |     pub subtitle_stream_index: Option<i32>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 52 |     pub play_method: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr] 53 |     pub play_session_id: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `PlaybackStartInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `is_muted`, `volume_level`, `play_method`, `play_session_id`, and `repeat_mode` are never read
[INFO] [stderr]   --> src/api/playback.rs:63:9
[INFO] [stderr]    |
[INFO] [stderr] 58 | pub struct PlaybackProgressInfo {
[INFO] [stderr]    |            -------------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 63 |     pub is_muted: Option<bool>,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] 64 |     pub volume_level: Option<i32>,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 65 |     pub play_method: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr] 66 |     pub play_session_id: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr] 67 |     pub repeat_mode: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `PlaybackProgressInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `media_source_id` and `play_session_id` are never read
[INFO] [stderr]   --> src/api/playback.rs:76:9
[INFO] [stderr]    |
[INFO] [stderr] 72 | pub struct PlaybackStopInfo {
[INFO] [stderr]    |            ---------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 76 |     pub media_source_id: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr] 77 |     pub play_session_id: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `PlaybackStopInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_playback_progress` is never used
[INFO] [stderr]    --> src/api/playback.rs:433:14
[INFO] [stderr]     |
[INFO] [stderr] 433 | pub async fn get_playback_progress(
[INFO] [stderr]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple fields are never read
[INFO] [stderr]   --> src/api/playbackinfo.rs:29:9
[INFO] [stderr]    |
[INFO] [stderr] 28 | pub struct PlaybackInfoQuery {
[INFO] [stderr]    |            ----------------- fields in this struct
[INFO] [stderr] 29 |     pub user_id: Option<String>,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 30 |     pub max_streaming_bitrate: Option<i64>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 31 |     pub start_time_ticks: Option<i64>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^
[INFO] [stderr] 32 |     pub audio_stream_index: Option<i32>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 33 |     pub subtitle_stream_index: Option<i32>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 34 |     pub max_audio_channels: Option<i32>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 35 |     pub media_source_id: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr] 36 |     pub live_stream_id: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^
[INFO] [stderr] 37 |     pub auto_open_live_stream: Option<bool>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 38 |     pub enable_direct_play: Option<bool>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 39 |     pub enable_direct_stream: Option<bool>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 40 |     pub enable_transcoding: Option<bool>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 41 |     pub allow_video_stream_copy: Option<bool>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 42 |     pub allow_audio_stream_copy: Option<bool>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `PlaybackInfoQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `user_id` is never read
[INFO] [stderr]   --> src/api/playlists.rs:29:9
[INFO] [stderr]    |
[INFO] [stderr] 28 | pub struct PlaylistsQuery {
[INFO] [stderr]    |            -------------- field in this struct
[INFO] [stderr] 29 |     pub user_id: Option<String>,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `PlaylistsQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `user_id` is never read
[INFO] [stderr]   --> src/api/playlists.rs:39:9
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub struct CreatePlaylistRequest {
[INFO] [stderr]    |            --------------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 39 |     pub user_id: Option<String>,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `CreatePlaylistRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `user_id` is never read
[INFO] [stderr]   --> src/api/playlists.rs:67:5
[INFO] [stderr]    |
[INFO] [stderr] 64 | struct PlaylistRow {
[INFO] [stderr]    |        ----------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 67 |     user_id: String,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `PlaylistRow` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `as_str` is never used
[INFO] [stderr]   --> src/api/segments.rs:34:8
[INFO] [stderr]    |
[INFO] [stderr] 33 | impl MediaSegmentType {
[INFO] [stderr]    | --------------------- method in this implementation
[INFO] [stderr] 34 |     fn as_str(&self) -> &'static str {
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `import_edl_file` is never used
[INFO] [stderr]    --> src/api/segments.rs:235:14
[INFO] [stderr]     |
[INFO] [stderr] 235 | pub async fn import_edl_file(
[INFO] [stderr]     |              ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `has_intro` is never used
[INFO] [stderr]    --> src/api/segments.rs:283:14
[INFO] [stderr]     |
[INFO] [stderr] 283 | pub async fn has_intro(pool: &sqlx::SqlitePool, item_id: &str) -> bool {
[INFO] [stderr]     |              ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_intro` is never used
[INFO] [stderr]    --> src/api/segments.rs:296:14
[INFO] [stderr]     |
[INFO] [stderr] 296 | pub async fn get_intro(pool: &sqlx::SqlitePool, item_id: &str) -> Option<(i64, i64)> {
[INFO] [stderr]     |              ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_outro` is never used
[INFO] [stderr]    --> src/api/segments.rs:310:14
[INFO] [stderr]     |
[INFO] [stderr] 310 | pub async fn get_outro(pool: &sqlx::SqlitePool, item_id: &str) -> Option<(i64, i64)> {
[INFO] [stderr]     |              ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `controlling_user_id` is never read
[INFO] [stderr]   --> src/api/sessions.rs:75:9
[INFO] [stderr]    |
[INFO] [stderr] 73 | pub struct PlaybackCommandBody {
[INFO] [stderr]    |            ------------------- field in this struct
[INFO] [stderr] 74 |     pub seek_position_ticks: Option<i64>,
[INFO] [stderr] 75 |     pub controlling_user_id: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `PlaybackCommandBody` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `timeout_ms` is never read
[INFO] [stderr]   --> src/api/sessions.rs:83:9
[INFO] [stderr]    |
[INFO] [stderr] 80 | pub struct MessageBody {
[INFO] [stderr]    |            ----------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 83 |     pub timeout_ms: Option<i64>,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `MessageBody` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `play_state` is never read
[INFO] [stderr]    --> src/api/sessions.rs:100:5
[INFO] [stderr]     |
[INFO] [stderr]  87 | struct SessionRow {
[INFO] [stderr]     |        ---------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 100 |     play_state: Option<String>,
[INFO] [stderr]     |     ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `SessionRow` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `user_id`, `fields`, `is_special_season`, `is_missing`, and `adjacent_to` are never read
[INFO] [stderr]   --> src/api/shows.rs:26:9
[INFO] [stderr]    |
[INFO] [stderr] 25 | pub struct SeasonsQuery {
[INFO] [stderr]    |            ------------ fields in this struct
[INFO] [stderr] 26 |     pub user_id: Option<String>,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 27 |     pub fields: Option<String>,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr] 28 |     pub is_special_season: Option<bool>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 29 |     pub is_missing: Option<bool>,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 30 |     pub adjacent_to: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `SeasonsQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `user_id`, `fields`, `is_missing`, `adjacent_to`, and `start_item_id` are never read
[INFO] [stderr]   --> src/api/shows.rs:36:9
[INFO] [stderr]    |
[INFO] [stderr] 35 | pub struct EpisodesQuery {
[INFO] [stderr]    |            ------------- fields in this struct
[INFO] [stderr] 36 |     pub user_id: Option<String>,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 37 |     pub fields: Option<String>,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 40 |     pub is_missing: Option<bool>,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 41 |     pub adjacent_to: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 44 |     pub start_item_id: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `EpisodesQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `is_perfect_match` and `is_forced` are never read
[INFO] [stderr]    --> src/api/subtitles.rs:357:9
[INFO] [stderr]     |
[INFO] [stderr] 356 | pub struct SearchSubtitlesQuery {
[INFO] [stderr]     |            -------------------- fields in this struct
[INFO] [stderr] 357 |     pub is_perfect_match: Option<bool>,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^
[INFO] [stderr] 358 |     pub is_forced: Option<bool>,
[INFO] [stderr]     |         ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `SearchSubtitlesQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `static_stream`, `media_source_id`, `device_id`, `audio_codec`, `video_codec`, and `container` are never read
[INFO] [stderr]   --> src/api/videos.rs:37:9
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub struct StreamQuery {
[INFO] [stderr]    |            ----------- fields in this struct
[INFO] [stderr] 37 |     pub static_stream: Option<bool>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr] 38 |     pub media_source_id: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr] 39 |     pub device_id: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] 40 |     pub audio_codec: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr] 41 |     pub video_codec: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr] 42 |     pub container: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `StreamQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `container` is never read
[INFO] [stderr]    --> src/api/videos.rs:233:5
[INFO] [stderr]     |
[INFO] [stderr] 230 | pub struct VideoPath {
[INFO] [stderr]     |            --------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 233 |     container: Option<String>,
[INFO] [stderr]     |     ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `VideoPath` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `media_source_id` is never read
[INFO] [stderr]    --> src/api/videos.rs:256:9
[INFO] [stderr]     |
[INFO] [stderr] 255 | pub struct TrickplayQuery {
[INFO] [stderr]     |            -------------- field in this struct
[INFO] [stderr] 256 |     pub media_source_id: Option<String>,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `TrickplayQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `user_id`, `include_external_content`, and `include_hidden` are never read
[INFO] [stderr]   --> src/api/views.rs:23:9
[INFO] [stderr]    |
[INFO] [stderr] 22 | pub struct UserViewsQuery {
[INFO] [stderr]    |            -------------- fields in this struct
[INFO] [stderr] 23 |     pub user_id: Option<String>,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 24 |     pub include_external_content: Option<bool>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 25 |     pub include_hidden: Option<bool>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `UserViewsQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: function `configure_connection` is never used
[INFO] [stderr]   --> src/db/mod.rs:11:14
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub async fn configure_connection(pool: &SqlitePool) -> Result<()> {
[INFO] [stderr]    |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `optimize` is never used
[INFO] [stderr]    --> src/db/mod.rs:492:14
[INFO] [stderr]     |
[INFO] [stderr] 492 | pub async fn optimize(pool: &SqlitePool) -> Result<()> {
[INFO] [stderr]     |              ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_pending_image_count` is never used
[INFO] [stderr]    --> src/db/mod.rs:581:14
[INFO] [stderr]     |
[INFO] [stderr] 581 | pub async fn get_pending_image_count(pool: &SqlitePool) -> Result<i64> {
[INFO] [stderr]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `attempts` is never read
[INFO] [stderr]    --> src/db/mod.rs:594:9
[INFO] [stderr]     |
[INFO] [stderr] 589 | pub struct PendingImage {
[INFO] [stderr]     |            ------------ field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 594 |     pub attempts: i32,
[INFO] [stderr]     |         ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `PendingImage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_pending_thumbnail_count` is never used
[INFO] [stderr]    --> src/db/mod.rs:674:14
[INFO] [stderr]     |
[INFO] [stderr] 674 | pub async fn get_pending_thumbnail_count(pool: &SqlitePool) -> Result<i64> {
[INFO] [stderr]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `attempts` is never read
[INFO] [stderr]    --> src/db/mod.rs:731:9
[INFO] [stderr]     |
[INFO] [stderr] 727 | pub struct PendingThumbnail {
[INFO] [stderr]     |            ---------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 731 |     pub attempts: i32,
[INFO] [stderr]     |         ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `PendingThumbnail` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: function `update_fts_item` is never used
[INFO] [stderr]    --> src/db/mod.rs:793:14
[INFO] [stderr]     |
[INFO] [stderr] 793 | pub async fn update_fts_item(pool: &SqlitePool, item_id: &str) -> Result<()> {
[INFO] [stderr]     |              ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `search_items_fts` is never used
[INFO] [stderr]    --> src/db/mod.rs:824:14
[INFO] [stderr]     |
[INFO] [stderr] 824 | pub async fn search_items_fts(pool: &SqlitePool, query: &str, limit: i32) -> Result<Vec<String>> {
[INFO] [stderr]     |              ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `prepare_fts_query` is never used
[INFO] [stderr]    --> src/db/mod.rs:853:4
[INFO] [stderr]     |
[INFO] [stderr] 853 | fn prepare_fts_query(query: &str) -> String {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `LibraryType` is never used
[INFO] [stderr]   --> src/models/mod.rs:37:10
[INFO] [stderr]    |
[INFO] [stderr] 37 | pub enum LibraryType {
[INFO] [stderr]    |          ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `ItemType` is never used
[INFO] [stderr]   --> src/models/mod.rs:70:10
[INFO] [stderr]    |
[INFO] [stderr] 70 | pub enum ItemType {
[INFO] [stderr]    |          ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Image` is never constructed
[INFO] [stderr]   --> src/models/mod.rs:81:12
[INFO] [stderr]    |
[INFO] [stderr] 81 | pub struct Image {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `ImageType` is never used
[INFO] [stderr]   --> src/models/mod.rs:89:10
[INFO] [stderr]    |
[INFO] [stderr] 89 | pub enum ImageType {
[INFO] [stderr]    |          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `PlaybackProgress` is never constructed
[INFO] [stderr]   --> src/models/mod.rs:97:12
[INFO] [stderr]    |
[INFO] [stderr] 97 | pub struct PlaybackProgress {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DB_BATCH_SIZE` is never used
[INFO] [stderr]   --> src/scanner/mod.rs:22:7
[INFO] [stderr]    |
[INFO] [stderr] 22 | const DB_BATCH_SIZE: usize = 50;
[INFO] [stderr]    |       ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `DiscoveredEpisode` is never constructed
[INFO] [stderr]   --> src/scanner/mod.rs:26:8
[INFO] [stderr]    |
[INFO] [stderr] 26 | struct DiscoveredEpisode {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `DiscoveredMovie` is never constructed
[INFO] [stderr]   --> src/scanner/mod.rs:33:8
[INFO] [stderr]    |
[INFO] [stderr] 33 | struct DiscoveredMovie {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `scan_library` is never used
[INFO] [stderr]    --> src/scanner/mod.rs:344:14
[INFO] [stderr]     |
[INFO] [stderr] 344 | pub async fn scan_library(
[INFO] [stderr]     |              ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `by_path` is never read
[INFO] [stderr]    --> src/scanner/mod.rs:500:5
[INFO] [stderr]     |
[INFO] [stderr] 498 | struct SeriesCache {
[INFO] [stderr]     |        ----------- field in this struct
[INFO] [stderr] 499 |     /// Map of folder path -> (series_id, metadata)
[INFO] [stderr] 500 |     by_path: std::collections::HashMap<String, (String, Option<UnifiedMetadata>)>,
[INFO] [stderr]     |     ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `SeriesCache` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: function `scan_tv_library` is never used
[INFO] [stderr]    --> src/scanner/mod.rs:696:10
[INFO] [stderr]     |
[INFO] [stderr] 696 | async fn scan_tv_library(
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_unmatched_series_for_retry` is never used
[INFO] [stderr]     --> src/scanner/mod.rs:1344:10
[INFO] [stderr]      |
[INFO] [stderr] 1344 | async fn get_unmatched_series_for_retry(
[INFO] [stderr]      |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `clear_unmatched_tracking` is never used
[INFO] [stderr]     --> src/scanner/mod.rs:1372:10
[INFO] [stderr]      |
[INFO] [stderr] 1372 | async fn clear_unmatched_tracking(pool: &SqlitePool, series_id: &str) -> Result<()> {
[INFO] [stderr]      |          ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `revoke_session` is never used
[INFO] [stderr]    --> src/services/auth.rs:173:14
[INFO] [stderr]     |
[INFO] [stderr] 173 | pub async fn revoke_session(pool: &SqlitePool, token: &str) -> Result<()> {
[INFO] [stderr]     |              ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `revoke_all_user_sessions` is never used
[INFO] [stderr]    --> src/services/auth.rs:183:14
[INFO] [stderr]     |
[INFO] [stderr] 183 | pub async fn revoke_all_user_sessions(pool: &SqlitePool, user_id: &str) -> Result<i32> {
[INFO] [stderr]     |              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `image_cache_dir` is never read
[INFO] [stderr]   --> src/services/anidb.rs:25:5
[INFO] [stderr]    |
[INFO] [stderr] 23 | pub struct AniDBClient {
[INFO] [stderr]    |            ----------- field in this struct
[INFO] [stderr] 24 |     client: Client,
[INFO] [stderr] 25 |     image_cache_dir: PathBuf,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `AniDBAnime` is never constructed
[INFO] [stderr]   --> src/services/anidb.rs:31:12
[INFO] [stderr]    |
[INFO] [stderr] 31 | pub struct AniDBAnime {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `title_romaji` and `rating` are never read
[INFO] [stderr]   --> src/services/anidb.rs:51:9
[INFO] [stderr]    |
[INFO] [stderr] 47 | pub struct AniDBEpisode {
[INFO] [stderr]    |            ------------ fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 51 |     pub title_romaji: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 54 |     pub rating: Option<f64>,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `AniDBEpisode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `download_image` is never used
[INFO] [stderr]    --> src/services/anidb.rs:272:18
[INFO] [stderr]     |
[INFO] [stderr]  73 | impl AniDBClient {
[INFO] [stderr]     | ---------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 272 |     pub async fn download_image(
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `end_date`, `format`, and `status` are never read
[INFO] [stderr]   --> src/services/anilist.rs:50:9
[INFO] [stderr]    |
[INFO] [stderr] 43 | pub struct MediaData {
[INFO] [stderr]    |            --------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 50 |     pub end_date: Option<FuzzyDate>,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 64 |     pub format: Option<String>,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr] 65 |     pub status: Option<String>,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `MediaData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `role` is never read
[INFO] [stderr]    --> src/services/anilist.rs:112:9
[INFO] [stderr]     |
[INFO] [stderr] 110 | pub struct CharacterEdge {
[INFO] [stderr]     |            ------------- field in this struct
[INFO] [stderr] 111 |     pub node: Option<Character>,
[INFO] [stderr] 112 |     pub role: Option<String>,
[INFO] [stderr]     |         ^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `CharacterEdge` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `id` and `image` are never read
[INFO] [stderr]    --> src/services/anilist.rs:119:9
[INFO] [stderr]     |
[INFO] [stderr] 118 | pub struct Character {
[INFO] [stderr]     |            --------- fields in this struct
[INFO] [stderr] 119 |     pub id: i64,
[INFO] [stderr]     |         ^^
[INFO] [stderr] 120 |     pub name: Option<CharacterName>,
[INFO] [stderr] 121 |     pub image: Option<CharacterImage>,
[INFO] [stderr]     |         ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Character` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `native` is never read
[INFO] [stderr]    --> src/services/anilist.rs:127:9
[INFO] [stderr]     |
[INFO] [stderr] 125 | pub struct CharacterName {
[INFO] [stderr]     |            ------------- field in this struct
[INFO] [stderr] 126 |     pub full: Option<String>,
[INFO] [stderr] 127 |     pub native: Option<String>,
[INFO] [stderr]     |         ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `CharacterName` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `large` and `medium` are never read
[INFO] [stderr]    --> src/services/anilist.rs:132:9
[INFO] [stderr]     |
[INFO] [stderr] 131 | pub struct CharacterImage {
[INFO] [stderr]     |            -------------- fields in this struct
[INFO] [stderr] 132 |     pub large: Option<String>,
[INFO] [stderr]     |         ^^^^^
[INFO] [stderr] 133 |     pub medium: Option<String>,
[INFO] [stderr]     |         ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `CharacterImage` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `native` is never read
[INFO] [stderr]    --> src/services/anilist.rs:147:9
[INFO] [stderr]     |
[INFO] [stderr] 145 | pub struct StaffName {
[INFO] [stderr]     |            --------- field in this struct
[INFO] [stderr] 146 |     pub full: Option<String>,
[INFO] [stderr] 147 |     pub native: Option<String>,
[INFO] [stderr]     |         ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `StaffName` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `anime_type`, `episodes`, `status`, `picture`, `thumbnail`, and `tags` are never read
[INFO] [stderr]   --> src/services/anime_db.rs:25:9
[INFO] [stderr]    |
[INFO] [stderr] 21 | pub struct AnimeEntry {
[INFO] [stderr]    |            ---------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 25 |     pub anime_type: String,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 26 |     pub episodes: i32,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] 27 |     pub status: String,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 30 |     pub picture: Option<String>,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 31 |     pub thumbnail: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 34 |     pub tags: Vec<String>,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `AnimeEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `season` is never read
[INFO] [stderr]   --> src/services/anime_db.rs:39:9
[INFO] [stderr]    |
[INFO] [stderr] 38 | pub struct AnimeSeason {
[INFO] [stderr]    |            ----------- field in this struct
[INFO] [stderr] 39 |     pub season: Option<String>,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `AnimeSeason` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `find_by_anidb_id` and `find_by_mal_id` are never used
[INFO] [stderr]    --> src/services/anime_db.rs:319:18
[INFO] [stderr]     |
[INFO] [stderr] 106 | impl AnimeOfflineDatabase {
[INFO] [stderr]     | ------------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 319 |     pub async fn find_by_anidb_id(&self, anidb_id: i64) -> Result<Option<AnimeEntry>> {
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 335 |     pub async fn find_by_mal_id(&self, mal_id: i64) -> Result<Option<AnimeEntry>> {
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `pagination` is never read
[INFO] [stderr]   --> src/services/jikan.rs:30:9
[INFO] [stderr]    |
[INFO] [stderr] 28 | pub struct JikanSearchResponse {
[INFO] [stderr]    |            ------------------- field in this struct
[INFO] [stderr] 29 |     pub data: Vec<JikanAnime>,
[INFO] [stderr] 30 |     pub pagination: Option<JikanPagination>,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `JikanSearchResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `last_visible_page` and `has_next_page` are never read
[INFO] [stderr]   --> src/services/jikan.rs:35:9
[INFO] [stderr]    |
[INFO] [stderr] 34 | pub struct JikanPagination {
[INFO] [stderr]    |            --------------- fields in this struct
[INFO] [stderr] 35 |     pub last_visible_page: i32,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 36 |     pub has_next_page: bool,
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `JikanPagination` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: multiple fields are never read
[INFO] [stderr]   --> src/services/jikan.rs:42:9
[INFO] [stderr]    |
[INFO] [stderr] 40 | pub struct JikanAnime {
[INFO] [stderr]    |            ---------- fields in this struct
[INFO] [stderr] 41 |     pub mal_id: i64,
[INFO] [stderr] 42 |     pub url: Option<String>,
[INFO] [stderr]    |         ^^^
[INFO] [stderr] ...
[INFO] [stderr] 50 |     pub source: Option<String>,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 53 |     pub airing: Option<bool>,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr] 54 |     pub aired: Option<JikanAired>,
[INFO] [stderr] 55 |     pub duration: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] 56 |     pub rating: Option<String>,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr] 57 |     pub score: Option<f64>,
[INFO] [stderr] 58 |     pub scored_by: Option<i64>,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] 59 |     pub rank: Option<i32>,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr] 60 |     pub popularity: Option<i32>,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 61 |     pub members: Option<i64>,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 62 |     pub favorites: Option<i64>,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] 63 |     pub synopsis: Option<String>,
[INFO] [stderr] 64 |     pub background: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 65 |     pub season: Option<String>,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 70 |     pub demographics: Option<Vec<JikanGenre>>,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `JikanAnime` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `small_image_url` is never read
[INFO] [stderr]   --> src/services/jikan.rs:82:9
[INFO] [stderr]    |
[INFO] [stderr] 80 | pub struct JikanImageSet {
[INFO] [stderr]    |            ------------- field in this struct
[INFO] [stderr] 81 |     pub image_url: Option<String>,
[INFO] [stderr] 82 |     pub small_image_url: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `JikanImageSet` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `to` and `string` are never read
[INFO] [stderr]   --> src/services/jikan.rs:89:9
[INFO] [stderr]    |
[INFO] [stderr] 87 | pub struct JikanAired {
[INFO] [stderr]    |            ---------- fields in this struct
[INFO] [stderr] 88 |     pub from: Option<String>,
[INFO] [stderr] 89 |     pub to: Option<String>,
[INFO] [stderr]    |         ^^
[INFO] [stderr] 90 |     pub string: Option<String>,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `JikanAired` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `mal_id` is never read
[INFO] [stderr]   --> src/services/jikan.rs:95:9
[INFO] [stderr]    |
[INFO] [stderr] 94 | pub struct JikanStudio {
[INFO] [stderr]    |            ----------- field in this struct
[INFO] [stderr] 95 |     pub mal_id: i64,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `JikanStudio` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `mal_id` is never read
[INFO] [stderr]    --> src/services/jikan.rs:101:9
[INFO] [stderr]     |
[INFO] [stderr] 100 | pub struct JikanGenre {
[INFO] [stderr]     |            ---------- field in this struct
[INFO] [stderr] 101 |     pub mal_id: i64,
[INFO] [stderr]     |         ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `JikanGenre` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: struct `JikanAnimeFull` is never constructed
[INFO] [stderr]    --> src/services/jikan.rs:108:12
[INFO] [stderr]     |
[INFO] [stderr] 108 | pub struct JikanAnimeFull {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `JikanRelation` is never constructed
[INFO] [stderr]    --> src/services/jikan.rs:117:12
[INFO] [stderr]     |
[INFO] [stderr] 117 | pub struct JikanRelation {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `JikanRelationEntry` is never constructed
[INFO] [stderr]    --> src/services/jikan.rs:123:12
[INFO] [stderr]     |
[INFO] [stderr] 123 | pub struct JikanRelationEntry {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `JikanExternal` is never constructed
[INFO] [stderr]    --> src/services/jikan.rs:131:12
[INFO] [stderr]     |
[INFO] [stderr] 131 | pub struct JikanExternal {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `JikanStreaming` is never constructed
[INFO] [stderr]    --> src/services/jikan.rs:137:12
[INFO] [stderr]     |
[INFO] [stderr] 137 | pub struct JikanStreaming {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `status` is never read
[INFO] [stderr]    --> src/services/jikan.rs:159:9
[INFO] [stderr]     |
[INFO] [stderr] 145 | pub struct JikanMetadata {
[INFO] [stderr]     |            ------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 159 |     pub status: Option<String>,
[INFO] [stderr]     |         ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `JikanMetadata` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_anime_full` is never used
[INFO] [stderr]    --> src/services/jikan.rs:261:18
[INFO] [stderr]     |
[INFO] [stderr] 162 | impl JikanClient {
[INFO] [stderr]     | ---------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 261 |     pub async fn get_anime_full(&self, mal_id: i64) -> Result<Option<JikanAnimeFull>> {
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `name_original`, `episode_count`, and `runtime_minutes` are never read
[INFO] [stderr]   --> src/services/metadata.rs:19:9
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub struct UnifiedMetadata {
[INFO] [stderr]    |            --------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 19 |     pub name_original: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 26 |     pub episode_count: Option<i32>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr] 27 |     pub runtime_minutes: Option<i32>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `UnifiedMetadata` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `runtime_minutes` and `still_url` are never read
[INFO] [stderr]   --> src/services/metadata.rs:63:9
[INFO] [stderr]    |
[INFO] [stderr] 58 | pub struct EpisodeMetadata {
[INFO] [stderr]    |            --------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 63 |     pub runtime_minutes: Option<i32>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr] 64 |     pub still_url: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `EpisodeMetadata` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `image_cache_dir` is never read
[INFO] [stderr]   --> src/services/metadata.rs:73:5
[INFO] [stderr]    |
[INFO] [stderr] 67 | pub struct MetadataService {
[INFO] [stderr]    |            --------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 73 |     image_cache_dir: PathBuf,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `is_available`, `get_smart_metadata`, `cache_images`, and `download_image` are never used
[INFO] [stderr]    --> src/services/metadata.rs:101:12
[INFO] [stderr]     |
[INFO] [stderr]  76 | impl MetadataService {
[INFO] [stderr]     | -------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 101 |     pub fn is_available(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 687 |     pub async fn get_smart_metadata(
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 760 |     pub async fn cache_images(
[INFO] [stderr]     |                  ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 785 |     async fn download_image(&self, url: &str, item_id: &str, image_type: &str) -> Result<PathBuf> {
[INFO] [stderr]     |              ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TMDB_IMAGE_BASE` is never used
[INFO] [stderr]   --> src/services/tmdb.rs:11:7
[INFO] [stderr]    |
[INFO] [stderr] 11 | const TMDB_IMAGE_BASE: &str = "https://image.tmdb.org/t/p";
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `image_cache_dir` is never read
[INFO] [stderr]   --> src/services/tmdb.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub struct TmdbClient {
[INFO] [stderr]    |            ---------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 17 |     image_cache_dir: PathBuf,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `total_results` is never read
[INFO] [stderr]   --> src/services/tmdb.rs:24:9
[INFO] [stderr]    |
[INFO] [stderr] 22 | pub struct TvSearchResults {
[INFO] [stderr]    |            --------------- field in this struct
[INFO] [stderr] 23 |     pub results: Vec<TvSearchResult>,
[INFO] [stderr] 24 |     pub total_results: i32,
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `TvSearchResults` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `backdrop_path`, `vote_average`, and `vote_count` are never read
[INFO] [stderr]   --> src/services/tmdb.rs:35:9
[INFO] [stderr]    |
[INFO] [stderr] 28 | pub struct TvSearchResult {
[INFO] [stderr]    |            -------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 35 |     pub backdrop_path: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr] 36 |     pub vote_average: Option<f64>,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 37 |     pub vote_count: Option<i64>,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `TvSearchResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `total_results` is never read
[INFO] [stderr]   --> src/services/tmdb.rs:44:9
[INFO] [stderr]    |
[INFO] [stderr] 42 | pub struct MovieSearchResults {
[INFO] [stderr]    |            ------------------ field in this struct
[INFO] [stderr] 43 |     pub results: Vec<MovieSearchResult>,
[INFO] [stderr] 44 |     pub total_results: i32,
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `MovieSearchResults` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `backdrop_path`, `vote_average`, and `vote_count` are never read
[INFO] [stderr]   --> src/services/tmdb.rs:55:9
[INFO] [stderr]    |
[INFO] [stderr] 48 | pub struct MovieSearchResult {
[INFO] [stderr]    |            ----------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 55 |     pub backdrop_path: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr] 56 |     pub vote_average: Option<f64>,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr] 57 |     pub vote_count: Option<i64>,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `MovieSearchResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `original_name`, `last_air_date`, `number_of_seasons`, `number_of_episodes`, and `status` are never read
[INFO] [stderr]   --> src/services/tmdb.rs:65:9
[INFO] [stderr]    |
[INFO] [stderr] 62 | pub struct TvDetails {
[INFO] [stderr]    |            --------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 65 |     pub original_name: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 68 |     pub last_air_date: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 72 |     pub number_of_seasons: Option<i32>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 73 |     pub number_of_episodes: Option<i32>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 74 |     pub status: Option<String>,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `TvDetails` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `original_title` and `status` are never read
[INFO] [stderr]   --> src/services/tmdb.rs:85:9
[INFO] [stderr]    |
[INFO] [stderr] 82 | pub struct MovieDetails {
[INFO] [stderr]    |            ------------ fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 85 |     pub original_title: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 92 |     pub status: Option<String>,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `MovieDetails` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `id`, `name`, `overview`, `poster_path`, `season_number`, and `air_date` are never read
[INFO] [stderr]    --> src/services/tmdb.rs:101:9
[INFO] [stderr]     |
[INFO] [stderr] 100 | pub struct SeasonDetails {
[INFO] [stderr]     |            ------------- fields in this struct
[INFO] [stderr] 101 |     pub id: i64,
[INFO] [stderr]     |         ^^
[INFO] [stderr] 102 |     pub name: String,
[INFO] [stderr]     |         ^^^^
[INFO] [stderr] 103 |     pub overview: Option<String>,
[INFO] [stderr]     |         ^^^^^^^^
[INFO] [stderr] 104 |     pub poster_path: Option<String>,
[INFO] [stderr]     |         ^^^^^^^^^^^
[INFO] [stderr] 105 |     pub season_number: i32,
[INFO] [stderr]     |         ^^^^^^^^^^^^^
[INFO] [stderr] 106 |     pub air_date: Option<String>,
[INFO] [stderr]     |         ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `SeasonDetails` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `season_number` is never read
[INFO] [stderr]    --> src/services/tmdb.rs:117:9
[INFO] [stderr]     |
[INFO] [stderr] 112 | pub struct EpisodeInfo {
[INFO] [stderr]     |            ----------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 117 |     pub season_number: i32,
[INFO] [stderr]     |         ^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `EpisodeInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `id` is never read
[INFO] [stderr]    --> src/services/tmdb.rs:126:9
[INFO] [stderr]     |
[INFO] [stderr] 125 | pub struct Genre {
[INFO] [stderr]     |            ----- field in this struct
[INFO] [stderr] 126 |     pub id: i64,
[INFO] [stderr]     |         ^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Genre` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `tvdb_id` is never read
[INFO] [stderr]    --> src/services/tmdb.rs:133:9
[INFO] [stderr]     |
[INFO] [stderr] 131 | pub struct ExternalIds {
[INFO] [stderr]     |            ----------- field in this struct
[INFO] [stderr] 132 |     pub imdb_id: Option<String>,
[INFO] [stderr] 133 |     pub tvdb_id: Option<i64>,
[INFO] [stderr]     |         ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ExternalIds` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `order` is never read
[INFO] [stderr]    --> src/services/tmdb.rs:150:9
[INFO] [stderr]     |
[INFO] [stderr] 145 | pub struct CastMember {
[INFO] [stderr]     |            ---------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 150 |     pub order: Option<i32>,
[INFO] [stderr]     |         ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `CastMember` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `department` is never read
[INFO] [stderr]    --> src/services/tmdb.rs:159:9
[INFO] [stderr]     |
[INFO] [stderr] 155 | pub struct CrewMember {
[INFO] [stderr]     |            ---------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 159 |     pub department: Option<String>,
[INFO] [stderr]     |         ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `CrewMember` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variants `PosterSmall`, `PosterMedium`, `PosterOriginal`, `Backdrop`, and `BackdropOriginal` are never constructed
[INFO] [stderr]    --> src/services/tmdb.rs:194:5
[INFO] [stderr]     |
[INFO] [stderr] 192 | pub enum ImageSize {
[INFO] [stderr]     |          --------- variants in this enum
[INFO] [stderr] 193 |     /// w185 - small poster
[INFO] [stderr] 194 |     PosterSmall,
[INFO] [stderr]     |     ^^^^^^^^^^^
[INFO] [stderr] 195 |     /// w342 - medium poster
[INFO] [stderr] 196 |     PosterMedium,
[INFO] [stderr]     |     ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 200 |     PosterOriginal,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^
[INFO] [stderr] 201 |     /// w780 - backdrop
[INFO] [stderr] 202 |     Backdrop,
[INFO] [stderr]     |     ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 206 |     BackdropOriginal,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ImageSize` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `download_image` and `cache_item_images` are never used
[INFO] [stderr]    --> src/services/tmdb.rs:361:18
[INFO] [stderr]     |
[INFO] [stderr] 223 | impl TmdbClient {
[INFO] [stderr]     | --------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 361 |     pub async fn download_image(
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 671 |     pub async fn cache_item_images(
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `jellyfin-rust` (bin "jellyfin-rust" test) generated 133 warnings (run `cargo fix --bin "jellyfin-rust" -p jellyfin-rust --tests` to apply 14 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.59s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/jellyfin_rust-610a653841ddaa0b)
[INFO] [stdout] 
[INFO] [stdout] running 25 tests
[INFO] [stdout] test config::tests::test_current_dir_paths ... ok
[INFO] [stdout] test config::tests::test_database_url_format ... ok
[INFO] [stdout] test config::tests::test_default_config_file ... ok
[INFO] [stdout] test config::tests::test_parse_config_toml ... ok
[INFO] [stdout] test config::tests::test_partial_config_toml ... ok
[INFO] [stdout] test scanner::tests::test_should_skip_folder ... ok
[INFO] [stdout] test services::anidb::tests::test_html_decode ... ok
[INFO] [stdout] test services::anime_db::tests::test_extract_id_from_url ... ok
[INFO] [stdout] test services::anime_db::tests::test_string_similarity ... ok
[INFO] [stdout] test services::mediainfo::tests::test_calculate_thumbnail_timestamp ... ok
[INFO] [stdout] test services::metadata::tests::test_is_likely_anime ... ok
[INFO] [stdout] test services::anidb::tests::test_extract_xml_content ... ok
[INFO] [stdout] test services::tmdb::tests::test_image_size_str ... ok
[INFO] [stdout] test scanner::tests::test_parse_movie ... ok
[INFO] [stdout] test scanner::tests::test_parse_standard_episode ... ok
[INFO] [stdout] test scanner::tests::test_parse_anime_episode ... ok
[INFO] [stdout] test scanner::tests::test_normalize_series_name ... ok
[INFO] [stdout] test services::anilist::tests::test_media_to_metadata ... ok
[INFO] [stdout] test scanner::tests::test_clean_folder_name ... ok
[INFO] [stdout] test scanner::tests::test_extract_year_from_name ... ok
[INFO] [stdout] test scanner::tests::test_folder_name_parsing ... ok
[INFO] [stdout] test services::mediainfo::tests::test_format_duration ... ok
[INFO] [stdout] test services::jikan::tests::test_jikan_best_match ... ok
[INFO] [stdout] test services::jikan::tests::test_jikan_search ... ok
[INFO] [stdout] test services::jikan::tests::test_jikan_get_by_id ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.53s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "9db20c84aa90e4f00bfadc69fe9cbc62f460b09af785c74f62ec7639bbeddd29", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9db20c84aa90e4f00bfadc69fe9cbc62f460b09af785c74f62ec7639bbeddd29", kill_on_drop: false }`
[INFO] [stdout] 9db20c84aa90e4f00bfadc69fe9cbc62f460b09af785c74f62ec7639bbeddd29
