[INFO] cloning repository https://github.com/Ty-Manning/Macrobin [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Ty-Manning/Macrobin" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTy-Manning%2FMacrobin", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTy-Manning%2FMacrobin'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 1a0534e4b0212a7151de02f8613c093aa8c1ae54 [INFO] linting Ty-Manning/Macrobin against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTy-Manning%2FMacrobin" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-7-tc1/source/.cargo/config.toml [INFO] started tweaking git repo https://github.com/Ty-Manning/Macrobin [INFO] finished tweaking git repo https://github.com/Ty-Manning/Macrobin [INFO] tweaked toml for git repo https://github.com/Ty-Manning/Macrobin written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Ty-Manning/Macrobin 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/Ty-Manning/Macrobin 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] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded rust-embed-utils v8.5.0 [INFO] [stderr] Downloaded rust-embed-impl v8.5.0 [INFO] [stderr] Downloaded magic-crypt v3.1.13 [INFO] [stderr] Downloaded qrcode-generator v4.1.9 [INFO] [stderr] Downloaded linkify v0.10.0 [INFO] [stderr] Downloaded rustls-rustcrypto v0.0.2-alpha [INFO] [stderr] Downloaded actix-multipart-derive v0.7.0 [INFO] [stderr] Downloaded askama_derive v0.10.5 [INFO] [stderr] Downloaded actix-web-httpauth v0.8.2 [INFO] [stderr] Downloaded actix-multipart v0.7.2 [INFO] [stderr] Downloaded actix-files v0.6.6 [INFO] [stderr] Downloaded askama_shared v0.11.2 [INFO] [stderr] Downloaded clap_derive v3.2.25 [INFO] [stderr] Downloaded harsh v0.2.2 [INFO] [stderr] Downloaded askama v0.10.5 [INFO] [stderr] Downloaded serde_plain v1.0.2 [INFO] [stderr] Downloaded askama-filters v0.1.3 [INFO] [stderr] Downloaded bitvec v0.19.6 [INFO] [stderr] Downloaded des v0.7.0 [INFO] [stderr] Downloaded tiger v0.1.0 [INFO] [stderr] Downloaded nom v6.1.2 [INFO] [stderr] Downloaded rust-embed v8.5.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] f7b0e2b21c9c2d4b9216e1a2bd6c5764117aefdf4cd92f4b6ac97179dbceeba3 [INFO] running `Command { std: "docker" "start" "-a" "f7b0e2b21c9c2d4b9216e1a2bd6c5764117aefdf4cd92f4b6ac97179dbceeba3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "f7b0e2b21c9c2d4b9216e1a2bd6c5764117aefdf4cd92f4b6ac97179dbceeba3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f7b0e2b21c9c2d4b9216e1a2bd6c5764117aefdf4cd92f4b6ac97179dbceeba3", kill_on_drop: false }` [INFO] [stdout] f7b0e2b21c9c2d4b9216e1a2bd6c5764117aefdf4cd92f4b6ac97179dbceeba3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 99bcdb68f613169999e08751da97136bbfda6ed55b065c461e29252b93f3f114 [INFO] running `Command { std: "docker" "start" "-a" "99bcdb68f613169999e08751da97136bbfda6ed55b065c461e29252b93f3f114", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.88 [INFO] [stderr] Checking memchr v2.7.4 [INFO] [stderr] Compiling libc v0.2.161 [INFO] [stderr] Compiling serde v1.0.210 [INFO] [stderr] Checking tracing v0.1.40 [INFO] [stderr] Checking hashbrown v0.15.0 [INFO] [stderr] Compiling radium v0.5.3 [INFO] [stderr] Checking miniz_oxide v0.8.0 [INFO] [stderr] Compiling serde_json v1.0.132 [INFO] [stderr] Checking local-waker v0.1.4 [INFO] [stderr] Checking unicode-normalization v0.1.24 [INFO] [stderr] Compiling nom v6.1.2 [INFO] [stderr] Compiling tracing-core v0.1.32 [INFO] [stderr] Checking unicode-bidi v0.3.17 [INFO] [stderr] Compiling pin-project-lite v0.2.14 [INFO] [stderr] Compiling bytes v1.8.0 [INFO] [stderr] Checking actix-utils v3.0.1 [INFO] [stderr] Checking actix-service v2.0.2 [INFO] [stderr] Checking brotli-decompressor v4.0.1 [INFO] [stderr] Checking bytestring v1.3.1 [INFO] [stderr] Compiling cookie v0.16.2 [INFO] [stderr] Checking flate2 v1.0.34 [INFO] [stderr] Checking aho-corasick v1.1.3 [INFO] [stderr] Compiling openssl v0.10.68 [INFO] [stderr] Compiling regex-lite v0.1.6 [INFO] [stderr] Checking idna v0.5.0 [INFO] [stderr] Checking parking_lot_core v0.9.10 [INFO] [stderr] Checking mio v1.0.2 [INFO] [stderr] Checking socket2 v0.5.7 [INFO] [stderr] Checking signal-hook-registry v1.4.2 [INFO] [stderr] Compiling quote v1.0.37 [INFO] [stderr] Checking indexmap v2.6.0 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking local-channel v0.1.5 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Checking language-tags v0.3.2 [INFO] [stderr] Compiling wyz v0.2.0 [INFO] [stderr] Checking tokio v1.40.0 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Compiling funty v1.1.0 [INFO] [stderr] Compiling syn v2.0.82 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Checking brotli v6.0.0 [INFO] [stderr] Compiling lexical-core v0.7.6 [INFO] [stderr] Checking url v2.5.2 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling jobserver v0.1.32 [INFO] [stderr] Checking block-buffer v0.9.0 [INFO] [stderr] Checking cipher v0.3.0 [INFO] [stderr] Checking digest v0.9.0 [INFO] [stderr] Compiling cc v1.1.31 [INFO] [stderr] Compiling bitvec v0.19.6 [INFO] [stderr] Checking impl-more v0.1.8 [INFO] [stderr] Checking humansize v1.1.1 [INFO] [stderr] Checking arrayvec v0.5.2 [INFO] [stderr] Compiling rustix v0.38.37 [INFO] [stderr] Compiling unicase v2.8.0 [INFO] [stderr] Compiling cpufeatures v0.2.14 [INFO] [stderr] Checking regex-automata v0.4.8 [INFO] [stderr] Compiling sha2 v0.10.8 [INFO] [stderr] Compiling mime_guess v2.0.5 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Checking fdeflate v0.3.5 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Compiling thiserror v1.0.64 [INFO] [stderr] Compiling askama_escape v0.10.3 [INFO] [stderr] Compiling v_htmlescape v0.15.8 [INFO] [stderr] Checking png v0.17.14 [INFO] [stderr] Compiling rust-embed-utils v8.5.0 [INFO] [stderr] Compiling openssl-src v300.3.2+3.3.2 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking quick-xml v0.32.0 [INFO] [stderr] Checking debug-helper v0.3.13 [INFO] [stderr] Checking askama_escape v0.3.0 [INFO] [stderr] Checking os_str_bytes v6.6.1 [INFO] [stderr] Checking utf8-width v0.1.7 [INFO] [stderr] Compiling parse-size v1.1.0 [INFO] [stderr] Checking bytemuck v1.19.0 [INFO] [stderr] Checking fastrand v2.1.1 [INFO] [stderr] Checking clap_lex v0.2.4 [INFO] [stderr] Checking image v0.24.9 [INFO] [stderr] Checking html-escape v0.2.13 [INFO] [stderr] Compiling zstd-sys v2.0.13+zstd.1.5.6 [INFO] [stderr] Compiling openssl-sys v0.9.104 [INFO] [stderr] Compiling onig_sys v69.8.1 [INFO] [stderr] Checking regex v1.11.0 [INFO] [stderr] Compiling actix-router v0.5.3 [INFO] [stderr] Compiling libsqlite3-sys v0.30.1 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Checking chrono v0.4.38 [INFO] [stderr] Checking crc-any v2.5.0 [INFO] [stderr] Checking aes v0.7.5 [INFO] [stderr] Checking des v0.7.0 [INFO] [stderr] Checking block-modes v0.8.1 [INFO] [stderr] Checking sha2 v0.9.9 [INFO] [stderr] Checking tiger v0.1.0 [INFO] [stderr] Checking md-5 v0.9.1 [INFO] [stderr] Checking textwrap v0.16.1 [INFO] [stderr] Compiling darling_core v0.20.10 [INFO] [stderr] Checking http-range v0.1.5 [INFO] [stderr] Checking qrcodegen v1.8.0 [INFO] [stderr] Checking sanitize-filename v0.5.0 [INFO] [stderr] Checking env_logger v0.9.3 [INFO] [stderr] Checking linkify v0.10.0 [INFO] [stderr] Checking magic-crypt v3.1.13 [INFO] [stderr] Checking qrcode-generator v4.1.9 [INFO] [stderr] Checking tempfile v3.13.0 [INFO] [stderr] Checking harsh v0.2.2 [INFO] [stderr] Compiling clap_derive v3.2.25 [INFO] [stderr] Compiling serde_derive v1.0.210 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling zerocopy-derive v0.7.35 [INFO] [stderr] Compiling derive_more v0.99.18 [INFO] [stderr] Checking tokio-util v0.7.12 [INFO] [stderr] Checking actix-rt v2.10.0 [INFO] [stderr] Checking actix-codec v0.5.2 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Checking h2 v0.4.6 [INFO] [stderr] Compiling actix-macros v0.2.4 [INFO] [stderr] Compiling actix-web-codegen v4.3.0 [INFO] [stderr] Compiling askama_shared v0.11.2 [INFO] [stderr] Compiling thiserror-impl v1.0.64 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Checking onig v6.4.0 [INFO] [stderr] Compiling rust-embed-impl v8.5.0 [INFO] [stderr] Checking clap v3.2.25 [INFO] [stderr] Compiling darling_macro v0.20.10 [INFO] [stderr] Checking ahash v0.8.11 [INFO] [stderr] Checking ppv-lite86 v0.2.20 [INFO] [stderr] Checking rust-embed v8.5.0 [INFO] [stderr] Compiling darling v0.20.10 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Compiling actix-multipart-derive v0.7.0 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking h2 v0.3.26 [INFO] [stderr] Checking actix-server v2.5.0 [INFO] [stderr] Checking http-body-util v0.1.2 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Compiling askama_derive v0.10.5 [INFO] [stderr] Checking hashlink v0.9.1 [INFO] [stderr] Compiling zstd-safe v7.2.1 [INFO] [stderr] Checking zstd v0.13.2 [INFO] [stderr] Checking hyper v1.5.0 [INFO] [stderr] Checking hyper-util v0.1.9 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking toml v0.5.11 [INFO] [stderr] Checking plist v1.7.0 [INFO] [stderr] Checking serde_plain v1.0.2 [INFO] [stderr] Checking bincode v1.3.3 [INFO] [stderr] Checking bytesize v1.3.0 [INFO] [stderr] Checking actix-http v3.9.0 [INFO] [stderr] Checking syntect v5.2.0 [INFO] [stderr] Checking askama_shared v0.9.1 [INFO] [stderr] Checking askama-filters v0.1.3 [INFO] [stderr] Checking rusqlite v0.32.1 [INFO] [stderr] Checking actix-web v4.9.0 [INFO] [stderr] Checking askama v0.10.5 [INFO] [stderr] Checking actix-multipart v0.7.2 [INFO] [stderr] Checking actix-files v0.6.6 [INFO] [stderr] Checking actix-web-httpauth v0.8.2 [INFO] [stderr] Compiling native-tls v0.2.12 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking hyper-tls v0.6.0 [INFO] [stderr] Checking reqwest v0.12.8 [INFO] [stderr] Checking microbin v2.0.4 (/opt/rustwide/workdir) [INFO] [stdout] warning: use of deprecated function `base64::decode`: Use Engine::decode [INFO] [stdout] --> src/endpoints/api.rs:123:48 [INFO] [stdout] | [INFO] [stdout] 123 | let file_bytes = match base64::decode(file_content) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `base64::decode`: Use Engine::decode [INFO] [stdout] --> src/endpoints/api.rs:123:48 [INFO] [stdout] | [INFO] [stdout] 123 | let file_bytes = match base64::decode(file_content) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `self.public_path` after checking its variant with `is_some` [INFO] [stdout] --> src/args.rs:154:13 [INFO] [stdout] | [INFO] [stdout] 153 | if self.public_path.is_some() { [INFO] [stdout] | ----------------------------- help: try: `if let Some() = &self.public_path` [INFO] [stdout] 154 | self.public_path.as_ref().unwrap().to_string() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [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.short_path` after checking its variant with `is_some` [INFO] [stdout] --> src/args.rs:162:13 [INFO] [stdout] | [INFO] [stdout] 161 | if self.short_path.is_some() { [INFO] [stdout] | ---------------------------- help: try: `if let Some() = &self.short_path` [INFO] [stdout] 162 | self.short_path.as_ref().unwrap().to_string() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [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: called `unwrap` on `self.public_path` after checking its variant with `is_some` [INFO] [stdout] --> src/args.rs:154:13 [INFO] [stdout] | [INFO] [stdout] 153 | if self.public_path.is_some() { [INFO] [stdout] | ----------------------------- help: try: `if let Some() = &self.public_path` [INFO] [stdout] 154 | self.public_path.as_ref().unwrap().to_string() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [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.short_path` after checking its variant with `is_some` [INFO] [stdout] --> src/args.rs:162:13 [INFO] [stdout] | [INFO] [stdout] 161 | if self.short_path.is_some() { [INFO] [stdout] | ---------------------------- help: try: `if let Some() = &self.short_path` [INFO] [stdout] 162 | self.short_path.as_ref().unwrap().to_string() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [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: needless call to `as_bytes` [INFO] [stdout] --> src/pasta.rs:91:66 [INFO] [stdout] | [INFO] [stdout] 91 | self.file.as_ref().unwrap().size.as_u64() as usize + self.content.as_bytes().len() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: `len()` can be called directly on strings: `self.content.len()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_as_bytes [INFO] [stdout] = note: `#[warn(clippy::needless_as_bytes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needless call to `as_bytes` [INFO] [stdout] --> src/pasta.rs:93:13 [INFO] [stdout] | [INFO] [stdout] 93 | self.content.as_bytes().len() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: `len()` can be called directly on strings: `self.content.len()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_as_bytes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/pasta.rs:108:9 [INFO] [stdout] | [INFO] [stdout] 108 | / return self.has_file() [INFO] [stdout] 109 | | && self.file.as_ref().unwrap().embeddable() [INFO] [stdout] 110 | | && !(self.encrypt_server || self.encrypt_client); [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] 108 ~ self.has_file() [INFO] [stdout] 109 + && self.file.as_ref().unwrap().embeddable() [INFO] [stdout] 110 ~ && !(self.encrypt_server || self.encrypt_client) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needless call to `as_bytes` [INFO] [stdout] --> src/pasta.rs:91:66 [INFO] [stdout] | [INFO] [stdout] 91 | self.file.as_ref().unwrap().size.as_u64() as usize + self.content.as_bytes().len() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: `len()` can be called directly on strings: `self.content.len()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_as_bytes [INFO] [stdout] = note: `#[warn(clippy::needless_as_bytes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needless call to `as_bytes` [INFO] [stdout] --> src/pasta.rs:93:13 [INFO] [stdout] | [INFO] [stdout] 93 | self.content.as_bytes().len() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: `len()` can be called directly on strings: `self.content.len()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_as_bytes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/pasta.rs:108:9 [INFO] [stdout] | [INFO] [stdout] 108 | / return self.has_file() [INFO] [stdout] 109 | | && self.file.as_ref().unwrap().embeddable() [INFO] [stdout] 110 | | && !(self.encrypt_server || self.encrypt_client); [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] 108 ~ self.has_file() [INFO] [stdout] 109 + && self.file.as_ref().unwrap().embeddable() [INFO] [stdout] 110 ~ && !(self.encrypt_server || self.encrypt_client) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/endpoints/admin.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | / return Ok(HttpResponse::Found() [INFO] [stdout] 25 | | .append_header(("Location", "/auth_admin")) [INFO] [stdout] 26 | | .finish()); [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] 24 ~ Ok(HttpResponse::Found() [INFO] [stdout] 25 + .append_header(("Location", "/auth_admin")) [INFO] [stdout] 26 ~ .finish()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `MutexGuard` is held across an await point [INFO] [stdout] --> src/endpoints/admin.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 55 | let mut pastas = data.pastas.lock().unwrap(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using an async-aware `Mutex` type or ensuring the `MutexGuard` is dropped before calling `await` [INFO] [stdout] note: these are all the await points this lock is held through [INFO] [stdout] --> src/endpoints/admin.rs:79:57 [INFO] [stdout] | [INFO] [stdout] 79 | let latest_version_res = fetch_latest_version().await; [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock [INFO] [stdout] = note: `#[warn(clippy::await_holding_lock)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `latest_version_res` after checking its variant with `is_ok` [INFO] [stdout] --> src/endpoints/admin.rs:81:34 [INFO] [stdout] | [INFO] [stdout] 80 | if latest_version_res.is_ok() { [INFO] [stdout] | ----------------------------- help: try: `if let Ok() = latest_version_res` [INFO] [stdout] 81 | let latest_version = latest_version_res.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [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: consider using `sort_by_key` [INFO] [stdout] --> src/endpoints/admin.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | pastas.sort_by(|a, b| b.created.cmp(&a.created)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 60 - pastas.sort_by(|a, b| b.created.cmp(&a.created)); [INFO] [stdout] 60 + pastas.sort_by_key(|b| std::cmp::Reverse(b.created)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/endpoints/admin.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | / return Ok(HttpResponse::Found() [INFO] [stdout] 25 | | .append_header(("Location", "/auth_admin")) [INFO] [stdout] 26 | | .finish()); [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] 24 ~ Ok(HttpResponse::Found() [INFO] [stdout] 25 + .append_header(("Location", "/auth_admin")) [INFO] [stdout] 26 ~ .finish()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `MutexGuard` is held across an await point [INFO] [stdout] --> src/endpoints/admin.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 55 | let mut pastas = data.pastas.lock().unwrap(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using an async-aware `Mutex` type or ensuring the `MutexGuard` is dropped before calling `await` [INFO] [stdout] note: these are all the await points this lock is held through [INFO] [stdout] --> src/endpoints/admin.rs:79:57 [INFO] [stdout] | [INFO] [stdout] 79 | let latest_version_res = fetch_latest_version().await; [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock [INFO] [stdout] = note: `#[warn(clippy::await_holding_lock)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `latest_version_res` after checking its variant with `is_ok` [INFO] [stdout] --> src/endpoints/admin.rs:81:34 [INFO] [stdout] | [INFO] [stdout] 80 | if latest_version_res.is_ok() { [INFO] [stdout] | ----------------------------- help: try: `if let Ok() = latest_version_res` [INFO] [stdout] 81 | let latest_version = latest_version_res.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [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: consider using `sort_by_key` [INFO] [stdout] --> src/endpoints/admin.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | pastas.sort_by(|a, b| b.created.cmp(&a.created)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 60 - pastas.sort_by(|a, b| b.created.cmp(&a.created)); [INFO] [stdout] 60 + pastas.sort_by_key(|b| std::cmp::Reverse(b.created)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/endpoints/auth_admin.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | / return HttpResponse::Ok().content_type("text/html").body( [INFO] [stdout] 15 | | AuthAdmin { [INFO] [stdout] 16 | | args: &ARGS, [INFO] [stdout] 17 | | status: String::from(""), [INFO] [stdout] ... | [INFO] [stdout] 20 | | .unwrap(), [INFO] [stdout] 21 | | ); [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] 14 ~ HttpResponse::Ok().content_type("text/html").body( [INFO] [stdout] 15 + AuthAdmin { [INFO] [stdout] 16 + args: &ARGS, [INFO] [stdout] 17 + status: String::from(""), [INFO] [stdout] 18 + } [INFO] [stdout] 19 + .render() [INFO] [stdout] 20 + .unwrap(), [INFO] [stdout] 21 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/endpoints/auth_admin.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | / return HttpResponse::Ok().content_type("text/html").body( [INFO] [stdout] 29 | | AuthAdmin { [INFO] [stdout] 30 | | args: &ARGS, [INFO] [stdout] 31 | | status, [INFO] [stdout] ... | [INFO] [stdout] 34 | | .unwrap(), [INFO] [stdout] 35 | | ); [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] 28 ~ HttpResponse::Ok().content_type("text/html").body( [INFO] [stdout] 29 + AuthAdmin { [INFO] [stdout] 30 + args: &ARGS, [INFO] [stdout] 31 + status, [INFO] [stdout] 32 + } [INFO] [stdout] 33 + .render() [INFO] [stdout] 34 + .unwrap(), [INFO] [stdout] 35 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/endpoints/auth_admin.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | / return HttpResponse::Ok().content_type("text/html").body( [INFO] [stdout] 15 | | AuthAdmin { [INFO] [stdout] 16 | | args: &ARGS, [INFO] [stdout] 17 | | status: String::from(""), [INFO] [stdout] ... | [INFO] [stdout] 20 | | .unwrap(), [INFO] [stdout] 21 | | ); [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] 14 ~ HttpResponse::Ok().content_type("text/html").body( [INFO] [stdout] 15 + AuthAdmin { [INFO] [stdout] 16 + args: &ARGS, [INFO] [stdout] 17 + status: String::from(""), [INFO] [stdout] 18 + } [INFO] [stdout] 19 + .render() [INFO] [stdout] 20 + .unwrap(), [INFO] [stdout] 21 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/endpoints/auth_admin.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | / return HttpResponse::Ok().content_type("text/html").body( [INFO] [stdout] 29 | | AuthAdmin { [INFO] [stdout] 30 | | args: &ARGS, [INFO] [stdout] 31 | | status, [INFO] [stdout] ... | [INFO] [stdout] 34 | | .unwrap(), [INFO] [stdout] 35 | | ); [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] 28 ~ HttpResponse::Ok().content_type("text/html").body( [INFO] [stdout] 29 + AuthAdmin { [INFO] [stdout] 30 + args: &ARGS, [INFO] [stdout] 31 + status, [INFO] [stdout] 32 + } [INFO] [stdout] 33 + .render() [INFO] [stdout] 34 + .unwrap(), [INFO] [stdout] 35 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/endpoints/auth_upload.rs:34:37 [INFO] [stdout] | [INFO] [stdout] 34 | for (_i, pasta) in pastas.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] = note: `#[warn(clippy::unused_enumerate_index)]` on by default [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 34 - for (_i, pasta) in pastas.iter().enumerate() { [INFO] [stdout] 34 + for pasta in pastas.iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/endpoints/auth_upload.rs:74:37 [INFO] [stdout] | [INFO] [stdout] 74 | for (_i, pasta) in pastas.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 74 - for (_i, pasta) in pastas.iter().enumerate() { [INFO] [stdout] 74 + for pasta in pastas.iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/endpoints/auth_upload.rs:109:37 [INFO] [stdout] | [INFO] [stdout] 109 | for (_i, pasta) in pastas.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 109 - for (_i, pasta) in pastas.iter().enumerate() { [INFO] [stdout] 109 + for pasta in pastas.iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/endpoints/auth_upload.rs:149:37 [INFO] [stdout] | [INFO] [stdout] 149 | for (_i, pasta) in pastas.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 149 - for (_i, pasta) in pastas.iter().enumerate() { [INFO] [stdout] 149 + for pasta in pastas.iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/endpoints/auth_upload.rs:34:37 [INFO] [stdout] | [INFO] [stdout] 34 | for (_i, pasta) in pastas.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] = note: `#[warn(clippy::unused_enumerate_index)]` on by default [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 34 - for (_i, pasta) in pastas.iter().enumerate() { [INFO] [stdout] 34 + for pasta in pastas.iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/endpoints/auth_upload.rs:184:36 [INFO] [stdout] | [INFO] [stdout] 184 | for (_, pasta) in pastas.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 184 - for (_, pasta) in pastas.iter().enumerate() { [INFO] [stdout] 184 + for pasta in pastas.iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/endpoints/auth_upload.rs:74:37 [INFO] [stdout] | [INFO] [stdout] 74 | for (_i, pasta) in pastas.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 74 - for (_i, pasta) in pastas.iter().enumerate() { [INFO] [stdout] 74 + for pasta in pastas.iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/endpoints/auth_upload.rs:224:37 [INFO] [stdout] | [INFO] [stdout] 224 | for (_i, pasta) in pastas.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 224 - for (_i, pasta) in pastas.iter().enumerate() { [INFO] [stdout] 224 + for pasta in pastas.iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/endpoints/auth_upload.rs:109:37 [INFO] [stdout] | [INFO] [stdout] 109 | for (_i, pasta) in pastas.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 109 - for (_i, pasta) in pastas.iter().enumerate() { [INFO] [stdout] 109 + for pasta in pastas.iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/endpoints/auth_upload.rs:259:36 [INFO] [stdout] | [INFO] [stdout] 259 | for (_, pasta) in pastas.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 259 - for (_, pasta) in pastas.iter().enumerate() { [INFO] [stdout] 259 + for pasta in pastas.iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/endpoints/auth_upload.rs:149:37 [INFO] [stdout] | [INFO] [stdout] 149 | for (_i, pasta) in pastas.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 149 - for (_i, pasta) in pastas.iter().enumerate() { [INFO] [stdout] 149 + for pasta in pastas.iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/endpoints/auth_upload.rs:299:37 [INFO] [stdout] | [INFO] [stdout] 299 | for (_i, pasta) in pastas.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 299 - for (_i, pasta) in pastas.iter().enumerate() { [INFO] [stdout] 299 + for pasta in pastas.iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/endpoints/auth_upload.rs:184:36 [INFO] [stdout] | [INFO] [stdout] 184 | for (_, pasta) in pastas.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 184 - for (_, pasta) in pastas.iter().enumerate() { [INFO] [stdout] 184 + for pasta in pastas.iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/endpoints/auth_upload.rs:334:36 [INFO] [stdout] | [INFO] [stdout] 334 | for (_, pasta) in pastas.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 334 - for (_, pasta) in pastas.iter().enumerate() { [INFO] [stdout] 334 + for pasta in pastas.iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/endpoints/auth_upload.rs:224:37 [INFO] [stdout] | [INFO] [stdout] 224 | for (_i, pasta) in pastas.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 224 - for (_i, pasta) in pastas.iter().enumerate() { [INFO] [stdout] 224 + for pasta in pastas.iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/endpoints/auth_upload.rs:374:37 [INFO] [stdout] | [INFO] [stdout] 374 | for (_i, pasta) in pastas.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 374 - for (_i, pasta) in pastas.iter().enumerate() { [INFO] [stdout] 374 + for pasta in pastas.iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/endpoints/auth_upload.rs:259:36 [INFO] [stdout] | [INFO] [stdout] 259 | for (_, pasta) in pastas.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 259 - for (_, pasta) in pastas.iter().enumerate() { [INFO] [stdout] 259 + for pasta in pastas.iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/endpoints/auth_upload.rs:299:37 [INFO] [stdout] | [INFO] [stdout] 299 | for (_i, pasta) in pastas.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 299 - for (_i, pasta) in pastas.iter().enumerate() { [INFO] [stdout] 299 + for pasta in pastas.iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/endpoints/auth_upload.rs:334:36 [INFO] [stdout] | [INFO] [stdout] 334 | for (_, pasta) in pastas.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 334 - for (_, pasta) in pastas.iter().enumerate() { [INFO] [stdout] 334 + for pasta in pastas.iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/endpoints/auth_upload.rs:374:37 [INFO] [stdout] | [INFO] [stdout] 374 | for (_i, pasta) in pastas.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 374 - for (_i, pasta) in pastas.iter().enumerate() { [INFO] [stdout] 374 + for pasta in pastas.iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `new_pasta.file` after checking its variant with `is_some` [INFO] [stdout] --> src/endpoints/api.rs:193:14 [INFO] [stdout] | [INFO] [stdout] 188 | if new_pasta.file.is_some() && new_pasta.encrypt_server && !new_pasta.readonly { [INFO] [stdout] | ------------------------ the check is happening here [INFO] [stdout] ... [INFO] [stdout] 193 | &new_pasta.file.as_ref().unwrap().name() [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: this `if` statement can be collapsed [INFO] [stdout] --> src/endpoints/api.rs:99:5 [INFO] [stdout] | [INFO] [stdout] 99 | / if ARGS.readonly && ARGS.uploader_password.is_some() { [INFO] [stdout] 100 | | if req.uploader_password.as_deref() != ARGS.uploader_password.as_deref() { [INFO] [stdout] 101 | | return Ok(HttpResponse::Unauthorized().json("Incorrect uploader password")); [INFO] [stdout] 102 | | } [INFO] [stdout] 103 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 99 ~ if ARGS.readonly && ARGS.uploader_password.is_some() [INFO] [stdout] 100 ~ && req.uploader_password.as_deref() != ARGS.uploader_password.as_deref() { [INFO] [stdout] 101 | return Ok(HttpResponse::Unauthorized().json("Incorrect uploader password")); [INFO] [stdout] 102 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `new_pasta.file` after checking its variant with `is_some` [INFO] [stdout] --> src/endpoints/api.rs:193:14 [INFO] [stdout] | [INFO] [stdout] 188 | if new_pasta.file.is_some() && new_pasta.encrypt_server && !new_pasta.readonly { [INFO] [stdout] | ------------------------ the check is happening here [INFO] [stdout] ... [INFO] [stdout] 193 | &new_pasta.file.as_ref().unwrap().name() [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: this `if` statement can be collapsed [INFO] [stdout] --> src/endpoints/api.rs:99:5 [INFO] [stdout] | [INFO] [stdout] 99 | / if ARGS.readonly && ARGS.uploader_password.is_some() { [INFO] [stdout] 100 | | if req.uploader_password.as_deref() != ARGS.uploader_password.as_deref() { [INFO] [stdout] 101 | | return Ok(HttpResponse::Unauthorized().json("Incorrect uploader password")); [INFO] [stdout] 102 | | } [INFO] [stdout] 103 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 99 ~ if ARGS.readonly && ARGS.uploader_password.is_some() [INFO] [stdout] 100 ~ && req.uploader_password.as_deref() != ARGS.uploader_password.as_deref() { [INFO] [stdout] 101 | return Ok(HttpResponse::Unauthorized().json("Incorrect uploader password")); [INFO] [stdout] 102 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/endpoints/api.rs:212:36 [INFO] [stdout] | [INFO] [stdout] 212 | for (_, pasta) in pastas.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 212 - for (_, pasta) in pastas.iter().enumerate() { [INFO] [stdout] 212 + for pasta in pastas.iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/endpoints/api.rs:212:36 [INFO] [stdout] | [INFO] [stdout] 212 | for (_, pasta) in pastas.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 212 - for (_, pasta) in pastas.iter().enumerate() { [INFO] [stdout] 212 + for pasta in pastas.iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/endpoints/create.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | / return HttpResponse::Ok().content_type("text/html").body( [INFO] [stdout] 42 | | IndexTemplate { [INFO] [stdout] 43 | | args: &ARGS, [INFO] [stdout] 44 | | status, [INFO] [stdout] ... | [INFO] [stdout] 47 | | .unwrap(), [INFO] [stdout] 48 | | ); [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] 41 ~ HttpResponse::Ok().content_type("text/html").body( [INFO] [stdout] 42 + IndexTemplate { [INFO] [stdout] 43 + args: &ARGS, [INFO] [stdout] 44 + status, [INFO] [stdout] 45 + } [INFO] [stdout] 46 + .render() [INFO] [stdout] 47 + .unwrap(), [INFO] [stdout] 48 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/endpoints/create.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | / return HttpResponse::Ok().content_type("text/html").body( [INFO] [stdout] 42 | | IndexTemplate { [INFO] [stdout] 43 | | args: &ARGS, [INFO] [stdout] 44 | | status, [INFO] [stdout] ... | [INFO] [stdout] 47 | | .unwrap(), [INFO] [stdout] 48 | | ); [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] 41 ~ HttpResponse::Ok().content_type("text/html").body( [INFO] [stdout] 42 + IndexTemplate { [INFO] [stdout] 43 + args: &ARGS, [INFO] [stdout] 44 + status, [INFO] [stdout] 45 + } [INFO] [stdout] 46 + .render() [INFO] [stdout] 47 + .unwrap(), [INFO] [stdout] 48 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `MutexGuard` is held across an await point [INFO] [stdout] --> src/endpoints/create.rs:81:9 [INFO] [stdout] | [INFO] [stdout] 81 | let mut pastas = data.pastas.lock().unwrap(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using an async-aware `Mutex` type or ensuring the `MutexGuard` is dropped before calling `await` [INFO] [stdout] note: these are all the await points this lock is held through [INFO] [stdout] --> src/endpoints/create.rs:114:52 [INFO] [stdout] | [INFO] [stdout] 114 | while let Some(mut field) = payload.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | while let Some(chunk) = field.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | while let Some(chunk) = field.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 133 | while let Some(chunk) = field.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 174 | while let Some(chunk) = field.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 180 | while let Some(chunk) = field.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 187 | while let Some(chunk) = field.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 195 | while let Some(chunk) = field.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 216 | while let Some(chunk) = field.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 231 | while let Some(chunk) = field.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 271 | let mut f = web::block(|| std::fs::File::create(filepath)).await??; [INFO] [stdout] | ^^^^^ [INFO] [stdout] 272 | let mut size = 0; [INFO] [stdout] 273 | while let Some(chunk) = field.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 281 | f = web::block(move || f.write_all(&chunk).map(|_| f)).await??; [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `new_pasta.file` after checking its variant with `is_some` [INFO] [stdout] --> src/endpoints/create.rs:322:14 [INFO] [stdout] | [INFO] [stdout] 317 | if new_pasta.file.is_some() && new_pasta.encrypt_server { [INFO] [stdout] | ------------------------ the check is happening here [INFO] [stdout] ... [INFO] [stdout] 322 | &new_pasta.file.as_ref().unwrap().name() [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: this `MutexGuard` is held across an await point [INFO] [stdout] --> src/endpoints/create.rs:81:9 [INFO] [stdout] | [INFO] [stdout] 81 | let mut pastas = data.pastas.lock().unwrap(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using an async-aware `Mutex` type or ensuring the `MutexGuard` is dropped before calling `await` [INFO] [stdout] note: these are all the await points this lock is held through [INFO] [stdout] --> src/endpoints/create.rs:114:52 [INFO] [stdout] | [INFO] [stdout] 114 | while let Some(mut field) = payload.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | while let Some(chunk) = field.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | while let Some(chunk) = field.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 133 | while let Some(chunk) = field.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 174 | while let Some(chunk) = field.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 180 | while let Some(chunk) = field.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 187 | while let Some(chunk) = field.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 195 | while let Some(chunk) = field.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 216 | while let Some(chunk) = field.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 231 | while let Some(chunk) = field.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 271 | let mut f = web::block(|| std::fs::File::create(filepath)).await??; [INFO] [stdout] | ^^^^^ [INFO] [stdout] 272 | let mut size = 0; [INFO] [stdout] 273 | while let Some(chunk) = field.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 281 | f = web::block(move || f.write_all(&chunk).map(|_| f)).await??; [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `new_pasta.file` after checking its variant with `is_some` [INFO] [stdout] --> src/endpoints/create.rs:322:14 [INFO] [stdout] | [INFO] [stdout] 317 | if new_pasta.file.is_some() && new_pasta.encrypt_server { [INFO] [stdout] | ------------------------ the check is happening here [INFO] [stdout] ... [INFO] [stdout] 322 | &new_pasta.file.as_ref().unwrap().name() [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: match expression looks like `matches!` macro [INFO] [stdout] --> src/endpoints/create.rs:162:48 [INFO] [stdout] | [INFO] [stdout] 162 | new_pasta.encrypt_client = match privacy { [INFO] [stdout] | ________________________________________________^ [INFO] [stdout] 163 | | "secret" => true, [INFO] [stdout] 164 | | _ => false, [INFO] [stdout] 165 | | }; [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 162 - new_pasta.encrypt_client = match privacy { [INFO] [stdout] 163 - "secret" => true, [INFO] [stdout] 164 - _ => false, [INFO] [stdout] 165 - }; [INFO] [stdout] 162 + new_pasta.encrypt_client = matches!(privacy, "secret"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/endpoints/create.rs:166:48 [INFO] [stdout] | [INFO] [stdout] 166 | new_pasta.encrypt_server = match privacy { [INFO] [stdout] | ________________________________________________^ [INFO] [stdout] 167 | | "private" => true, [INFO] [stdout] 168 | | "secret" => true, [INFO] [stdout] 169 | | _ => false, [INFO] [stdout] 170 | | }; [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 166 - new_pasta.encrypt_server = match privacy { [INFO] [stdout] 167 - "private" => true, [INFO] [stdout] 168 - "secret" => true, [INFO] [stdout] 169 - _ => false, [INFO] [stdout] 170 - }; [INFO] [stdout] 166 + new_pasta.encrypt_server = matches!(privacy, "private" | "secret"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/endpoints/create.rs:162:48 [INFO] [stdout] | [INFO] [stdout] 162 | new_pasta.encrypt_client = match privacy { [INFO] [stdout] | ________________________________________________^ [INFO] [stdout] 163 | | "secret" => true, [INFO] [stdout] 164 | | _ => false, [INFO] [stdout] 165 | | }; [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 162 - new_pasta.encrypt_client = match privacy { [INFO] [stdout] 163 - "secret" => true, [INFO] [stdout] 164 - _ => false, [INFO] [stdout] 165 - }; [INFO] [stdout] 162 + new_pasta.encrypt_client = matches!(privacy, "secret"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/endpoints/create.rs:166:48 [INFO] [stdout] | [INFO] [stdout] 166 | new_pasta.encrypt_server = match privacy { [INFO] [stdout] | ________________________________________________^ [INFO] [stdout] 167 | | "private" => true, [INFO] [stdout] 168 | | "secret" => true, [INFO] [stdout] 169 | | _ => false, [INFO] [stdout] 170 | | }; [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 166 - new_pasta.encrypt_server = match privacy { [INFO] [stdout] 167 - "private" => true, [INFO] [stdout] 168 - "secret" => true, [INFO] [stdout] 169 - _ => false, [INFO] [stdout] 170 - }; [INFO] [stdout] 166 + new_pasta.encrypt_server = matches!(privacy, "private" | "secret"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/endpoints/create.rs:295:5 [INFO] [stdout] | [INFO] [stdout] 295 | / if ARGS.readonly && ARGS.uploader_password.is_some() { [INFO] [stdout] 296 | | if uploader_password != ARGS.uploader_password.as_ref().unwrap().to_owned() { [INFO] [stdout] 297 | | return Ok(HttpResponse::Found() [INFO] [stdout] 298 | | .append_header(("Location", "/incorrect")) [INFO] [stdout] ... | [INFO] [stdout] 301 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 295 ~ if ARGS.readonly && ARGS.uploader_password.is_some() [INFO] [stdout] 296 ~ && uploader_password != ARGS.uploader_password.as_ref().unwrap().to_owned() { [INFO] [stdout] 297 | return Ok(HttpResponse::Found() [INFO] [stdout] 298 | .append_header(("Location", "/incorrect")) [INFO] [stdout] 299 | .finish()); [INFO] [stdout] 300 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/endpoints/create.rs:296:33 [INFO] [stdout] | [INFO] [stdout] 296 | if uploader_password != ARGS.uploader_password.as_ref().unwrap().to_owned() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `*ARGS.uploader_password.as_ref().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] = note: `#[warn(clippy::cmp_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/endpoints/create.rs:335:36 [INFO] [stdout] | [INFO] [stdout] 335 | for (_, pasta) in pastas.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 335 - for (_, pasta) in pastas.iter().enumerate() { [INFO] [stdout] 335 + for pasta in pastas.iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/endpoints/create.rs:295:5 [INFO] [stdout] | [INFO] [stdout] 295 | / if ARGS.readonly && ARGS.uploader_password.is_some() { [INFO] [stdout] 296 | | if uploader_password != ARGS.uploader_password.as_ref().unwrap().to_owned() { [INFO] [stdout] 297 | | return Ok(HttpResponse::Found() [INFO] [stdout] 298 | | .append_header(("Location", "/incorrect")) [INFO] [stdout] ... | [INFO] [stdout] 301 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 295 ~ if ARGS.readonly && ARGS.uploader_password.is_some() [INFO] [stdout] 296 ~ && uploader_password != ARGS.uploader_password.as_ref().unwrap().to_owned() { [INFO] [stdout] 297 | return Ok(HttpResponse::Found() [INFO] [stdout] 298 | .append_header(("Location", "/incorrect")) [INFO] [stdout] 299 | .finish()); [INFO] [stdout] 300 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/endpoints/create.rs:296:33 [INFO] [stdout] | [INFO] [stdout] 296 | if uploader_password != ARGS.uploader_password.as_ref().unwrap().to_owned() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `*ARGS.uploader_password.as_ref().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] = note: `#[warn(clippy::cmp_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to use `.enumerate()` and immediately discard the index [INFO] [stdout] --> src/endpoints/create.rs:335:36 [INFO] [stdout] | [INFO] [stdout] 335 | for (_, pasta) in pastas.iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_enumerate_index [INFO] [stdout] help: remove the `.enumerate()` call [INFO] [stdout] | [INFO] [stdout] 335 - for (_, pasta) in pastas.iter().enumerate() { [INFO] [stdout] 335 + for pasta in pastas.iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `MutexGuard` is held across an await point [INFO] [stdout] --> src/endpoints/edit.rs:128:9 [INFO] [stdout] | [INFO] [stdout] 128 | let mut pastas = data.pastas.lock().unwrap(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using an async-aware `Mutex` type or ensuring the `MutexGuard` is dropped before calling `await` [INFO] [stdout] note: these are all the await points this lock is held through [INFO] [stdout] --> src/endpoints/edit.rs:138:52 [INFO] [stdout] | [INFO] [stdout] 138 | while let Some(mut field) = payload.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] 139 | if field.name() == Some("password") { [INFO] [stdout] 140 | while let Some(chunk) = field.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `res` after checking its variant with `is_ok` [INFO] [stdout] --> src/endpoints/edit.rs:169:40 [INFO] [stdout] | [INFO] [stdout] 166 | if res.is_ok() { [INFO] [stdout] | -------------- help: try: `if let Ok() = res` [INFO] [stdout] ... [INFO] [stdout] 169 | .replace_range(.., res.unwrap().as_str()); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [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: this `MutexGuard` is held across an await point [INFO] [stdout] --> src/endpoints/edit.rs:215:9 [INFO] [stdout] | [INFO] [stdout] 215 | let mut pastas = data.pastas.lock().unwrap(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using an async-aware `Mutex` type or ensuring the `MutexGuard` is dropped before calling `await` [INFO] [stdout] note: these are all the await points this lock is held through [INFO] [stdout] --> src/endpoints/edit.rs:226:52 [INFO] [stdout] | [INFO] [stdout] 226 | while let Some(mut field) = payload.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] 227 | if field.name() == Some("content") { [INFO] [stdout] 228 | while let Some(chunk) = field.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 233 | while let Some(chunk) = field.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `MutexGuard` is held across an await point [INFO] [stdout] --> src/endpoints/edit.rs:128:9 [INFO] [stdout] | [INFO] [stdout] 128 | let mut pastas = data.pastas.lock().unwrap(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using an async-aware `Mutex` type or ensuring the `MutexGuard` is dropped before calling `await` [INFO] [stdout] note: these are all the await points this lock is held through [INFO] [stdout] --> src/endpoints/edit.rs:138:52 [INFO] [stdout] | [INFO] [stdout] 138 | while let Some(mut field) = payload.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] 139 | if field.name() == Some("password") { [INFO] [stdout] 140 | while let Some(chunk) = field.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `res` after checking its variant with `is_ok` [INFO] [stdout] --> src/endpoints/edit.rs:169:40 [INFO] [stdout] | [INFO] [stdout] 166 | if res.is_ok() { [INFO] [stdout] | -------------- help: try: `if let Ok() = res` [INFO] [stdout] ... [INFO] [stdout] 169 | .replace_range(.., res.unwrap().as_str()); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [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: this `MutexGuard` is held across an await point [INFO] [stdout] --> src/endpoints/edit.rs:313:9 [INFO] [stdout] | [INFO] [stdout] 313 | let mut pastas = data.pastas.lock().unwrap(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using an async-aware `Mutex` type or ensuring the `MutexGuard` is dropped before calling `await` [INFO] [stdout] note: these are all the await points this lock is held through [INFO] [stdout] --> src/endpoints/edit.rs:320:52 [INFO] [stdout] | [INFO] [stdout] 320 | while let Some(mut field) = payload.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] 321 | if field.name() == Some("content") { [INFO] [stdout] 322 | while let Some(chunk) = field.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 327 | while let Some(chunk) = field.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `MutexGuard` is held across an await point [INFO] [stdout] --> src/endpoints/edit.rs:215:9 [INFO] [stdout] | [INFO] [stdout] 215 | let mut pastas = data.pastas.lock().unwrap(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using an async-aware `Mutex` type or ensuring the `MutexGuard` is dropped before calling `await` [INFO] [stdout] note: these are all the await points this lock is held through [INFO] [stdout] --> src/endpoints/edit.rs:226:52 [INFO] [stdout] | [INFO] [stdout] 226 | while let Some(mut field) = payload.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] 227 | if field.name() == Some("content") { [INFO] [stdout] 228 | while let Some(chunk) = field.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 233 | while let Some(chunk) = field.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `MutexGuard` is held across an await point [INFO] [stdout] --> src/endpoints/edit.rs:313:9 [INFO] [stdout] | [INFO] [stdout] 313 | let mut pastas = data.pastas.lock().unwrap(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using an async-aware `Mutex` type or ensuring the `MutexGuard` is dropped before calling `await` [INFO] [stdout] note: these are all the await points this lock is held through [INFO] [stdout] --> src/endpoints/edit.rs:320:52 [INFO] [stdout] | [INFO] [stdout] 320 | while let Some(mut field) = payload.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] 321 | if field.name() == Some("content") { [INFO] [stdout] 322 | while let Some(chunk) = field.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 327 | while let Some(chunk) = field.try_next().await? { [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `MutexGuard` is held across an await point [INFO] [stdout] --> src/endpoints/file.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | let mut pastas = data.pastas.lock().unwrap(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using an async-aware `Mutex` type or ensuring the `MutexGuard` is dropped before calling `await` [INFO] [stdout] note: these are all the await points this lock is held through [INFO] [stdout] --> src/endpoints/file.rs:43:59 [INFO] [stdout] | [INFO] [stdout] 43 | let password = auth::password_from_multipart(payload).await?; [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `MutexGuard` is held across an await point [INFO] [stdout] --> src/endpoints/file.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | let mut pastas = data.pastas.lock().unwrap(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using an async-aware `Mutex` type or ensuring the `MutexGuard` is dropped before calling `await` [INFO] [stdout] note: these are all the await points this lock is held through [INFO] [stdout] --> src/endpoints/file.rs:43:59 [INFO] [stdout] | [INFO] [stdout] 43 | let password = auth::password_from_multipart(payload).await?; [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/endpoints/list.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | pastas.sort_by(|a, b| b.created.cmp(&a.created)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 32 - pastas.sort_by(|a, b| b.created.cmp(&a.created)); [INFO] [stdout] 32 + pastas.sort_by_key(|b| std::cmp::Reverse(b.created)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/endpoints/list.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | pastas.sort_by(|a, b| b.created.cmp(&a.created)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 32 - pastas.sort_by(|a, b| b.created.cmp(&a.created)); [INFO] [stdout] 32 + pastas.sort_by_key(|b| std::cmp::Reverse(b.created)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stdout] --> src/endpoints/pasta.rs:72:20 [INFO] [stdout] | [INFO] [stdout] 72 | if let Ok(..) = res { [INFO] [stdout] | -------^^^^^^------ help: try: `if res.is_ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `res` after checking its variant with `is_ok` [INFO] [stdout] --> src/endpoints/pasta.rs:357:40 [INFO] [stdout] | [INFO] [stdout] 354 | if res.is_ok() { [INFO] [stdout] | -------------- help: try: `if let Ok() = res` [INFO] [stdout] ... [INFO] [stdout] 357 | .replace_range(.., res.unwrap().as_str()); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [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: redundant pattern matching, consider using `is_ok()` [INFO] [stdout] --> src/endpoints/pasta.rs:72:20 [INFO] [stdout] | [INFO] [stdout] 72 | if let Ok(..) = res { [INFO] [stdout] | -------^^^^^^------ help: try: `if res.is_ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `res` after checking its variant with `is_ok` [INFO] [stdout] --> src/endpoints/pasta.rs:357:40 [INFO] [stdout] | [INFO] [stdout] 354 | if res.is_ok() { [INFO] [stdout] | -------------- help: try: `if let Ok() = res` [INFO] [stdout] ... [INFO] [stdout] 357 | .replace_range(.., res.unwrap().as_str()); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [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: this `MutexGuard` is held across an await point [INFO] [stdout] --> src/endpoints/remove.rs:93:9 [INFO] [stdout] | [INFO] [stdout] 93 | let mut pastas = data.pastas.lock().unwrap(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using an async-aware `Mutex` type or ensuring the `MutexGuard` is dropped before calling `await` [INFO] [stdout] note: these are all the await points this lock is held through [INFO] [stdout] --> src/endpoints/remove.rs:97:59 [INFO] [stdout] | [INFO] [stdout] 97 | let password = auth::password_from_multipart(payload).await?; [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `MutexGuard` is held across an await point [INFO] [stdout] --> src/endpoints/remove.rs:93:9 [INFO] [stdout] | [INFO] [stdout] 93 | let mut pastas = data.pastas.lock().unwrap(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using an async-aware `Mutex` type or ensuring the `MutexGuard` is dropped before calling `await` [INFO] [stdout] note: these are all the await points this lock is held through [INFO] [stdout] --> src/endpoints/remove.rs:97:59 [INFO] [stdout] | [INFO] [stdout] 97 | let password = auth::password_from_multipart(payload).await?; [INFO] [stdout] | ^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/util/db_json.rs:23:49 [INFO] [stdout] | [INFO] [stdout] 23 | let tmp_file = File::create(&tmp_file_path).expect(&format!( [INFO] [stdout] | _________________________________________________^ [INFO] [stdout] 24 | | "failed to create temporary database file for writing. path: {tmp_file_path}" [INFO] [stdout] 25 | | )); [INFO] [stdout] | |______^ help: try: `unwrap_or_else(|_| panic!("failed to create temporary database file for writing. path: {tmp_file_path}"))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] = note: `#[warn(clippy::expect_fun_call)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match can be simplified with `.unwrap_or_default()` [INFO] [stdout] --> src/util/db_json.rs:38:36 [INFO] [stdout] | [INFO] [stdout] 38 | let data: Vec = match serde_json::from_reader(reader) { [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 39 | | Ok(t) => t, [INFO] [stdout] 40 | | _ => Vec::new(), [INFO] [stdout] 41 | | }; [INFO] [stdout] | |_____________^ help: ascribe the type std::vec::Vec and replace your expression with: `serde_json::from_reader(reader).unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::manual_unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/util/db_sqlite.rs:136:24 [INFO] [stdout] | [INFO] [stdout] 136 | if file_name != "" && file_size != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!file_name.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: function call inside of `expect` [INFO] [stdout] --> src/util/db_json.rs:23:49 [INFO] [stdout] | [INFO] [stdout] 23 | let tmp_file = File::create(&tmp_file_path).expect(&format!( [INFO] [stdout] | _________________________________________________^ [INFO] [stdout] 24 | | "failed to create temporary database file for writing. path: {tmp_file_path}" [INFO] [stdout] 25 | | )); [INFO] [stdout] | |______^ help: try: `unwrap_or_else(|_| panic!("failed to create temporary database file for writing. path: {tmp_file_path}"))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] = note: `#[warn(clippy::expect_fun_call)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match can be simplified with `.unwrap_or_default()` [INFO] [stdout] --> src/util/db_json.rs:38:36 [INFO] [stdout] | [INFO] [stdout] 38 | let data: Vec = match serde_json::from_reader(reader) { [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 39 | | Ok(t) => t, [INFO] [stdout] 40 | | _ => Vec::new(), [INFO] [stdout] 41 | | }; [INFO] [stdout] | |_____________^ help: ascribe the type std::vec::Vec and replace your expression with: `serde_json::from_reader(reader).unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::manual_unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/util/db_sqlite.rs:136:24 [INFO] [stdout] | [INFO] [stdout] 136 | if file_name != "" && file_size != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!file_name.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] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 44s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v6.1.2 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3` [INFO] running `Command { std: "docker" "inspect" "99bcdb68f613169999e08751da97136bbfda6ed55b065c461e29252b93f3f114", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "99bcdb68f613169999e08751da97136bbfda6ed55b065c461e29252b93f3f114", kill_on_drop: false }` [INFO] [stdout] 99bcdb68f613169999e08751da97136bbfda6ed55b065c461e29252b93f3f114