[INFO] cloning repository https://github.com/rsuu/emeta [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/rsuu/emeta" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frsuu%2Femeta", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frsuu%2Femeta'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 055cb6f171a81d2009d49f11b48b300bfc3ff05d [INFO] testing rsuu/emeta against beta-2025-04-13 for beta-1.87-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frsuu%2Femeta" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/rsuu/emeta on toolchain beta-2025-04-13 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-04-13" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/rsuu/emeta [INFO] finished tweaking git repo https://github.com/rsuu/emeta [INFO] tweaked toml for git repo https://github.com/rsuu/emeta written to /workspace/builds/worker-6-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/rsuu/emeta 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" "+beta-2025-04-13" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-04-13" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 9a2cc60efaf6c70cf7504853e4c89b79a03f58c5930e98f6e8eff6837cc8bad9 [INFO] running `Command { std: "docker" "start" "-a" "9a2cc60efaf6c70cf7504853e4c89b79a03f58c5930e98f6e8eff6837cc8bad9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "9a2cc60efaf6c70cf7504853e4c89b79a03f58c5930e98f6e8eff6837cc8bad9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9a2cc60efaf6c70cf7504853e4c89b79a03f58c5930e98f6e8eff6837cc8bad9", kill_on_drop: false }` [INFO] [stdout] 9a2cc60efaf6c70cf7504853e4c89b79a03f58c5930e98f6e8eff6837cc8bad9 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-04-13" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 38feb03914b9fa43a8d1436575c9d94d3f76940fd36062906a892fd90bf56a97 [INFO] running `Command { std: "docker" "start" "-a" "38feb03914b9fa43a8d1436575c9d94d3f76940fd36062906a892fd90bf56a97", kill_on_drop: false }` [INFO] [stderr] Compiling unicode-ident v1.0.11 [INFO] [stderr] Compiling proc-macro2 v1.0.66 [INFO] [stderr] Compiling version_check v0.9.4 [INFO] [stderr] Compiling memchr v2.5.0 [INFO] [stderr] Compiling libc v0.2.147 [INFO] [stderr] Compiling once_cell v1.18.0 [INFO] [stderr] Compiling cc v1.0.79 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling spin v0.5.2 [INFO] [stderr] Compiling untrusted v0.7.1 [INFO] [stderr] Compiling bitflags v2.3.3 [INFO] [stderr] Compiling utf8parse v0.2.1 [INFO] [stderr] Compiling rustix v0.38.4 [INFO] [stderr] Compiling tinyvec_macros v0.1.1 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling arrayvec v0.5.2 [INFO] [stderr] Compiling minimal-lexical v0.2.1 [INFO] [stderr] Compiling tinyvec v1.6.0 [INFO] [stderr] Compiling vcpkg v0.2.15 [INFO] [stderr] Compiling pkg-config v0.3.27 [INFO] [stderr] Compiling linux-raw-sys v0.4.3 [INFO] [stderr] Compiling rustversion v1.0.14 [INFO] [stderr] Compiling heck v0.4.1 [INFO] [stderr] Compiling crc32fast v1.3.2 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Compiling ahash v0.8.3 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Compiling prettyplease v0.2.12 [INFO] [stderr] Compiling futures-core v0.3.28 [INFO] [stderr] Compiling rustls v0.21.5 [INFO] [stderr] Compiling regex-syntax v0.7.4 [INFO] [stderr] Compiling unicode-bidi v0.3.13 [INFO] [stderr] Compiling allocator-api2 v0.2.16 [INFO] [stderr] Compiling quote v1.0.32 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Compiling ring v0.16.20 [INFO] [stderr] Compiling unicode-normalization v0.1.22 [INFO] [stderr] Compiling aho-corasick v1.0.2 [INFO] [stderr] Compiling libsqlite3-sys v0.26.0 [INFO] [stderr] Compiling adler v1.0.2 [INFO] [stderr] Compiling percent-encoding v2.3.0 [INFO] [stderr] Compiling syn v2.0.27 [INFO] [stderr] Compiling thiserror v1.0.44 [INFO] [stderr] Compiling vte_generate_state_changes v0.1.1 [INFO] [stderr] Compiling log v0.4.19 [INFO] [stderr] Compiling idna v0.4.0 [INFO] [stderr] Compiling hashbrown v0.14.0 [INFO] [stderr] Compiling vte v0.10.1 [INFO] [stderr] Compiling form_urlencoded v1.2.0 [INFO] [stderr] Compiling miniz_oxide v0.7.1 [INFO] [stderr] Compiling bytecount v0.6.3 [INFO] [stderr] Compiling regex-automata v0.3.4 [INFO] [stderr] Compiling anyhow v1.0.72 [INFO] [stderr] Compiling fnv v1.0.7 [INFO] [stderr] Compiling unicode-width v0.1.10 [INFO] [stderr] Compiling flate2 v1.0.26 [INFO] [stderr] Compiling url v2.4.0 [INFO] [stderr] Compiling hashlink v0.8.3 [INFO] [stderr] Compiling dirs-sys-next v0.1.2 [INFO] [stderr] Compiling smallvec v1.11.0 [INFO] [stderr] Compiling parking v2.1.0 [INFO] [stderr] Compiling event-listener v2.5.3 [INFO] [stderr] Compiling fastrand v2.0.0 [INFO] [stderr] Compiling byteorder v1.4.3 [INFO] [stderr] Compiling fallible-streaming-iterator v0.1.9 [INFO] [stderr] Compiling ansitok v0.2.0 [INFO] [stderr] Compiling waker-fn v1.1.0 [INFO] [stderr] Compiling nanoserde-derive v0.1.20 [INFO] [stderr] Compiling humantime v2.1.0 [INFO] [stderr] Compiling fastrand v1.9.0 [INFO] [stderr] Compiling fallible-iterator v0.2.0 [INFO] [stderr] Compiling termcolor v1.2.0 [INFO] [stderr] Compiling time-core v0.1.1 [INFO] [stderr] Compiling futures-io v0.3.28 [INFO] [stderr] Compiling base64 v0.21.2 [INFO] [stderr] Compiling pin-project-lite v0.2.10 [INFO] [stderr] Compiling ansi-str v0.8.0 [INFO] [stderr] Compiling rusqlite v0.29.0 [INFO] [stderr] Compiling futures-lite v1.13.0 [INFO] [stderr] Compiling time v0.3.23 [INFO] [stderr] Compiling papergrid v0.10.0 [INFO] [stderr] Compiling is-terminal v0.4.9 [INFO] [stderr] Compiling tempfile v3.7.1 [INFO] [stderr] Compiling async-lock v2.7.0 [INFO] [stderr] Compiling dirs-next v2.0.0 [INFO] [stderr] Compiling pico-args v0.5.0 [INFO] [stderr] Compiling nanoserde v0.1.33 [INFO] [stderr] Compiling tabled_derive v0.6.0 [INFO] [stderr] Compiling regex v1.9.1 [INFO] [stderr] Compiling tabled v0.14.0 [INFO] [stderr] Compiling env_logger v0.10.0 [INFO] [stderr] Compiling rustls-webpki v0.101.2 [INFO] [stderr] Compiling rustls-webpki v0.100.1 [INFO] [stderr] Compiling sct v0.7.0 [INFO] [stderr] Compiling webpki-roots v0.23.1 [INFO] [stderr] Compiling thiserror-impl v1.0.44 [INFO] [stderr] Compiling strum_macros v0.25.2 [INFO] [stderr] Compiling esyn-derive v0.5.1 [INFO] [stderr] Compiling esyn v0.5.1 [INFO] [stderr] Compiling strum v0.25.0 [INFO] [stderr] Compiling ureq v2.7.1 [INFO] [stderr] Compiling emeta v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `default` and `fmt::Display` [INFO] [stdout] --> src/api/anilist/media.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | use std::{default, fmt::Display, str::FromStr}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::meta::Progress` [INFO] [stdout] --> src/api/anilist.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::meta::Progress; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SerJson` [INFO] [stdout] --> src/api/anilist.rs:11:25 [INFO] [stdout] | [INFO] [stdout] 11 | use nanoserde::{DeJson, SerJson}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `strum::Display` [INFO] [stdout] --> src/api/anilist.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use strum::Display; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `themes::Colorization` [INFO] [stdout] --> src/api/anilist.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | themes::Colorization, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `collections::HashMap`, `default`, and `sync::Arc` [INFO] [stdout] --> src/api/dlsite.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | use std::{collections::HashMap, default, fmt::Display, sync::Arc}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `USER_AGENT` and `debug` [INFO] [stdout] --> src/api/mangadex.rs:7:19 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::{bail, debug, meta::*, App, Query, Res, USER_AGENT}; [INFO] [stdout] | ^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::Display` [INFO] [stdout] --> src/api/mangadex.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::fmt::Display; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `io::Write` and `write` [INFO] [stdout] --> src/api/mangadex.rs:63:18 [INFO] [stdout] | [INFO] [stdout] 63 | fs::{write, File}, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 64 | io::Write, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `api` [INFO] [stdout] --> src/cli.rs:1:13 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::{api, bail, debug, info, meta::MediaType, Res, Site, WatchStatus, VERSION}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `default` [INFO] [stdout] --> src/cli.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | use std::{default, ffi::OsString, fs::File, io::Read, path::PathBuf, str::FromStr}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `default` [INFO] [stdout] --> src/meta/format.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | use std::{default, fmt}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `default` [INFO] [stdout] --> src/meta/site.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | use std::{default, fmt::Display, str::FromStr}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `default` [INFO] [stdout] --> src/meta/status.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | use std::{default, fmt, fmt::Display, str::FromStr}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `default` [INFO] [stdout] --> src/meta/types.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | use std::{default, fmt::Display, str::FromStr}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `manga::*` [INFO] [stdout] --> src/meta.rs:12:21 [INFO] [stdout] | [INFO] [stdout] 12 | pub use {format::*, manga::*, progress::*, site::*, status::*, types::*}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/api/mangadex.rs:120:13 [INFO] [stdout] | [INFO] [stdout] 119 | todo!(); [INFO] [stdout] | ------- any code following this expression is unreachable [INFO] [stdout] 120 | println!("OK: {page}"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] = note: this warning originates in the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `red` [INFO] [stdout] --> src/api/anilist.rs:95:21 [INFO] [stdout] | [INFO] [stdout] 95 | let (green, red, yellow, blue) = ( [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_red` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `yellow` [INFO] [stdout] --> src/api/anilist.rs:95:26 [INFO] [stdout] | [INFO] [stdout] 95 | let (green, red, yellow, blue) = ( [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_yellow` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `red` [INFO] [stdout] --> src/api/anilist.rs:242:21 [INFO] [stdout] | [INFO] [stdout] 242 | let (green, red, yellow, blue) = ( [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_red` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `yellow` [INFO] [stdout] --> src/api/anilist.rs:242:26 [INFO] [stdout] | [INFO] [stdout] 242 | let (green, red, yellow, blue) = ( [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_yellow` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/api/mangadex.rs:110:21 [INFO] [stdout] | [INFO] [stdout] 110 | let mut f = File::create(page)?; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/api/mangadex.rs:110:17 [INFO] [stdout] | [INFO] [stdout] 110 | let mut f = File::create(page)?; [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/meta/status.rs:110:17 [INFO] [stdout] | [INFO] [stdout] 110 | _ => unreachable!(), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/meta/status.rs:110:17 [INFO] [stdout] | [INFO] [stdout] 99 | Self::Cancelled => "CANCELLED", [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] 100 | Self::Completed => "COMPLETED", [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] 101 | Self::Current => "CURRENT", [INFO] [stdout] | ------------- matches some of the same values [INFO] [stdout] 102 | Self::Dropped => "DROPPED", [INFO] [stdout] | ------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 110 | _ => unreachable!(), [INFO] [stdout] | ^ ...and 7 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/api/anilist/media.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 27 | pub struct Media { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 31 | id_mal: Option, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 32 | #[nserde(rename = "startDate")] [INFO] [stdout] 33 | start_date: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 34 | #[nserde(rename = "endDate")] [INFO] [stdout] 35 | end_date: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 36 | season: Option, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 37 | #[nserde(rename = "seasonYear")] [INFO] [stdout] 38 | season_year: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 39 | #[nserde(rename = "type")] [INFO] [stdout] 40 | ty: Option, [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 43 | episodes: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 44 | duration: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 45 | chapters: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 46 | volumes: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 47 | #[nserde(rename = "isAdult")] [INFO] [stdout] 48 | is_adult: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 49 | genre: Option, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 50 | tag: Option, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Media` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `user_preferred` is never read [INFO] [stdout] --> src/api/anilist/media.rs:112:5 [INFO] [stdout] | [INFO] [stdout] 107 | pub struct Title { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] ... [INFO] [stdout] 112 | user_preferred: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Title` 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 `year`, `month`, and `day` are never read [INFO] [stdout] --> src/api/anilist/media.rs:117:5 [INFO] [stdout] | [INFO] [stdout] 116 | pub struct TinyDate { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 117 | year: Option, [INFO] [stdout] | ^^^^ [INFO] [stdout] 118 | month: Option, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 119 | day: Option, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TinyDate` 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 `Danbooru` is never constructed [INFO] [stdout] --> src/api/danbooru.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 2 | struct Danbooru {} [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `app` is never read [INFO] [stdout] --> src/api/fs.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Fs { [INFO] [stdout] | -- field in this struct [INFO] [stdout] 5 | app: App, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Fs` 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 `Imdb` is never constructed [INFO] [stdout] --> src/api/imdb.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 2 | struct Imdb {} [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NovelUpdate` is never constructed [INFO] [stdout] --> src/api/novelupdate.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 2 | struct NovelUpdate {} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Youtube` is never constructed [INFO] [stdout] --> src/api/youtube.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 2 | struct Youtube {} [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `points_value` is never used [INFO] [stdout] --> src/meta/score.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 27 | impl Score { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] 28 | fn points_value(&self, score: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `MediaList` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | MediaList: MediaListArgs, [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `media_list` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `userId` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | userId: Option, [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `user_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `userName` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | userName: Option, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `user_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `mediaType` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | mediaType: Option, [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `media_type` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `mediaId` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | mediaId: Option, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `media_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `isFollowing` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | isFollowing: Option, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `is_following` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `startedAt` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | startedAt: Option, [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `started_at` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `completedAt` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | completedAt: Option, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `completed_at` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `compareWithAuthList` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | compareWithAuthList: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `compare_with_auth_list` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `userId_in` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | userId_in: Option>, [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `user_id_in` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `mediaId_in` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | mediaId_in: Option>, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `media_id_in` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `mediaId_not_in` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | mediaId_not_in: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `media_id_not_in` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `startedAt_greater` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | startedAt_greater: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `started_at_greater` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `startedAt_lesser` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | startedAt_lesser: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `started_at_lesser` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `startedAt_like` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | startedAt_like: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `started_at_like` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `completedAt_greater` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | completedAt_greater: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `completed_at_greater` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `completedAt_lesser` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | completedAt_lesser: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `completed_at_lesser` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `completedAt_like` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | completedAt_like: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `completed_at_like` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `sortType` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | sortType: String, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `sort_type` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `mediaId` should have a snake case name [INFO] [stdout] --> src/api/anilist/mutation.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | mediaId: i32, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `media_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `scoreRaw` should have a snake case name [INFO] [stdout] --> src/api/anilist/mutation.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | scoreRaw: i32, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `score_raw` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `progressVolumes` should have a snake case name [INFO] [stdout] --> src/api/anilist/mutation.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | progressVolumes: i32, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `progress_volumes` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `hiddenFromStatusLists` should have a snake case name [INFO] [stdout] --> src/api/anilist/mutation.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | hiddenFromStatusLists: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `hidden_from_status_lists` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `customLists` should have a snake case name [INFO] [stdout] --> src/api/anilist/mutation.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | customLists: Vec, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `custom_lists` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `advancedScores` should have a snake case name [INFO] [stdout] --> src/api/anilist/mutation.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | advancedScores: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `advanced_scores` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `startedAt` should have a snake case name [INFO] [stdout] --> src/api/anilist/mutation.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | startedAt: Option, [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `started_at` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `completedAt` should have a snake case name [INFO] [stdout] --> src/api/anilist/mutation.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | completedAt: Option, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `completed_at` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 35.43s [INFO] running `Command { std: "docker" "inspect" "38feb03914b9fa43a8d1436575c9d94d3f76940fd36062906a892fd90bf56a97", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "38feb03914b9fa43a8d1436575c9d94d3f76940fd36062906a892fd90bf56a97", kill_on_drop: false }` [INFO] [stdout] 38feb03914b9fa43a8d1436575c9d94d3f76940fd36062906a892fd90bf56a97 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-04-13" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 3c30f078d98e16e8bf1835d5a9de4c0260864fc6e38997acfbd678bf1c52bc24 [INFO] running `Command { std: "docker" "start" "-a" "3c30f078d98e16e8bf1835d5a9de4c0260864fc6e38997acfbd678bf1c52bc24", kill_on_drop: false }` [INFO] [stdout] warning: unused imports: `default` and `fmt::Display` [INFO] [stdout] --> src/api/anilist/media.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | use std::{default, fmt::Display, str::FromStr}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::meta::Progress` [INFO] [stdout] --> src/api/anilist.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::meta::Progress; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SerJson` [INFO] [stdout] --> src/api/anilist.rs:11:25 [INFO] [stdout] | [INFO] [stdout] 11 | use nanoserde::{DeJson, SerJson}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `strum::Display` [INFO] [stdout] --> src/api/anilist.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use strum::Display; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `themes::Colorization` [INFO] [stdout] --> src/api/anilist.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | themes::Colorization, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `collections::HashMap`, `default`, and `sync::Arc` [INFO] [stdout] --> src/api/dlsite.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | use std::{collections::HashMap, default, fmt::Display, sync::Arc}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `USER_AGENT` and `debug` [INFO] [stdout] --> src/api/mangadex.rs:7:19 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::{bail, debug, meta::*, App, Query, Res, USER_AGENT}; [INFO] [stdout] | ^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::Display` [INFO] [stdout] --> src/api/mangadex.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::fmt::Display; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `io::Write` and `write` [INFO] [stdout] --> src/api/mangadex.rs:63:18 [INFO] [stdout] | [INFO] [stdout] 63 | fs::{write, File}, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 64 | io::Write, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `api` [INFO] [stdout] --> src/cli.rs:1:13 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::{api, bail, debug, info, meta::MediaType, Res, Site, WatchStatus, VERSION}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `default` [INFO] [stdout] --> src/cli.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | use std::{default, ffi::OsString, fs::File, io::Read, path::PathBuf, str::FromStr}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `default` [INFO] [stdout] --> src/meta/format.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | use std::{default, fmt}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `default` [INFO] [stdout] --> src/meta/site.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | use std::{default, fmt::Display, str::FromStr}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `default` [INFO] [stdout] --> src/meta/status.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | use std::{default, fmt, fmt::Display, str::FromStr}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `default` [INFO] [stdout] --> src/meta/types.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | use std::{default, fmt::Display, str::FromStr}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `manga::*` [INFO] [stdout] --> src/meta.rs:12:21 [INFO] [stdout] | [INFO] [stdout] 12 | pub use {format::*, manga::*, progress::*, site::*, status::*, types::*}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/api/mangadex.rs:120:13 [INFO] [stdout] | [INFO] [stdout] 119 | todo!(); [INFO] [stdout] | ------- any code following this expression is unreachable [INFO] [stdout] 120 | println!("OK: {page}"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] = note: this warning originates in the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `red` [INFO] [stdout] --> src/api/anilist.rs:95:21 [INFO] [stdout] | [INFO] [stdout] 95 | let (green, red, yellow, blue) = ( [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_red` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `yellow` [INFO] [stdout] --> src/api/anilist.rs:95:26 [INFO] [stdout] | [INFO] [stdout] 95 | let (green, red, yellow, blue) = ( [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_yellow` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `red` [INFO] [stdout] --> src/api/anilist.rs:242:21 [INFO] [stdout] | [INFO] [stdout] 242 | let (green, red, yellow, blue) = ( [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_red` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `yellow` [INFO] [stdout] --> src/api/anilist.rs:242:26 [INFO] [stdout] | [INFO] [stdout] 242 | let (green, red, yellow, blue) = ( [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_yellow` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/api/mangadex.rs:110:21 [INFO] [stdout] | [INFO] [stdout] 110 | let mut f = File::create(page)?; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/api/mangadex.rs:110:17 [INFO] [stdout] | [INFO] [stdout] 110 | let mut f = File::create(page)?; [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/meta/status.rs:110:17 [INFO] [stdout] | [INFO] [stdout] 110 | _ => unreachable!(), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/meta/status.rs:110:17 [INFO] [stdout] | [INFO] [stdout] 99 | Self::Cancelled => "CANCELLED", [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] 100 | Self::Completed => "COMPLETED", [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] 101 | Self::Current => "CURRENT", [INFO] [stdout] | ------------- matches some of the same values [INFO] [stdout] 102 | Self::Dropped => "DROPPED", [INFO] [stdout] | ------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 110 | _ => unreachable!(), [INFO] [stdout] | ^ ...and 7 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/api/anilist/media.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 27 | pub struct Media { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 31 | id_mal: Option, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 32 | #[nserde(rename = "startDate")] [INFO] [stdout] 33 | start_date: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 34 | #[nserde(rename = "endDate")] [INFO] [stdout] 35 | end_date: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 36 | season: Option, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 37 | #[nserde(rename = "seasonYear")] [INFO] [stdout] 38 | season_year: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 39 | #[nserde(rename = "type")] [INFO] [stdout] 40 | ty: Option, [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 43 | episodes: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 44 | duration: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 45 | chapters: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 46 | volumes: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 47 | #[nserde(rename = "isAdult")] [INFO] [stdout] 48 | is_adult: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 49 | genre: Option, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 50 | tag: Option, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Media` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `user_preferred` is never read [INFO] [stdout] --> src/api/anilist/media.rs:112:5 [INFO] [stdout] | [INFO] [stdout] 107 | pub struct Title { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] ... [INFO] [stdout] 112 | user_preferred: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Title` 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 `year`, `month`, and `day` are never read [INFO] [stdout] --> src/api/anilist/media.rs:117:5 [INFO] [stdout] | [INFO] [stdout] 116 | pub struct TinyDate { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 117 | year: Option, [INFO] [stdout] | ^^^^ [INFO] [stdout] 118 | month: Option, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 119 | day: Option, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TinyDate` 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 `Danbooru` is never constructed [INFO] [stdout] --> src/api/danbooru.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 2 | struct Danbooru {} [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `app` is never read [INFO] [stdout] --> src/api/fs.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Fs { [INFO] [stdout] | -- field in this struct [INFO] [stdout] 5 | app: App, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Fs` 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 `Imdb` is never constructed [INFO] [stdout] --> src/api/imdb.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 2 | struct Imdb {} [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NovelUpdate` is never constructed [INFO] [stdout] --> src/api/novelupdate.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 2 | struct NovelUpdate {} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Youtube` is never constructed [INFO] [stdout] --> src/api/youtube.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 2 | struct Youtube {} [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `points_value` is never used [INFO] [stdout] --> src/meta/score.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 27 | impl Score { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] 28 | fn points_value(&self, score: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `MediaList` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | MediaList: MediaListArgs, [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `media_list` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `userId` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | userId: Option, [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `user_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `userName` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | userName: Option, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `user_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `mediaType` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | mediaType: Option, [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `media_type` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `mediaId` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | mediaId: Option, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `media_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `isFollowing` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | isFollowing: Option, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `is_following` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling emeta v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: structure field `startedAt` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | startedAt: Option, [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `started_at` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `completedAt` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | completedAt: Option, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `completed_at` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `compareWithAuthList` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | compareWithAuthList: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `compare_with_auth_list` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `userId_in` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | userId_in: Option>, [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `user_id_in` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `mediaId_in` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | mediaId_in: Option>, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `media_id_in` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `mediaId_not_in` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | mediaId_not_in: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `media_id_not_in` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `startedAt_greater` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | startedAt_greater: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `started_at_greater` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `startedAt_lesser` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | startedAt_lesser: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `started_at_lesser` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `startedAt_like` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | startedAt_like: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `started_at_like` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `completedAt_greater` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | completedAt_greater: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `completed_at_greater` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `completedAt_lesser` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | completedAt_lesser: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `completed_at_lesser` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `completedAt_like` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | completedAt_like: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `completed_at_like` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `sortType` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | sortType: String, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `sort_type` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `mediaId` should have a snake case name [INFO] [stdout] --> src/api/anilist/mutation.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | mediaId: i32, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `media_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `scoreRaw` should have a snake case name [INFO] [stdout] --> src/api/anilist/mutation.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | scoreRaw: i32, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `score_raw` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `progressVolumes` should have a snake case name [INFO] [stdout] --> src/api/anilist/mutation.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | progressVolumes: i32, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `progress_volumes` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `hiddenFromStatusLists` should have a snake case name [INFO] [stdout] --> src/api/anilist/mutation.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | hiddenFromStatusLists: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `hidden_from_status_lists` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `customLists` should have a snake case name [INFO] [stdout] --> src/api/anilist/mutation.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | customLists: Vec, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `custom_lists` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `advancedScores` should have a snake case name [INFO] [stdout] --> src/api/anilist/mutation.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | advancedScores: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `advanced_scores` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `startedAt` should have a snake case name [INFO] [stdout] --> src/api/anilist/mutation.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | startedAt: Option, [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `started_at` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `completedAt` should have a snake case name [INFO] [stdout] --> src/api/anilist/mutation.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | completedAt: Option, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `completed_at` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `default` and `fmt::Display` [INFO] [stdout] --> src/api/anilist/media.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | use std::{default, fmt::Display, str::FromStr}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::meta::Progress` [INFO] [stdout] --> src/api/anilist.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::meta::Progress; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SerJson` [INFO] [stdout] --> src/api/anilist.rs:11:25 [INFO] [stdout] | [INFO] [stdout] 11 | use nanoserde::{DeJson, SerJson}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `strum::Display` [INFO] [stdout] --> src/api/anilist.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use strum::Display; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `themes::Colorization` [INFO] [stdout] --> src/api/anilist.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | themes::Colorization, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `collections::HashMap`, `default`, and `sync::Arc` [INFO] [stdout] --> src/api/dlsite.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | use std::{collections::HashMap, default, fmt::Display, sync::Arc}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `USER_AGENT` and `debug` [INFO] [stdout] --> src/api/mangadex.rs:7:19 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::{bail, debug, meta::*, App, Query, Res, USER_AGENT}; [INFO] [stdout] | ^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt::Display` [INFO] [stdout] --> src/api/mangadex.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::fmt::Display; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `io::Write` and `write` [INFO] [stdout] --> src/api/mangadex.rs:63:18 [INFO] [stdout] | [INFO] [stdout] 63 | fs::{write, File}, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 64 | io::Write, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `api` [INFO] [stdout] --> src/cli.rs:1:13 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::{api, bail, debug, info, meta::MediaType, Res, Site, WatchStatus, VERSION}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `default` [INFO] [stdout] --> src/cli.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | use std::{default, ffi::OsString, fs::File, io::Read, path::PathBuf, str::FromStr}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `default` [INFO] [stdout] --> src/meta/format.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | use std::{default, fmt}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `default` [INFO] [stdout] --> src/meta/site.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | use std::{default, fmt::Display, str::FromStr}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `default` [INFO] [stdout] --> src/meta/status.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | use std::{default, fmt, fmt::Display, str::FromStr}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `default` [INFO] [stdout] --> src/meta/types.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | use std::{default, fmt::Display, str::FromStr}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `manga::*` [INFO] [stdout] --> src/meta.rs:12:21 [INFO] [stdout] | [INFO] [stdout] 12 | pub use {format::*, manga::*, progress::*, site::*, status::*, types::*}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/api/mangadex.rs:120:13 [INFO] [stdout] | [INFO] [stdout] 119 | todo!(); [INFO] [stdout] | ------- any code following this expression is unreachable [INFO] [stdout] 120 | println!("OK: {page}"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] = note: this warning originates in the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `red` [INFO] [stdout] --> src/api/anilist.rs:95:21 [INFO] [stdout] | [INFO] [stdout] 95 | let (green, red, yellow, blue) = ( [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_red` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `yellow` [INFO] [stdout] --> src/api/anilist.rs:95:26 [INFO] [stdout] | [INFO] [stdout] 95 | let (green, red, yellow, blue) = ( [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_yellow` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `red` [INFO] [stdout] --> src/api/anilist.rs:242:21 [INFO] [stdout] | [INFO] [stdout] 242 | let (green, red, yellow, blue) = ( [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_red` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `yellow` [INFO] [stdout] --> src/api/anilist.rs:242:26 [INFO] [stdout] | [INFO] [stdout] 242 | let (green, red, yellow, blue) = ( [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_yellow` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `f` [INFO] [stdout] --> src/api/mangadex.rs:110:21 [INFO] [stdout] | [INFO] [stdout] 110 | let mut f = File::create(page)?; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/api/mangadex.rs:110:17 [INFO] [stdout] | [INFO] [stdout] 110 | let mut f = File::create(page)?; [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/meta/status.rs:110:17 [INFO] [stdout] | [INFO] [stdout] 110 | _ => unreachable!(), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/meta/status.rs:110:17 [INFO] [stdout] | [INFO] [stdout] 99 | Self::Cancelled => "CANCELLED", [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] 100 | Self::Completed => "COMPLETED", [INFO] [stdout] | --------------- matches some of the same values [INFO] [stdout] 101 | Self::Current => "CURRENT", [INFO] [stdout] | ------------- matches some of the same values [INFO] [stdout] 102 | Self::Dropped => "DROPPED", [INFO] [stdout] | ------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 110 | _ => unreachable!(), [INFO] [stdout] | ^ ...and 7 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/api/anilist/media.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 27 | pub struct Media { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 31 | id_mal: Option, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 32 | #[nserde(rename = "startDate")] [INFO] [stdout] 33 | start_date: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 34 | #[nserde(rename = "endDate")] [INFO] [stdout] 35 | end_date: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 36 | season: Option, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 37 | #[nserde(rename = "seasonYear")] [INFO] [stdout] 38 | season_year: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 39 | #[nserde(rename = "type")] [INFO] [stdout] 40 | ty: Option, [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 43 | episodes: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 44 | duration: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 45 | chapters: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 46 | volumes: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 47 | #[nserde(rename = "isAdult")] [INFO] [stdout] 48 | is_adult: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 49 | genre: Option, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 50 | tag: Option, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Media` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `user_preferred` is never read [INFO] [stdout] --> src/api/anilist/media.rs:112:5 [INFO] [stdout] | [INFO] [stdout] 107 | pub struct Title { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] ... [INFO] [stdout] 112 | user_preferred: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Title` 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 `year`, `month`, and `day` are never read [INFO] [stdout] --> src/api/anilist/media.rs:117:5 [INFO] [stdout] | [INFO] [stdout] 116 | pub struct TinyDate { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 117 | year: Option, [INFO] [stdout] | ^^^^ [INFO] [stdout] 118 | month: Option, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 119 | day: Option, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TinyDate` 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 `Danbooru` is never constructed [INFO] [stdout] --> src/api/danbooru.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 2 | struct Danbooru {} [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `app` is never read [INFO] [stdout] --> src/api/fs.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Fs { [INFO] [stdout] | -- field in this struct [INFO] [stdout] 5 | app: App, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Fs` 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 `Imdb` is never constructed [INFO] [stdout] --> src/api/imdb.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 2 | struct Imdb {} [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NovelUpdate` is never constructed [INFO] [stdout] --> src/api/novelupdate.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 2 | struct NovelUpdate {} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Youtube` is never constructed [INFO] [stdout] --> src/api/youtube.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 2 | struct Youtube {} [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `points_value` is never used [INFO] [stdout] --> src/meta/score.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 27 | impl Score { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] 28 | fn points_value(&self, score: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `MediaList` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | MediaList: MediaListArgs, [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `media_list` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `userId` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | userId: Option, [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `user_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `userName` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | userName: Option, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `user_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `mediaType` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | mediaType: Option, [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `media_type` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `mediaId` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | mediaId: Option, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `media_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `isFollowing` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | isFollowing: Option, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `is_following` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `startedAt` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | startedAt: Option, [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `started_at` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `completedAt` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | completedAt: Option, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `completed_at` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `compareWithAuthList` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | compareWithAuthList: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `compare_with_auth_list` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `userId_in` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | userId_in: Option>, [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `user_id_in` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `mediaId_in` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | mediaId_in: Option>, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `media_id_in` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `mediaId_not_in` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | mediaId_not_in: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `media_id_not_in` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `startedAt_greater` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | startedAt_greater: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `started_at_greater` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `startedAt_lesser` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | startedAt_lesser: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `started_at_lesser` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `startedAt_like` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | startedAt_like: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `started_at_like` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `completedAt_greater` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | completedAt_greater: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `completed_at_greater` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `completedAt_lesser` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | completedAt_lesser: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `completed_at_lesser` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `completedAt_like` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | completedAt_like: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `completed_at_like` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `sortType` should have a snake case name [INFO] [stdout] --> src/api/anilist/medialist.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | sortType: String, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `sort_type` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `mediaId` should have a snake case name [INFO] [stdout] --> src/api/anilist/mutation.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | mediaId: i32, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `media_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `scoreRaw` should have a snake case name [INFO] [stdout] --> src/api/anilist/mutation.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | scoreRaw: i32, [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to snake case: `score_raw` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `progressVolumes` should have a snake case name [INFO] [stdout] --> src/api/anilist/mutation.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | progressVolumes: i32, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `progress_volumes` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `hiddenFromStatusLists` should have a snake case name [INFO] [stdout] --> src/api/anilist/mutation.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | hiddenFromStatusLists: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `hidden_from_status_lists` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `customLists` should have a snake case name [INFO] [stdout] --> src/api/anilist/mutation.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | customLists: Vec, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `custom_lists` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `advancedScores` should have a snake case name [INFO] [stdout] --> src/api/anilist/mutation.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | advancedScores: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `advanced_scores` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `startedAt` should have a snake case name [INFO] [stdout] --> src/api/anilist/mutation.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | startedAt: Option, [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `started_at` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `completedAt` should have a snake case name [INFO] [stdout] --> src/api/anilist/mutation.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | completedAt: Option, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `completed_at` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1.44s [INFO] running `Command { std: "docker" "inspect" "3c30f078d98e16e8bf1835d5a9de4c0260864fc6e38997acfbd678bf1c52bc24", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3c30f078d98e16e8bf1835d5a9de4c0260864fc6e38997acfbd678bf1c52bc24", kill_on_drop: false }` [INFO] [stdout] 3c30f078d98e16e8bf1835d5a9de4c0260864fc6e38997acfbd678bf1c52bc24 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-04-13" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 0d0d76d15f23e16a199ee89ecc6efc8cf59913f68c02d9e0f1c28fc6f4e79a17 [INFO] running `Command { std: "docker" "start" "-a" "0d0d76d15f23e16a199ee89ecc6efc8cf59913f68c02d9e0f1c28fc6f4e79a17", kill_on_drop: false }` [INFO] [stderr] warning: unused imports: `default` and `fmt::Display` [INFO] [stderr] --> src/api/anilist/media.rs:2:11 [INFO] [stderr] | [INFO] [stderr] 2 | use std::{default, fmt::Display, str::FromStr}; [INFO] [stderr] | ^^^^^^^ ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::meta::Progress` [INFO] [stderr] --> src/api/anilist.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use crate::meta::Progress; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `SerJson` [INFO] [stderr] --> src/api/anilist.rs:11:25 [INFO] [stderr] | [INFO] [stderr] 11 | use nanoserde::{DeJson, SerJson}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `strum::Display` [INFO] [stderr] --> src/api/anilist.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | use strum::Display; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `themes::Colorization` [INFO] [stderr] --> src/api/anilist.rs:19:9 [INFO] [stderr] | [INFO] [stderr] 19 | themes::Colorization, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `collections::HashMap`, `default`, and `sync::Arc` [INFO] [stderr] --> src/api/dlsite.rs:2:11 [INFO] [stderr] | [INFO] [stderr] 2 | use std::{collections::HashMap, default, fmt::Display, sync::Arc}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `USER_AGENT` and `debug` [INFO] [stderr] --> src/api/mangadex.rs:7:19 [INFO] [stderr] | [INFO] [stderr] 7 | use crate::{bail, debug, meta::*, App, Query, Res, USER_AGENT}; [INFO] [stderr] | ^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fmt::Display` [INFO] [stderr] --> src/api/mangadex.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use std::fmt::Display; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `io::Write` and `write` [INFO] [stderr] --> src/api/mangadex.rs:63:18 [INFO] [stderr] | [INFO] [stderr] 63 | fs::{write, File}, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 64 | io::Write, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `api` [INFO] [stderr] --> src/cli.rs:1:13 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::{api, bail, debug, info, meta::MediaType, Res, Site, WatchStatus, VERSION}; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `default` [INFO] [stderr] --> src/cli.rs:3:11 [INFO] [stderr] | [INFO] [stderr] 3 | use std::{default, ffi::OsString, fs::File, io::Read, path::PathBuf, str::FromStr}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `default` [INFO] [stderr] --> src/meta/format.rs:3:11 [INFO] [stderr] | [INFO] [stderr] 3 | use std::{default, fmt}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `default` [INFO] [stderr] --> src/meta/site.rs:2:11 [INFO] [stderr] | [INFO] [stderr] 2 | use std::{default, fmt::Display, str::FromStr}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `default` [INFO] [stderr] --> src/meta/status.rs:2:11 [INFO] [stderr] | [INFO] [stderr] 2 | use std::{default, fmt, fmt::Display, str::FromStr}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `default` [INFO] [stderr] --> src/meta/types.rs:2:11 [INFO] [stderr] | [INFO] [stderr] 2 | use std::{default, fmt::Display, str::FromStr}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `manga::*` [INFO] [stderr] --> src/meta.rs:12:21 [INFO] [stderr] | [INFO] [stderr] 12 | pub use {format::*, manga::*, progress::*, site::*, status::*, types::*}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unreachable statement [INFO] [stderr] --> src/api/mangadex.rs:120:13 [INFO] [stderr] | [INFO] [stderr] 119 | todo!(); [INFO] [stderr] | ------- any code following this expression is unreachable [INFO] [stderr] 120 | println!("OK: {page}"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_code)]` on by default [INFO] [stderr] = note: this warning originates in the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused variable: `red` [INFO] [stderr] --> src/api/anilist.rs:95:21 [INFO] [stderr] | [INFO] [stderr] 95 | let (green, red, yellow, blue) = ( [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_red` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `yellow` [INFO] [stderr] --> src/api/anilist.rs:95:26 [INFO] [stderr] | [INFO] [stderr] 95 | let (green, red, yellow, blue) = ( [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_yellow` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `red` [INFO] [stderr] --> src/api/anilist.rs:242:21 [INFO] [stderr] | [INFO] [stderr] 242 | let (green, red, yellow, blue) = ( [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_red` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `yellow` [INFO] [stderr] --> src/api/anilist.rs:242:26 [INFO] [stderr] | [INFO] [stderr] 242 | let (green, red, yellow, blue) = ( [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_yellow` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `f` [INFO] [stderr] --> src/api/mangadex.rs:110:21 [INFO] [stderr] | [INFO] [stderr] 110 | let mut f = File::create(page)?; [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_f` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/api/mangadex.rs:110:17 [INFO] [stderr] | [INFO] [stderr] 110 | let mut f = File::create(page)?; [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/meta/status.rs:110:17 [INFO] [stderr] | [INFO] [stderr] 110 | _ => unreachable!(), [INFO] [stderr] | ^ no value can reach this [INFO] [stderr] | [INFO] [stderr] note: multiple earlier patterns match some of the same values [INFO] [stderr] --> src/meta/status.rs:110:17 [INFO] [stderr] | [INFO] [stderr] 99 | Self::Cancelled => "CANCELLED", [INFO] [stderr] | --------------- matches some of the same values [INFO] [stderr] 100 | Self::Completed => "COMPLETED", [INFO] [stderr] | --------------- matches some of the same values [INFO] [stderr] 101 | Self::Current => "CURRENT", [INFO] [stderr] | ------------- matches some of the same values [INFO] [stderr] 102 | Self::Dropped => "DROPPED", [INFO] [stderr] | ------------- matches some of the same values [INFO] [stderr] ... [INFO] [stderr] 110 | _ => unreachable!(), [INFO] [stderr] | ^ ...and 7 other patterns collectively make this unreachable [INFO] [stderr] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] warning: multiple fields are never read [INFO] [stderr] --> src/api/anilist/media.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 27 | pub struct Media { [INFO] [stderr] | ----- fields in this struct [INFO] [stderr] ... [INFO] [stderr] 31 | id_mal: Option, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] 32 | #[nserde(rename = "startDate")] [INFO] [stderr] 33 | start_date: Option, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] 34 | #[nserde(rename = "endDate")] [INFO] [stderr] 35 | end_date: Option, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 36 | season: Option, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] 37 | #[nserde(rename = "seasonYear")] [INFO] [stderr] 38 | season_year: Option, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] 39 | #[nserde(rename = "type")] [INFO] [stderr] 40 | ty: Option, [INFO] [stderr] | ^^ [INFO] [stderr] ... [INFO] [stderr] 43 | episodes: Option, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 44 | duration: Option, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 45 | chapters: Option, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 46 | volumes: Option, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 47 | #[nserde(rename = "isAdult")] [INFO] [stderr] 48 | is_adult: Option, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 49 | genre: Option, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 50 | tag: Option, [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Media` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: field `user_preferred` is never read [INFO] [stderr] --> src/api/anilist/media.rs:112:5 [INFO] [stderr] | [INFO] [stderr] 107 | pub struct Title { [INFO] [stderr] | ----- field in this struct [INFO] [stderr] ... [INFO] [stderr] 112 | user_preferred: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Title` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `year`, `month`, and `day` are never read [INFO] [stderr] --> src/api/anilist/media.rs:117:5 [INFO] [stderr] | [INFO] [stderr] 116 | pub struct TinyDate { [INFO] [stderr] | -------- fields in this struct [INFO] [stderr] 117 | year: Option, [INFO] [stderr] | ^^^^ [INFO] [stderr] 118 | month: Option, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 119 | day: Option, [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `TinyDate` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: struct `Danbooru` is never constructed [INFO] [stderr] --> src/api/danbooru.rs:2:8 [INFO] [stderr] | [INFO] [stderr] 2 | struct Danbooru {} [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `app` is never read [INFO] [stderr] --> src/api/fs.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 4 | pub struct Fs { [INFO] [stderr] | -- field in this struct [INFO] [stderr] 5 | app: App, [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Fs` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: struct `Imdb` is never constructed [INFO] [stderr] --> src/api/imdb.rs:2:8 [INFO] [stderr] | [INFO] [stderr] 2 | struct Imdb {} [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `NovelUpdate` is never constructed [INFO] [stderr] --> src/api/novelupdate.rs:2:8 [INFO] [stderr] | [INFO] [stderr] 2 | struct NovelUpdate {} [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Youtube` is never constructed [INFO] [stderr] --> src/api/youtube.rs:2:8 [INFO] [stderr] | [INFO] [stderr] 2 | struct Youtube {} [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `points_value` is never used [INFO] [stderr] --> src/meta/score.rs:28:8 [INFO] [stderr] | [INFO] [stderr] 27 | impl Score { [INFO] [stderr] | ---------- method in this implementation [INFO] [stderr] 28 | fn points_value(&self, score: &str) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `MediaList` should have a snake case name [INFO] [stderr] --> src/api/anilist/medialist.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | MediaList: MediaListArgs, [INFO] [stderr] | ^^^^^^^^^ help: convert the identifier to snake case: `media_list` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_snake_case)]` on by default [INFO] [stderr] [INFO] [stderr] warning: structure field `userId` should have a snake case name [INFO] [stderr] --> src/api/anilist/medialist.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | userId: Option, [INFO] [stderr] | ^^^^^^ help: convert the identifier to snake case: `user_id` [INFO] [stderr] [INFO] [stderr] warning: structure field `userName` should have a snake case name [INFO] [stderr] --> src/api/anilist/medialist.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | userName: Option, [INFO] [stderr] | ^^^^^^^^ help: convert the identifier to snake case: `user_name` [INFO] [stderr] [INFO] [stderr] warning: structure field `mediaType` should have a snake case name [INFO] [stderr] --> src/api/anilist/medialist.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | mediaType: Option, [INFO] [stderr] | ^^^^^^^^^ help: convert the identifier to snake case: `media_type` [INFO] [stderr] [INFO] [stderr] warning: structure field `mediaId` should have a snake case name [INFO] [stderr] --> src/api/anilist/medialist.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | mediaId: Option, [INFO] [stderr] | ^^^^^^^ help: convert the identifier to snake case: `media_id` [INFO] [stderr] [INFO] [stderr] warning: structure field `isFollowing` should have a snake case name [INFO] [stderr] --> src/api/anilist/medialist.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | isFollowing: Option, [INFO] [stderr] | ^^^^^^^^^^^ help: convert the identifier to snake case: `is_following` [INFO] [stderr] [INFO] [stderr] warning: structure field `startedAt` should have a snake case name [INFO] [stderr] --> src/api/anilist/medialist.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | startedAt: Option, [INFO] [stderr] | ^^^^^^^^^ help: convert the identifier to snake case: `started_at` [INFO] [stderr] [INFO] [stderr] warning: structure field `completedAt` should have a snake case name [INFO] [stderr] --> src/api/anilist/medialist.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | completedAt: Option, [INFO] [stderr] | ^^^^^^^^^^^ help: convert the identifier to snake case: `completed_at` [INFO] [stderr] [INFO] [stderr] warning: structure field `compareWithAuthList` should have a snake case name [INFO] [stderr] --> src/api/anilist/medialist.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | compareWithAuthList: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `compare_with_auth_list` [INFO] [stderr] [INFO] [stderr] warning: structure field `userId_in` should have a snake case name [INFO] [stderr] --> src/api/anilist/medialist.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | userId_in: Option>, [INFO] [stderr] | ^^^^^^^^^ help: convert the identifier to snake case: `user_id_in` [INFO] [stderr] [INFO] [stderr] warning: structure field `mediaId_in` should have a snake case name [INFO] [stderr] --> src/api/anilist/medialist.rs:32:5 [INFO] [stderr] | [INFO] [stderr] 32 | mediaId_in: Option>, [INFO] [stderr] | ^^^^^^^^^^ help: convert the identifier to snake case: `media_id_in` [INFO] [stderr] [INFO] [stderr] warning: structure field `mediaId_not_in` should have a snake case name [INFO] [stderr] --> src/api/anilist/medialist.rs:33:5 [INFO] [stderr] | [INFO] [stderr] 33 | mediaId_not_in: Option>, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `media_id_not_in` [INFO] [stderr] [INFO] [stderr] warning: structure field `startedAt_greater` should have a snake case name [INFO] [stderr] --> src/api/anilist/medialist.rs:35:5 [INFO] [stderr] | [INFO] [stderr] 35 | startedAt_greater: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `started_at_greater` [INFO] [stderr] [INFO] [stderr] warning: structure field `startedAt_lesser` should have a snake case name [INFO] [stderr] --> src/api/anilist/medialist.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 36 | startedAt_lesser: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `started_at_lesser` [INFO] [stderr] [INFO] [stderr] warning: structure field `startedAt_like` should have a snake case name [INFO] [stderr] --> src/api/anilist/medialist.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | startedAt_like: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `started_at_like` [INFO] [stderr] [INFO] [stderr] warning: structure field `completedAt_greater` should have a snake case name [INFO] [stderr] --> src/api/anilist/medialist.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | completedAt_greater: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `completed_at_greater` [INFO] [stderr] [INFO] [stderr] warning: structure field `completedAt_lesser` should have a snake case name [INFO] [stderr] --> src/api/anilist/medialist.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | completedAt_lesser: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `completed_at_lesser` [INFO] [stderr] [INFO] [stderr] warning: structure field `completedAt_like` should have a snake case name [INFO] [stderr] --> src/api/anilist/medialist.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | completedAt_like: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `completed_at_like` [INFO] [stderr] [INFO] [stderr] warning: structure field `sortType` should have a snake case name [INFO] [stderr] --> src/api/anilist/medialist.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | sortType: String, [INFO] [stderr] | ^^^^^^^^ help: convert the identifier to snake case: `sort_type` [INFO] [stderr] [INFO] [stderr] warning: structure field `mediaId` should have a snake case name [INFO] [stderr] --> src/api/anilist/mutation.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | mediaId: i32, [INFO] [stderr] | ^^^^^^^ help: convert the identifier to snake case: `media_id` [INFO] [stderr] [INFO] [stderr] warning: structure field `scoreRaw` should have a snake case name [INFO] [stderr] --> src/api/anilist/mutation.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | scoreRaw: i32, [INFO] [stderr] | ^^^^^^^^ help: convert the identifier to snake case: `score_raw` [INFO] [stderr] [INFO] [stderr] warning: structure field `progressVolumes` should have a snake case name [INFO] [stderr] --> src/api/anilist/mutation.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | progressVolumes: i32, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `progress_volumes` [INFO] [stderr] [INFO] [stderr] warning: structure field `hiddenFromStatusLists` should have a snake case name [INFO] [stderr] --> src/api/anilist/mutation.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | hiddenFromStatusLists: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `hidden_from_status_lists` [INFO] [stderr] [INFO] [stderr] warning: structure field `customLists` should have a snake case name [INFO] [stderr] --> src/api/anilist/mutation.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | customLists: Vec, [INFO] [stderr] | ^^^^^^^^^^^ help: convert the identifier to snake case: `custom_lists` [INFO] [stderr] [INFO] [stderr] warning: structure field `advancedScores` should have a snake case name [INFO] [stderr] --> src/api/anilist/mutation.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | advancedScores: Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `advanced_scores` [INFO] [stderr] [INFO] [stderr] warning: structure field `startedAt` should have a snake case name [INFO] [stderr] --> src/api/anilist/mutation.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | startedAt: Option, [INFO] [stderr] | ^^^^^^^^^ help: convert the identifier to snake case: `started_at` [INFO] [stderr] [INFO] [stderr] warning: structure field `completedAt` should have a snake case name [INFO] [stderr] --> src/api/anilist/mutation.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | completedAt: Option, [INFO] [stderr] | ^^^^^^^^^^^ help: convert the identifier to snake case: `completed_at` [INFO] [stderr] [INFO] [stderr] warning: `emeta` (lib) generated 60 warnings (run `cargo fix --lib -p emeta` to apply 17 suggestions) [INFO] [stderr] warning: `emeta` (lib test) generated 60 warnings (60 duplicates) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.14s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/emeta-aea741fac1e702b5) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/emeta-bc74090e40b5993e) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests emeta [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "0d0d76d15f23e16a199ee89ecc6efc8cf59913f68c02d9e0f1c28fc6f4e79a17", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0d0d76d15f23e16a199ee89ecc6efc8cf59913f68c02d9e0f1c28fc6f4e79a17", kill_on_drop: false }` [INFO] [stdout] 0d0d76d15f23e16a199ee89ecc6efc8cf59913f68c02d9e0f1c28fc6f4e79a17