[INFO] cloning repository https://github.com/erictbar/Komga-RPC
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/erictbar/Komga-RPC" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ferictbar%2FKomga-RPC", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ferictbar%2FKomga-RPC'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 227392fbfad5e007f930c8d26b209e9f4b661c77
[INFO] checking erictbar/Komga-RPC against master#779e19d8baa3e3625bd4fc5c85cbb2ad47b43155 for pr-147589-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ferictbar%2FKomga-RPC" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-3-tc1/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/erictbar/Komga-RPC
[INFO] finished tweaking git repo https://github.com/erictbar/Komga-RPC
[INFO] tweaked toml for git repo https://github.com/erictbar/Komga-RPC written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/erictbar/Komga-RPC on toolchain 779e19d8baa3e3625bd4fc5c85cbb2ad47b43155
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/erictbar/Komga-RPC 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" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating git repository `https://github.com/vionya/discord-rich-presence`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 9ffb64f0fcc6ea9ccd4687863099218f6bb890579be58e549db45d86f1ccb5b8
[INFO] running `Command { std: "docker" "start" "-a" "9ffb64f0fcc6ea9ccd4687863099218f6bb890579be58e549db45d86f1ccb5b8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9ffb64f0fcc6ea9ccd4687863099218f6bb890579be58e549db45d86f1ccb5b8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9ffb64f0fcc6ea9ccd4687863099218f6bb890579be58e549db45d86f1ccb5b8", kill_on_drop: false }`
[INFO] [stdout] 9ffb64f0fcc6ea9ccd4687863099218f6bb890579be58e549db45d86f1ccb5b8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5bc2c4401b26f3852c5be84ffc8e122a2325a970f3ff1a641a3405319f26b553
[INFO] running `Command { std: "docker" "start" "-a" "5bc2c4401b26f3852c5be84ffc8e122a2325a970f3ff1a641a3405319f26b553", kill_on_drop: false }`
[INFO] [stderr]     Checking slab v0.4.10
[INFO] [stderr]    Compiling openssl-sys v0.9.109
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]     Checking parking_lot_core v0.9.11
[INFO] [stderr]     Checking indexmap v2.9.0
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking regex-automata v0.4.9
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]     Checking anstream v0.6.19
[INFO] [stderr]     Checking chrono v0.4.41
[INFO] [stderr]     Checking parking_lot v0.12.4
[INFO] [stderr]     Checking uuid v0.8.2
[INFO] [stderr]    Compiling openssl v0.10.73
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]     Checking regex v1.11.1
[INFO] [stderr]     Checking env_filter v0.1.3
[INFO] [stderr]     Checking env_logger v0.11.8
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]     Checking tokio v1.45.1
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking yoke v0.8.0
[INFO] [stderr]     Checking thiserror v2.0.12
[INFO] [stderr]     Checking zerovec v0.11.2
[INFO] [stderr]     Checking zerotrie v0.2.2
[INFO] [stderr]     Checking tinystr v0.8.1
[INFO] [stderr]     Checking potential_utf v0.1.2
[INFO] [stderr]     Checking icu_locale_core v2.0.0
[INFO] [stderr]     Checking icu_collections v2.0.0
[INFO] [stderr]     Checking serde v1.0.219
[INFO] [stderr]     Checking icu_provider v2.0.0
[INFO] [stderr]     Checking icu_normalizer v2.0.0
[INFO] [stderr]     Checking icu_properties v2.0.1
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking tokio-util v0.7.15
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking tower v0.5.2
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking tower-http v0.6.6
[INFO] [stderr]     Checking h2 v0.4.10
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]     Checking serde_json v1.0.140
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking discord-rich-presence v0.2.5 (https://github.com/vionya/discord-rich-presence#9c6cabe0)
[INFO] [stderr]     Checking hyper v1.6.0
[INFO] [stderr]     Checking hyper-util v0.1.14
[INFO] [stderr]     Checking hyper-tls v0.6.0
[INFO] [stderr]     Checking reqwest v0.12.20
[INFO] [stderr]     Checking komga-discord-rpc v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:159:9
[INFO] [stdout]     |
[INFO] [stdout] 159 |     let mut current_book_id: Option<String> = None;
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:160:9
[INFO] [stdout]     |
[INFO] [stdout] 160 |     let mut current_series_id: Option<String> = None;
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:161:9
[INFO] [stdout]     |
[INFO] [stdout] 161 |     let mut current_series_title: Option<String> = None;
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:162:9
[INFO] [stdout]     |
[INFO] [stdout] 162 |     let mut last_full_check = SystemTime::now();
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:258:25
[INFO] [stdout]     |
[INFO] [stdout] 258 |                     let mut state = book.get("metadata")
[INFO] [stdout]     |                         ----^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `last_series_time` is assigned to, but never used
[INFO] [stdout]    --> src/main.rs:158:9
[INFO] [stdout]     |
[INFO] [stdout] 158 |     let mut last_series_time: Option<SystemTime> = None;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_last_series_time` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `now`
[INFO] [stdout]    --> src/main.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 168 |         let now = SystemTime::now();
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_now`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `details`
[INFO] [stdout]    --> src/main.rs:257:25
[INFO] [stdout]     |
[INFO] [stdout] 257 |                     let details = series_title.to_string();
[INFO] [stdout]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_details`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `last_series_time` is never read
[INFO] [stdout]    --> src/main.rs:242:25
[INFO] [stdout]     |
[INFO] [stdout] 242 |                         last_series_time = Some(SystemTime::now());
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `playback_state`
[INFO] [stdout]    --> src/main.rs:338:5
[INFO] [stdout]     |
[INFO] [stdout] 338 |     playback_state: &mut PlaybackState,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_playback_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_series`
[INFO] [stdout]    --> src/main.rs:339:5
[INFO] [stdout]     |
[INFO] [stdout] 339 |     current_series: &mut Option<Series>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_series`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `book_title`
[INFO] [stdout]    --> src/main.rs:431:9
[INFO] [stdout]     |
[INFO] [stdout] 431 |     let book_title = book.get("title").and_then(|v| v.as_str());
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_book_title`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `author_text`
[INFO] [stdout]    --> src/main.rs:581:9
[INFO] [stdout]     |
[INFO] [stdout] 581 |     let author_text = if !authors.is_empty() {
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_author_text`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CURRENT_VERSION` is never used
[INFO] [stdout]   --> src/main.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const CURRENT_VERSION: &str = env!("CARGO_PKG_VERSION");
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `show_progress` is never read
[INFO] [stdout]   --> src/main.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | struct Config {
[INFO] [stdout]    |        ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     show_progress: Option<bool>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Config` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Library` is never constructed
[INFO] [stdout]   --> src/main.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | struct Library {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `processing_status` is never read
[INFO] [stdout]   --> src/main.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | struct Series {
[INFO] [stdout]    |        ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 44 |     processing_status: Option<ProcessingStatusObject>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Series` 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 `current_task`, `progress`, and `status` are never read
[INFO] [stdout]   --> src/main.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 48 | struct ProcessingStatusObject {
[INFO] [stdout]    |        ---------------------- fields in this struct
[INFO] [stdout] 49 |     #[serde(rename = "currentTask")]
[INFO] [stdout] 50 |     current_task: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 51 |     progress: f64,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 52 |     status: ProcessingStatus,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProcessingStatusObject` 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 `file_as` and `role` are never read
[INFO] [stdout]   --> src/main.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 56 | struct SeriesAuthor {
[INFO] [stdout]    |        ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 59 |     file_as: Option<String>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 60 |     role: Option<String>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SeriesAuthor` 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 `LoginRequest` is never constructed
[INFO] [stdout]   --> src/main.rs:76:8
[INFO] [stdout]    |
[INFO] [stdout] 76 | struct LoginRequest {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LoginResponse` is never constructed
[INFO] [stdout]   --> src/main.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | struct LoginResponse {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `last_api_time` and `is_reading` are never read
[INFO] [stdout]   --> src/main.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 88 | struct PlaybackState {
[INFO] [stdout]    |        ------------- fields in this struct
[INFO] [stdout] 89 |     last_api_time: SystemTime,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 90 |     is_reading: bool,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PlaybackState` 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 `last_position` is never read
[INFO] [stdout]   --> src/main.rs:96:5
[INFO] [stdout]    |
[INFO] [stdout] 94 | struct TimingInfo {
[INFO] [stdout]    |        ---------- field in this struct
[INFO] [stdout] 95 |     last_api_time: Option<SystemTime>,
[INFO] [stdout] 96 |     last_position: Option<f64>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TimingInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SeriesPosition` is never constructed
[INFO] [stdout]    --> src/main.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | struct SeriesPosition {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SeriesPage` is never constructed
[INFO] [stdout]    --> src/main.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | struct SeriesPage {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Book` is never constructed
[INFO] [stdout]    --> src/main.rs:123:8
[INFO] [stdout]     |
[INFO] [stdout] 123 | struct Book {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BookReadProgress` is never constructed
[INFO] [stdout]    --> src/main.rs:130:8
[INFO] [stdout]     |
[INFO] [stdout] 130 | struct BookReadProgress {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `should_show_as_reading_with_timestamp` is never used
[INFO] [stdout]    --> src/main.rs:751:4
[INFO] [stdout]     |
[INFO] [stdout] 751 | fn should_show_as_reading_with_timestamp(now: &SystemTime, position_timestamp: u64) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:159:9
[INFO] [stdout]     |
[INFO] [stdout] 159 |     let mut current_book_id: Option<String> = None;
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:160:9
[INFO] [stdout]     |
[INFO] [stdout] 160 |     let mut current_series_id: Option<String> = None;
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:161:9
[INFO] [stdout]     |
[INFO] [stdout] 161 |     let mut current_series_title: Option<String> = None;
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:162:9
[INFO] [stdout]     |
[INFO] [stdout] 162 |     let mut last_full_check = SystemTime::now();
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:258:25
[INFO] [stdout]     |
[INFO] [stdout] 258 |                     let mut state = book.get("metadata")
[INFO] [stdout]     |                         ----^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `last_series_time` is assigned to, but never used
[INFO] [stdout]    --> src/main.rs:158:9
[INFO] [stdout]     |
[INFO] [stdout] 158 |     let mut last_series_time: Option<SystemTime> = None;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_last_series_time` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `now`
[INFO] [stdout]    --> src/main.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 168 |         let now = SystemTime::now();
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_now`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `details`
[INFO] [stdout]    --> src/main.rs:257:25
[INFO] [stdout]     |
[INFO] [stdout] 257 |                     let details = series_title.to_string();
[INFO] [stdout]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_details`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `last_series_time` is never read
[INFO] [stdout]    --> src/main.rs:242:25
[INFO] [stdout]     |
[INFO] [stdout] 242 |                         last_series_time = Some(SystemTime::now());
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `playback_state`
[INFO] [stdout]    --> src/main.rs:338:5
[INFO] [stdout]     |
[INFO] [stdout] 338 |     playback_state: &mut PlaybackState,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_playback_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_series`
[INFO] [stdout]    --> src/main.rs:339:5
[INFO] [stdout]     |
[INFO] [stdout] 339 |     current_series: &mut Option<Series>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_series`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `book_title`
[INFO] [stdout]    --> src/main.rs:431:9
[INFO] [stdout]     |
[INFO] [stdout] 431 |     let book_title = book.get("title").and_then(|v| v.as_str());
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_book_title`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `author_text`
[INFO] [stdout]    --> src/main.rs:581:9
[INFO] [stdout]     |
[INFO] [stdout] 581 |     let author_text = if !authors.is_empty() {
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_author_text`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CURRENT_VERSION` is never used
[INFO] [stdout]   --> src/main.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const CURRENT_VERSION: &str = env!("CARGO_PKG_VERSION");
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `show_progress` is never read
[INFO] [stdout]   --> src/main.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | struct Config {
[INFO] [stdout]    |        ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     show_progress: Option<bool>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Config` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Library` is never constructed
[INFO] [stdout]   --> src/main.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | struct Library {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `processing_status` is never read
[INFO] [stdout]   --> src/main.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | struct Series {
[INFO] [stdout]    |        ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 44 |     processing_status: Option<ProcessingStatusObject>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Series` 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 `current_task`, `progress`, and `status` are never read
[INFO] [stdout]   --> src/main.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 48 | struct ProcessingStatusObject {
[INFO] [stdout]    |        ---------------------- fields in this struct
[INFO] [stdout] 49 |     #[serde(rename = "currentTask")]
[INFO] [stdout] 50 |     current_task: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 51 |     progress: f64,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 52 |     status: ProcessingStatus,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProcessingStatusObject` 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 `file_as` and `role` are never read
[INFO] [stdout]   --> src/main.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 56 | struct SeriesAuthor {
[INFO] [stdout]    |        ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 59 |     file_as: Option<String>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 60 |     role: Option<String>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SeriesAuthor` 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 `LoginRequest` is never constructed
[INFO] [stdout]   --> src/main.rs:76:8
[INFO] [stdout]    |
[INFO] [stdout] 76 | struct LoginRequest {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LoginResponse` is never constructed
[INFO] [stdout]   --> src/main.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | struct LoginResponse {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `last_api_time` and `is_reading` are never read
[INFO] [stdout]   --> src/main.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 88 | struct PlaybackState {
[INFO] [stdout]    |        ------------- fields in this struct
[INFO] [stdout] 89 |     last_api_time: SystemTime,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 90 |     is_reading: bool,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PlaybackState` 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 `last_position` is never read
[INFO] [stdout]   --> src/main.rs:96:5
[INFO] [stdout]    |
[INFO] [stdout] 94 | struct TimingInfo {
[INFO] [stdout]    |        ---------- field in this struct
[INFO] [stdout] 95 |     last_api_time: Option<SystemTime>,
[INFO] [stdout] 96 |     last_position: Option<f64>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TimingInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SeriesPosition` is never constructed
[INFO] [stdout]    --> src/main.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | struct SeriesPosition {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SeriesPage` is never constructed
[INFO] [stdout]    --> src/main.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | struct SeriesPage {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Book` is never constructed
[INFO] [stdout]    --> src/main.rs:123:8
[INFO] [stdout]     |
[INFO] [stdout] 123 | struct Book {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BookReadProgress` is never constructed
[INFO] [stdout]    --> src/main.rs:130:8
[INFO] [stdout]     |
[INFO] [stdout] 130 | struct BookReadProgress {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `should_show_as_reading_with_timestamp` is never used
[INFO] [stdout]    --> src/main.rs:751:4
[INFO] [stdout]     |
[INFO] [stdout] 751 | fn should_show_as_reading_with_timestamp(now: &SystemTime, position_timestamp: u64) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 27.14s
[INFO] running `Command { std: "docker" "inspect" "5bc2c4401b26f3852c5be84ffc8e122a2325a970f3ff1a641a3405319f26b553", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5bc2c4401b26f3852c5be84ffc8e122a2325a970f3ff1a641a3405319f26b553", kill_on_drop: false }`
[INFO] [stdout] 5bc2c4401b26f3852c5be84ffc8e122a2325a970f3ff1a641a3405319f26b553
