[INFO] cloning repository https://github.com/707state/LeapTourBBS [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/707state/LeapTourBBS" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F707state%2FLeapTourBBS", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F707state%2FLeapTourBBS'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] c9c0e88c9b0bed5f545eaaf288dd621d10b0d7cc [INFO] linting 707state/LeapTourBBS against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F707state%2FLeapTourBBS" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/707state/LeapTourBBS [INFO] finished tweaking git repo https://github.com/707state/LeapTourBBS [INFO] tweaked toml for git repo https://github.com/707state/LeapTourBBS written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/707state/LeapTourBBS 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/707state/LeapTourBBS 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] Updating git repository `https://github.com/Reknij/captcha-rs.git` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded cargo-platform v0.1.8 [INFO] [stderr] Downloaded quanta v0.11.1 [INFO] [stderr] Downloaded tinyvec v1.6.1 [INFO] [stderr] Downloaded camino v1.1.7 [INFO] [stderr] Downloaded ravif v0.11.7 [INFO] [stderr] Downloaded parse-size v1.0.0 [INFO] [stderr] Downloaded impl-more v0.1.6 [INFO] [stderr] Downloaded mutually_exclusive_features v0.0.3 [INFO] [stderr] Downloaded aws-creds v0.36.0 [INFO] [stderr] Downloaded aws-region v0.25.4 [INFO] [stderr] Downloaded triomphe v0.1.13 [INFO] [stderr] Downloaded uuid v1.9.1 [INFO] [stderr] Downloaded quanta v0.9.3 [INFO] [stderr] Downloaded zstd-safe v7.2.0 [INFO] [stderr] Downloaded tracing-actix-web v0.7.11 [INFO] [stderr] Downloaded actix-cors v0.6.5 [INFO] [stderr] Downloaded image-webp v0.1.2 [INFO] [stderr] Downloaded rust-s3 v0.34.0 [INFO] [stderr] Downloaded wide v0.7.25 [INFO] [stderr] Downloaded governor v0.5.1 [INFO] [stderr] Downloaded imageproc v0.24.0 [INFO] [stderr] Downloaded actix-http v3.8.0 [INFO] [stderr] Downloaded clap_builder v4.5.8 [INFO] [stderr] Downloaded moka v0.11.3 [INFO] [stderr] Downloaded raw-cpuid v10.7.0 [INFO] [stderr] Downloaded fancy-regex v0.13.0 [INFO] [stderr] Downloaded actix-web v4.8.0 [INFO] [stderr] Downloaded syn v2.0.68 [INFO] [stderr] Downloaded clap v4.5.8 [INFO] [stderr] Downloaded zune-jpeg v0.4.11 [INFO] [stderr] Downloaded attohttpc v0.26.1 [INFO] [stderr] Downloaded cc v1.0.104 [INFO] [stderr] Downloaded actix-governor v0.4.1 [INFO] [stderr] Downloaded actix-server v2.4.0 [INFO] [stderr] Downloaded actix-tls v3.4.0 [INFO] [stderr] Downloaded bitstream-io v2.4.2 [INFO] [stderr] Downloaded built v0.7.3 [INFO] [stderr] Downloaded rgb v0.8.40 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 68707ed9ce5ff69de01e554853bab4f261b771b29df927f5746ef7da2314a9cc [INFO] running `Command { std: "docker" "start" "-a" "68707ed9ce5ff69de01e554853bab4f261b771b29df927f5746ef7da2314a9cc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "68707ed9ce5ff69de01e554853bab4f261b771b29df927f5746ef7da2314a9cc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "68707ed9ce5ff69de01e554853bab4f261b771b29df927f5746ef7da2314a9cc", kill_on_drop: false }` [INFO] [stdout] 68707ed9ce5ff69de01e554853bab4f261b771b29df927f5746ef7da2314a9cc [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 7c8a17120e1726230349f58b2ef4824655cc8c4e24c7d4a8f6bc5c372cf1b012 [INFO] running `Command { std: "docker" "start" "-a" "7c8a17120e1726230349f58b2ef4824655cc8c4e24c7d4a8f6bc5c372cf1b012", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.155 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Checking log v0.4.22 [INFO] [stderr] Compiling proc-macro2 v1.0.86 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking smallvec v1.13.2 [INFO] [stderr] Compiling serde v1.0.203 [INFO] [stderr] Compiling pkg-config v0.3.30 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Checking parking_lot_core v0.9.10 [INFO] [stderr] Checking bytes v1.6.0 [INFO] [stderr] Compiling ahash v0.8.11 [INFO] [stderr] Compiling paste v1.0.15 [INFO] [stderr] Compiling crossbeam-utils v0.8.20 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking spin v0.9.8 [INFO] [stderr] Compiling jobserver v0.1.31 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Compiling cc v1.0.104 [INFO] [stderr] Compiling syn v2.0.68 [INFO] [stderr] Checking mio v0.8.11 [INFO] [stderr] Checking num_cpus v1.16.0 [INFO] [stderr] Checking socket2 v0.5.7 [INFO] [stderr] Checking signal-hook-registry v1.4.2 [INFO] [stderr] Checking untrusted v0.9.0 [INFO] [stderr] Checking tracing-core v0.1.32 [INFO] [stderr] Compiling thiserror v1.0.61 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Compiling serde_json v1.0.120 [INFO] [stderr] Compiling pin-project-lite v0.2.14 [INFO] [stderr] Checking allocator-api2 v0.2.18 [INFO] [stderr] Checking tinyvec v1.6.1 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling futures-core v0.3.30 [INFO] [stderr] Checking nom v7.1.3 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking aho-corasick v1.1.3 [INFO] [stderr] Checking regex-syntax v0.8.4 [INFO] [stderr] Compiling ring v0.17.8 [INFO] [stderr] Checking unicode-normalization v0.1.23 [INFO] [stderr] Checking indexmap v2.2.6 [INFO] [stderr] Compiling rustix v0.38.34 [INFO] [stderr] Checking idna v0.5.0 [INFO] [stderr] Compiling libsqlite3-sys v0.27.0 [INFO] [stderr] Compiling rustls v0.21.12 [INFO] [stderr] Checking url v2.5.2 [INFO] [stderr] Compiling anyhow v1.0.86 [INFO] [stderr] Checking regex-automata v0.4.7 [INFO] [stderr] Compiling futures-util v0.3.30 [INFO] [stderr] Compiling tokio v1.38.0 [INFO] [stderr] Checking flume v0.11.0 [INFO] [stderr] Compiling base64 v0.21.7 [INFO] [stderr] Checking sct v0.7.1 [INFO] [stderr] Checking rustls-webpki v0.101.7 [INFO] [stderr] Compiling serde_derive v1.0.203 [INFO] [stderr] Compiling tracing-attributes v0.1.27 [INFO] [stderr] Compiling tokio-macros v2.3.0 [INFO] [stderr] Compiling futures-macro v0.3.30 [INFO] [stderr] Compiling thiserror-impl v1.0.61 [INFO] [stderr] Checking tracing v0.1.40 [INFO] [stderr] Compiling ryu v1.0.18 [INFO] [stderr] Compiling itoa v1.0.11 [INFO] [stderr] Checking webpki-roots v0.25.4 [INFO] [stderr] Compiling iana-time-zone v0.1.60 [INFO] [stderr] Compiling crc v3.2.1 [INFO] [stderr] Compiling chrono v0.4.38 [INFO] [stderr] Compiling sqlformat v0.2.4 [INFO] [stderr] Compiling tokio-stream v0.1.15 [INFO] [stderr] Checking futures-executor v0.3.30 [INFO] [stderr] Compiling rustls-pemfile v1.0.4 [INFO] [stderr] Compiling crossbeam-queue v0.3.11 [INFO] [stderr] Compiling futures-intrusive v0.5.0 [INFO] [stderr] Compiling atoi v2.0.0 [INFO] [stderr] Compiling hashlink v0.8.4 [INFO] [stderr] Compiling futures-channel v0.3.30 [INFO] [stderr] Checking raw-cpuid v10.7.0 [INFO] [stderr] Compiling bitflags v2.6.0 [INFO] [stderr] Compiling linux-raw-sys v0.4.14 [INFO] [stderr] Compiling io-lifetimes v1.0.11 [INFO] [stderr] Checking sha2 v0.10.8 [INFO] [stderr] Compiling polling v2.8.0 [INFO] [stderr] Checking either v1.13.0 [INFO] [stderr] Compiling urlencoding v2.1.3 [INFO] [stderr] Compiling rustix v0.37.27 [INFO] [stderr] Compiling fastrand v2.1.0 [INFO] [stderr] Compiling tempfile v3.10.1 [INFO] [stderr] Checking anstyle-parse v0.2.4 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Checking futures v0.3.30 [INFO] [stderr] Compiling async-io v1.13.0 [INFO] [stderr] Checking fastrand v1.9.0 [INFO] [stderr] Checking linux-raw-sys v0.3.8 [INFO] [stderr] Checking anstyle v1.0.7 [INFO] [stderr] Checking waker-fn v1.2.0 [INFO] [stderr] Checking anstyle-query v1.1.0 [INFO] [stderr] Checking is_terminal_polyfill v1.70.0 [INFO] [stderr] Checking colorchoice v1.0.1 [INFO] [stderr] Checking parking v2.2.0 [INFO] [stderr] Checking anstream v0.6.14 [INFO] [stderr] Checking futures-lite v1.13.0 [INFO] [stderr] Compiling sqlx-core v0.7.4 [INFO] [stderr] Checking toml_datetime v0.6.6 [INFO] [stderr] Checking serde_spanned v0.6.6 [INFO] [stderr] Checking async-lock v2.8.0 [INFO] [stderr] Checking concurrent-queue v2.5.0 [INFO] [stderr] Checking uuid v1.9.1 [INFO] [stderr] Checking socket2 v0.4.10 [INFO] [stderr] Checking clap_lex v0.7.1 [INFO] [stderr] Checking winnow v0.6.13 [INFO] [stderr] Compiling moka v0.11.3 [INFO] [stderr] Checking bit-vec v0.6.3 [INFO] [stderr] Checking clap_builder v4.5.8 [INFO] [stderr] Compiling clap_derive v4.5.8 [INFO] [stderr] Checking bit-set v0.5.3 [INFO] [stderr] Checking http v0.2.12 [INFO] [stderr] Checking quanta v0.11.1 [INFO] [stderr] Compiling async-trait v0.1.80 [INFO] [stderr] Checking crossbeam-channel v0.5.13 [INFO] [stderr] Checking toml_edit v0.22.14 [INFO] [stderr] Checking scheduled-thread-pool v0.2.7 [INFO] [stderr] Checking tagptr v0.2.0 [INFO] [stderr] Checking triomphe v0.1.13 [INFO] [stderr] Checking fancy-regex v0.13.0 [INFO] [stderr] Checking clap v4.5.8 [INFO] [stderr] Compiling serde_repr v0.1.19 [INFO] [stderr] Compiling time-core v0.1.2 [INFO] [stderr] Compiling time-macros v0.2.18 [INFO] [stderr] Compiling sqlx-sqlite v0.7.4 [INFO] [stderr] Checking deranged v0.3.11 [INFO] [stderr] Compiling crunchy v0.2.2 [INFO] [stderr] Compiling openssl-sys v0.9.102 [INFO] [stderr] Compiling tiny-keccak v2.0.2 [INFO] [stderr] Checking miniz_oxide v0.7.4 [INFO] [stderr] Checking toml v0.8.14 [INFO] [stderr] Compiling const-random-macro v0.1.16 [INFO] [stderr] Compiling openssl v0.10.64 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Checking const-random v0.1.18 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking time v0.3.36 [INFO] [stderr] Compiling native-tls v0.2.12 [INFO] [stderr] Checking flate2 v1.0.30 [INFO] [stderr] Checking dlv-list v0.5.2 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking hashbrown v0.13.2 [INFO] [stderr] Checking http-body v0.4.6 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Compiling ring v0.16.20 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Compiling sqlx-macros-core v0.7.4 [INFO] [stderr] Checking ordered-multimap v0.6.0 [INFO] [stderr] Checking hyper v0.14.29 [INFO] [stderr] Checking rust-ini v0.19.0 [INFO] [stderr] Checking attohttpc v0.26.1 [INFO] [stderr] Checking quick-xml v0.30.0 [INFO] [stderr] Compiling zstd-sys v2.0.12+zstd.1.5.6 [INFO] [stderr] Checking bytemuck v1.16.1 [INFO] [stderr] Checking home v0.5.9 [INFO] [stderr] Compiling rayon-core v1.12.1 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Checking aws-region v0.25.4 [INFO] [stderr] Compiling maybe-async v0.2.10 [INFO] [stderr] Compiling sqlx-macros v0.7.4 [INFO] [stderr] Checking aws-creds v0.36.0 [INFO] [stderr] Checking webpki v0.22.4 [INFO] [stderr] Checking crossbeam-deque v0.8.5 [INFO] [stderr] Checking hmac v0.12.1 [INFO] [stderr] Compiling rustls v0.20.9 [INFO] [stderr] Checking tokio-util v0.7.11 [INFO] [stderr] Compiling zstd-safe v7.2.0 [INFO] [stderr] Checking actix-utils v3.0.1 [INFO] [stderr] Checking num-rational v0.4.2 [INFO] [stderr] Checking actix-rt v2.10.0 [INFO] [stderr] Checking sqlx v0.7.4 [INFO] [stderr] Checking actix-service v2.0.2 [INFO] [stderr] Checking arrayvec v0.7.4 [INFO] [stderr] Checking bbs_utils v0.1.0 (/opt/rustwide/workdir/crates/bbs_utils) [INFO] [stderr] Compiling built v0.7.3 [INFO] [stderr] Checking aligned-vec v0.5.0 [INFO] [stdout] warning: unused import: `toml::ser` [INFO] [stdout] --> crates/bbs_utils/src/config.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use toml::ser; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Checking brotli-decompressor v4.0.1 [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> crates/bbs_utils/src/lib.rs:45:20 [INFO] [stdout] | [INFO] [stdout] 45 | const SPLIT_CHAR: &'static str = "~./*\\.~"; [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking v_frame v0.3.8 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking hyper-tls v0.5.0 [INFO] [stderr] Checking webpki-roots v0.22.6 [INFO] [stderr] Compiling profiling-procmacros v1.0.15 [INFO] [stderr] Compiling rav1e v0.7.1 [INFO] [stderr] Checking rust-s3 v0.34.0 [INFO] [stderr] Compiling bytestring v1.3.1 [INFO] [stderr] Compiling cookie v0.16.2 [INFO] [stdout] warning: needless call to `as_bytes` [INFO] [stdout] --> crates/bbs_utils/src/lib.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | this.as_bytes().len() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: `len()` can be called directly on strings: `this.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] [stderr] Checking shared_core v0.1.0 (/opt/rustwide/workdir/crates/shared_core) [INFO] [stderr] Checking impl-more v0.1.6 [INFO] [stderr] Compiling derive_more v0.99.18 [INFO] [stderr] Compiling actix-router v0.5.3 [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> crates/shared_core/src/lib.rs:84:13 [INFO] [stdout] | [INFO] [stdout] 84 | if cfg!(debug_assertions) { true } else { false }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `cfg!(debug_assertions)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking channel_cache v0.1.0 (/opt/rustwide/workdir/crates/channel_cache) [INFO] [stdout] warning: using `clone` on type `Instant` which implements the `Copy` trait [INFO] [stdout] --> crates/channel_cache/src/lib.rs:51:49 [INFO] [stdout] | [INFO] [stdout] 51 | ... last_time = now.clone(); [INFO] [stdout] | ^^^^^^^^^^^ help: try removing the `clone` call: `now` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> crates/channel_cache/src/lib.rs:88:36 [INFO] [stdout] | [INFO] [stdout] 88 | ... if let Err(_) = sender.send(v) { [INFO] [stdout] | -------^^^^^^----------------- help: try: `if sender.send(v).is_err()` [INFO] [stdout] | [INFO] [stdout] = note: this will change drop order of the result, as well as all temporaries [INFO] [stdout] = note: add `#[allow(clippy::redundant_pattern_matching)]` if this is important [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: length comparison to zero [INFO] [stdout] --> crates/channel_cache/src/lib.rs:93:28 [INFO] [stdout] | [INFO] [stdout] 93 | if senders.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!senders.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking brotli v6.0.0 [INFO] [stderr] Checking profiling v1.0.15 [INFO] [stderr] Checking av1-grain v0.2.3 [INFO] [stderr] Checking actix-codec v0.5.2 [INFO] [stderr] Checking h2 v0.3.26 [INFO] [stderr] Checking local-channel v0.1.5 [INFO] [stderr] Checking maybe-rayon v0.1.1 [INFO] [stderr] Checking safe_arch v0.7.2 [INFO] [stderr] Checking itertools v0.12.1 [INFO] [stderr] Checking tokio-rustls v0.23.4 [INFO] [stderr] Checking actix-tls v3.4.0 [INFO] [stderr] Compiling arg_enum_proc_macro v0.3.4 [INFO] [stderr] Compiling num-derive v0.4.2 [INFO] [stderr] Checking storage v0.1.0 (/opt/rustwide/workdir/crates/storage) [INFO] [stderr] Checking regex v1.10.5 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Checking num-complex v0.4.6 [INFO] [stderr] Compiling simd_helpers v0.1.0 [INFO] [stderr] Compiling matrixmultiply v0.3.8 [INFO] [stderr] Checking imgref v1.10.1 [INFO] [stderr] Checking bitstream-io v2.4.2 [INFO] [stdout] warning: unused variable: `write` [INFO] [stdout] --> crates/storage/src/local_storage.rs:206:13 [INFO] [stdout] | [INFO] [stdout] 206 | let write = fs.write(content).await?; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_write` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking weezl v0.1.8 [INFO] [stderr] Compiling noop_proc_macro v0.3.0 [INFO] [stderr] Checking loop9 v0.1.5 [INFO] [stderr] Compiling unicase v2.7.0 [INFO] [stderr] Checking wide v0.7.25 [INFO] [stderr] Compiling actix-web-codegen v4.3.0 [INFO] [stderr] Checking actix-server v2.4.0 [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> crates/storage/src/local_storage.rs:267:42 [INFO] [stdout] | [INFO] [stdout] 267 | let r = self.get_presign_put_url(&key).await; [INFO] [stdout] | ^^^^ help: change this to: `key` [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 let-binding has unit value [INFO] [stdout] --> crates/storage/src/object_marker.rs:68:17 [INFO] [stdout] | [INFO] [stdout] 68 | let r = task.send((key, flag, ref_id, permanent)).await?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding and replace variable usages with `()` [INFO] [stdout] | [INFO] [stdout] 68 ~ task.send((key, flag, ref_id, permanent)).await?; [INFO] [stdout] 69 ~ Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `from_*` usually take no `self` [INFO] [stdout] --> crates/storage/src/object_marker.rs:126:17 [INFO] [stdout] | [INFO] [stdout] 126 | fn from_row(&self, row: SqliteRow) -> MarkedObject { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> crates/storage/src/s3_storage.rs:134:42 [INFO] [stdout] | [INFO] [stdout] 134 | let r = self.get_presign_put_url(&key).await; [INFO] [stdout] | ^^^^ help: change this to: `key` [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: the borrowed expression implements the required traits [INFO] [stdout] --> crates/storage/src/s3_storage.rs:182:28 [INFO] [stdout] | [INFO] [stdout] 182 | if url.starts_with(&base) { [INFO] [stdout] | ^^^^^ help: change this to: `base` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> crates/storage/src/lib.rs:81:9 [INFO] [stdout] | [INFO] [stdout] 81 | / match self { [INFO] [stdout] 82 | | S3Ref::LocalStorage(_) => true, [INFO] [stdout] 83 | | _ => false, [INFO] [stdout] 84 | | } [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] 81 - match self { [INFO] [stdout] 82 - S3Ref::LocalStorage(_) => true, [INFO] [stdout] 83 - _ => false, [INFO] [stdout] 84 - } [INFO] [stdout] 81 + matches!(self, S3Ref::LocalStorage(_)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking avif-serialize v0.8.1 [INFO] [stderr] Checking rgb v0.8.40 [INFO] [stderr] Checking fdeflate v0.3.4 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Compiling actix-macros v0.2.4 [INFO] [stderr] Checking approx v0.5.1 [INFO] [stderr] Checking half v2.4.1 [INFO] [stderr] Checking ttf-parser v0.24.0 [INFO] [stderr] Checking rawpointer v0.2.1 [INFO] [stderr] Checking image-webp v0.1.2 [INFO] [stderr] Checking exr v1.72.0 [INFO] [stderr] Checking gif v0.13.1 [INFO] [stderr] Checking zune-jpeg v0.4.11 [INFO] [stderr] Checking simba v0.8.1 [INFO] [stderr] Checking tiff v0.9.1 [INFO] [stderr] Checking png v0.17.13 [INFO] [stderr] Checking qoi v0.4.1 [INFO] [stderr] Checking num-iter v0.1.45 [INFO] [stderr] Checking custom_derive v0.1.7 [INFO] [stderr] Compiling darling_core v0.20.9 [INFO] [stderr] Checking conv v0.3.3 [INFO] [stderr] Checking num v0.4.3 [INFO] [stderr] Checking owned_ttf_parser v0.24.0 [INFO] [stderr] Checking rand_distr v0.4.3 [INFO] [stderr] Checking ab_glyph v0.2.28 [INFO] [stderr] Compiling mime_guess v2.0.5 [INFO] [stderr] Compiling v_htmlescape v0.15.8 [INFO] [stderr] Checking user_system v0.1.0 (/opt/rustwide/workdir/crates/user_system) [INFO] [stderr] Checking quanta v0.9.3 [INFO] [stderr] Compiling pin-project-internal v1.1.5 [INFO] [stderr] Checking dashmap v5.5.3 [INFO] [stdout] warning: methods called `from_*` usually take no `self` [INFO] [stdout] --> crates/user_system/src/lib.rs:382:23 [INFO] [stdout] | [INFO] [stdout] 382 | async fn from_row(&self, tx: &mut SqliteConnection, row: SqliteRow) -> UserInfo { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking no-std-compat v0.4.1 [INFO] [stderr] Checking nonzero_ext v0.3.0 [INFO] [stderr] Compiling parse-size v1.0.0 [INFO] [stderr] Checking governor v0.5.1 [INFO] [stderr] Checking serde_plain v1.0.2 [INFO] [stderr] Checking http-range v0.1.5 [INFO] [stderr] Checking mutually_exclusive_features v0.0.3 [INFO] [stderr] Checking pin-project v1.1.5 [INFO] [stderr] Checking category_system v0.1.0 (/opt/rustwide/workdir/crates/category_system) [INFO] [stderr] Checking post_system v0.1.0 (/opt/rustwide/workdir/crates/post_system) [INFO] [stderr] Checking like_system v0.1.0 (/opt/rustwide/workdir/crates/like_system) [INFO] [stderr] Checking ravif v0.11.7 [INFO] [stderr] Checking notification_system v0.1.0 (/opt/rustwide/workdir/crates/notification_system) [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> crates/like_system/src/lib.rs:101:17 [INFO] [stdout] | [INFO] [stdout] 101 | / let like_status = task [INFO] [stdout] 102 | | .send(SetLikeStatusBundle { [INFO] [stdout] 103 | | flag_ref_id, [INFO] [stdout] 104 | | flag, [INFO] [stdout] ... | [INFO] [stdout] 107 | | }) [INFO] [stdout] 108 | | .await?; [INFO] [stdout] | |____________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding and replace variable usages with `()` [INFO] [stdout] | [INFO] [stdout] 101 ~ task [INFO] [stdout] 102 | .send(SetLikeStatusBundle { [INFO] [stdout] ... [INFO] [stdout] 108 | .await?; [INFO] [stdout] 109 ~ Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking image v0.25.1 [INFO] [stdout] warning: iterating on a map's values [INFO] [stdout] --> crates/like_system/src/lib.rs:136:17 [INFO] [stdout] | [INFO] [stdout] 136 | map.into_iter().map(|(_key, bundle)| bundle).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `map.into_values()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] = note: `#[warn(clippy::iter_kv_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> crates/like_system/src/lib.rs:195:12 [INFO] [stdout] | [INFO] [stdout] 195 | if like_statuses.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!like_statuses.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking comment_system v0.1.0 (/opt/rustwide/workdir/crates/comment_system) [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> crates/notification_system/src/lib.rs:128:17 [INFO] [stdout] | [INFO] [stdout] 128 | let n = task.send((user_id, notification)).await?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding and replace variable usages with `()` [INFO] [stdout] | [INFO] [stdout] 128 ~ task.send((user_id, notification)).await?; [INFO] [stdout] 129 ~ Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/notification_system/src/lib.rs:144:25 [INFO] [stdout] | [INFO] [stdout] 144 | b.push_bind(&n.ref_id) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `n.ref_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/notification_system/src/lib.rs:146:28 [INFO] [stdout] | [INFO] [stdout] 146 | .push_bind(&n.target_user_id) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `n.target_user_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `from_*` usually take no `self` [INFO] [stdout] --> crates/notification_system/src/lib.rs:165:31 [INFO] [stdout] | [INFO] [stdout] 165 | async fn from_row_to_user(&self, row: SqliteRow) -> UserNotification { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> crates/notification_system/src/lib.rs:227:17 [INFO] [stdout] | [INFO] [stdout] 227 | let r = task.send((user_id, n_id, readed)).await?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding and replace variable usages with `()` [INFO] [stdout] | [INFO] [stdout] 227 ~ task.send((user_id, n_id, readed)).await?; [INFO] [stdout] 228 ~ Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/category_system/src/lib.rs:130:19 [INFO] [stdout] | [INFO] [stdout] 130 | .bind(&category.description_content_type) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `category.description_content_type` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/category_system/src/lib.rs:131:19 [INFO] [stdout] | [INFO] [stdout] 131 | .bind(&category.status) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `category.status` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/category_system/src/lib.rs:132:19 [INFO] [stdout] | [INFO] [stdout] 132 | .bind(&category.read_level) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: change this to: `category.read_level` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/category_system/src/lib.rs:133:19 [INFO] [stdout] | [INFO] [stdout] 133 | .bind(&category.write_level) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: change this to: `category.write_level` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/category_system/src/lib.rs:134:19 [INFO] [stdout] | [INFO] [stdout] 134 | .bind(&category.comment_level) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `category.comment_level` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/category_system/src/lib.rs:187:19 [INFO] [stdout] | [INFO] [stdout] 187 | .bind(&category.description_content_type) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `category.description_content_type` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/category_system/src/lib.rs:188:19 [INFO] [stdout] | [INFO] [stdout] 188 | .bind(&category.status) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `category.status` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/category_system/src/lib.rs:189:19 [INFO] [stdout] | [INFO] [stdout] 189 | .bind(&category.read_level) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: change this to: `category.read_level` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/category_system/src/lib.rs:190:19 [INFO] [stdout] | [INFO] [stdout] 190 | .bind(&category.write_level) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: change this to: `category.write_level` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/category_system/src/lib.rs:191:19 [INFO] [stdout] | [INFO] [stdout] 191 | .bind(&category.comment_level) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `category.comment_level` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> crates/category_system/src/lib.rs:244:12 [INFO] [stdout] | [INFO] [stdout] 244 | if groups.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!groups.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> crates/category_system/src/lib.rs:253:12 [INFO] [stdout] | [INFO] [stdout] 253 | if moderators.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!moderators.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `from_*` usually take no `self` [INFO] [stdout] --> crates/category_system/src/lib.rs:280:9 [INFO] [stdout] | [INFO] [stdout] 280 | &self, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking group_system v0.1.0 (/opt/rustwide/workdir/crates/group_system) [INFO] [stderr] Checking overload v0.1.1 [INFO] [stderr] Checking nu-ansi-term v0.46.0 [INFO] [stderr] Compiling darling_macro v0.20.9 [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> crates/post_system/src/lib.rs:129:29 [INFO] [stdout] | [INFO] [stdout] 129 | / ... let r = ps [INFO] [stdout] 130 | | ... .increment_views_with_count(tx.as_mut(), post_id, views) [INFO] [stdout] 131 | | ... .await [INFO] [stdout] 132 | | ... .unwrap(); [INFO] [stdout] | |____________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding and replace variable usages with `()` [INFO] [stdout] | [INFO] [stdout] 129 ~ ps [INFO] [stdout] 130 | .increment_views_with_count(tx.as_mut(), post_id, views) [INFO] [stdout] ... [INFO] [stdout] 133 | tx.commit_unwrap().await; [INFO] [stdout] 134 ~ () [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> crates/post_system/src/lib.rs:157:17 [INFO] [stdout] | [INFO] [stdout] 157 | let r = task.send(post_id).await?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding and replace variable usages with `()` [INFO] [stdout] | [INFO] [stdout] 157 ~ task.send(post_id).await?; [INFO] [stdout] 158 ~ Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/post_system/src/lib.rs:214:28 [INFO] [stdout] | [INFO] [stdout] 214 | .push_bind(&post.content_type) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: change this to: `post.content_type` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/post_system/src/lib.rs:309:15 [INFO] [stdout] | [INFO] [stdout] 309 | .bind(&post.content_type) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: change this to: `post.content_type` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/post_system/src/lib.rs:311:15 [INFO] [stdout] | [INFO] [stdout] 311 | .bind(&now) [INFO] [stdout] | ^^^^ help: change this to: `now` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stdout] warning: methods called `from_*` usually take no `self` [INFO] [stdout] --> crates/post_system/src/lib.rs:379:23 [INFO] [stdout] | [INFO] [stdout] 379 | async fn from_row(&self, row: SqliteRow, fetch_content: bool) -> PostInfo { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> crates/post_system/src/lib.rs:424:5 [INFO] [stdout] | [INFO] [stdout] 424 | / pub async fn get_postlinks_with_algorithm( [INFO] [stdout] 425 | | &self, [INFO] [stdout] 426 | | tx: &mut SqliteConnection, [INFO] [stdout] 427 | | index: usizedb, [INFO] [stdout] ... | [INFO] [stdout] 434 | | top_order_enable: bool, [INFO] [stdout] 435 | | ) -> Result> { [INFO] [stdout] | |______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking thread_local v1.1.8 [INFO] [stderr] Compiling darling v0.20.9 [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/group_system/src/lib.rs:99:19 [INFO] [stdout] | [INFO] [stdout] 99 | .bind(&group.description_content_type) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `group.description_content_type` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/group_system/src/lib.rs:100:19 [INFO] [stdout] | [INFO] [stdout] 100 | .bind(&group.status) [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `group.status` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/group_system/src/lib.rs:128:19 [INFO] [stdout] | [INFO] [stdout] 128 | .bind(&group.description_content_type) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `group.description_content_type` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/group_system/src/lib.rs:129:19 [INFO] [stdout] | [INFO] [stdout] 129 | .bind(&group.status) [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `group.status` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `from_*` usually take no `self` [INFO] [stdout] --> crates/group_system/src/lib.rs:173:17 [INFO] [stdout] | [INFO] [stdout] 173 | fn from_row(&self, row: SqliteRow) -> Group { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling actix-multipart-derive v0.6.1 [INFO] [stderr] Checking tracing-subscriber v0.3.18 [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/comment_system/src/lib.rs:236:15 [INFO] [stdout] | [INFO] [stdout] 236 | .bind(&comment.content_type) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: change this to: `comment.content_type` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `from_*` usually take no `self` [INFO] [stdout] --> crates/comment_system/src/lib.rs:264:17 [INFO] [stdout] | [INFO] [stdout] 264 | fn from_row(&self, row: SqliteRow) -> CommentInfo { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> crates/comment_system/src/lib.rs:323:5 [INFO] [stdout] | [INFO] [stdout] 323 | / pub async fn get_comments( [INFO] [stdout] 324 | | &self, [INFO] [stdout] 325 | | tx: &mut SqliteConnection, [INFO] [stdout] 326 | | post_id: usizedb, [INFO] [stdout] ... | [INFO] [stdout] 332 | | top_order_enable: bool, [INFO] [stdout] 333 | | ) -> Result> { [INFO] [stdout] | |_________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/category_system/src/lib.rs:130:19 [INFO] [stdout] | [INFO] [stdout] 130 | .bind(&category.description_content_type) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `category.description_content_type` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/category_system/src/lib.rs:131:19 [INFO] [stdout] | [INFO] [stdout] 131 | .bind(&category.status) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `category.status` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/category_system/src/lib.rs:132:19 [INFO] [stdout] | [INFO] [stdout] 132 | .bind(&category.read_level) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: change this to: `category.read_level` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/category_system/src/lib.rs:133:19 [INFO] [stdout] | [INFO] [stdout] 133 | .bind(&category.write_level) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: change this to: `category.write_level` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/category_system/src/lib.rs:134:19 [INFO] [stdout] | [INFO] [stdout] 134 | .bind(&category.comment_level) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `category.comment_level` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/category_system/src/lib.rs:187:19 [INFO] [stdout] | [INFO] [stdout] 187 | .bind(&category.description_content_type) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `category.description_content_type` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/category_system/src/lib.rs:188:19 [INFO] [stdout] | [INFO] [stdout] 188 | .bind(&category.status) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `category.status` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/category_system/src/lib.rs:189:19 [INFO] [stdout] | [INFO] [stdout] 189 | .bind(&category.read_level) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: change this to: `category.read_level` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/category_system/src/lib.rs:190:19 [INFO] [stdout] | [INFO] [stdout] 190 | .bind(&category.write_level) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: change this to: `category.write_level` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/category_system/src/lib.rs:191:19 [INFO] [stdout] | [INFO] [stdout] 191 | .bind(&category.comment_level) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `category.comment_level` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> crates/category_system/src/lib.rs:244:12 [INFO] [stdout] | [INFO] [stdout] 244 | if groups.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!groups.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> crates/category_system/src/lib.rs:253:12 [INFO] [stdout] | [INFO] [stdout] 253 | if moderators.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!moderators.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `from_*` usually take no `self` [INFO] [stdout] --> crates/category_system/src/lib.rs:280:9 [INFO] [stdout] | [INFO] [stdout] 280 | &self, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `from_*` usually take no `self` [INFO] [stdout] --> crates/user_system/src/lib.rs:382:23 [INFO] [stdout] | [INFO] [stdout] 382 | async fn from_row(&self, tx: &mut SqliteConnection, row: SqliteRow) -> UserInfo { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> crates/post_system/src/lib.rs:129:29 [INFO] [stdout] | [INFO] [stdout] 129 | / ... let r = ps [INFO] [stdout] 130 | | ... .increment_views_with_count(tx.as_mut(), post_id, views) [INFO] [stdout] 131 | | ... .await [INFO] [stdout] 132 | | ... .unwrap(); [INFO] [stdout] | |____________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding and replace variable usages with `()` [INFO] [stdout] | [INFO] [stdout] 129 ~ ps [INFO] [stdout] 130 | .increment_views_with_count(tx.as_mut(), post_id, views) [INFO] [stdout] ... [INFO] [stdout] 133 | tx.commit_unwrap().await; [INFO] [stdout] 134 ~ () [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> crates/post_system/src/lib.rs:157:17 [INFO] [stdout] | [INFO] [stdout] 157 | let r = task.send(post_id).await?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding and replace variable usages with `()` [INFO] [stdout] | [INFO] [stdout] 157 ~ task.send(post_id).await?; [INFO] [stdout] 158 ~ Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/post_system/src/lib.rs:214:28 [INFO] [stdout] | [INFO] [stdout] 214 | .push_bind(&post.content_type) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: change this to: `post.content_type` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/post_system/src/lib.rs:309:15 [INFO] [stdout] | [INFO] [stdout] 309 | .bind(&post.content_type) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: change this to: `post.content_type` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/post_system/src/lib.rs:311:15 [INFO] [stdout] | [INFO] [stdout] 311 | .bind(&now) [INFO] [stdout] | ^^^^ help: change this to: `now` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `from_*` usually take no `self` [INFO] [stdout] --> crates/post_system/src/lib.rs:379:23 [INFO] [stdout] | [INFO] [stdout] 379 | async fn from_row(&self, row: SqliteRow, fetch_content: bool) -> PostInfo { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> crates/post_system/src/lib.rs:424:5 [INFO] [stdout] | [INFO] [stdout] 424 | / pub async fn get_postlinks_with_algorithm( [INFO] [stdout] 425 | | &self, [INFO] [stdout] 426 | | tx: &mut SqliteConnection, [INFO] [stdout] 427 | | index: usizedb, [INFO] [stdout] ... | [INFO] [stdout] 434 | | top_order_enable: bool, [INFO] [stdout] 435 | | ) -> Result> { [INFO] [stdout] | |______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> crates/like_system/src/lib.rs:101:17 [INFO] [stdout] | [INFO] [stdout] 101 | / let like_status = task [INFO] [stdout] 102 | | .send(SetLikeStatusBundle { [INFO] [stdout] 103 | | flag_ref_id, [INFO] [stdout] 104 | | flag, [INFO] [stdout] ... | [INFO] [stdout] 107 | | }) [INFO] [stdout] 108 | | .await?; [INFO] [stdout] | |____________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding and replace variable usages with `()` [INFO] [stdout] | [INFO] [stdout] 101 ~ task [INFO] [stdout] 102 | .send(SetLikeStatusBundle { [INFO] [stdout] ... [INFO] [stdout] 108 | .await?; [INFO] [stdout] 109 ~ Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's values [INFO] [stdout] --> crates/like_system/src/lib.rs:136:17 [INFO] [stdout] | [INFO] [stdout] 136 | map.into_iter().map(|(_key, bundle)| bundle).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `map.into_values()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] = note: `#[warn(clippy::iter_kv_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> crates/like_system/src/lib.rs:195:12 [INFO] [stdout] | [INFO] [stdout] 195 | if like_statuses.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!like_statuses.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> crates/notification_system/src/lib.rs:128:17 [INFO] [stdout] | [INFO] [stdout] 128 | let n = task.send((user_id, notification)).await?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding and replace variable usages with `()` [INFO] [stdout] | [INFO] [stdout] 128 ~ task.send((user_id, notification)).await?; [INFO] [stdout] 129 ~ Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/notification_system/src/lib.rs:144:25 [INFO] [stdout] | [INFO] [stdout] 144 | b.push_bind(&n.ref_id) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `n.ref_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking nalgebra v0.32.6 [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/notification_system/src/lib.rs:146:28 [INFO] [stdout] | [INFO] [stdout] 146 | .push_bind(&n.target_user_id) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: change this to: `n.target_user_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `from_*` usually take no `self` [INFO] [stdout] --> crates/notification_system/src/lib.rs:165:31 [INFO] [stdout] | [INFO] [stdout] 165 | async fn from_row_to_user(&self, row: SqliteRow) -> UserNotification { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> crates/notification_system/src/lib.rs:227:17 [INFO] [stdout] | [INFO] [stdout] 227 | let r = task.send((user_id, n_id, readed)).await?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding and replace variable usages with `()` [INFO] [stdout] | [INFO] [stdout] 227 ~ task.send((user_id, n_id, readed)).await?; [INFO] [stdout] 228 ~ Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `write` [INFO] [stdout] --> crates/storage/src/local_storage.rs:206:13 [INFO] [stdout] | [INFO] [stdout] 206 | let write = fs.write(content).await?; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_write` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/group_system/src/lib.rs:99:19 [INFO] [stdout] | [INFO] [stdout] 99 | .bind(&group.description_content_type) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `group.description_content_type` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/group_system/src/lib.rs:100:19 [INFO] [stdout] | [INFO] [stdout] 100 | .bind(&group.status) [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `group.status` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/group_system/src/lib.rs:128:19 [INFO] [stdout] | [INFO] [stdout] 128 | .bind(&group.description_content_type) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `group.description_content_type` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/group_system/src/lib.rs:129:19 [INFO] [stdout] | [INFO] [stdout] 129 | .bind(&group.status) [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `group.status` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `from_*` usually take no `self` [INFO] [stdout] --> crates/group_system/src/lib.rs:173:17 [INFO] [stdout] | [INFO] [stdout] 173 | fn from_row(&self, row: SqliteRow) -> Group { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Instant` which implements the `Copy` trait [INFO] [stdout] --> crates/channel_cache/src/lib.rs:51:49 [INFO] [stdout] | [INFO] [stdout] 51 | ... last_time = now.clone(); [INFO] [stdout] | ^^^^^^^^^^^ help: try removing the `clone` call: `now` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> crates/channel_cache/src/lib.rs:88:36 [INFO] [stdout] | [INFO] [stdout] 88 | ... if let Err(_) = sender.send(v) { [INFO] [stdout] | -------^^^^^^----------------- help: try: `if sender.send(v).is_err()` [INFO] [stdout] | [INFO] [stdout] = note: this will change drop order of the result, as well as all temporaries [INFO] [stdout] = note: add `#[allow(clippy::redundant_pattern_matching)]` if this is important [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: length comparison to zero [INFO] [stdout] --> crates/channel_cache/src/lib.rs:93:28 [INFO] [stdout] | [INFO] [stdout] 93 | if senders.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!senders.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `toml::ser` [INFO] [stdout] --> crates/bbs_utils/src/config.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use toml::ser; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> crates/bbs_utils/src/lib.rs:45:20 [INFO] [stdout] | [INFO] [stdout] 45 | const SPLIT_CHAR: &'static str = "~./*\\.~"; [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> crates/shared_core/src/lib.rs:84:13 [INFO] [stdout] | [INFO] [stdout] 84 | if cfg!(debug_assertions) { true } else { false }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `cfg!(debug_assertions)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/comment_system/src/lib.rs:236:15 [INFO] [stdout] | [INFO] [stdout] 236 | .bind(&comment.content_type) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: change this to: `comment.content_type` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `from_*` usually take no `self` [INFO] [stdout] --> crates/comment_system/src/lib.rs:264:17 [INFO] [stdout] | [INFO] [stdout] 264 | fn from_row(&self, row: SqliteRow) -> CommentInfo { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> crates/comment_system/src/lib.rs:323:5 [INFO] [stdout] | [INFO] [stdout] 323 | / pub async fn get_comments( [INFO] [stdout] 324 | | &self, [INFO] [stdout] 325 | | tx: &mut SqliteConnection, [INFO] [stdout] 326 | | post_id: usizedb, [INFO] [stdout] ... | [INFO] [stdout] 332 | | top_order_enable: bool, [INFO] [stdout] 333 | | ) -> Result> { [INFO] [stdout] | |_________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> crates/storage/src/local_storage.rs:267:42 [INFO] [stdout] | [INFO] [stdout] 267 | let r = self.get_presign_put_url(&key).await; [INFO] [stdout] | ^^^^ help: change this to: `key` [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 let-binding has unit value [INFO] [stdout] --> crates/storage/src/object_marker.rs:68:17 [INFO] [stdout] | [INFO] [stdout] 68 | let r = task.send((key, flag, ref_id, permanent)).await?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding and replace variable usages with `()` [INFO] [stdout] | [INFO] [stdout] 68 ~ task.send((key, flag, ref_id, permanent)).await?; [INFO] [stdout] 69 ~ Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `from_*` usually take no `self` [INFO] [stdout] --> crates/storage/src/object_marker.rs:126:17 [INFO] [stdout] | [INFO] [stdout] 126 | fn from_row(&self, row: SqliteRow) -> MarkedObject { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> crates/storage/src/s3_storage.rs:134:42 [INFO] [stdout] | [INFO] [stdout] 134 | let r = self.get_presign_put_url(&key).await; [INFO] [stdout] | ^^^^ help: change this to: `key` [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: the borrowed expression implements the required traits [INFO] [stdout] --> crates/storage/src/s3_storage.rs:182:28 [INFO] [stdout] | [INFO] [stdout] 182 | if url.starts_with(&base) { [INFO] [stdout] | ^^^^^ help: change this to: `base` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> crates/storage/src/lib.rs:81:9 [INFO] [stdout] | [INFO] [stdout] 81 | / match self { [INFO] [stdout] 82 | | S3Ref::LocalStorage(_) => true, [INFO] [stdout] 83 | | _ => false, [INFO] [stdout] 84 | | } [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] 81 - match self { [INFO] [stdout] 82 - S3Ref::LocalStorage(_) => true, [INFO] [stdout] 83 - _ => false, [INFO] [stdout] 84 - } [INFO] [stdout] 81 + matches!(self, S3Ref::LocalStorage(_)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needless call to `as_bytes` [INFO] [stdout] --> crates/bbs_utils/src/lib.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | this.as_bytes().len() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: `len()` can be called directly on strings: `this.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] [stderr] Checking zstd v0.13.2 [INFO] [stderr] Checking actix-http v3.8.0 [INFO] [stderr] Checking actix-web v4.8.0 [INFO] [stderr] Checking imageproc v0.24.0 [INFO] [stderr] Checking captcha-rs v0.2.10 (https://github.com/Reknij/captcha-rs.git#6a13f367) [INFO] [stderr] Checking vertification_system v0.1.0 (/opt/rustwide/workdir/crates/vertification_system) [INFO] [stderr] Checking actix-files v0.6.6 [INFO] [stderr] Checking tracing-actix-web v0.7.11 [INFO] [stderr] Checking actix-multipart v0.6.2 [INFO] [stderr] Checking actix-governor v0.4.1 [INFO] [stderr] Checking actix-cors v0.6.5 [INFO] [stdout] warning: field `id` is never read [INFO] [stdout] --> crates/vertification_system/src/model.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct Verification { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] 8 | pub id: usizedb, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `Verification` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/vertification_system/src/lib.rs:122:50 [INFO] [stdout] | [INFO] [stdout] 122 | b.push_bind(&captcha.text).push_bind(&now); [INFO] [stdout] | ^^^^ help: change this to: `now` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `id` is never read [INFO] [stdout] --> crates/vertification_system/src/model.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct Verification { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] 8 | pub id: usizedb, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `Verification` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> crates/vertification_system/src/lib.rs:122:50 [INFO] [stdout] | [INFO] [stdout] 122 | b.push_bind(&captcha.text).push_bind(&now); [INFO] [stdout] | ^^^^ help: change this to: `now` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking bbs_server v0.1.0 (/opt/rustwide/workdir/crates/bbs_server) [INFO] [stdout] warning: struct `GetCommentLikeStatusQuery` is never constructed [INFO] [stdout] --> crates/bbs_server/src/api/comment_controller/model.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct GetCommentLikeStatusQuery { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GetPostsCountQuery` is never constructed [INFO] [stdout] --> crates/bbs_server/src/api/post_controller/model.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct GetPostsCountQuery { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GetUserById` is never constructed [INFO] [stdout] --> crates/bbs_server/src/api/user_controller/model.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct GetUserById { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> crates/bbs_server/src/api/api_error.rs:99:9 [INFO] [stdout] | [INFO] [stdout] 98 | let res = actix_web::HttpResponse::build(self.status_code()).json(&self.detail); [INFO] [stdout] | -------------------------------------------------------------------------------- unnecessary `let` binding [INFO] [stdout] 99 | res [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 98 ~ [INFO] [stdout] 99 ~ actix_web::HttpResponse::build(self.status_code()).json(&self.detail) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> crates/bbs_server/src/api/api_error.rs:414:13 [INFO] [stdout] | [INFO] [stdout] 414 | format!("Pagination limit maximum reached."), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Pagination limit maximum reached.".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> crates/bbs_server/src/api/category_controller.rs:110:59 [INFO] [stdout] | [INFO] [stdout] 110 | if let Some(key) = s.storage.try_parse_url_to_key(&cover_url) { [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `cover_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] --> crates/bbs_server/src/api/category_controller.rs:230:63 [INFO] [stdout] | [INFO] [stdout] 230 | if let Some(key) = s.storage.try_parse_url_to_key(&cover_url) { [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `cover_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: using `clone` on type `u32` which implements the `Copy` trait [INFO] [stdout] --> crates/bbs_server/src/api/comment_controller.rs:82:52 [INFO] [stdout] | [INFO] [stdout] 82 | let comment_ids = items.iter().map(|c| c.id.clone()).collect(); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `c.id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> crates/bbs_server/src/api/like_controller.rs:66:16 [INFO] [stdout] | [INFO] [stdout] 66 | check_user(&s, tx.as_mut(), user, w).await?; // like also is comment. [INFO] [stdout] | ^^ help: change this to: `s` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> crates/bbs_server/src/api/like_controller.rs:70:35 [INFO] [stdout] | [INFO] [stdout] 70 | let post = check_post(&s, tx.as_mut(), id, user, w).await?; [INFO] [stdout] | ^^ help: change this to: `s` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> crates/bbs_server/src/api/like_controller.rs:74:46 [INFO] [stdout] | [INFO] [stdout] 74 | let (_, comment) = check_comment(&s, tx.as_mut(), id, user, w).await?; [INFO] [stdout] | ^^ help: change this to: `s` [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: this let-binding has unit value [INFO] [stdout] --> crates/bbs_server/src/api/like_controller.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 79 | / let status = s [INFO] [stdout] 80 | | .like [INFO] [stdout] 81 | | .set_like_status(id, flag, user.unwrap().id, is_like) [INFO] [stdout] 82 | | .await?; [INFO] [stdout] | |________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding and replace variable usages with `()` [INFO] [stdout] | [INFO] [stdout] 79 ~ s [INFO] [stdout] 80 | .like [INFO] [stdout] ... [INFO] [stdout] 114 | } [INFO] [stdout] 115 ~ Ok(HttpResponse::Ok().json(())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> crates/bbs_server/src/api/post_controller.rs:115:63 [INFO] [stdout] | [INFO] [stdout] 115 | if let Some(key) = s.storage.try_parse_url_to_key(&old_cover) { [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `old_cover` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> crates/bbs_server/src/api/post_controller.rs:129:63 [INFO] [stdout] | [INFO] [stdout] 129 | if let Some(key) = s.storage.try_parse_url_to_key(&cover_url) { [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `cover_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: using `clone` on type `u32` which implements the `Copy` trait [INFO] [stdout] --> crates/bbs_server/src/api/post_controller.rs:223:49 [INFO] [stdout] | [INFO] [stdout] 223 | let post_ids = items.iter().map(|p| p.id.clone()).collect(); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `p.id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> crates/bbs_server/src/api/storage_controller/model.rs:26:1 [INFO] [stdout] | [INFO] [stdout] 26 | impl Into for SignedFlag { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] = note: `#[warn(clippy::from_over_into)]` on by default [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 26 ~ impl From for ObjectFlag { [INFO] [stdout] 27 ~ fn from(val: SignedFlag) -> Self { [INFO] [stdout] 28 ~ match val { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct implementation of `ToString` [INFO] [stdout] --> crates/bbs_server/src/api/user_controller/model.rs:64:1 [INFO] [stdout] | [INFO] [stdout] 64 | / impl ToString for GetUsersSort { [INFO] [stdout] 65 | | fn to_string(&self) -> String { [INFO] [stdout] 66 | | match &self { [INFO] [stdout] 67 | | GetUsersSort::Id => "id".to_owned(), [INFO] [stdout] ... | [INFO] [stdout] 73 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: prefer implementing `Display` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_trait_impl [INFO] [stdout] = note: `#[warn(clippy::to_string_trait_impl)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/bbs_server/src/api/user_controller.rs:90:8 [INFO] [stdout] | [INFO] [stdout] 90 | if !s.user.get_user(tx.as_mut(), id).await?.is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `s.user.get_user(tx.as_mut(), id).await?.is_none()` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> crates/bbs_server/src/api/user_controller.rs:166:67 [INFO] [stdout] | [INFO] [stdout] 166 | if let Some(key) = s.storage.try_parse_url_to_key(&old_avatar) { [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `old_avatar` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> crates/bbs_server/src/api/user_controller.rs:174:67 [INFO] [stdout] | [INFO] [stdout] 174 | if let Some(key) = s.storage.try_parse_url_to_key(&avatar_url) { [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `avatar_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: struct `GetCommentLikeStatusQuery` is never constructed [INFO] [stdout] --> crates/bbs_server/src/api/comment_controller/model.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct GetCommentLikeStatusQuery { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GetPostsCountQuery` is never constructed [INFO] [stdout] --> crates/bbs_server/src/api/post_controller/model.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct GetPostsCountQuery { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GetUserById` is never constructed [INFO] [stdout] --> crates/bbs_server/src/api/user_controller/model.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct GetUserById { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: needlessly taken reference of both operands [INFO] [stdout] --> crates/bbs_server/src/api/user_controller.rs:295:8 [INFO] [stdout] | [INFO] [stdout] 295 | if &user.password != &to_login.target.password { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] = note: `#[warn(clippy::op_ref)]` on by default [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 295 - if &user.password != &to_login.target.password { [INFO] [stdout] 295 + if user.password != to_login.target.password { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> crates/bbs_server/src/api/util.rs:145:17 [INFO] [stdout] | [INFO] [stdout] 145 | / if !self.data_extended.get_groups_map().contains_key(&id) { [INFO] [stdout] 146 | | self.data_extended.get_groups_map().insert(id, v); [INFO] [stdout] 147 | | } [INFO] [stdout] | |_________________^ help: try: `self.data_extended.get_groups_map().entry(id).or_insert(v);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] = note: `#[warn(clippy::map_entry)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> crates/bbs_server/src/api/api_error.rs:99:9 [INFO] [stdout] | [INFO] [stdout] 98 | let res = actix_web::HttpResponse::build(self.status_code()).json(&self.detail); [INFO] [stdout] | -------------------------------------------------------------------------------- unnecessary `let` binding [INFO] [stdout] 99 | res [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 98 ~ [INFO] [stdout] 99 ~ actix_web::HttpResponse::build(self.status_code()).json(&self.detail) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> crates/bbs_server/src/api/util.rs:187:17 [INFO] [stdout] | [INFO] [stdout] 187 | / if !self [INFO] [stdout] 188 | | .data_extended [INFO] [stdout] 189 | | .get_posts_like_status_map() [INFO] [stdout] 190 | | .contains_key(&id) [INFO] [stdout] 191 | | { [INFO] [stdout] 192 | | self.data_extended.get_posts_like_status_map().insert(id, v); [INFO] [stdout] 193 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 187 ~ self [INFO] [stdout] 188 + .data_extended [INFO] [stdout] 189 + .get_posts_like_status_map().entry(id).or_insert(v); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> crates/bbs_server/src/api/util.rs:213:17 [INFO] [stdout] | [INFO] [stdout] 213 | / if !self [INFO] [stdout] 214 | | .data_extended [INFO] [stdout] 215 | | .get_comments_like_status_map() [INFO] [stdout] 216 | | .contains_key(&id) [INFO] [stdout] ... | [INFO] [stdout] 220 | | .insert(id, v); [INFO] [stdout] 221 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 213 ~ self [INFO] [stdout] 214 + .data_extended [INFO] [stdout] 215 + .get_comments_like_status_map().entry(id).or_insert(v); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> crates/bbs_server/src/api/api_error.rs:414:13 [INFO] [stdout] | [INFO] [stdout] 414 | format!("Pagination limit maximum reached."), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Pagination limit maximum reached.".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> crates/bbs_server/src/api/util.rs:384:25 [INFO] [stdout] | [INFO] [stdout] 384 | check_group(&s, tx, *gid, w).await?; [INFO] [stdout] | ^^ help: change this to: `s` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> crates/bbs_server/src/api/category_controller.rs:110:59 [INFO] [stdout] | [INFO] [stdout] 110 | if let Some(key) = s.storage.try_parse_url_to_key(&cover_url) { [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `cover_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: called `unwrap` on `vkey` after checking its variant with `is_none` [INFO] [stdout] --> crates/bbs_server/src/api/util.rs:558:9 [INFO] [stdout] | [INFO] [stdout] 555 | let vkey = if vkey.is_none() { [INFO] [stdout] | ----------------- help: try: `if let Some() = vkey` [INFO] [stdout] ... [INFO] [stdout] 558 | vkey.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] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> crates/bbs_server/src/api/category_controller.rs:230:63 [INFO] [stdout] | [INFO] [stdout] 230 | if let Some(key) = s.storage.try_parse_url_to_key(&cover_url) { [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `cover_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: name `SDW` contains a capitalized acronym [INFO] [stdout] --> crates/bbs_server/src/api.rs:18:17 [INFO] [stdout] | [INFO] [stdout] 18 | pub(crate) type SDW = web::Data; [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Sdw` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> crates/bbs_server/src/api.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 21 | / let scope = web::scope("/api") [INFO] [stdout] 22 | | // verification controller [INFO] [stdout] 23 | | .service(verification_controller::get_verification) [INFO] [stdout] ... | [INFO] [stdout] 72 | | .service(server_controller::get_server_info); [INFO] [stdout] | |_____________________________________________________- unnecessary `let` binding [INFO] [stdout] 73 | scope [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 21 ~ [INFO] [stdout] 22 ~ web::scope("/api") [INFO] [stdout] 23 + // verification controller [INFO] [stdout] 24 + .service(verification_controller::get_verification) [INFO] [stdout] 25 + // user controller [INFO] [stdout] 26 + .service(user_controller::create_user) [INFO] [stdout] 27 + .service(user_controller::delete_user_by_id) [INFO] [stdout] 28 + .service(user_controller::delete_users_by_ids) [INFO] [stdout] 29 + .service(user_controller::get_user_by_id) [INFO] [stdout] 30 + .service(user_controller::get_users) [INFO] [stdout] 31 + .service(user_controller::update_user) [INFO] [stdout] 32 + .service(user_controller::login_user) [INFO] [stdout] 33 + .service(user_controller::logout_user) [INFO] [stdout] 34 + .service(user_controller::revert_user) [INFO] [stdout] 35 + .service(user_controller::set_user_status) [INFO] [stdout] 36 + // group controller [INFO] [stdout] 37 + .service(group_controller::create_group) [INFO] [stdout] 38 + .service(group_controller::delete_group) [INFO] [stdout] 39 + .service(group_controller::update_group) [INFO] [stdout] 40 + .service(group_controller::get_group) [INFO] [stdout] 41 + .service(group_controller::get_groups) [INFO] [stdout] 42 + .service(group_controller::set_group_status) [INFO] [stdout] 43 + // post controller [INFO] [stdout] 44 + .service(post_controller::create_post) [INFO] [stdout] 45 + .service(post_controller::get_postlinks_with_algorithm) [INFO] [stdout] 46 + .service(post_controller::get_post) [INFO] [stdout] 47 + .service(post_controller::update_post) [INFO] [stdout] 48 + .service(post_controller::set_post_status) [INFO] [stdout] 49 + // comment controller [INFO] [stdout] 50 + .service(comment_controller::create_comment) [INFO] [stdout] 51 + .service(comment_controller::get_comment) [INFO] [stdout] 52 + .service(comment_controller::get_comments) [INFO] [stdout] 53 + .service(comment_controller::update_comment) [INFO] [stdout] 54 + .service(comment_controller::set_comment_status) [INFO] [stdout] 55 + // like controller [INFO] [stdout] 56 + .service(like_controller::get_like_status) [INFO] [stdout] 57 + .service(like_controller::like_action) [INFO] [stdout] 58 + // category controller [INFO] [stdout] 59 + .service(category_controller::create_category) [INFO] [stdout] 60 + .service(category_controller::delete_category) [INFO] [stdout] 61 + .service(category_controller::update_category) [INFO] [stdout] 62 + .service(category_controller::get_categories) [INFO] [stdout] 63 + .service(category_controller::get_category) [INFO] [stdout] 64 + .service(category_controller::set_category_status) [INFO] [stdout] 65 + // storage service controller [INFO] [stdout] 66 + .service(storage_controller::presign_put_url) [INFO] [stdout] 67 + .service(storage_controller::upload_presigned) [INFO] [stdout] 68 + .service(storage_controller::get_static_file) [INFO] [stdout] 69 + // notification controller [INFO] [stdout] 70 + .service(notification_controller::get_user_notifications) [INFO] [stdout] 71 + .service(notification_controller::set_user_notification_readed) [INFO] [stdout] 72 + // server controller [INFO] [stdout] 73 + .service(server_controller::get_server_info) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match can be simplified with `.unwrap_or_default()` [INFO] [stdout] --> crates/bbs_server/src/request_client.rs:44:31 [INFO] [stdout] | [INFO] [stdout] 44 | Some(auth) => match s.user.revert(&auth).await { [INFO] [stdout] | _______________________________^ [INFO] [stdout] 45 | | Ok(user) => user, [INFO] [stdout] 46 | | Err(_) => None, [INFO] [stdout] 47 | | }, [INFO] [stdout] | |_________________^ help: ascribe the type std::option::Option and replace your expression with: `s.user.revert(&auth).await.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: using `clone` on type `u32` which implements the `Copy` trait [INFO] [stdout] --> crates/bbs_server/src/api/comment_controller.rs:82:52 [INFO] [stdout] | [INFO] [stdout] 82 | let comment_ids = items.iter().map(|c| c.id.clone()).collect(); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `c.id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> crates/bbs_server/src/lib.rs:60:33 [INFO] [stdout] | [INFO] [stdout] 60 | .ok_or_else(|| ApiError::no_ip_address_found())? [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `ApiError::no_ip_address_found` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> crates/bbs_server/src/lib.rs:66:29 [INFO] [stdout] | [INFO] [stdout] 66 | .ok_or_else(|| ApiError::no_ip_address_found())? [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `ApiError::no_ip_address_found` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> crates/bbs_server/src/api/like_controller.rs:66:16 [INFO] [stdout] | [INFO] [stdout] 66 | check_user(&s, tx.as_mut(), user, w).await?; // like also is comment. [INFO] [stdout] | ^^ help: change this to: `s` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> crates/bbs_server/src/api/like_controller.rs:70:35 [INFO] [stdout] | [INFO] [stdout] 70 | let post = check_post(&s, tx.as_mut(), id, user, w).await?; [INFO] [stdout] | ^^ help: change this to: `s` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> crates/bbs_server/src/api/like_controller.rs:74:46 [INFO] [stdout] | [INFO] [stdout] 74 | let (_, comment) = check_comment(&s, tx.as_mut(), id, user, w).await?; [INFO] [stdout] | ^^ help: change this to: `s` [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: this let-binding has unit value [INFO] [stdout] --> crates/bbs_server/src/api/like_controller.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 79 | / let status = s [INFO] [stdout] 80 | | .like [INFO] [stdout] 81 | | .set_like_status(id, flag, user.unwrap().id, is_like) [INFO] [stdout] 82 | | .await?; [INFO] [stdout] | |________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding and replace variable usages with `()` [INFO] [stdout] | [INFO] [stdout] 79 ~ s [INFO] [stdout] 80 | .like [INFO] [stdout] ... [INFO] [stdout] 114 | } [INFO] [stdout] 115 ~ Ok(HttpResponse::Ok().json(())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> crates/bbs_server/src/api/post_controller.rs:115:63 [INFO] [stdout] | [INFO] [stdout] 115 | if let Some(key) = s.storage.try_parse_url_to_key(&old_cover) { [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `old_cover` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> crates/bbs_server/src/api/post_controller.rs:129:63 [INFO] [stdout] | [INFO] [stdout] 129 | if let Some(key) = s.storage.try_parse_url_to_key(&cover_url) { [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `cover_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: using `clone` on type `u32` which implements the `Copy` trait [INFO] [stdout] --> crates/bbs_server/src/api/post_controller.rs:223:49 [INFO] [stdout] | [INFO] [stdout] 223 | let post_ids = items.iter().map(|p| p.id.clone()).collect(); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `p.id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> crates/bbs_server/src/api/storage_controller/model.rs:26:1 [INFO] [stdout] | [INFO] [stdout] 26 | impl Into for SignedFlag { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] = note: `#[warn(clippy::from_over_into)]` on by default [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 26 ~ impl From for ObjectFlag { [INFO] [stdout] 27 ~ fn from(val: SignedFlag) -> Self { [INFO] [stdout] 28 ~ match val { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct implementation of `ToString` [INFO] [stdout] --> crates/bbs_server/src/api/user_controller/model.rs:64:1 [INFO] [stdout] | [INFO] [stdout] 64 | / impl ToString for GetUsersSort { [INFO] [stdout] 65 | | fn to_string(&self) -> String { [INFO] [stdout] 66 | | match &self { [INFO] [stdout] 67 | | GetUsersSort::Id => "id".to_owned(), [INFO] [stdout] ... | [INFO] [stdout] 73 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: prefer implementing `Display` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_trait_impl [INFO] [stdout] = note: `#[warn(clippy::to_string_trait_impl)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/bbs_server/src/api/user_controller.rs:90:8 [INFO] [stdout] | [INFO] [stdout] 90 | if !s.user.get_user(tx.as_mut(), id).await?.is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `s.user.get_user(tx.as_mut(), id).await?.is_none()` [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> crates/bbs_server/src/api/user_controller.rs:166:67 [INFO] [stdout] | [INFO] [stdout] 166 | if let Some(key) = s.storage.try_parse_url_to_key(&old_avatar) { [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `old_avatar` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> crates/bbs_server/src/api/user_controller.rs:174:67 [INFO] [stdout] | [INFO] [stdout] 174 | if let Some(key) = s.storage.try_parse_url_to_key(&avatar_url) { [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `avatar_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: needlessly taken reference of both operands [INFO] [stdout] --> crates/bbs_server/src/api/user_controller.rs:295:8 [INFO] [stdout] | [INFO] [stdout] 295 | if &user.password != &to_login.target.password { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stdout] = note: `#[warn(clippy::op_ref)]` on by default [INFO] [stdout] help: use the values directly [INFO] [stdout] | [INFO] [stdout] 295 - if &user.password != &to_login.target.password { [INFO] [stdout] 295 + if user.password != to_login.target.password { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> crates/bbs_server/src/api/util.rs:145:17 [INFO] [stdout] | [INFO] [stdout] 145 | / if !self.data_extended.get_groups_map().contains_key(&id) { [INFO] [stdout] 146 | | self.data_extended.get_groups_map().insert(id, v); [INFO] [stdout] 147 | | } [INFO] [stdout] | |_________________^ help: try: `self.data_extended.get_groups_map().entry(id).or_insert(v);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] = note: `#[warn(clippy::map_entry)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> crates/bbs_server/src/api/util.rs:187:17 [INFO] [stdout] | [INFO] [stdout] 187 | / if !self [INFO] [stdout] 188 | | .data_extended [INFO] [stdout] 189 | | .get_posts_like_status_map() [INFO] [stdout] 190 | | .contains_key(&id) [INFO] [stdout] 191 | | { [INFO] [stdout] 192 | | self.data_extended.get_posts_like_status_map().insert(id, v); [INFO] [stdout] 193 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 187 ~ self [INFO] [stdout] 188 + .data_extended [INFO] [stdout] 189 + .get_posts_like_status_map().entry(id).or_insert(v); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> crates/bbs_server/src/api/util.rs:213:17 [INFO] [stdout] | [INFO] [stdout] 213 | / if !self [INFO] [stdout] 214 | | .data_extended [INFO] [stdout] 215 | | .get_comments_like_status_map() [INFO] [stdout] 216 | | .contains_key(&id) [INFO] [stdout] ... | [INFO] [stdout] 220 | | .insert(id, v); [INFO] [stdout] 221 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 213 ~ self [INFO] [stdout] 214 + .data_extended [INFO] [stdout] 215 + .get_comments_like_status_map().entry(id).or_insert(v); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> crates/bbs_server/src/api/util.rs:384:25 [INFO] [stdout] | [INFO] [stdout] 384 | check_group(&s, tx, *gid, w).await?; [INFO] [stdout] | ^^ help: change this to: `s` [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: called `unwrap` on `vkey` after checking its variant with `is_none` [INFO] [stdout] --> crates/bbs_server/src/api/util.rs:558:9 [INFO] [stdout] | [INFO] [stdout] 555 | let vkey = if vkey.is_none() { [INFO] [stdout] | ----------------- help: try: `if let Some() = vkey` [INFO] [stdout] ... [INFO] [stdout] 558 | vkey.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] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `SDW` contains a capitalized acronym [INFO] [stdout] --> crates/bbs_server/src/api.rs:18:17 [INFO] [stdout] | [INFO] [stdout] 18 | pub(crate) type SDW = web::Data; [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Sdw` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> crates/bbs_server/src/api.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 21 | / let scope = web::scope("/api") [INFO] [stdout] 22 | | // verification controller [INFO] [stdout] 23 | | .service(verification_controller::get_verification) [INFO] [stdout] ... | [INFO] [stdout] 72 | | .service(server_controller::get_server_info); [INFO] [stdout] | |_____________________________________________________- unnecessary `let` binding [INFO] [stdout] 73 | scope [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 21 ~ [INFO] [stdout] 22 ~ web::scope("/api") [INFO] [stdout] 23 + // verification controller [INFO] [stdout] 24 + .service(verification_controller::get_verification) [INFO] [stdout] 25 + // user controller [INFO] [stdout] 26 + .service(user_controller::create_user) [INFO] [stdout] 27 + .service(user_controller::delete_user_by_id) [INFO] [stdout] 28 + .service(user_controller::delete_users_by_ids) [INFO] [stdout] 29 + .service(user_controller::get_user_by_id) [INFO] [stdout] 30 + .service(user_controller::get_users) [INFO] [stdout] 31 + .service(user_controller::update_user) [INFO] [stdout] 32 + .service(user_controller::login_user) [INFO] [stdout] 33 + .service(user_controller::logout_user) [INFO] [stdout] 34 + .service(user_controller::revert_user) [INFO] [stdout] 35 + .service(user_controller::set_user_status) [INFO] [stdout] 36 + // group controller [INFO] [stdout] 37 + .service(group_controller::create_group) [INFO] [stdout] 38 + .service(group_controller::delete_group) [INFO] [stdout] 39 + .service(group_controller::update_group) [INFO] [stdout] 40 + .service(group_controller::get_group) [INFO] [stdout] 41 + .service(group_controller::get_groups) [INFO] [stdout] 42 + .service(group_controller::set_group_status) [INFO] [stdout] 43 + // post controller [INFO] [stdout] 44 + .service(post_controller::create_post) [INFO] [stdout] 45 + .service(post_controller::get_postlinks_with_algorithm) [INFO] [stdout] 46 + .service(post_controller::get_post) [INFO] [stdout] 47 + .service(post_controller::update_post) [INFO] [stdout] 48 + .service(post_controller::set_post_status) [INFO] [stdout] 49 + // comment controller [INFO] [stdout] 50 + .service(comment_controller::create_comment) [INFO] [stdout] 51 + .service(comment_controller::get_comment) [INFO] [stdout] 52 + .service(comment_controller::get_comments) [INFO] [stdout] 53 + .service(comment_controller::update_comment) [INFO] [stdout] 54 + .service(comment_controller::set_comment_status) [INFO] [stdout] 55 + // like controller [INFO] [stdout] 56 + .service(like_controller::get_like_status) [INFO] [stdout] 57 + .service(like_controller::like_action) [INFO] [stdout] 58 + // category controller [INFO] [stdout] 59 + .service(category_controller::create_category) [INFO] [stdout] 60 + .service(category_controller::delete_category) [INFO] [stdout] 61 + .service(category_controller::update_category) [INFO] [stdout] 62 + .service(category_controller::get_categories) [INFO] [stdout] 63 + .service(category_controller::get_category) [INFO] [stdout] 64 + .service(category_controller::set_category_status) [INFO] [stdout] 65 + // storage service controller [INFO] [stdout] 66 + .service(storage_controller::presign_put_url) [INFO] [stdout] 67 + .service(storage_controller::upload_presigned) [INFO] [stdout] 68 + .service(storage_controller::get_static_file) [INFO] [stdout] 69 + // notification controller [INFO] [stdout] 70 + .service(notification_controller::get_user_notifications) [INFO] [stdout] 71 + .service(notification_controller::set_user_notification_readed) [INFO] [stdout] 72 + // server controller [INFO] [stdout] 73 + .service(server_controller::get_server_info) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match can be simplified with `.unwrap_or_default()` [INFO] [stdout] --> crates/bbs_server/src/request_client.rs:44:31 [INFO] [stdout] | [INFO] [stdout] 44 | Some(auth) => match s.user.revert(&auth).await { [INFO] [stdout] | _______________________________^ [INFO] [stdout] 45 | | Ok(user) => user, [INFO] [stdout] 46 | | Err(_) => None, [INFO] [stdout] 47 | | }, [INFO] [stdout] | |_________________^ help: ascribe the type std::option::Option and replace your expression with: `s.user.revert(&auth).await.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: redundant closure [INFO] [stdout] --> crates/bbs_server/src/lib.rs:60:33 [INFO] [stdout] | [INFO] [stdout] 60 | .ok_or_else(|| ApiError::no_ip_address_found())? [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `ApiError::no_ip_address_found` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> crates/bbs_server/src/lib.rs:66:29 [INFO] [stdout] | [INFO] [stdout] 66 | .ok_or_else(|| ApiError::no_ip_address_found())? [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `ApiError::no_ip_address_found` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking LeapTourBBS v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 4m 27s [INFO] running `Command { std: "docker" "inspect" "7c8a17120e1726230349f58b2ef4824655cc8c4e24c7d4a8f6bc5c372cf1b012", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7c8a17120e1726230349f58b2ef4824655cc8c4e24c7d4a8f6bc5c372cf1b012", kill_on_drop: false }` [INFO] [stdout] 7c8a17120e1726230349f58b2ef4824655cc8c4e24c7d4a8f6bc5c372cf1b012