[INFO] fetching crate torznab-toolkit 0.2.0... [INFO] linting torznab-toolkit-0.2.0 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate torznab-toolkit 0.2.0 into /workspace/builds/worker-3-tc1/source [INFO] started tweaking crates.io crate torznab-toolkit 0.2.0 [INFO] finished tweaking crates.io crate torznab-toolkit 0.2.0 [INFO] tweaked toml for crates.io crate torznab-toolkit 0.2.0 written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate torznab-toolkit 0.2.0 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] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 183 packages to latest compatible versions [INFO] [stderr] Adding xml-rs v0.8.28 (available: v1.0.0) [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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 9a27534eaba5d0a08a5fb8f5dd5cbe68a6953558f5881d1a1f00b41f796eefba [INFO] running `Command { std: "docker" "start" "-a" "9a27534eaba5d0a08a5fb8f5dd5cbe68a6953558f5881d1a1f00b41f796eefba", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "9a27534eaba5d0a08a5fb8f5dd5cbe68a6953558f5881d1a1f00b41f796eefba", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9a27534eaba5d0a08a5fb8f5dd5cbe68a6953558f5881d1a1f00b41f796eefba", kill_on_drop: false }` [INFO] [stdout] 9a27534eaba5d0a08a5fb8f5dd5cbe68a6953558f5881d1a1f00b41f796eefba [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a459c2a005f90805ddb5ef10a4318052e3f056c85764881d20ee75dcac67d99c [INFO] running `Command { std: "docker" "start" "-a" "a459c2a005f90805ddb5ef10a4318052e3f056c85764881d20ee75dcac67d99c", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2-diagnostics v0.10.1 [INFO] [stderr] Compiling yansi v1.0.1 [INFO] [stderr] Checking smallvec v1.15.1 [INFO] [stderr] Checking errno v0.3.14 [INFO] [stderr] Compiling tokio-macros v2.6.1 [INFO] [stderr] Compiling time-macros v0.2.27 [INFO] [stderr] Compiling cookie v0.18.1 [INFO] [stderr] Compiling futures-core v0.3.32 [INFO] [stderr] Checking futures-util v0.3.32 [INFO] [stderr] Compiling ref-cast-impl v1.0.25 [INFO] [stderr] Checking signal-hook-registry v1.4.8 [INFO] [stderr] Compiling powerfmt v0.2.0 [INFO] [stderr] Checking parking_lot_core v0.9.12 [INFO] [stderr] Compiling futures-task v0.3.32 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling http v0.2.12 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Compiling pear_codegen v0.2.9 [INFO] [stderr] Compiling deranged v0.5.8 [INFO] [stderr] Checking tokio v1.50.0 [INFO] [stderr] Compiling futures-channel v0.3.32 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling socket2 v0.6.3 [INFO] [stderr] Compiling uncased v0.9.10 [INFO] [stderr] Compiling try-lock v0.2.5 [INFO] [stderr] Compiling devise_core v0.4.2 [INFO] [stderr] Compiling want v0.3.1 [INFO] [stderr] Compiling http-body v0.4.6 [INFO] [stderr] Checking tracing v0.1.44 [INFO] [stderr] Compiling time v0.3.47 [INFO] [stderr] Compiling socket2 v0.5.10 [INFO] [stderr] Compiling httparse v1.10.1 [INFO] [stderr] Checking serde_spanned v0.6.9 [INFO] [stderr] Checking toml_datetime v0.6.11 [INFO] [stderr] Checking getrandom v0.2.17 [INFO] [stderr] Compiling futures-io v0.3.32 [INFO] [stderr] Compiling httpdate v1.0.3 [INFO] [stderr] Compiling tower-service v0.3.3 [INFO] [stderr] Compiling inlinable_string v0.1.15 [INFO] [stderr] Checking toml_write v0.1.2 [INFO] [stderr] Checking winnow v0.7.15 [INFO] [stderr] Checking pear v0.2.9 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling devise_codegen v0.4.2 [INFO] [stderr] Compiling stable-pattern v0.1.0 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Compiling ref-cast v1.0.25 [INFO] [stderr] Compiling multer v3.1.0 [INFO] [stderr] Compiling figment v0.10.19 [INFO] [stderr] Compiling state v0.6.0 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Compiling devise v0.4.2 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Compiling rocket v0.5.1 [INFO] [stderr] Checking spin v0.9.8 [INFO] [stderr] Checking tempfile v3.27.0 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking toml_edit v0.22.27 [INFO] [stderr] Checking ubyte v0.10.4 [INFO] [stderr] Checking async-stream v0.3.6 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling actix-macros v0.2.4 [INFO] [stderr] Checking atomic v0.5.3 [INFO] [stderr] Checking binascii v0.1.4 [INFO] [stderr] Checking xml-rs v0.8.28 [INFO] [stderr] Compiling hyper v0.14.32 [INFO] [stderr] Checking tokio-util v0.7.18 [INFO] [stderr] Checking tokio-stream v0.1.18 [INFO] [stderr] Checking actix-rt v2.11.0 [INFO] [stderr] Checking h2 v0.3.27 [INFO] [stderr] Checking toml v0.8.23 [INFO] [stderr] Compiling rocket_http v0.5.1 [INFO] [stderr] Compiling rocket_codegen v0.5.1 [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:78:13 [INFO] [stdout] | [INFO] [stdout] 78 | 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:80:13 [INFO] [stdout] | [INFO] [stdout] 80 | 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:82:13 [INFO] [stdout] | [INFO] [stdout] 82 | 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:78:13 [INFO] [stdout] | [INFO] [stdout] 78 | 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:80:13 [INFO] [stdout] | [INFO] [stdout] 80 | 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:82:13 [INFO] [stdout] | [INFO] [stdout] 82 | 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:211:1 [INFO] [stdout] | [INFO] [stdout] 211 | / pub(crate) async fn search( [INFO] [stdout] 212 | | conf: &State, [INFO] [stdout] 213 | | form: SearchForm, [INFO] [stdout] 214 | | ) -> 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:13:1 [INFO] [stdout] | [INFO] [stdout] 13 | 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:245:1 [INFO] [stdout] | [INFO] [stdout] 245 | / pub(crate) async fn tv_search( [INFO] [stdout] 246 | | conf: &State, [INFO] [stdout] 247 | | form: SearchForm, [INFO] [stdout] 248 | | ) -> 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:13:1 [INFO] [stdout] | [INFO] [stdout] 13 | 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:279:1 [INFO] [stdout] | [INFO] [stdout] 279 | / pub(crate) async fn movie_search( [INFO] [stdout] 280 | | conf: &State, [INFO] [stdout] 281 | | form: SearchForm, [INFO] [stdout] 282 | | ) -> 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:13:1 [INFO] [stdout] | [INFO] [stdout] 13 | 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:313:1 [INFO] [stdout] | [INFO] [stdout] 313 | / pub(crate) async fn music_search( [INFO] [stdout] 314 | | conf: &State, [INFO] [stdout] 315 | | form: SearchForm, [INFO] [stdout] 316 | | ) -> 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:13:1 [INFO] [stdout] | [INFO] [stdout] 13 | 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:347:1 [INFO] [stdout] | [INFO] [stdout] 347 | / pub(crate) async fn book_search( [INFO] [stdout] 348 | | conf: &State, [INFO] [stdout] 349 | | form: SearchForm, [INFO] [stdout] 350 | | ) -> 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:13:1 [INFO] [stdout] | [INFO] [stdout] 13 | struct SearchForm { [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: type `api::SearchForm` is more private than the item `api::search` [INFO] [stdout] --> src/api.rs:211:1 [INFO] [stdout] | [INFO] [stdout] 211 | / pub(crate) async fn search( [INFO] [stdout] 212 | | conf: &State, [INFO] [stdout] 213 | | form: SearchForm, [INFO] [stdout] 214 | | ) -> 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:13:1 [INFO] [stdout] | [INFO] [stdout] 13 | 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:245:1 [INFO] [stdout] | [INFO] [stdout] 245 | / pub(crate) async fn tv_search( [INFO] [stdout] 246 | | conf: &State, [INFO] [stdout] 247 | | form: SearchForm, [INFO] [stdout] 248 | | ) -> 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:13:1 [INFO] [stdout] | [INFO] [stdout] 13 | 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:279:1 [INFO] [stdout] | [INFO] [stdout] 279 | / pub(crate) async fn movie_search( [INFO] [stdout] 280 | | conf: &State, [INFO] [stdout] 281 | | form: SearchForm, [INFO] [stdout] 282 | | ) -> 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:13:1 [INFO] [stdout] | [INFO] [stdout] 13 | 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:313:1 [INFO] [stdout] | [INFO] [stdout] 313 | / pub(crate) async fn music_search( [INFO] [stdout] 314 | | conf: &State, [INFO] [stdout] 315 | | form: SearchForm, [INFO] [stdout] 316 | | ) -> 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:13:1 [INFO] [stdout] | [INFO] [stdout] 13 | 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:347:1 [INFO] [stdout] | [INFO] [stdout] 347 | / pub(crate) async fn book_search( [INFO] [stdout] 348 | | conf: &State, [INFO] [stdout] 349 | | form: SearchForm, [INFO] [stdout] 350 | | ) -> 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:13:1 [INFO] [stdout] | [INFO] [stdout] 13 | struct SearchForm { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/api.rs:37:12 [INFO] [stdout] | [INFO] [stdout] 37 | if !self.cat.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `self.cat.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: this boolean expression can be simplified [INFO] [stdout] --> src/api.rs:50:12 [INFO] [stdout] | [INFO] [stdout] 50 | if !self.attrs.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `self.attrs.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: this boolean expression can be simplified [INFO] [stdout] --> src/api.rs:62:12 [INFO] [stdout] | [INFO] [stdout] 62 | 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] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `self.cat` after checking its variant with `is_none` [INFO] [stdout] --> src/api.rs:40:17 [INFO] [stdout] | [INFO] [stdout] 37 | if !self.cat.is_none() { [INFO] [stdout] | ------------------ the check is happening here [INFO] [stdout] ... [INFO] [stdout] 40 | / self.cat [INFO] [stdout] 41 | | .as_ref() [INFO] [stdout] 42 | | .unwrap() [INFO] [stdout] | |_____________________________^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `self.attrs` after checking its variant with `is_none` [INFO] [stdout] --> src/api.rs:52:17 [INFO] [stdout] | [INFO] [stdout] 50 | if !self.attrs.is_none() { [INFO] [stdout] | -------------------- the check is happening here [INFO] [stdout] 51 | extended_attribute_names = Some( [INFO] [stdout] 52 | / self.attrs [INFO] [stdout] 53 | | .as_ref() [INFO] [stdout] 54 | | .unwrap() [INFO] [stdout] | |_____________________________^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/api.rs:74:9 [INFO] [stdout] | [INFO] [stdout] 74 | / return SearchParameters { [INFO] [stdout] 75 | | search_type: search_type.to_string(), [INFO] [stdout] 76 | | q: self.q.clone(), [INFO] [stdout] 77 | | apikey: self.apikey.clone(), [INFO] [stdout] ... | [INFO] [stdout] 82 | | limit: limit, [INFO] [stdout] 83 | | }; [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] 74 ~ SearchParameters { [INFO] [stdout] 75 + search_type: search_type.to_string(), [INFO] [stdout] 76 + q: self.q.clone(), [INFO] [stdout] 77 + apikey: self.apikey.clone(), [INFO] [stdout] 78 + categories: categories, [INFO] [stdout] 79 + attributes: extended_attribute_names, [INFO] [stdout] 80 + extended_attrs: extended_attrs, [INFO] [stdout] 81 + offset: self.offset, [INFO] [stdout] 82 + limit: limit, [INFO] [stdout] 83 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/api.rs:206:5 [INFO] [stdout] | [INFO] [stdout] 206 | 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] 206 - return status::Custom(Status::Ok, RawXml(result)); [INFO] [stdout] 206 + 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:99:5 [INFO] [stdout] | [INFO] [stdout] 99 | / match &conf.caps.server_info { [INFO] [stdout] 100 | | Some(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] ... | [INFO] [stdout] 107 | | None => {} [INFO] [stdout] 108 | | } [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] 99 ~ if let Some(server_info) = &conf.caps.server_info { [INFO] [stdout] 100 + // needs to be a vec since if i just `.as_str()` them, they don't live long enough [INFO] [stdout] 101 + let server_info_vec: Vec<(&String, &String)> = server_info.iter().collect(); [INFO] [stdout] 102 + for (key, value) in server_info_vec { [INFO] [stdout] 103 + element = element.attr(key.as_str(), value); [INFO] [stdout] 104 + } [INFO] [stdout] 105 + } [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:163:5 [INFO] [stdout] | [INFO] [stdout] 163 | / match &conf.caps.genres { [INFO] [stdout] 164 | | Some(genres) => { [INFO] [stdout] 165 | | writer.write(XmlEvent::start_element("genres")).unwrap(); [INFO] [stdout] ... | [INFO] [stdout] 180 | | None => {} [INFO] [stdout] 181 | | } [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] 163 ~ if let Some(genres) = &conf.caps.genres { [INFO] [stdout] 164 + writer.write(XmlEvent::start_element("genres")).unwrap(); [INFO] [stdout] 165 + [INFO] [stdout] 166 + for genre in genres { [INFO] [stdout] 167 + writer [INFO] [stdout] 168 + .write( [INFO] [stdout] 169 + XmlEvent::start_element("genre") [INFO] [stdout] 170 + .attr("id", genre.id.to_string().as_str()) [INFO] [stdout] 171 + .attr("categoryid", genre.category_id.to_string().as_str()) [INFO] [stdout] 172 + .attr("name", genre.name.as_str()), [INFO] [stdout] 173 + ) [INFO] [stdout] 174 + .unwrap(); [INFO] [stdout] 175 + writer.write(XmlEvent::end_element()).unwrap(); // close `genre` element [INFO] [stdout] 176 + } [INFO] [stdout] 177 + writer.write(XmlEvent::end_element()).unwrap(); // close `genres` element [INFO] [stdout] 178 + } [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:183:5 [INFO] [stdout] | [INFO] [stdout] 183 | / match &conf.caps.tags { [INFO] [stdout] 184 | | Some(tags) => { [INFO] [stdout] 185 | | writer.write(XmlEvent::start_element("tags")).unwrap(); [INFO] [stdout] ... | [INFO] [stdout] 198 | | None => {} [INFO] [stdout] 199 | | } [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] 183 ~ if let Some(tags) = &conf.caps.tags { [INFO] [stdout] 184 + writer.write(XmlEvent::start_element("tags")).unwrap(); [INFO] [stdout] 185 + [INFO] [stdout] 186 + for tag in tags { [INFO] [stdout] 187 + writer [INFO] [stdout] 188 + .write( [INFO] [stdout] 189 + XmlEvent::start_element("tag") [INFO] [stdout] 190 + .attr("name", tag.name.as_str()) [INFO] [stdout] 191 + .attr("description", tag.description.as_str()), [INFO] [stdout] 192 + ) [INFO] [stdout] 193 + .unwrap(); [INFO] [stdout] 194 + } [INFO] [stdout] 195 + writer.write(XmlEvent::end_element()).unwrap(); // close `tags` element [INFO] [stdout] 196 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/api.rs:37:12 [INFO] [stdout] | [INFO] [stdout] 37 | if !self.cat.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `self.cat.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: this boolean expression can be simplified [INFO] [stdout] --> src/api.rs:50:12 [INFO] [stdout] | [INFO] [stdout] 50 | if !self.attrs.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `self.attrs.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: this boolean expression can be simplified [INFO] [stdout] --> src/api.rs:62:12 [INFO] [stdout] | [INFO] [stdout] 62 | 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] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `self.cat` after checking its variant with `is_none` [INFO] [stdout] --> src/api.rs:40:17 [INFO] [stdout] | [INFO] [stdout] 37 | if !self.cat.is_none() { [INFO] [stdout] | ------------------ the check is happening here [INFO] [stdout] ... [INFO] [stdout] 40 | / self.cat [INFO] [stdout] 41 | | .as_ref() [INFO] [stdout] 42 | | .unwrap() [INFO] [stdout] | |_____________________________^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `self.attrs` after checking its variant with `is_none` [INFO] [stdout] --> src/api.rs:52:17 [INFO] [stdout] | [INFO] [stdout] 50 | if !self.attrs.is_none() { [INFO] [stdout] | -------------------- the check is happening here [INFO] [stdout] 51 | extended_attribute_names = Some( [INFO] [stdout] 52 | / self.attrs [INFO] [stdout] 53 | | .as_ref() [INFO] [stdout] 54 | | .unwrap() [INFO] [stdout] | |_____________________________^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/api.rs:74:9 [INFO] [stdout] | [INFO] [stdout] 74 | / return SearchParameters { [INFO] [stdout] 75 | | search_type: search_type.to_string(), [INFO] [stdout] 76 | | q: self.q.clone(), [INFO] [stdout] 77 | | apikey: self.apikey.clone(), [INFO] [stdout] ... | [INFO] [stdout] 82 | | limit: limit, [INFO] [stdout] 83 | | }; [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] 74 ~ SearchParameters { [INFO] [stdout] 75 + search_type: search_type.to_string(), [INFO] [stdout] 76 + q: self.q.clone(), [INFO] [stdout] 77 + apikey: self.apikey.clone(), [INFO] [stdout] 78 + categories: categories, [INFO] [stdout] 79 + attributes: extended_attribute_names, [INFO] [stdout] 80 + extended_attrs: extended_attrs, [INFO] [stdout] 81 + offset: self.offset, [INFO] [stdout] 82 + limit: limit, [INFO] [stdout] 83 ~ } [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:219:5 [INFO] [stdout] | [INFO] [stdout] 219 | / match conf.auth { [INFO] [stdout] 220 | | Some(auth) => { [INFO] [stdout] 221 | | match parameters.apikey.clone() { [INFO] [stdout] 222 | | Some(apikey) => { [INFO] [stdout] ... | [INFO] [stdout] 233 | | None => {} [INFO] [stdout] 234 | | } [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] 219 ~ if let Some(auth) = conf.auth { [INFO] [stdout] 220 + match parameters.apikey.clone() { [INFO] [stdout] 221 + Some(apikey) => { [INFO] [stdout] 222 + if !auth(apikey).unwrap() { [INFO] [stdout] 223 + unauthorized = true; [INFO] [stdout] 224 + } [INFO] [stdout] 225 + } [INFO] [stdout] 226 + None => { [INFO] [stdout] 227 + unauthorized = true; [INFO] [stdout] 228 + } [INFO] [stdout] 229 + } [INFO] [stdout] 230 + // that unwrap_or_else is to return "" if the apikey isn't specified [INFO] [stdout] 231 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/api.rs:206:5 [INFO] [stdout] | [INFO] [stdout] 206 | 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] 206 - return status::Custom(Status::Ok, RawXml(result)); [INFO] [stdout] 206 + 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:99:5 [INFO] [stdout] | [INFO] [stdout] 99 | / match &conf.caps.server_info { [INFO] [stdout] 100 | | Some(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] ... | [INFO] [stdout] 107 | | None => {} [INFO] [stdout] 108 | | } [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] 99 ~ if let Some(server_info) = &conf.caps.server_info { [INFO] [stdout] 100 + // needs to be a vec since if i just `.as_str()` them, they don't live long enough [INFO] [stdout] 101 + let server_info_vec: Vec<(&String, &String)> = server_info.iter().collect(); [INFO] [stdout] 102 + for (key, value) in server_info_vec { [INFO] [stdout] 103 + element = element.attr(key.as_str(), value); [INFO] [stdout] 104 + } [INFO] [stdout] 105 + } [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:163:5 [INFO] [stdout] | [INFO] [stdout] 163 | / match &conf.caps.genres { [INFO] [stdout] 164 | | Some(genres) => { [INFO] [stdout] 165 | | writer.write(XmlEvent::start_element("genres")).unwrap(); [INFO] [stdout] ... | [INFO] [stdout] 180 | | None => {} [INFO] [stdout] 181 | | } [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] 163 ~ if let Some(genres) = &conf.caps.genres { [INFO] [stdout] 164 + writer.write(XmlEvent::start_element("genres")).unwrap(); [INFO] [stdout] 165 + [INFO] [stdout] 166 + for genre in genres { [INFO] [stdout] 167 + writer [INFO] [stdout] 168 + .write( [INFO] [stdout] 169 + XmlEvent::start_element("genre") [INFO] [stdout] 170 + .attr("id", genre.id.to_string().as_str()) [INFO] [stdout] 171 + .attr("categoryid", genre.category_id.to_string().as_str()) [INFO] [stdout] 172 + .attr("name", genre.name.as_str()), [INFO] [stdout] 173 + ) [INFO] [stdout] 174 + .unwrap(); [INFO] [stdout] 175 + writer.write(XmlEvent::end_element()).unwrap(); // close `genre` element [INFO] [stdout] 176 + } [INFO] [stdout] 177 + writer.write(XmlEvent::end_element()).unwrap(); // close `genres` element [INFO] [stdout] 178 + } [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:183:5 [INFO] [stdout] | [INFO] [stdout] 183 | / match &conf.caps.tags { [INFO] [stdout] 184 | | Some(tags) => { [INFO] [stdout] 185 | | writer.write(XmlEvent::start_element("tags")).unwrap(); [INFO] [stdout] ... | [INFO] [stdout] 198 | | None => {} [INFO] [stdout] 199 | | } [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] 183 ~ if let Some(tags) = &conf.caps.tags { [INFO] [stdout] 184 + writer.write(XmlEvent::start_element("tags")).unwrap(); [INFO] [stdout] 185 + [INFO] [stdout] 186 + for tag in tags { [INFO] [stdout] 187 + writer [INFO] [stdout] 188 + .write( [INFO] [stdout] 189 + XmlEvent::start_element("tag") [INFO] [stdout] 190 + .attr("name", tag.name.as_str()) [INFO] [stdout] 191 + .attr("description", tag.description.as_str()), [INFO] [stdout] 192 + ) [INFO] [stdout] 193 + .unwrap(); [INFO] [stdout] 194 + } [INFO] [stdout] 195 + writer.write(XmlEvent::end_element()).unwrap(); // close `tags` element [INFO] [stdout] 196 + } [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:253:5 [INFO] [stdout] | [INFO] [stdout] 253 | / match conf.auth { [INFO] [stdout] 254 | | Some(auth) => { [INFO] [stdout] 255 | | match parameters.clone().apikey { [INFO] [stdout] 256 | | Some(apikey) => { [INFO] [stdout] ... | [INFO] [stdout] 267 | | None => {} [INFO] [stdout] 268 | | } [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] 253 ~ if let Some(auth) = conf.auth { [INFO] [stdout] 254 + match parameters.clone().apikey { [INFO] [stdout] 255 + Some(apikey) => { [INFO] [stdout] 256 + if !auth(apikey).unwrap() { [INFO] [stdout] 257 + unauthorized = true; [INFO] [stdout] 258 + } [INFO] [stdout] 259 + } [INFO] [stdout] 260 + None => { [INFO] [stdout] 261 + unauthorized = true; [INFO] [stdout] 262 + } [INFO] [stdout] 263 + } [INFO] [stdout] 264 + // that unwrap_or_else is to return "" if the apikey isn't specified [INFO] [stdout] 265 + } [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:219:5 [INFO] [stdout] | [INFO] [stdout] 219 | / match conf.auth { [INFO] [stdout] 220 | | Some(auth) => { [INFO] [stdout] 221 | | match parameters.apikey.clone() { [INFO] [stdout] 222 | | Some(apikey) => { [INFO] [stdout] ... | [INFO] [stdout] 233 | | None => {} [INFO] [stdout] 234 | | } [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] 219 ~ if let Some(auth) = conf.auth { [INFO] [stdout] 220 + match parameters.apikey.clone() { [INFO] [stdout] 221 + Some(apikey) => { [INFO] [stdout] 222 + if !auth(apikey).unwrap() { [INFO] [stdout] 223 + unauthorized = true; [INFO] [stdout] 224 + } [INFO] [stdout] 225 + } [INFO] [stdout] 226 + None => { [INFO] [stdout] 227 + unauthorized = true; [INFO] [stdout] 228 + } [INFO] [stdout] 229 + } [INFO] [stdout] 230 + // that unwrap_or_else is to return "" if the apikey isn't specified [INFO] [stdout] 231 + } [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:287:5 [INFO] [stdout] | [INFO] [stdout] 287 | / match conf.auth { [INFO] [stdout] 288 | | Some(auth) => { [INFO] [stdout] 289 | | match parameters.clone().apikey { [INFO] [stdout] 290 | | Some(apikey) => { [INFO] [stdout] ... | [INFO] [stdout] 301 | | None => {} [INFO] [stdout] 302 | | } [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] 287 ~ if let Some(auth) = conf.auth { [INFO] [stdout] 288 + match parameters.clone().apikey { [INFO] [stdout] 289 + Some(apikey) => { [INFO] [stdout] 290 + if !auth(apikey).unwrap() { [INFO] [stdout] 291 + unauthorized = true; [INFO] [stdout] 292 + } [INFO] [stdout] 293 + } [INFO] [stdout] 294 + None => { [INFO] [stdout] 295 + unauthorized = true; [INFO] [stdout] 296 + } [INFO] [stdout] 297 + } [INFO] [stdout] 298 + // that unwrap_or_else is to return "" if the apikey isn't specified [INFO] [stdout] 299 + } [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:253:5 [INFO] [stdout] | [INFO] [stdout] 253 | / match conf.auth { [INFO] [stdout] 254 | | Some(auth) => { [INFO] [stdout] 255 | | match parameters.clone().apikey { [INFO] [stdout] 256 | | Some(apikey) => { [INFO] [stdout] ... | [INFO] [stdout] 267 | | None => {} [INFO] [stdout] 268 | | } [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] 253 ~ if let Some(auth) = conf.auth { [INFO] [stdout] 254 + match parameters.clone().apikey { [INFO] [stdout] 255 + Some(apikey) => { [INFO] [stdout] 256 + if !auth(apikey).unwrap() { [INFO] [stdout] 257 + unauthorized = true; [INFO] [stdout] 258 + } [INFO] [stdout] 259 + } [INFO] [stdout] 260 + None => { [INFO] [stdout] 261 + unauthorized = true; [INFO] [stdout] 262 + } [INFO] [stdout] 263 + } [INFO] [stdout] 264 + // that unwrap_or_else is to return "" if the apikey isn't specified [INFO] [stdout] 265 + } [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:321:5 [INFO] [stdout] | [INFO] [stdout] 321 | / match conf.auth { [INFO] [stdout] 322 | | Some(auth) => { [INFO] [stdout] 323 | | match parameters.clone().apikey { [INFO] [stdout] 324 | | Some(apikey) => { [INFO] [stdout] ... | [INFO] [stdout] 335 | | None => {} [INFO] [stdout] 336 | | } [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] 321 ~ if let Some(auth) = conf.auth { [INFO] [stdout] 322 + match parameters.clone().apikey { [INFO] [stdout] 323 + Some(apikey) => { [INFO] [stdout] 324 + if !auth(apikey).unwrap() { [INFO] [stdout] 325 + unauthorized = true; [INFO] [stdout] 326 + } [INFO] [stdout] 327 + } [INFO] [stdout] 328 + None => { [INFO] [stdout] 329 + unauthorized = true; [INFO] [stdout] 330 + } [INFO] [stdout] 331 + } [INFO] [stdout] 332 + // that unwrap_or_else is to return "" if the apikey isn't specified [INFO] [stdout] 333 + } [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:287:5 [INFO] [stdout] | [INFO] [stdout] 287 | / match conf.auth { [INFO] [stdout] 288 | | Some(auth) => { [INFO] [stdout] 289 | | match parameters.clone().apikey { [INFO] [stdout] 290 | | Some(apikey) => { [INFO] [stdout] ... | [INFO] [stdout] 301 | | None => {} [INFO] [stdout] 302 | | } [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] 287 ~ if let Some(auth) = conf.auth { [INFO] [stdout] 288 + match parameters.clone().apikey { [INFO] [stdout] 289 + Some(apikey) => { [INFO] [stdout] 290 + if !auth(apikey).unwrap() { [INFO] [stdout] 291 + unauthorized = true; [INFO] [stdout] 292 + } [INFO] [stdout] 293 + } [INFO] [stdout] 294 + None => { [INFO] [stdout] 295 + unauthorized = true; [INFO] [stdout] 296 + } [INFO] [stdout] 297 + } [INFO] [stdout] 298 + // that unwrap_or_else is to return "" if the apikey isn't specified [INFO] [stdout] 299 + } [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:355:5 [INFO] [stdout] | [INFO] [stdout] 355 | / match conf.auth { [INFO] [stdout] 356 | | Some(auth) => { [INFO] [stdout] 357 | | match parameters.clone().apikey { [INFO] [stdout] 358 | | Some(apikey) => { [INFO] [stdout] ... | [INFO] [stdout] 369 | | None => {} [INFO] [stdout] 370 | | } [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] 355 ~ if let Some(auth) = conf.auth { [INFO] [stdout] 356 + match parameters.clone().apikey { [INFO] [stdout] 357 + Some(apikey) => { [INFO] [stdout] 358 + if !auth(apikey).unwrap() { [INFO] [stdout] 359 + unauthorized = true; [INFO] [stdout] 360 + } [INFO] [stdout] 361 + } [INFO] [stdout] 362 + None => { [INFO] [stdout] 363 + unauthorized = true; [INFO] [stdout] 364 + } [INFO] [stdout] 365 + } [INFO] [stdout] 366 + // that unwrap_or_else is to return "" if the apikey isn't specified [INFO] [stdout] 367 + } [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:321:5 [INFO] [stdout] | [INFO] [stdout] 321 | / match conf.auth { [INFO] [stdout] 322 | | Some(auth) => { [INFO] [stdout] 323 | | match parameters.clone().apikey { [INFO] [stdout] 324 | | Some(apikey) => { [INFO] [stdout] ... | [INFO] [stdout] 335 | | None => {} [INFO] [stdout] 336 | | } [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] 321 ~ if let Some(auth) = conf.auth { [INFO] [stdout] 322 + match parameters.clone().apikey { [INFO] [stdout] 323 + Some(apikey) => { [INFO] [stdout] 324 + if !auth(apikey).unwrap() { [INFO] [stdout] 325 + unauthorized = true; [INFO] [stdout] 326 + } [INFO] [stdout] 327 + } [INFO] [stdout] 328 + None => { [INFO] [stdout] 329 + unauthorized = true; [INFO] [stdout] 330 + } [INFO] [stdout] 331 + } [INFO] [stdout] 332 + // that unwrap_or_else is to return "" if the apikey isn't specified [INFO] [stdout] 333 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/api.rs:447:12 [INFO] [stdout] | [INFO] [stdout] 447 | 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:542:5 [INFO] [stdout] | [INFO] [stdout] 542 | 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] 542 - return status::Custom(Status::Ok, RawXml(result)); [INFO] [stdout] 542 + 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:407:13 [INFO] [stdout] | [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] ... | [INFO] [stdout] 415 | | } [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] 406 ~ Some(server_info) [INFO] [stdout] 407 ~ if server_info.contains_key("title") => { [INFO] [stdout] 408 | match server_info.get("title") { [INFO] [stdout] ... [INFO] [stdout] 414 | } [INFO] [stdout] 415 ~ } [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:405:5 [INFO] [stdout] | [INFO] [stdout] 405 | / match &conf.caps.server_info { [INFO] [stdout] 406 | | Some(server_info) => { [INFO] [stdout] 407 | | if server_info.contains_key("title") { [INFO] [stdout] 408 | | match server_info.get("title") { [INFO] [stdout] ... | [INFO] [stdout] 417 | | None => {} [INFO] [stdout] 418 | | } [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] 405 ~ if let Some(server_info) = &conf.caps.server_info { [INFO] [stdout] 406 + if server_info.contains_key("title") { [INFO] [stdout] 407 + match server_info.get("title") { [INFO] [stdout] 408 + Some(title) => { [INFO] [stdout] 409 + writer.write(XmlEvent::characters(title)).unwrap(); [INFO] [stdout] 410 + title_provided = true; [INFO] [stdout] 411 + } [INFO] [stdout] 412 + None => {} [INFO] [stdout] 413 + } [INFO] [stdout] 414 + } [INFO] [stdout] 415 + } [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:408:17 [INFO] [stdout] | [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] | |_________________^ [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] 408 ~ if let Some(title) = server_info.get("title") { [INFO] [stdout] 409 + writer.write(XmlEvent::characters(title)).unwrap(); [INFO] [stdout] 410 + title_provided = true; [INFO] [stdout] 411 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/api.rs:431:12 [INFO] [stdout] | [INFO] [stdout] 431 | 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:431:38 [INFO] [stdout] | [INFO] [stdout] 431 | 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:355:5 [INFO] [stdout] | [INFO] [stdout] 355 | / match conf.auth { [INFO] [stdout] 356 | | Some(auth) => { [INFO] [stdout] 357 | | match parameters.clone().apikey { [INFO] [stdout] 358 | | Some(apikey) => { [INFO] [stdout] ... | [INFO] [stdout] 369 | | None => {} [INFO] [stdout] 370 | | } [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] 355 ~ if let Some(auth) = conf.auth { [INFO] [stdout] 356 + match parameters.clone().apikey { [INFO] [stdout] 357 + Some(apikey) => { [INFO] [stdout] 358 + if !auth(apikey).unwrap() { [INFO] [stdout] 359 + unauthorized = true; [INFO] [stdout] 360 + } [INFO] [stdout] 361 + } [INFO] [stdout] 362 + None => { [INFO] [stdout] 363 + unauthorized = true; [INFO] [stdout] 364 + } [INFO] [stdout] 365 + } [INFO] [stdout] 366 + // that unwrap_or_else is to return "" if the apikey isn't specified [INFO] [stdout] 367 + } [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:479:9 [INFO] [stdout] | [INFO] [stdout] 479 | / match item.other_attributes { [INFO] [stdout] 480 | | Some(ref attributes) => match attributes.get("link") { [INFO] [stdout] 481 | | Some(tmp) => { [INFO] [stdout] 482 | | writer.write(XmlEvent::characters(tmp)).unwrap(); [INFO] [stdout] ... | [INFO] [stdout] 487 | | None => {} [INFO] [stdout] 488 | | } [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] 479 ~ if let Some(ref attributes) = item.other_attributes { match attributes.get("link") { [INFO] [stdout] 480 + Some(tmp) => { [INFO] [stdout] 481 + writer.write(XmlEvent::characters(tmp)).unwrap(); [INFO] [stdout] 482 + link_filled = true; [INFO] [stdout] 483 + } [INFO] [stdout] 484 + None => {} [INFO] [stdout] 485 + } } [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:480:37 [INFO] [stdout] | [INFO] [stdout] 480 | Some(ref attributes) => match attributes.get("link") { [INFO] [stdout] | _____________________________________^ [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] = 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 ~ Some(ref attributes) => if let Some(tmp) = attributes.get("link") { [INFO] [stdout] 481 + writer.write(XmlEvent::characters(tmp)).unwrap(); [INFO] [stdout] 482 + link_filled = true; [INFO] [stdout] 483 ~ }, [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:493:55 [INFO] [stdout] | [INFO] [stdout] 493 | 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:498:46 [INFO] [stdout] | [INFO] [stdout] 498 | ... .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:522:9 [INFO] [stdout] | [INFO] [stdout] 522 | / match item.other_attributes { [INFO] [stdout] 523 | | Some(ref other_attributes) => { [INFO] [stdout] 524 | | for (key, value) in other_attributes { [INFO] [stdout] 525 | | writer [INFO] [stdout] ... | [INFO] [stdout] 530 | | None => {} [INFO] [stdout] 531 | | } [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] 522 ~ if let Some(ref other_attributes) = item.other_attributes { [INFO] [stdout] 523 + for (key, value) in other_attributes { [INFO] [stdout] 524 + writer [INFO] [stdout] 525 + .write(XmlEvent::start_element("torznab::attr").attr(key.as_str(), value)) [INFO] [stdout] 526 + .unwrap(); [INFO] [stdout] 527 + } [INFO] [stdout] 528 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/api.rs:447:12 [INFO] [stdout] | [INFO] [stdout] 447 | 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:542:5 [INFO] [stdout] | [INFO] [stdout] 542 | 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] 542 - return status::Custom(Status::Ok, RawXml(result)); [INFO] [stdout] 542 + 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:407:13 [INFO] [stdout] | [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] ... | [INFO] [stdout] 415 | | } [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] 406 ~ Some(server_info) [INFO] [stdout] 407 ~ if server_info.contains_key("title") => { [INFO] [stdout] 408 | match server_info.get("title") { [INFO] [stdout] ... [INFO] [stdout] 414 | } [INFO] [stdout] 415 ~ } [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:405:5 [INFO] [stdout] | [INFO] [stdout] 405 | / match &conf.caps.server_info { [INFO] [stdout] 406 | | Some(server_info) => { [INFO] [stdout] 407 | | if server_info.contains_key("title") { [INFO] [stdout] 408 | | match server_info.get("title") { [INFO] [stdout] ... | [INFO] [stdout] 417 | | None => {} [INFO] [stdout] 418 | | } [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] 405 ~ if let Some(server_info) = &conf.caps.server_info { [INFO] [stdout] 406 + if server_info.contains_key("title") { [INFO] [stdout] 407 + match server_info.get("title") { [INFO] [stdout] 408 + Some(title) => { [INFO] [stdout] 409 + writer.write(XmlEvent::characters(title)).unwrap(); [INFO] [stdout] 410 + title_provided = true; [INFO] [stdout] 411 + } [INFO] [stdout] 412 + None => {} [INFO] [stdout] 413 + } [INFO] [stdout] 414 + } [INFO] [stdout] 415 + } [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:408:17 [INFO] [stdout] | [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] | |_________________^ [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] 408 ~ if let Some(title) = server_info.get("title") { [INFO] [stdout] 409 + writer.write(XmlEvent::characters(title)).unwrap(); [INFO] [stdout] 410 + title_provided = true; [INFO] [stdout] 411 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/api.rs:431:12 [INFO] [stdout] | [INFO] [stdout] 431 | 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:431:38 [INFO] [stdout] | [INFO] [stdout] 431 | 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:479:9 [INFO] [stdout] | [INFO] [stdout] 479 | / match item.other_attributes { [INFO] [stdout] 480 | | Some(ref attributes) => match attributes.get("link") { [INFO] [stdout] 481 | | Some(tmp) => { [INFO] [stdout] 482 | | writer.write(XmlEvent::characters(tmp)).unwrap(); [INFO] [stdout] ... | [INFO] [stdout] 487 | | None => {} [INFO] [stdout] 488 | | } [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] 479 ~ if let Some(ref attributes) = item.other_attributes { match attributes.get("link") { [INFO] [stdout] 480 + Some(tmp) => { [INFO] [stdout] 481 + writer.write(XmlEvent::characters(tmp)).unwrap(); [INFO] [stdout] 482 + link_filled = true; [INFO] [stdout] 483 + } [INFO] [stdout] 484 + None => {} [INFO] [stdout] 485 + } } [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:480:37 [INFO] [stdout] | [INFO] [stdout] 480 | Some(ref attributes) => match attributes.get("link") { [INFO] [stdout] | _____________________________________^ [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] = 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 ~ Some(ref attributes) => if let Some(tmp) = attributes.get("link") { [INFO] [stdout] 481 + writer.write(XmlEvent::characters(tmp)).unwrap(); [INFO] [stdout] 482 + link_filled = true; [INFO] [stdout] 483 ~ }, [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:493:55 [INFO] [stdout] | [INFO] [stdout] 493 | 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:498:46 [INFO] [stdout] | [INFO] [stdout] 498 | ... .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:522:9 [INFO] [stdout] | [INFO] [stdout] 522 | / match item.other_attributes { [INFO] [stdout] 523 | | Some(ref other_attributes) => { [INFO] [stdout] 524 | | for (key, value) in other_attributes { [INFO] [stdout] 525 | | writer [INFO] [stdout] ... | [INFO] [stdout] 530 | | None => {} [INFO] [stdout] 531 | | } [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] 522 ~ if let Some(ref other_attributes) = item.other_attributes { [INFO] [stdout] 523 + for (key, value) in other_attributes { [INFO] [stdout] 524 + writer [INFO] [stdout] 525 + .write(XmlEvent::start_element("torznab::attr").attr(key.as_str(), value)) [INFO] [stdout] 526 + .unwrap(); [INFO] [stdout] 527 + } [INFO] [stdout] 528 + } [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] [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 59.15s [INFO] running `Command { std: "docker" "inspect" "a459c2a005f90805ddb5ef10a4318052e3f056c85764881d20ee75dcac67d99c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a459c2a005f90805ddb5ef10a4318052e3f056c85764881d20ee75dcac67d99c", kill_on_drop: false }` [INFO] [stdout] a459c2a005f90805ddb5ef10a4318052e3f056c85764881d20ee75dcac67d99c