[INFO] cloning repository https://github.com/askiiart/torznab-toolkit [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/askiiart/torznab-toolkit" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faskiiart%2Ftorznab-toolkit", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faskiiart%2Ftorznab-toolkit'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 18e27a13ae77f9d1ce68e833b35c2db27c1e3027 [INFO] linting askiiart/torznab-toolkit against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faskiiart%2Ftorznab-toolkit" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/askiiart/torznab-toolkit [INFO] finished tweaking git repo https://github.com/askiiart/torznab-toolkit [INFO] tweaked toml for git repo https://github.com/askiiart/torznab-toolkit written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/askiiart/torznab-toolkit on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/askiiart/torznab-toolkit 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" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded xml-rs v0.8.23 [INFO] [stderr] Downloaded cc v1.2.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 931bd0c090e5d323e512fc7881dcbe30f0a4b9fae0e3f54d9d51db5eda220f36 [INFO] running `Command { std: "docker" "start" "-a" "931bd0c090e5d323e512fc7881dcbe30f0a4b9fae0e3f54d9d51db5eda220f36", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "931bd0c090e5d323e512fc7881dcbe30f0a4b9fae0e3f54d9d51db5eda220f36", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "931bd0c090e5d323e512fc7881dcbe30f0a4b9fae0e3f54d9d51db5eda220f36", kill_on_drop: false }` [INFO] [stdout] 931bd0c090e5d323e512fc7881dcbe30f0a4b9fae0e3f54d9d51db5eda220f36 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8e58b650e5692c2e0c4b1bf54914fe5c5c7f49f9769ee8fb7563a92b12ce7050 [INFO] running `Command { std: "docker" "start" "-a" "8e58b650e5692c2e0c4b1bf54914fe5c5c7f49f9769ee8fb7563a92b12ce7050", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.92 [INFO] [stderr] Compiling unicode-ident v1.0.14 [INFO] [stderr] Compiling libc v0.2.167 [INFO] [stderr] Compiling serde v1.0.215 [INFO] [stderr] Checking bytes v1.9.0 [INFO] [stderr] Checking itoa v1.0.14 [INFO] [stderr] Compiling httparse v1.9.5 [INFO] [stderr] Compiling pin-project-lite v0.2.15 [INFO] [stderr] Checking hashbrown v0.15.2 [INFO] [stderr] Compiling cookie v0.18.1 [INFO] [stderr] Compiling futures-core v0.3.31 [INFO] [stderr] Compiling ref-cast v1.0.23 [INFO] [stderr] Compiling futures-sink v0.3.31 [INFO] [stderr] Checking once_cell v1.20.2 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Compiling powerfmt v0.2.0 [INFO] [stderr] Compiling pin-utils v0.1.0 [INFO] [stderr] Compiling futures-task v0.3.31 [INFO] [stderr] Compiling futures-channel v0.3.31 [INFO] [stderr] Compiling uncased v0.9.10 [INFO] [stderr] Checking tracing-core v0.1.33 [INFO] [stderr] Compiling bitflags v2.6.0 [INFO] [stderr] Compiling try-lock v0.2.5 [INFO] [stderr] Compiling want v0.3.1 [INFO] [stderr] Compiling http v0.2.12 [INFO] [stderr] Compiling deranged v0.3.11 [INFO] [stderr] Compiling httpdate v1.0.3 [INFO] [stderr] Checking inlinable_string v0.1.15 [INFO] [stderr] Compiling futures-io v0.3.31 [INFO] [stderr] Compiling tower-service v0.3.3 [INFO] [stderr] Compiling rustix v0.38.41 [INFO] [stderr] Compiling percent-encoding v2.3.1 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Checking winnow v0.6.20 [INFO] [stderr] Compiling quote v1.0.37 [INFO] [stderr] Checking time v0.3.36 [INFO] [stderr] Compiling indexmap v2.7.0 [INFO] [stderr] Compiling http-body v0.4.6 [INFO] [stderr] Compiling stable-pattern v0.1.0 [INFO] [stderr] Compiling multer v3.1.0 [INFO] [stderr] Compiling syn v2.0.90 [INFO] [stderr] Checking parking_lot_core v0.9.10 [INFO] [stderr] Checking signal-hook-registry v1.4.2 [INFO] [stderr] Checking socket2 v0.5.8 [INFO] [stderr] Checking mio v1.0.3 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking is-terminal v0.4.13 [INFO] [stderr] Checking yansi v1.0.1 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Compiling figment v0.10.19 [INFO] [stderr] Checking linux-raw-sys v0.4.14 [INFO] [stderr] Compiling smallvec v1.13.2 [INFO] [stderr] Compiling state v0.6.0 [INFO] [stderr] Checking http v1.1.0 [INFO] [stderr] Compiling rocket v0.5.1 [INFO] [stderr] Checking encoding_rs v0.8.35 [INFO] [stderr] Checking fastrand v2.2.0 [INFO] [stderr] Checking either v1.13.0 [INFO] [stderr] Checking log v0.4.22 [INFO] [stderr] Checking spin v0.9.8 [INFO] [stderr] Compiling tokio v1.41.1 [INFO] [stderr] Compiling glob v0.3.1 [INFO] [stderr] Checking num_cpus v1.16.0 [INFO] [stderr] Checking binascii v0.1.4 [INFO] [stderr] Checking atomic v0.5.3 [INFO] [stderr] Checking xml-rs v0.8.23 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Checking tempfile v3.14.0 [INFO] [stderr] Compiling hyper v0.14.31 [INFO] [stderr] Compiling proc-macro2-diagnostics v0.10.1 [INFO] [stderr] Compiling devise_core v0.4.2 [INFO] [stderr] Compiling serde_derive v1.0.215 [INFO] [stderr] Compiling tokio-macros v2.4.0 [INFO] [stderr] Compiling pear_codegen v0.2.9 [INFO] [stderr] Compiling ref-cast-impl v1.0.23 [INFO] [stderr] Compiling zerocopy-derive v0.7.35 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Compiling async-trait v0.1.83 [INFO] [stderr] Compiling actix-macros v0.2.4 [INFO] [stderr] Checking async-stream v0.3.6 [INFO] [stderr] Compiling devise_codegen v0.4.2 [INFO] [stderr] Checking pear v0.2.9 [INFO] [stderr] Compiling devise v0.4.2 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Checking ppv-lite86 v0.2.20 [INFO] [stderr] Compiling rocket_http v0.5.1 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking tokio-util v0.7.12 [INFO] [stderr] Checking tokio-stream v0.1.16 [INFO] [stderr] Checking actix-rt v2.10.0 [INFO] [stderr] Compiling rocket_codegen v0.5.1 [INFO] [stderr] Checking toml_datetime v0.6.8 [INFO] [stderr] Checking serde_spanned v0.6.8 [INFO] [stderr] Checking ubyte v0.10.4 [INFO] [stderr] Checking toml_edit v0.22.22 [INFO] [stderr] Checking h2 v0.3.26 [INFO] [stderr] Checking toml v0.8.19 [INFO] [stderr] Checking torznab-toolkit v0.2.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/api.rs:79:13 [INFO] [stdout] | [INFO] [stdout] 79 | categories: categories, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `categories` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/api.rs:81:13 [INFO] [stdout] | [INFO] [stdout] 81 | extended_attrs: extended_attrs, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `extended_attrs` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/api.rs:83:13 [INFO] [stdout] | [INFO] [stdout] 83 | limit: limit, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `limit` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/dummy.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | subcategories: subcategories, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `subcategories` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/dummy.rs:65:13 [INFO] [stdout] | [INFO] [stdout] 65 | searching: searching, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `searching` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/dummy.rs:66:13 [INFO] [stdout] | [INFO] [stdout] 66 | categories: categories, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `categories` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/lib.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | use rocket; [INFO] [stdout] | ^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] = note: `#[warn(clippy::single_component_path_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::data::Config` [INFO] [stdout] --> src/lib.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::data::Config; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::data::*` [INFO] [stdout] --> src/notes/notes.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::data::*; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::data::*` [INFO] [stdout] --> src/notes/tutorial.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | use crate::data::*; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::run` [INFO] [stdout] --> src/notes/tutorial.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 54 | use crate::run; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/api.rs:79:13 [INFO] [stdout] | [INFO] [stdout] 79 | categories: categories, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `categories` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/api.rs:81:13 [INFO] [stdout] | [INFO] [stdout] 81 | extended_attrs: extended_attrs, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `extended_attrs` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/api.rs:83:13 [INFO] [stdout] | [INFO] [stdout] 83 | limit: limit, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `limit` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/dummy.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | subcategories: subcategories, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `subcategories` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/dummy.rs:65:13 [INFO] [stdout] | [INFO] [stdout] 65 | searching: searching, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `searching` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/dummy.rs:66:13 [INFO] [stdout] | [INFO] [stdout] 66 | categories: categories, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `categories` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/lib.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | use rocket; [INFO] [stdout] | ^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] = note: `#[warn(clippy::single_component_path_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::data::Config` [INFO] [stdout] --> src/lib.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::data::Config; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::data::*` [INFO] [stdout] --> src/notes/notes.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::data::*; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::data::*` [INFO] [stdout] --> src/notes/tutorial.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | use crate::data::*; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::run` [INFO] [stdout] --> src/notes/tutorial.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 54 | use crate::run; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `api::SearchForm` is more private than the item `api::search` [INFO] [stdout] --> src/api.rs:212:1 [INFO] [stdout] | [INFO] [stdout] 212 | / pub(crate) async fn search( [INFO] [stdout] 213 | | conf: &State, [INFO] [stdout] 214 | | form: SearchForm, [INFO] [stdout] 215 | | ) -> status::Custom> { [INFO] [stdout] | |___________________________________^ function `api::search` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `api::SearchForm` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/api.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | struct SearchForm { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `api::SearchForm` is more private than the item `api::tv_search` [INFO] [stdout] --> src/api.rs:246:1 [INFO] [stdout] | [INFO] [stdout] 246 | / pub(crate) async fn tv_search( [INFO] [stdout] 247 | | conf: &State, [INFO] [stdout] 248 | | form: SearchForm, [INFO] [stdout] 249 | | ) -> status::Custom> { [INFO] [stdout] | |___________________________________^ function `api::tv_search` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `api::SearchForm` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/api.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | struct SearchForm { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `api::SearchForm` is more private than the item `api::movie_search` [INFO] [stdout] --> src/api.rs:280:1 [INFO] [stdout] | [INFO] [stdout] 280 | / pub(crate) async fn movie_search( [INFO] [stdout] 281 | | conf: &State, [INFO] [stdout] 282 | | form: SearchForm, [INFO] [stdout] 283 | | ) -> status::Custom> { [INFO] [stdout] | |___________________________________^ function `api::movie_search` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `api::SearchForm` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/api.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | struct SearchForm { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `api::SearchForm` is more private than the item `api::music_search` [INFO] [stdout] --> src/api.rs:314:1 [INFO] [stdout] | [INFO] [stdout] 314 | / pub(crate) async fn music_search( [INFO] [stdout] 315 | | conf: &State, [INFO] [stdout] 316 | | form: SearchForm, [INFO] [stdout] 317 | | ) -> status::Custom> { [INFO] [stdout] | |___________________________________^ function `api::music_search` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `api::SearchForm` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/api.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | struct SearchForm { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `api::SearchForm` is more private than the item `api::book_search` [INFO] [stdout] --> src/api.rs:348:1 [INFO] [stdout] | [INFO] [stdout] 348 | / pub(crate) async fn book_search( [INFO] [stdout] 349 | | conf: &State, [INFO] [stdout] 350 | | form: SearchForm, [INFO] [stdout] 351 | | ) -> status::Custom> { [INFO] [stdout] | |___________________________________^ function `api::book_search` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `api::SearchForm` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/api.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | struct SearchForm { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `api::SearchForm` is more private than the item `api::search` [INFO] [stdout] --> src/api.rs:212:1 [INFO] [stdout] | [INFO] [stdout] 212 | / pub(crate) async fn search( [INFO] [stdout] 213 | | conf: &State, [INFO] [stdout] 214 | | form: SearchForm, [INFO] [stdout] 215 | | ) -> status::Custom> { [INFO] [stdout] | |___________________________________^ function `api::search` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `api::SearchForm` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/api.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | struct SearchForm { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/api.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 63 | if !self.extended.is_none() && self.extended.ok_or(false).unwrap() == 1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.extended.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `api::SearchForm` is more private than the item `api::tv_search` [INFO] [stdout] --> src/api.rs:246:1 [INFO] [stdout] | [INFO] [stdout] 246 | / pub(crate) async fn tv_search( [INFO] [stdout] 247 | | conf: &State, [INFO] [stdout] 248 | | form: SearchForm, [INFO] [stdout] 249 | | ) -> status::Custom> { [INFO] [stdout] | |___________________________________^ function `api::tv_search` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `api::SearchForm` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/api.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | struct SearchForm { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/api.rs:75:9 [INFO] [stdout] | [INFO] [stdout] 75 | / return SearchParameters { [INFO] [stdout] 76 | | search_type: search_type.to_string(), [INFO] [stdout] 77 | | q: self.q.clone(), [INFO] [stdout] 78 | | apikey: self.apikey.clone(), [INFO] [stdout] ... | [INFO] [stdout] 83 | | limit: limit, [INFO] [stdout] 84 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 75 ~ SearchParameters { [INFO] [stdout] 76 + search_type: search_type.to_string(), [INFO] [stdout] 77 + q: self.q.clone(), [INFO] [stdout] 78 + apikey: self.apikey.clone(), [INFO] [stdout] 79 + categories: categories, [INFO] [stdout] 80 + attributes: extended_attribute_names, [INFO] [stdout] 81 + extended_attrs: extended_attrs, [INFO] [stdout] 82 + offset: self.offset, [INFO] [stdout] 83 + limit: limit, [INFO] [stdout] 84 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `api::SearchForm` is more private than the item `api::movie_search` [INFO] [stdout] --> src/api.rs:280:1 [INFO] [stdout] | [INFO] [stdout] 280 | / pub(crate) async fn movie_search( [INFO] [stdout] 281 | | conf: &State, [INFO] [stdout] 282 | | form: SearchForm, [INFO] [stdout] 283 | | ) -> status::Custom> { [INFO] [stdout] | |___________________________________^ function `api::movie_search` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `api::SearchForm` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/api.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | struct SearchForm { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `api::SearchForm` is more private than the item `api::music_search` [INFO] [stdout] --> src/api.rs:314:1 [INFO] [stdout] | [INFO] [stdout] 314 | / pub(crate) async fn music_search( [INFO] [stdout] 315 | | conf: &State, [INFO] [stdout] 316 | | form: SearchForm, [INFO] [stdout] 317 | | ) -> status::Custom> { [INFO] [stdout] | |___________________________________^ function `api::music_search` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `api::SearchForm` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/api.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | struct SearchForm { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `api::SearchForm` is more private than the item `api::book_search` [INFO] [stdout] --> src/api.rs:348:1 [INFO] [stdout] | [INFO] [stdout] 348 | / pub(crate) async fn book_search( [INFO] [stdout] 349 | | conf: &State, [INFO] [stdout] 350 | | form: SearchForm, [INFO] [stdout] 351 | | ) -> status::Custom> { [INFO] [stdout] | |___________________________________^ function `api::book_search` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `api::SearchForm` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/api.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | struct SearchForm { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `Option.and_then(|x| Some(y))`, which is more succinctly expressed as `map(|x| y)` [INFO] [stdout] --> src/api.rs:56:61 [INFO] [stdout] | [INFO] [stdout] 56 | let extended_attribute_names: Option> = self [INFO] [stdout] | _____________________________________________________________^ [INFO] [stdout] 57 | | .attrs [INFO] [stdout] 58 | | .clone() [INFO] [stdout] 59 | | .and_then(|l| Some(l.split(",").map(|s| s.to_string()).collect())); [INFO] [stdout] | |______________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bind_instead_of_map [INFO] [stdout] = note: `#[warn(clippy::bind_instead_of_map)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 56 ~ let extended_attribute_names: Option> = self [INFO] [stdout] 57 + .attrs [INFO] [stdout] 58 ~ .clone().map(|l| l.split(",").map(|s| s.to_string()).collect()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dummy_search_func` is never used [INFO] [stdout] --> src/dummy.rs:5:4 [INFO] [stdout] | [INFO] [stdout] 5 | fn dummy_search_func(_a: SearchParameters) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `dummy_auth_func` is never used [INFO] [stdout] --> src/dummy.rs:17:4 [INFO] [stdout] | [INFO] [stdout] 17 | fn dummy_auth_func(_a: String) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_empty_config` is never used [INFO] [stdout] --> src/dummy.rs:22:15 [INFO] [stdout] | [INFO] [stdout] 22 | pub(crate) fn create_empty_config() -> Config { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/api.rs:207:5 [INFO] [stdout] | [INFO] [stdout] 207 | return status::Custom(Status::Ok, RawXml(result)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 207 - return status::Custom(Status::Ok, RawXml(result)); [INFO] [stdout] 207 + status::Custom(Status::Ok, RawXml(result)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/api.rs:100:5 [INFO] [stdout] | [INFO] [stdout] 100 | / match &conf.caps.server_info { [INFO] [stdout] 101 | | Some(server_info) => { [INFO] [stdout] 102 | | // needs to be a vec since if i just `.as_str()` them, they don't live long enough [INFO] [stdout] 103 | | let server_info_vec: Vec<(&String, &String)> = server_info.iter().collect(); [INFO] [stdout] ... | [INFO] [stdout] 108 | | None => {} [INFO] [stdout] 109 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 100 ~ if let Some(server_info) = &conf.caps.server_info { [INFO] [stdout] 101 + // needs to be a vec since if i just `.as_str()` them, they don't live long enough [INFO] [stdout] 102 + let server_info_vec: Vec<(&String, &String)> = server_info.iter().collect(); [INFO] [stdout] 103 + for (key, value) in server_info_vec { [INFO] [stdout] 104 + element = element.attr(key.as_str(), value); [INFO] [stdout] 105 + } [INFO] [stdout] 106 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/api.rs:164:5 [INFO] [stdout] | [INFO] [stdout] 164 | / match &conf.caps.genres { [INFO] [stdout] 165 | | Some(genres) => { [INFO] [stdout] 166 | | writer.write(XmlEvent::start_element("genres")).unwrap(); [INFO] [stdout] ... | [INFO] [stdout] 181 | | None => {} [INFO] [stdout] 182 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 164 ~ if let Some(genres) = &conf.caps.genres { [INFO] [stdout] 165 + writer.write(XmlEvent::start_element("genres")).unwrap(); [INFO] [stdout] 166 + [INFO] [stdout] 167 + for genre in genres { [INFO] [stdout] 168 + writer [INFO] [stdout] 169 + .write( [INFO] [stdout] 170 + XmlEvent::start_element("genre") [INFO] [stdout] 171 + .attr("id", genre.id.to_string().as_str()) [INFO] [stdout] 172 + .attr("categoryid", genre.category_id.to_string().as_str()) [INFO] [stdout] 173 + .attr("name", genre.name.as_str()), [INFO] [stdout] 174 + ) [INFO] [stdout] 175 + .unwrap(); [INFO] [stdout] 176 + writer.write(XmlEvent::end_element()).unwrap(); // close `genre` element [INFO] [stdout] 177 + } [INFO] [stdout] 178 + writer.write(XmlEvent::end_element()).unwrap(); // close `genres` element [INFO] [stdout] 179 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/api.rs:184:5 [INFO] [stdout] | [INFO] [stdout] 184 | / match &conf.caps.tags { [INFO] [stdout] 185 | | Some(tags) => { [INFO] [stdout] 186 | | writer.write(XmlEvent::start_element("tags")).unwrap(); [INFO] [stdout] ... | [INFO] [stdout] 199 | | None => {} [INFO] [stdout] 200 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 184 ~ if let Some(tags) = &conf.caps.tags { [INFO] [stdout] 185 + writer.write(XmlEvent::start_element("tags")).unwrap(); [INFO] [stdout] 186 + [INFO] [stdout] 187 + for tag in tags { [INFO] [stdout] 188 + writer [INFO] [stdout] 189 + .write( [INFO] [stdout] 190 + XmlEvent::start_element("tag") [INFO] [stdout] 191 + .attr("name", tag.name.as_str()) [INFO] [stdout] 192 + .attr("description", tag.description.as_str()), [INFO] [stdout] 193 + ) [INFO] [stdout] 194 + .unwrap(); [INFO] [stdout] 195 + } [INFO] [stdout] 196 + writer.write(XmlEvent::end_element()).unwrap(); // close `tags` element [INFO] [stdout] 197 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/api.rs:220:5 [INFO] [stdout] | [INFO] [stdout] 220 | / match conf.auth { [INFO] [stdout] 221 | | Some(auth) => { [INFO] [stdout] 222 | | match parameters.apikey.clone() { [INFO] [stdout] 223 | | Some(apikey) => { [INFO] [stdout] ... | [INFO] [stdout] 234 | | None => {} [INFO] [stdout] 235 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 220 ~ if let Some(auth) = conf.auth { [INFO] [stdout] 221 + match parameters.apikey.clone() { [INFO] [stdout] 222 + Some(apikey) => { [INFO] [stdout] 223 + if !auth(apikey).unwrap() { [INFO] [stdout] 224 + unauthorized = true; [INFO] [stdout] 225 + } [INFO] [stdout] 226 + } [INFO] [stdout] 227 + None => { [INFO] [stdout] 228 + unauthorized = true; [INFO] [stdout] 229 + } [INFO] [stdout] 230 + } [INFO] [stdout] 231 + // that unwrap_or_else is to return "" if the apikey isn't specified [INFO] [stdout] 232 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/api.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 63 | if !self.extended.is_none() && self.extended.ok_or(false).unwrap() == 1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.extended.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/api.rs:75:9 [INFO] [stdout] | [INFO] [stdout] 75 | / return SearchParameters { [INFO] [stdout] 76 | | search_type: search_type.to_string(), [INFO] [stdout] 77 | | q: self.q.clone(), [INFO] [stdout] 78 | | apikey: self.apikey.clone(), [INFO] [stdout] ... | [INFO] [stdout] 83 | | limit: limit, [INFO] [stdout] 84 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 75 ~ SearchParameters { [INFO] [stdout] 76 + search_type: search_type.to_string(), [INFO] [stdout] 77 + q: self.q.clone(), [INFO] [stdout] 78 + apikey: self.apikey.clone(), [INFO] [stdout] 79 + categories: categories, [INFO] [stdout] 80 + attributes: extended_attribute_names, [INFO] [stdout] 81 + extended_attrs: extended_attrs, [INFO] [stdout] 82 + offset: self.offset, [INFO] [stdout] 83 + limit: limit, [INFO] [stdout] 84 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `Option.and_then(|x| Some(y))`, which is more succinctly expressed as `map(|x| y)` [INFO] [stdout] --> src/api.rs:56:61 [INFO] [stdout] | [INFO] [stdout] 56 | let extended_attribute_names: Option> = self [INFO] [stdout] | _____________________________________________________________^ [INFO] [stdout] 57 | | .attrs [INFO] [stdout] 58 | | .clone() [INFO] [stdout] 59 | | .and_then(|l| Some(l.split(",").map(|s| s.to_string()).collect())); [INFO] [stdout] | |______________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bind_instead_of_map [INFO] [stdout] = note: `#[warn(clippy::bind_instead_of_map)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 56 ~ let extended_attribute_names: Option> = self [INFO] [stdout] 57 + .attrs [INFO] [stdout] 58 ~ .clone().map(|l| l.split(",").map(|s| s.to_string()).collect()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/api.rs:207:5 [INFO] [stdout] | [INFO] [stdout] 207 | return status::Custom(Status::Ok, RawXml(result)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 207 - return status::Custom(Status::Ok, RawXml(result)); [INFO] [stdout] 207 + status::Custom(Status::Ok, RawXml(result)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/api.rs:254:5 [INFO] [stdout] | [INFO] [stdout] 254 | / match conf.auth { [INFO] [stdout] 255 | | Some(auth) => { [INFO] [stdout] 256 | | match parameters.clone().apikey { [INFO] [stdout] 257 | | Some(apikey) => { [INFO] [stdout] ... | [INFO] [stdout] 268 | | None => {} [INFO] [stdout] 269 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 254 ~ if let Some(auth) = conf.auth { [INFO] [stdout] 255 + match parameters.clone().apikey { [INFO] [stdout] 256 + Some(apikey) => { [INFO] [stdout] 257 + if !auth(apikey).unwrap() { [INFO] [stdout] 258 + unauthorized = true; [INFO] [stdout] 259 + } [INFO] [stdout] 260 + } [INFO] [stdout] 261 + None => { [INFO] [stdout] 262 + unauthorized = true; [INFO] [stdout] 263 + } [INFO] [stdout] 264 + } [INFO] [stdout] 265 + // that unwrap_or_else is to return "" if the apikey isn't specified [INFO] [stdout] 266 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/api.rs:100:5 [INFO] [stdout] | [INFO] [stdout] 100 | / match &conf.caps.server_info { [INFO] [stdout] 101 | | Some(server_info) => { [INFO] [stdout] 102 | | // needs to be a vec since if i just `.as_str()` them, they don't live long enough [INFO] [stdout] 103 | | let server_info_vec: Vec<(&String, &String)> = server_info.iter().collect(); [INFO] [stdout] ... | [INFO] [stdout] 108 | | None => {} [INFO] [stdout] 109 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 100 ~ if let Some(server_info) = &conf.caps.server_info { [INFO] [stdout] 101 + // needs to be a vec since if i just `.as_str()` them, they don't live long enough [INFO] [stdout] 102 + let server_info_vec: Vec<(&String, &String)> = server_info.iter().collect(); [INFO] [stdout] 103 + for (key, value) in server_info_vec { [INFO] [stdout] 104 + element = element.attr(key.as_str(), value); [INFO] [stdout] 105 + } [INFO] [stdout] 106 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/api.rs:164:5 [INFO] [stdout] | [INFO] [stdout] 164 | / match &conf.caps.genres { [INFO] [stdout] 165 | | Some(genres) => { [INFO] [stdout] 166 | | writer.write(XmlEvent::start_element("genres")).unwrap(); [INFO] [stdout] ... | [INFO] [stdout] 181 | | None => {} [INFO] [stdout] 182 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 164 ~ if let Some(genres) = &conf.caps.genres { [INFO] [stdout] 165 + writer.write(XmlEvent::start_element("genres")).unwrap(); [INFO] [stdout] 166 + [INFO] [stdout] 167 + for genre in genres { [INFO] [stdout] 168 + writer [INFO] [stdout] 169 + .write( [INFO] [stdout] 170 + XmlEvent::start_element("genre") [INFO] [stdout] 171 + .attr("id", genre.id.to_string().as_str()) [INFO] [stdout] 172 + .attr("categoryid", genre.category_id.to_string().as_str()) [INFO] [stdout] 173 + .attr("name", genre.name.as_str()), [INFO] [stdout] 174 + ) [INFO] [stdout] 175 + .unwrap(); [INFO] [stdout] 176 + writer.write(XmlEvent::end_element()).unwrap(); // close `genre` element [INFO] [stdout] 177 + } [INFO] [stdout] 178 + writer.write(XmlEvent::end_element()).unwrap(); // close `genres` element [INFO] [stdout] 179 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/api.rs:184:5 [INFO] [stdout] | [INFO] [stdout] 184 | / match &conf.caps.tags { [INFO] [stdout] 185 | | Some(tags) => { [INFO] [stdout] 186 | | writer.write(XmlEvent::start_element("tags")).unwrap(); [INFO] [stdout] ... | [INFO] [stdout] 199 | | None => {} [INFO] [stdout] 200 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 184 ~ if let Some(tags) = &conf.caps.tags { [INFO] [stdout] 185 + writer.write(XmlEvent::start_element("tags")).unwrap(); [INFO] [stdout] 186 + [INFO] [stdout] 187 + for tag in tags { [INFO] [stdout] 188 + writer [INFO] [stdout] 189 + .write( [INFO] [stdout] 190 + XmlEvent::start_element("tag") [INFO] [stdout] 191 + .attr("name", tag.name.as_str()) [INFO] [stdout] 192 + .attr("description", tag.description.as_str()), [INFO] [stdout] 193 + ) [INFO] [stdout] 194 + .unwrap(); [INFO] [stdout] 195 + } [INFO] [stdout] 196 + writer.write(XmlEvent::end_element()).unwrap(); // close `tags` element [INFO] [stdout] 197 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/api.rs:288:5 [INFO] [stdout] | [INFO] [stdout] 288 | / match conf.auth { [INFO] [stdout] 289 | | Some(auth) => { [INFO] [stdout] 290 | | match parameters.clone().apikey { [INFO] [stdout] 291 | | Some(apikey) => { [INFO] [stdout] ... | [INFO] [stdout] 302 | | None => {} [INFO] [stdout] 303 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 288 ~ if let Some(auth) = conf.auth { [INFO] [stdout] 289 + match parameters.clone().apikey { [INFO] [stdout] 290 + Some(apikey) => { [INFO] [stdout] 291 + if !auth(apikey).unwrap() { [INFO] [stdout] 292 + unauthorized = true; [INFO] [stdout] 293 + } [INFO] [stdout] 294 + } [INFO] [stdout] 295 + None => { [INFO] [stdout] 296 + unauthorized = true; [INFO] [stdout] 297 + } [INFO] [stdout] 298 + } [INFO] [stdout] 299 + // that unwrap_or_else is to return "" if the apikey isn't specified [INFO] [stdout] 300 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/api.rs:220:5 [INFO] [stdout] | [INFO] [stdout] 220 | / match conf.auth { [INFO] [stdout] 221 | | Some(auth) => { [INFO] [stdout] 222 | | match parameters.apikey.clone() { [INFO] [stdout] 223 | | Some(apikey) => { [INFO] [stdout] ... | [INFO] [stdout] 234 | | None => {} [INFO] [stdout] 235 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 220 ~ if let Some(auth) = conf.auth { [INFO] [stdout] 221 + match parameters.apikey.clone() { [INFO] [stdout] 222 + Some(apikey) => { [INFO] [stdout] 223 + if !auth(apikey).unwrap() { [INFO] [stdout] 224 + unauthorized = true; [INFO] [stdout] 225 + } [INFO] [stdout] 226 + } [INFO] [stdout] 227 + None => { [INFO] [stdout] 228 + unauthorized = true; [INFO] [stdout] 229 + } [INFO] [stdout] 230 + } [INFO] [stdout] 231 + // that unwrap_or_else is to return "" if the apikey isn't specified [INFO] [stdout] 232 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/api.rs:322:5 [INFO] [stdout] | [INFO] [stdout] 322 | / match conf.auth { [INFO] [stdout] 323 | | Some(auth) => { [INFO] [stdout] 324 | | match parameters.clone().apikey { [INFO] [stdout] 325 | | Some(apikey) => { [INFO] [stdout] ... | [INFO] [stdout] 336 | | None => {} [INFO] [stdout] 337 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 322 ~ if let Some(auth) = conf.auth { [INFO] [stdout] 323 + match parameters.clone().apikey { [INFO] [stdout] 324 + Some(apikey) => { [INFO] [stdout] 325 + if !auth(apikey).unwrap() { [INFO] [stdout] 326 + unauthorized = true; [INFO] [stdout] 327 + } [INFO] [stdout] 328 + } [INFO] [stdout] 329 + None => { [INFO] [stdout] 330 + unauthorized = true; [INFO] [stdout] 331 + } [INFO] [stdout] 332 + } [INFO] [stdout] 333 + // that unwrap_or_else is to return "" if the apikey isn't specified [INFO] [stdout] 334 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/api.rs:254:5 [INFO] [stdout] | [INFO] [stdout] 254 | / match conf.auth { [INFO] [stdout] 255 | | Some(auth) => { [INFO] [stdout] 256 | | match parameters.clone().apikey { [INFO] [stdout] 257 | | Some(apikey) => { [INFO] [stdout] ... | [INFO] [stdout] 268 | | None => {} [INFO] [stdout] 269 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 254 ~ if let Some(auth) = conf.auth { [INFO] [stdout] 255 + match parameters.clone().apikey { [INFO] [stdout] 256 + Some(apikey) => { [INFO] [stdout] 257 + if !auth(apikey).unwrap() { [INFO] [stdout] 258 + unauthorized = true; [INFO] [stdout] 259 + } [INFO] [stdout] 260 + } [INFO] [stdout] 261 + None => { [INFO] [stdout] 262 + unauthorized = true; [INFO] [stdout] 263 + } [INFO] [stdout] 264 + } [INFO] [stdout] 265 + // that unwrap_or_else is to return "" if the apikey isn't specified [INFO] [stdout] 266 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/api.rs:356:5 [INFO] [stdout] | [INFO] [stdout] 356 | / match conf.auth { [INFO] [stdout] 357 | | Some(auth) => { [INFO] [stdout] 358 | | match parameters.clone().apikey { [INFO] [stdout] 359 | | Some(apikey) => { [INFO] [stdout] ... | [INFO] [stdout] 370 | | None => {} [INFO] [stdout] 371 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 356 ~ if let Some(auth) = conf.auth { [INFO] [stdout] 357 + match parameters.clone().apikey { [INFO] [stdout] 358 + Some(apikey) => { [INFO] [stdout] 359 + if !auth(apikey).unwrap() { [INFO] [stdout] 360 + unauthorized = true; [INFO] [stdout] 361 + } [INFO] [stdout] 362 + } [INFO] [stdout] 363 + None => { [INFO] [stdout] 364 + unauthorized = true; [INFO] [stdout] 365 + } [INFO] [stdout] 366 + } [INFO] [stdout] 367 + // that unwrap_or_else is to return "" if the apikey isn't specified [INFO] [stdout] 368 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/api.rs:288:5 [INFO] [stdout] | [INFO] [stdout] 288 | / match conf.auth { [INFO] [stdout] 289 | | Some(auth) => { [INFO] [stdout] 290 | | match parameters.clone().apikey { [INFO] [stdout] 291 | | Some(apikey) => { [INFO] [stdout] ... | [INFO] [stdout] 302 | | None => {} [INFO] [stdout] 303 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 288 ~ if let Some(auth) = conf.auth { [INFO] [stdout] 289 + match parameters.clone().apikey { [INFO] [stdout] 290 + Some(apikey) => { [INFO] [stdout] 291 + if !auth(apikey).unwrap() { [INFO] [stdout] 292 + unauthorized = true; [INFO] [stdout] 293 + } [INFO] [stdout] 294 + } [INFO] [stdout] 295 + None => { [INFO] [stdout] 296 + unauthorized = true; [INFO] [stdout] 297 + } [INFO] [stdout] 298 + } [INFO] [stdout] 299 + // that unwrap_or_else is to return "" if the apikey isn't specified [INFO] [stdout] 300 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/api.rs:448:12 [INFO] [stdout] | [INFO] [stdout] 448 | if !item.description.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `item.description.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/api.rs:543:5 [INFO] [stdout] | [INFO] [stdout] 543 | return status::Custom(Status::Ok, RawXml(result)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 543 - return status::Custom(Status::Ok, RawXml(result)); [INFO] [stdout] 543 + status::Custom(Status::Ok, RawXml(result)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/api.rs:408:13 [INFO] [stdout] | [INFO] [stdout] 408 | / if server_info.contains_key("title") { [INFO] [stdout] 409 | | match server_info.get("title") { [INFO] [stdout] 410 | | Some(title) => { [INFO] [stdout] 411 | | writer.write(XmlEvent::characters(title)).unwrap(); [INFO] [stdout] ... | [INFO] [stdout] 416 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 407 ~ Some(server_info) [INFO] [stdout] 408 ~ if server_info.contains_key("title") => { [INFO] [stdout] 409 | match server_info.get("title") { [INFO] [stdout] ... [INFO] [stdout] 415 | } [INFO] [stdout] 416 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/api.rs:406:5 [INFO] [stdout] | [INFO] [stdout] 406 | / match &conf.caps.server_info { [INFO] [stdout] 407 | | Some(server_info) => { [INFO] [stdout] 408 | | if server_info.contains_key("title") { [INFO] [stdout] 409 | | match server_info.get("title") { [INFO] [stdout] ... | [INFO] [stdout] 418 | | None => {} [INFO] [stdout] 419 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 406 ~ if let Some(server_info) = &conf.caps.server_info { [INFO] [stdout] 407 + if server_info.contains_key("title") { [INFO] [stdout] 408 + match server_info.get("title") { [INFO] [stdout] 409 + Some(title) => { [INFO] [stdout] 410 + writer.write(XmlEvent::characters(title)).unwrap(); [INFO] [stdout] 411 + title_provided = true; [INFO] [stdout] 412 + } [INFO] [stdout] 413 + None => {} [INFO] [stdout] 414 + } [INFO] [stdout] 415 + } [INFO] [stdout] 416 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/api.rs:409:17 [INFO] [stdout] | [INFO] [stdout] 409 | / match server_info.get("title") { [INFO] [stdout] 410 | | Some(title) => { [INFO] [stdout] 411 | | writer.write(XmlEvent::characters(title)).unwrap(); [INFO] [stdout] 412 | | title_provided = true; [INFO] [stdout] 413 | | } [INFO] [stdout] 414 | | None => {} [INFO] [stdout] 415 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 409 ~ if let Some(title) = server_info.get("title") { [INFO] [stdout] 410 + writer.write(XmlEvent::characters(title)).unwrap(); [INFO] [stdout] 411 + title_provided = true; [INFO] [stdout] 412 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/api.rs:432:12 [INFO] [stdout] | [INFO] [stdout] 432 | if torrent_file_url == "" && magnet_uri == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `torrent_file_url.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] = note: `#[warn(clippy::comparison_to_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/api.rs:432:38 [INFO] [stdout] | [INFO] [stdout] 432 | if torrent_file_url == "" && magnet_uri == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `magnet_uri.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/api.rs:480:9 [INFO] [stdout] | [INFO] [stdout] 480 | / match item.other_attributes { [INFO] [stdout] 481 | | Some(ref attributes) => match attributes.get("link") { [INFO] [stdout] 482 | | Some(tmp) => { [INFO] [stdout] 483 | | writer.write(XmlEvent::characters(tmp)).unwrap(); [INFO] [stdout] ... | [INFO] [stdout] 488 | | None => {} [INFO] [stdout] 489 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 480 ~ if let Some(ref attributes) = item.other_attributes { match attributes.get("link") { [INFO] [stdout] 481 + Some(tmp) => { [INFO] [stdout] 482 + writer.write(XmlEvent::characters(tmp)).unwrap(); [INFO] [stdout] 483 + link_filled = true; [INFO] [stdout] 484 + } [INFO] [stdout] 485 + None => {} [INFO] [stdout] 486 + } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/api.rs:481:37 [INFO] [stdout] | [INFO] [stdout] 481 | Some(ref attributes) => match attributes.get("link") { [INFO] [stdout] | _____________________________________^ [INFO] [stdout] 482 | | Some(tmp) => { [INFO] [stdout] 483 | | writer.write(XmlEvent::characters(tmp)).unwrap(); [INFO] [stdout] 484 | | link_filled = true; [INFO] [stdout] 485 | | } [INFO] [stdout] 486 | | None => {} [INFO] [stdout] 487 | | }, [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 481 ~ Some(ref attributes) => if let Some(tmp) = attributes.get("link") { [INFO] [stdout] 482 + writer.write(XmlEvent::characters(tmp)).unwrap(); [INFO] [stdout] 483 + link_filled = true; [INFO] [stdout] 484 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/api.rs:494:55 [INFO] [stdout] | [INFO] [stdout] 494 | writer.write(XmlEvent::characters(&url)).unwrap(); [INFO] [stdout] | ^^^^ help: change this to: `url` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/api.rs:499:46 [INFO] [stdout] | [INFO] [stdout] 499 | ... .attr("url", &url) [INFO] [stdout] | ^^^^ help: change this to: `url` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/api.rs:322:5 [INFO] [stdout] | [INFO] [stdout] 322 | / match conf.auth { [INFO] [stdout] 323 | | Some(auth) => { [INFO] [stdout] 324 | | match parameters.clone().apikey { [INFO] [stdout] 325 | | Some(apikey) => { [INFO] [stdout] ... | [INFO] [stdout] 336 | | None => {} [INFO] [stdout] 337 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 322 ~ if let Some(auth) = conf.auth { [INFO] [stdout] 323 + match parameters.clone().apikey { [INFO] [stdout] 324 + Some(apikey) => { [INFO] [stdout] 325 + if !auth(apikey).unwrap() { [INFO] [stdout] 326 + unauthorized = true; [INFO] [stdout] 327 + } [INFO] [stdout] 328 + } [INFO] [stdout] 329 + None => { [INFO] [stdout] 330 + unauthorized = true; [INFO] [stdout] 331 + } [INFO] [stdout] 332 + } [INFO] [stdout] 333 + // that unwrap_or_else is to return "" if the apikey isn't specified [INFO] [stdout] 334 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/api.rs:523:9 [INFO] [stdout] | [INFO] [stdout] 523 | / match item.other_attributes { [INFO] [stdout] 524 | | Some(ref other_attributes) => { [INFO] [stdout] 525 | | for (key, value) in other_attributes { [INFO] [stdout] 526 | | writer [INFO] [stdout] ... | [INFO] [stdout] 531 | | None => {} [INFO] [stdout] 532 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 523 ~ if let Some(ref other_attributes) = item.other_attributes { [INFO] [stdout] 524 + for (key, value) in other_attributes { [INFO] [stdout] 525 + writer [INFO] [stdout] 526 + .write(XmlEvent::start_element("torznab::attr").attr(key.as_str(), value)) [INFO] [stdout] 527 + .unwrap(); [INFO] [stdout] 528 + } [INFO] [stdout] 529 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/api.rs:356:5 [INFO] [stdout] | [INFO] [stdout] 356 | / match conf.auth { [INFO] [stdout] 357 | | Some(auth) => { [INFO] [stdout] 358 | | match parameters.clone().apikey { [INFO] [stdout] 359 | | Some(apikey) => { [INFO] [stdout] ... | [INFO] [stdout] 370 | | None => {} [INFO] [stdout] 371 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 356 ~ if let Some(auth) = conf.auth { [INFO] [stdout] 357 + match parameters.clone().apikey { [INFO] [stdout] 358 + Some(apikey) => { [INFO] [stdout] 359 + if !auth(apikey).unwrap() { [INFO] [stdout] 360 + unauthorized = true; [INFO] [stdout] 361 + } [INFO] [stdout] 362 + } [INFO] [stdout] 363 + None => { [INFO] [stdout] 364 + unauthorized = true; [INFO] [stdout] 365 + } [INFO] [stdout] 366 + } [INFO] [stdout] 367 + // that unwrap_or_else is to return "" if the apikey isn't specified [INFO] [stdout] 368 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dummy.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | / return Ok(vec![Torrent { [INFO] [stdout] 7 | | title: "totally normal torrent".to_string(), [INFO] [stdout] 8 | | description: None, [INFO] [stdout] 9 | | size: 9872349573, [INFO] [stdout] ... | [INFO] [stdout] 13 | | other_attributes: None, [INFO] [stdout] 14 | | }]); [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 6 ~ Ok(vec![Torrent { [INFO] [stdout] 7 + title: "totally normal torrent".to_string(), [INFO] [stdout] 8 + description: None, [INFO] [stdout] 9 + size: 9872349573, [INFO] [stdout] 10 + category_ids: vec![1010], [INFO] [stdout] 11 + torrent_file_url: Some("http://localhost/totally-normal.torrent".to_string()), [INFO] [stdout] 12 + magnet_uri: Some("magnet:?xt=urn:btih:blahblahblahdothechachacha".to_string()), [INFO] [stdout] 13 + other_attributes: None, [INFO] [stdout] 14 ~ }]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dummy.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | return Ok(true); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 18 - return Ok(true); [INFO] [stdout] 18 + Ok(true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dummy.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 56 | / return Config { [INFO] [stdout] 57 | | search: dummy_search_func, [INFO] [stdout] 58 | | auth: Some(dummy_auth_func), [INFO] [stdout] 59 | | caps: Caps { [INFO] [stdout] ... | [INFO] [stdout] 69 | | }, [INFO] [stdout] 70 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 56 ~ Config { [INFO] [stdout] 57 + search: dummy_search_func, [INFO] [stdout] 58 + auth: Some(dummy_auth_func), [INFO] [stdout] 59 + caps: Caps { [INFO] [stdout] 60 + server_info: Some(server_info), [INFO] [stdout] 61 + limits: Limits { [INFO] [stdout] 62 + max: 100, [INFO] [stdout] 63 + default: 20, [INFO] [stdout] 64 + }, [INFO] [stdout] 65 + searching: searching, [INFO] [stdout] 66 + categories: categories, [INFO] [stdout] 67 + genres: Some(genres), [INFO] [stdout] 68 + tags: Some(tags), [INFO] [stdout] 69 + }, [INFO] [stdout] 70 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/api.rs:448:12 [INFO] [stdout] | [INFO] [stdout] 448 | if !item.description.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `item.description.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/api.rs:543:5 [INFO] [stdout] | [INFO] [stdout] 543 | return status::Custom(Status::Ok, RawXml(result)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 543 - return status::Custom(Status::Ok, RawXml(result)); [INFO] [stdout] 543 + status::Custom(Status::Ok, RawXml(result)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/api.rs:408:13 [INFO] [stdout] | [INFO] [stdout] 408 | / if server_info.contains_key("title") { [INFO] [stdout] 409 | | match server_info.get("title") { [INFO] [stdout] 410 | | Some(title) => { [INFO] [stdout] 411 | | writer.write(XmlEvent::characters(title)).unwrap(); [INFO] [stdout] ... | [INFO] [stdout] 416 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 407 ~ Some(server_info) [INFO] [stdout] 408 ~ if server_info.contains_key("title") => { [INFO] [stdout] 409 | match server_info.get("title") { [INFO] [stdout] ... [INFO] [stdout] 415 | } [INFO] [stdout] 416 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:35:13 [INFO] [stdout] | [INFO] [stdout] 35 | return Ok(true); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 35 - return Ok(true); [INFO] [stdout] 35 + Ok(true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/api.rs:406:5 [INFO] [stdout] | [INFO] [stdout] 406 | / match &conf.caps.server_info { [INFO] [stdout] 407 | | Some(server_info) => { [INFO] [stdout] 408 | | if server_info.contains_key("title") { [INFO] [stdout] 409 | | match server_info.get("title") { [INFO] [stdout] ... | [INFO] [stdout] 418 | | None => {} [INFO] [stdout] 419 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 406 ~ if let Some(server_info) = &conf.caps.server_info { [INFO] [stdout] 407 + if server_info.contains_key("title") { [INFO] [stdout] 408 + match server_info.get("title") { [INFO] [stdout] 409 + Some(title) => { [INFO] [stdout] 410 + writer.write(XmlEvent::characters(title)).unwrap(); [INFO] [stdout] 411 + title_provided = true; [INFO] [stdout] 412 + } [INFO] [stdout] 413 + None => {} [INFO] [stdout] 414 + } [INFO] [stdout] 415 + } [INFO] [stdout] 416 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:38:13 [INFO] [stdout] | [INFO] [stdout] 38 | return Err(e); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 38 - return Err(e); [INFO] [stdout] 38 + Err(e) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/api.rs:409:17 [INFO] [stdout] | [INFO] [stdout] 409 | / match server_info.get("title") { [INFO] [stdout] 410 | | Some(title) => { [INFO] [stdout] 411 | | writer.write(XmlEvent::characters(title)).unwrap(); [INFO] [stdout] 412 | | title_provided = true; [INFO] [stdout] 413 | | } [INFO] [stdout] 414 | | None => {} [INFO] [stdout] 415 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 409 ~ if let Some(title) = server_info.get("title") { [INFO] [stdout] 410 + writer.write(XmlEvent::characters(title)).unwrap(); [INFO] [stdout] 411 + title_provided = true; [INFO] [stdout] 412 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/notes/mod.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | pub mod notes; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/api.rs:432:12 [INFO] [stdout] | [INFO] [stdout] 432 | if torrent_file_url == "" && magnet_uri == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `torrent_file_url.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] = note: `#[warn(clippy::comparison_to_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/api.rs:432:38 [INFO] [stdout] | [INFO] [stdout] 432 | if torrent_file_url == "" && magnet_uri == "" { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `magnet_uri.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/api.rs:480:9 [INFO] [stdout] | [INFO] [stdout] 480 | / match item.other_attributes { [INFO] [stdout] 481 | | Some(ref attributes) => match attributes.get("link") { [INFO] [stdout] 482 | | Some(tmp) => { [INFO] [stdout] 483 | | writer.write(XmlEvent::characters(tmp)).unwrap(); [INFO] [stdout] ... | [INFO] [stdout] 488 | | None => {} [INFO] [stdout] 489 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 480 ~ if let Some(ref attributes) = item.other_attributes { match attributes.get("link") { [INFO] [stdout] 481 + Some(tmp) => { [INFO] [stdout] 482 + writer.write(XmlEvent::characters(tmp)).unwrap(); [INFO] [stdout] 483 + link_filled = true; [INFO] [stdout] 484 + } [INFO] [stdout] 485 + None => {} [INFO] [stdout] 486 + } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/api.rs:481:37 [INFO] [stdout] | [INFO] [stdout] 481 | Some(ref attributes) => match attributes.get("link") { [INFO] [stdout] | _____________________________________^ [INFO] [stdout] 482 | | Some(tmp) => { [INFO] [stdout] 483 | | writer.write(XmlEvent::characters(tmp)).unwrap(); [INFO] [stdout] 484 | | link_filled = true; [INFO] [stdout] 485 | | } [INFO] [stdout] 486 | | None => {} [INFO] [stdout] 487 | | }, [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 481 ~ Some(ref attributes) => if let Some(tmp) = attributes.get("link") { [INFO] [stdout] 482 + writer.write(XmlEvent::characters(tmp)).unwrap(); [INFO] [stdout] 483 + link_filled = true; [INFO] [stdout] 484 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/api.rs:494:55 [INFO] [stdout] | [INFO] [stdout] 494 | writer.write(XmlEvent::characters(&url)).unwrap(); [INFO] [stdout] | ^^^^ help: change this to: `url` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/data.rs:207:5 [INFO] [stdout] | [INFO] [stdout] 176 | #[derive(Debug, Clone, PartialEq, Eq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 207 | pub search: SearchFunc, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/api.rs:499:46 [INFO] [stdout] | [INFO] [stdout] 499 | ... .attr("url", &url) [INFO] [stdout] | ^^^^ help: change this to: `url` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/data.rs:209:5 [INFO] [stdout] | [INFO] [stdout] 176 | #[derive(Debug, Clone, PartialEq, Eq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 209 | pub auth: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/api.rs:523:9 [INFO] [stdout] | [INFO] [stdout] 523 | / match item.other_attributes { [INFO] [stdout] 524 | | Some(ref other_attributes) => { [INFO] [stdout] 525 | | for (key, value) in other_attributes { [INFO] [stdout] 526 | | writer [INFO] [stdout] ... | [INFO] [stdout] 531 | | None => {} [INFO] [stdout] 532 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 523 ~ if let Some(ref other_attributes) = item.other_attributes { [INFO] [stdout] 524 + for (key, value) in other_attributes { [INFO] [stdout] 525 + writer [INFO] [stdout] 526 + .write(XmlEvent::start_element("torznab::attr").attr(key.as_str(), value)) [INFO] [stdout] 527 + .unwrap(); [INFO] [stdout] 528 + } [INFO] [stdout] 529 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dummy.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | / return Ok(vec![Torrent { [INFO] [stdout] 7 | | title: "totally normal torrent".to_string(), [INFO] [stdout] 8 | | description: None, [INFO] [stdout] 9 | | size: 9872349573, [INFO] [stdout] ... | [INFO] [stdout] 13 | | other_attributes: None, [INFO] [stdout] 14 | | }]); [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 6 ~ Ok(vec![Torrent { [INFO] [stdout] 7 + title: "totally normal torrent".to_string(), [INFO] [stdout] 8 + description: None, [INFO] [stdout] 9 + size: 9872349573, [INFO] [stdout] 10 + category_ids: vec![1010], [INFO] [stdout] 11 + torrent_file_url: Some("http://localhost/totally-normal.torrent".to_string()), [INFO] [stdout] 12 + magnet_uri: Some("magnet:?xt=urn:btih:blahblahblahdothechachacha".to_string()), [INFO] [stdout] 13 + other_attributes: None, [INFO] [stdout] 14 ~ }]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dummy.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | return Ok(true); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 18 - return Ok(true); [INFO] [stdout] 18 + Ok(true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dummy.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 56 | / return Config { [INFO] [stdout] 57 | | search: dummy_search_func, [INFO] [stdout] 58 | | auth: Some(dummy_auth_func), [INFO] [stdout] 59 | | caps: Caps { [INFO] [stdout] ... | [INFO] [stdout] 69 | | }, [INFO] [stdout] 70 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 56 ~ Config { [INFO] [stdout] 57 + search: dummy_search_func, [INFO] [stdout] 58 + auth: Some(dummy_auth_func), [INFO] [stdout] 59 + caps: Caps { [INFO] [stdout] 60 + server_info: Some(server_info), [INFO] [stdout] 61 + limits: Limits { [INFO] [stdout] 62 + max: 100, [INFO] [stdout] 63 + default: 20, [INFO] [stdout] 64 + }, [INFO] [stdout] 65 + searching: searching, [INFO] [stdout] 66 + categories: categories, [INFO] [stdout] 67 + genres: Some(genres), [INFO] [stdout] 68 + tags: Some(tags), [INFO] [stdout] 69 + }, [INFO] [stdout] 70 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:35:13 [INFO] [stdout] | [INFO] [stdout] 35 | return Ok(true); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 35 - return Ok(true); [INFO] [stdout] 35 + Ok(true) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:38:13 [INFO] [stdout] | [INFO] [stdout] 38 | return Err(e); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 38 - return Err(e); [INFO] [stdout] 38 + Err(e) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/notes/mod.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | pub mod notes; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/data.rs:207:5 [INFO] [stdout] | [INFO] [stdout] 176 | #[derive(Debug, Clone, PartialEq, Eq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 207 | pub search: SearchFunc, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique [INFO] [stdout] --> src/data.rs:209:5 [INFO] [stdout] | [INFO] [stdout] 176 | #[derive(Debug, Clone, PartialEq, Eq)] [INFO] [stdout] | --------- in this derive macro expansion [INFO] [stdout] ... [INFO] [stdout] 209 | pub auth: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: the address of the same function can vary between different codegen units [INFO] [stdout] = note: furthermore, different functions could have the same address after being merged together [INFO] [stdout] = note: for more information visit [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 49.96s [INFO] running `Command { std: "docker" "inspect" "8e58b650e5692c2e0c4b1bf54914fe5c5c7f49f9769ee8fb7563a92b12ce7050", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8e58b650e5692c2e0c4b1bf54914fe5c5c7f49f9769ee8fb7563a92b12ce7050", kill_on_drop: false }` [INFO] [stdout] 8e58b650e5692c2e0c4b1bf54914fe5c5c7f49f9769ee8fb7563a92b12ce7050