[INFO] cloning repository https://github.com/andrerocker/marvbot.rs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/andrerocker/marvbot.rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fandrerocker%2Fmarvbot.rs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fandrerocker%2Fmarvbot.rs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 15bda9bed11ce2e55b1f75f8d04b37955ea425a0 [INFO] linting andrerocker/marvbot.rs against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fandrerocker%2Fmarvbot.rs" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/andrerocker/marvbot.rs [INFO] finished tweaking git repo https://github.com/andrerocker/marvbot.rs [INFO] tweaked toml for git repo https://github.com/andrerocker/marvbot.rs written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/andrerocker/marvbot.rs 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/andrerocker/marvbot.rs 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] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2024 which implies `resolver = "3"` [INFO] [stderr] | [INFO] [stderr] = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest [INFO] [stderr] = note: to use the edition 2024 resolver, specify `workspace.resolver = "3"` in the workspace root's manifest [INFO] [stderr] = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded postgres-types v0.2.11 [INFO] [stderr] Downloaded scoped-futures v0.1.4 [INFO] [stderr] Downloaded gix-date v0.10.7 [INFO] [stderr] Downloaded serde_ignored v0.1.14 [INFO] [stderr] Downloaded gix-hashtable v0.9.0 [INFO] [stderr] Downloaded phf_shared v0.12.1 [INFO] [stderr] Downloaded is_executable v1.0.5 [INFO] [stderr] Downloaded cargo-platform v0.3.1 [INFO] [stderr] Downloaded tracing-chrome v0.7.2 [INFO] [stderr] Downloaded crates-io v0.40.14 [INFO] [stderr] Downloaded unicode-bom v2.0.3 [INFO] [stderr] Downloaded gix-shallow v0.5.0 [INFO] [stderr] Downloaded gix-negotiate v0.21.0 [INFO] [stderr] Downloaded color-print v0.3.7 [INFO] [stderr] Downloaded cargo-credential v0.4.9 [INFO] [stderr] Downloaded cargo-credential-libsecret v0.5.2 [INFO] [stderr] Downloaded cargo-util v0.2.24 [INFO] [stderr] Downloaded annotate-snippets v0.12.8 [INFO] [stderr] Downloaded gix-dir v0.15.0 [INFO] [stderr] Downloaded gix-pack v0.60.0 [INFO] [stderr] Downloaded pasetors v0.7.7 [INFO] [stderr] Downloaded rdkafka v0.38.0 [INFO] [stderr] Downloaded imara-diff v0.1.8 [INFO] [stderr] Downloaded im-rc v15.1.0 [INFO] [stderr] Downloaded diesel_derives v2.3.4 [INFO] [stderr] Downloaded curl v0.4.49 [INFO] [stderr] Downloaded git2 v0.20.2 [INFO] [stderr] Downloaded orion v0.17.11 [INFO] [stderr] Downloaded gix v0.73.0 [INFO] [stderr] Downloaded prodash v30.0.1 [INFO] [stderr] Downloaded prometheus v0.14.0 [INFO] [stderr] Downloaded cargo-util-schemas v0.10.1 [INFO] [stderr] Downloaded gix-protocol v0.51.0 [INFO] [stderr] Downloaded gix-ref v0.53.1 [INFO] [stderr] Downloaded gix-config v0.46.0 [INFO] [stderr] Downloaded gix-index v0.41.0 [INFO] [stderr] Downloaded diesel v2.3.3 [INFO] [stderr] Downloaded tokio-cron-scheduler v0.15.1 [INFO] [stderr] Downloaded jiff-static v0.2.16 [INFO] [stderr] Downloaded tokio-postgres v0.7.15 [INFO] [stderr] Downloaded diesel-async v0.7.4 [INFO] [stderr] Downloaded gix-odb v0.70.0 [INFO] [stderr] Downloaded gix-diff v0.53.0 [INFO] [stderr] Downloaded gix-discover v0.41.0 [INFO] [stderr] Downloaded libssh2-sys v0.3.1 [INFO] [stderr] Downloaded fiat-crypto v0.3.0 [INFO] [stderr] Downloaded gix-filter v0.20.0 [INFO] [stderr] Downloaded gix-status v0.20.0 [INFO] [stderr] Downloaded gix-transport v0.48.0 [INFO] [stderr] Downloaded gix-url v0.32.0 [INFO] [stderr] Downloaded gix-object v0.50.2 [INFO] [stderr] Downloaded http-auth v0.1.10 [INFO] [stderr] Downloaded croner v3.0.1 [INFO] [stderr] Downloaded jiff v0.2.16 [INFO] [stderr] Downloaded jiff-tzdb v0.1.4 [INFO] [stderr] Downloaded cargo-credential-macos-keychain v0.4.17 [INFO] [stderr] Downloaded sha1-checked v0.10.0 [INFO] [stderr] Downloaded chrono-tz v0.10.4 [INFO] [stderr] Downloaded libz-sys v1.1.23 [INFO] [stderr] Downloaded cargo-credential-wincred v0.4.17 [INFO] [stderr] Downloaded color-print-proc-macro v0.3.7 [INFO] [stderr] Downloaded git2-curl v0.21.0 [INFO] [stderr] Downloaded gix-revision v0.35.0 [INFO] [stderr] Downloaded gix-submodule v0.20.0 [INFO] [stderr] Downloaded gix-credentials v0.30.0 [INFO] [stderr] Downloaded gix-packetline v0.19.3 [INFO] [stderr] Downloaded kstring v2.0.2 [INFO] [stderr] Downloaded gix-attributes v0.27.0 [INFO] [stderr] Downloaded gix-fs v0.16.1 [INFO] [stderr] Downloaded gix-revwalk v0.21.0 [INFO] [stderr] Downloaded ed25519-compact v2.1.1 [INFO] [stderr] Downloaded miow v0.6.1 [INFO] [stderr] Downloaded clap_complete v4.5.60 [INFO] [stderr] Downloaded maybe-async v0.2.10 [INFO] [stderr] Downloaded gix-packetline-blocking v0.19.3 [INFO] [stderr] Downloaded gix-refspec v0.31.0 [INFO] [stderr] Downloaded gix-tempfile v18.0.0 [INFO] [stderr] Downloaded gix-commitgraph v0.29.0 [INFO] [stderr] Downloaded gix-traverse v0.47.0 [INFO] [stderr] Downloaded os_info v3.13.0 [INFO] [stderr] Downloaded gix-pathspec v0.12.0 [INFO] [stderr] Downloaded gix-prompt v0.11.2 [INFO] [stderr] Downloaded gix-sec v0.12.2 [INFO] [stderr] Downloaded gix-quote v0.6.1 [INFO] [stderr] Downloaded gix-bitmap v0.2.15 [INFO] [stderr] Downloaded gix-chunk v0.4.12 [INFO] [stderr] Downloaded gix-features v0.43.1 [INFO] [stderr] Downloaded gix-path v0.10.21 [INFO] [stderr] Downloaded rustc-stable-hash v0.1.2 [INFO] [stderr] Downloaded phf v0.12.1 [INFO] [stderr] Downloaded gix-glob v0.21.0 [INFO] [stderr] Downloaded gix-actor v0.35.6 [INFO] [stderr] Downloaded rustfix v0.9.3 [INFO] [stderr] Downloaded gix-config-value v0.15.3 [INFO] [stderr] Downloaded gix-ignore v0.16.0 [INFO] [stderr] Downloaded gix-lock v18.0.0 [INFO] [stderr] Downloaded gix-validate v0.10.1 [INFO] [stderr] Downloaded opener v0.8.3 [INFO] [stderr] Downloaded shell-escape v0.1.5 [INFO] [stderr] Downloaded gix-command v0.6.3 [INFO] [stderr] Downloaded gix-hash v0.19.0 [INFO] [stderr] Downloaded gix-utils v0.3.1 [INFO] [stderr] Downloaded gix-trace v0.1.15 [INFO] [stderr] Downloaded gix-worktree v0.42.0 [INFO] [stderr] Downloaded ct-codecs v1.1.6 [INFO] [stderr] Downloaded bb8 v0.9.0 [INFO] [stderr] Downloaded chunked_transfer v1.5.0 [INFO] [stderr] Downloaded postgres-protocol v0.6.9 [INFO] [stderr] Downloaded faster-hex v0.10.0 [INFO] [stderr] Downloaded libgit2-sys v0.18.2+1.9.1 [INFO] [stderr] Downloaded curl-sys v0.4.84+curl-8.17.0 [INFO] [stderr] Downloaded libnghttp2-sys v0.1.11+1.64.0 [INFO] [stderr] Downloaded cargo v0.92.0 [INFO] [stderr] Downloaded rdkafka-sys v4.9.0+2.10.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 38bb37916782d1915d110c8b291684d0289367cc52dc7836624275eff7e548b5 [INFO] running `Command { std: "docker" "start" "-a" "38bb37916782d1915d110c8b291684d0289367cc52dc7836624275eff7e548b5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "38bb37916782d1915d110c8b291684d0289367cc52dc7836624275eff7e548b5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "38bb37916782d1915d110c8b291684d0289367cc52dc7836624275eff7e548b5", kill_on_drop: false }` [INFO] [stdout] 38bb37916782d1915d110c8b291684d0289367cc52dc7836624275eff7e548b5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] f0d7a3542b1957322751cf7e80bffa8ae71c4163edb1f37ae3b44837d7041152 [INFO] running `Command { std: "docker" "start" "-a" "f0d7a3542b1957322751cf7e80bffa8ae71c4163edb1f37ae3b44837d7041152", kill_on_drop: false }` [INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2024 which implies `resolver = "3"` [INFO] [stderr] | [INFO] [stderr] = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest [INFO] [stderr] = note: to use the edition 2024 resolver, specify `workspace.resolver = "3"` in the workspace root's manifest [INFO] [stderr] = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions [INFO] [stderr] Compiling quote v1.0.42 [INFO] [stderr] Checking smallvec v1.15.1 [INFO] [stderr] Checking aho-corasick v1.1.4 [INFO] [stderr] Checking regex-syntax v0.8.8 [INFO] [stderr] Compiling proc-macro2 v1.0.103 [INFO] [stderr] Checking bytes v1.11.0 [INFO] [stderr] Compiling libc v0.2.177 [INFO] [stderr] Checking subtle v2.6.1 [INFO] [stderr] Checking parking_lot_core v0.9.12 [INFO] [stderr] Compiling find-msvc-tools v0.1.5 [INFO] [stderr] Compiling generic-array v0.14.9 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Checking const-oid v0.9.6 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling syn v2.0.110 [INFO] [stderr] Checking unicode-normalization v0.1.25 [INFO] [stderr] Checking gix-trace v0.1.15 [INFO] [stderr] Checking zlib-rs v0.5.2 [INFO] [stderr] Checking prodash v30.0.1 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking regex-automata v0.4.13 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Compiling heapless v0.8.0 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Checking libz-rs-sys v0.5.2 [INFO] [stderr] Checking hash32 v0.3.1 [INFO] [stderr] Checking winnow v0.7.13 [INFO] [stderr] Checking socket2 v0.6.1 [INFO] [stderr] Checking flate2 v1.1.5 [INFO] [stderr] Compiling jobserver v0.1.34 [INFO] [stderr] Compiling rustix v1.1.2 [INFO] [stderr] Checking jiff v0.2.16 [INFO] [stderr] Compiling cc v1.2.46 [INFO] [stderr] Checking faster-hex v0.10.0 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Checking hashbrown v0.15.5 [INFO] [stderr] Checking sha1-checked v0.10.0 [INFO] [stderr] Checking getrandom v0.2.16 [INFO] [stderr] Checking mio v1.1.0 [INFO] [stderr] Checking dashmap v6.1.0 [INFO] [stderr] Checking hmac v0.12.1 [INFO] [stderr] Checking hashbrown v0.16.0 [INFO] [stderr] Compiling serde_json v1.0.145 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking sha2 v0.10.9 [INFO] [stderr] Checking unicode-bom v2.0.3 [INFO] [stderr] Checking bstr v1.12.1 [INFO] [stderr] Checking http v1.3.1 [INFO] [stderr] Compiling openssl-sys v0.9.111 [INFO] [stderr] Compiling libz-sys v1.1.23 [INFO] [stderr] Checking tempfile v3.23.0 [INFO] [stderr] Checking gix-utils v0.3.1 [INFO] [stderr] Checking indexmap v2.12.0 [INFO] [stderr] Compiling libnghttp2-sys v0.1.11+1.64.0 [INFO] [stderr] Compiling curl-sys v0.4.84+curl-8.17.0 [INFO] [stderr] Checking rand_core v0.9.3 [INFO] [stderr] Checking base64ct v1.8.0 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking pem-rfc7468 v0.7.0 [INFO] [stderr] Compiling darling_core v0.21.3 [INFO] [stderr] Checking kstring v2.0.2 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Checking gix-sec v0.12.2 [INFO] [stderr] Checking shell-words v1.1.0 [INFO] [stderr] Checking der v0.7.10 [INFO] [stderr] Checking rand v0.9.2 [INFO] [stderr] Checking http-body v1.0.1 [INFO] [stderr] Checking filetime v0.2.26 [INFO] [stderr] Checking unicode-properties v0.1.4 [INFO] [stderr] Checking spki v0.7.3 [INFO] [stderr] Checking stringprep v0.1.5 [INFO] [stderr] Compiling libssh2-sys v0.3.1 [INFO] [stderr] Checking regex v1.12.2 [INFO] [stderr] Checking toml_parser v1.0.4 [INFO] [stderr] Checking serde_spanned v1.0.3 [INFO] [stderr] Compiling thiserror-impl v2.0.17 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Checking thiserror v2.0.17 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Checking gix-validate v0.10.1 [INFO] [stderr] Checking gix-path v0.10.21 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking gix-date v0.10.7 [INFO] [stderr] Checking gix-features v0.43.1 [INFO] [stderr] Checking gix-chunk v0.4.12 [INFO] [stderr] Checking gix-actor v0.35.6 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Checking gix-quote v0.6.1 [INFO] [stderr] Checking gix-hash v0.19.0 [INFO] [stderr] Checking yoke v0.8.1 [INFO] [stderr] Checking gix-fs v0.16.1 [INFO] [stderr] Compiling tracing-attributes v0.1.30 [INFO] [stderr] Checking tokio v1.48.0 [INFO] [stderr] Checking zerotrie v0.2.3 [INFO] [stderr] Checking gix-hashtable v0.9.0 [INFO] [stderr] Checking gix-tempfile v18.0.0 [INFO] [stderr] Checking gix-object v0.50.2 [INFO] [stderr] Checking zerovec v0.11.5 [INFO] [stderr] Checking gix-commitgraph v0.29.0 [INFO] [stderr] Checking gix-lock v18.0.0 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Checking gix-glob v0.21.0 [INFO] [stderr] Checking gix-config-value v0.15.3 [INFO] [stderr] Checking gix-attributes v0.27.0 [INFO] [stderr] Checking tinystr v0.8.2 [INFO] [stderr] Checking potential_utf v0.1.4 [INFO] [stderr] Checking icu_locale_core v2.1.1 [INFO] [stderr] Checking icu_collections v2.1.1 [INFO] [stderr] Checking gix-revwalk v0.21.0 [INFO] [stderr] Checking gix-command v0.6.3 [INFO] [stderr] Compiling darling_macro v0.21.3 [INFO] [stderr] Checking gix-ref v0.53.1 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Compiling darling v0.21.3 [INFO] [stderr] Compiling toml_datetime v0.7.3 [INFO] [stderr] Checking icu_provider v2.1.1 [INFO] [stderr] Checking md-5 v0.10.6 [INFO] [stderr] Compiling pq-sys v0.7.5 [INFO] [stderr] Checking icu_properties v2.1.1 [INFO] [stderr] Checking icu_normalizer v2.1.1 [INFO] [stderr] Checking rustls-pki-types v1.13.0 [INFO] [stderr] Checking fallible-iterator v0.2.0 [INFO] [stderr] Compiling toml_writer v1.0.4 [INFO] [stderr] Compiling curl v0.4.49 [INFO] [stderr] Compiling diesel_derives v2.3.4 [INFO] [stderr] Compiling time-core v0.1.6 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling openssl v0.10.75 [INFO] [stderr] Compiling time-macros v0.2.24 [INFO] [stderr] Checking postgres-protocol v0.6.9 [INFO] [stderr] Checking deranged v0.5.5 [INFO] [stderr] Compiling toml_edit v0.23.7 [INFO] [stderr] Compiling dsl_auto_type v0.2.0 [INFO] [stderr] Checking gix-traverse v0.47.0 [INFO] [stderr] Checking gix-bitmap v0.2.15 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking pkcs8 v0.10.2 [INFO] [stderr] Checking idna v1.1.0 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Compiling diesel_table_macro_syntax v0.3.0 [INFO] [stderr] Checking url v2.5.7 [INFO] [stderr] Checking phf_shared v0.13.1 [INFO] [stderr] Checking ff v0.13.1 [INFO] [stderr] Checking tokio-util v0.7.17 [INFO] [stderr] Checking scheduled-thread-pool v0.2.7 [INFO] [stderr] Compiling rustls v0.23.35 [INFO] [stderr] Checking base16ct v0.2.0 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Checking r2d2 v0.8.10 [INFO] [stderr] Checking time v0.3.44 [INFO] [stderr] Checking phf v0.13.1 [INFO] [stderr] Checking sec1 v0.7.3 [INFO] [stderr] Checking gix-url v0.32.0 [INFO] [stderr] Checking group v0.13.0 [INFO] [stderr] Checking rustls-webpki v0.103.8 [INFO] [stderr] Compiling proc-macro-crate v3.4.0 [INFO] [stderr] Checking h2 v0.4.12 [INFO] [stderr] Checking gix-index v0.41.0 [INFO] [stderr] Checking postgres-types v0.2.11 [INFO] [stderr] Checking toml v0.9.8 [INFO] [stderr] Checking gix-pathspec v0.12.0 [INFO] [stderr] Checking gix-ignore v0.16.0 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling libgit2-sys v0.18.2+1.9.1 [INFO] [stderr] Checking crypto-bigint v0.5.5 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Checking hkdf v0.12.4 [INFO] [stderr] Checking whoami v1.6.1 [INFO] [stderr] Checking downcast-rs v2.0.2 [INFO] [stderr] Checking tokio-postgres v0.7.15 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Checking gix-worktree v0.42.0 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Compiling num_enum_derive v0.7.5 [INFO] [stderr] Checking hyper v1.8.1 [INFO] [stderr] Checking bb8 v0.9.0 [INFO] [stderr] Checking gix-revision v0.35.0 [INFO] [stderr] Checking elliptic-curve v0.13.8 [INFO] [stderr] Checking gix-prompt v0.11.2 [INFO] [stderr] Checking gix-packetline-blocking v0.19.3 [INFO] [stderr] Checking scoped-futures v0.1.4 [INFO] [stderr] Compiling rdkafka-sys v4.9.0+2.10.0 [INFO] [stderr] Checking hyper-util v0.1.18 [INFO] [stderr] Compiling erased-serde v0.4.9 [INFO] [stderr] Checking half v1.8.3 [INFO] [stderr] Checking tower v0.5.2 [INFO] [stderr] Checking serde_cbor v0.11.2 [INFO] [stderr] Compiling nix v0.30.1 [INFO] [stderr] Checking gix-filter v0.20.0 [INFO] [stderr] Checking num_enum v0.7.5 [INFO] [stderr] Checking gix-credentials v0.30.0 [INFO] [stderr] Checking gix-refspec v0.31.0 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Compiling derive_builder_core v0.20.2 [INFO] [stderr] Compiling crc32fast v1.5.0 [INFO] [stderr] Checking webpki-roots v1.0.3 [INFO] [stderr] Checking gix-discover v0.41.0 [INFO] [stderr] Checking gix-packetline v0.19.3 [INFO] [stderr] Checking tokio-rustls v0.26.4 [INFO] [stderr] Checking http-body-util v0.1.3 [INFO] [stderr] Checking terminal_size v0.4.3 [INFO] [stderr] Compiling libsqlite3-sys v0.35.0 [INFO] [stderr] Checking signature v2.2.0 [INFO] [stderr] Checking rfc6979 v0.4.0 [INFO] [stderr] Checking imara-diff v0.1.8 [INFO] [stderr] Checking iana-time-zone v0.1.64 [INFO] [stderr] Checking iri-string v0.7.9 [INFO] [stderr] Checking clap_lex v0.7.6 [INFO] [stderr] Checking gix-diff v0.53.0 [INFO] [stderr] Checking clap_builder v4.5.51 [INFO] [stderr] Compiling derive_builder_macro v0.20.2 [INFO] [stderr] Checking diesel v2.3.3 [INFO] [stderr] Checking gix-pack v0.60.0 [INFO] [stderr] Checking tower-http v0.6.6 [INFO] [stderr] Checking chrono v0.4.42 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Checking ecdsa v0.16.9 [INFO] [stderr] Checking hyper-tls v0.6.0 [INFO] [stderr] Checking hyper-rustls v0.27.7 [INFO] [stderr] Checking gix-dir v0.15.0 [INFO] [stderr] Checking gix-transport v0.48.0 [INFO] [stderr] Compiling tar v0.4.44 [INFO] [stderr] Checking primeorder v0.13.6 [INFO] [stderr] Checking gix-config v0.46.0 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking gix-negotiate v0.21.0 [INFO] [stderr] Checking gix-shallow v0.5.0 [INFO] [stderr] Compiling maybe-async v0.2.10 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Checking env_filter v0.1.4 [INFO] [stderr] Checking ordered-float v2.10.1 [INFO] [stderr] Checking globset v0.4.18 [INFO] [stderr] Compiling blake3 v1.8.2 [INFO] [stderr] Checking matchers v0.2.0 [INFO] [stderr] Checking phf_shared v0.12.1 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Checking bitmaps v2.1.0 [INFO] [stderr] Compiling im-rc v15.1.0 [INFO] [stderr] Checking fiat-crypto v0.3.0 [INFO] [stderr] Compiling chrono-tz v0.10.4 [INFO] [stderr] Checking arc-swap v1.7.1 [INFO] [stderr] Compiling protobuf v3.7.2 [INFO] [stderr] Compiling prometheus v0.13.4 [INFO] [stderr] Checking sized-chunks v0.6.5 [INFO] [stderr] Checking reqwest v0.12.24 [INFO] [stderr] Checking gix-odb v0.70.0 [INFO] [stderr] Checking strum v0.27.2 [INFO] [stderr] Checking tracing-subscriber v0.3.20 [INFO] [stderr] Checking phf v0.12.1 [INFO] [stderr] Checking ignore v0.4.25 [INFO] [stderr] Checking gix-protocol v0.51.0 [INFO] [stderr] Checking gix-submodule v0.20.0 [INFO] [stderr] Checking serde-value v0.7.0 [INFO] [stderr] Checking env_logger v0.11.8 [INFO] [stderr] Compiling color-print-proc-macro v0.3.7 [INFO] [stderr] Compiling cargo v0.92.0 [INFO] [stderr] Checking serde-untagged v0.1.9 [INFO] [stderr] Checking p384 v0.13.1 [INFO] [stderr] Checking gix-status v0.20.0 [INFO] [stderr] Checking clap v4.5.51 [INFO] [stderr] Checking derive_builder v0.20.2 [INFO] [stderr] Checking protobuf-support v3.7.2 [INFO] [stderr] Checking cargo-credential v0.4.9 [INFO] [stderr] Checking rand_xoshiro v0.6.0 [INFO] [stderr] Checking ed25519-compact v2.1.1 [INFO] [stderr] Checking hashlink v0.10.0 [INFO] [stderr] Checking semver v1.0.27 [INFO] [stderr] Compiling tokio-cron-scheduler v0.15.1 [INFO] [stderr] Compiling prometheus v0.14.0 [INFO] [stderr] Checking shell-escape v0.1.5 [INFO] [stderr] Checking chunked_transfer v1.5.0 [INFO] [stderr] Checking ct-codecs v1.1.6 [INFO] [stderr] Checking is_executable v1.0.5 [INFO] [stderr] Checking ascii v1.1.0 [INFO] [stderr] Checking shlex v1.3.0 [INFO] [stderr] Checking clap_complete v4.5.60 [INFO] [stderr] Checking cargo-util-schemas v0.10.1 [INFO] [stderr] Checking tiny_http v0.10.0 [INFO] [stderr] Checking cargo-util v0.2.24 [INFO] [stderr] Checking annotate-snippets v0.12.8 [INFO] [stderr] Checking cargo-credential-libsecret v0.5.2 [INFO] [stderr] Checking gix v0.73.0 [INFO] [stderr] Checking rusqlite v0.37.0 [INFO] [stderr] Checking croner v3.0.1 [INFO] [stderr] Checking color-print v0.3.7 [INFO] [stderr] Checking os_info v3.13.0 [INFO] [stderr] Checking tracing-chrome v0.7.2 [INFO] [stderr] Checking orion v0.17.11 [INFO] [stderr] Checking crates-io v0.40.14 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking pasetors v0.7.7 [INFO] [stderr] Checking cargo-platform v0.3.1 [INFO] [stderr] Checking rustfix v0.9.3 [INFO] [stderr] Compiling num-derive v0.4.2 [INFO] [stderr] Checking opener v0.8.3 [INFO] [stderr] Checking serde_ignored v0.1.14 [INFO] [stderr] Checking uuid v1.18.1 [INFO] [stderr] Checking http-auth v0.1.10 [INFO] [stderr] Checking pathdiff v0.2.3 [INFO] [stderr] Checking lazycell v1.3.0 [INFO] [stderr] Checking supports-hyperlinks v3.1.0 [INFO] [stderr] Checking supports-unicode v3.0.0 [INFO] [stderr] Checking rustc-stable-hash v0.1.2 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Checking prometheus_exporter v0.8.5 [INFO] [stderr] Checking maplit v1.0.2 [INFO] [stderr] Checking diesel-async v0.7.4 [INFO] [stderr] Checking marv_api v0.1.0 (/opt/rustwide/workdir/marv_api) [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> marv_api/src/marv_api/config.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | return Ok(config); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 30 - return Ok(config); [INFO] [stdout] 30 + Ok(config) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> marv_api/src/marv_api/helper.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | return results; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 40 - return results; [INFO] [stdout] 40 + results [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> marv_api/src/marv_api/helper.rs:26:45 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn regex_to_map(pattern: &str, payload: &String) -> HashMap { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 26 - pub fn regex_to_map(pattern: &str, payload: &String) -> HashMap { [INFO] [stdout] 26 + pub fn regex_to_map(pattern: &str, payload: &str) -> HashMap { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Some` variant of the iterator element is used [INFO] [stdout] --> marv_api/src/marv_api/helper.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | / for name in regex.capture_names() { [INFO] [stdout] 32 | | if let Some(name_str) = name { [INFO] [stdout] 33 | | if let Some(matched_value) = caps.name(name_str) { [INFO] [stdout] 34 | | results.insert(name_str.into(), matched_value.as_str().into()); [INFO] [stdout] ... | [INFO] [stdout] 37 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> marv_api/src/marv_api/helper.rs:32:13 [INFO] [stdout] | [INFO] [stdout] 32 | / if let Some(name_str) = name { [INFO] [stdout] 33 | | if let Some(matched_value) = caps.name(name_str) { [INFO] [stdout] 34 | | results.insert(name_str.into(), matched_value.as_str().into()); [INFO] [stdout] 35 | | } [INFO] [stdout] 36 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] = note: `#[warn(clippy::manual_flatten)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 31 ~ for name_str in regex.capture_names().flatten() { [INFO] [stdout] 32 + if let Some(matched_value) = caps.name(name_str) { [INFO] [stdout] 33 + results.insert(name_str.into(), matched_value.as_str().into()); [INFO] [stdout] 34 + } [INFO] [stdout] 35 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> marv_api/src/marv_api/helper.rs:32:13 [INFO] [stdout] | [INFO] [stdout] 32 | / if let Some(name_str) = name { [INFO] [stdout] 33 | | if let Some(matched_value) = caps.name(name_str) { [INFO] [stdout] 34 | | results.insert(name_str.into(), matched_value.as_str().into()); [INFO] [stdout] 35 | | } [INFO] [stdout] 36 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 32 ~ if let Some(name_str) = name [INFO] [stdout] 33 ~ && let Some(matched_value) = caps.name(name_str) { [INFO] [stdout] 34 | results.insert(name_str.into(), matched_value.as_str().into()); [INFO] [stdout] 35 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> marv_api/src/marv_api/helper.rs:58:28 [INFO] [stdout] | [INFO] [stdout] 58 | let channel = safe_get(&metadata, "channel")?; [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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] --> marv_api/src/marv_api/helper.rs:81:29 [INFO] [stdout] | [INFO] [stdout] 81 | Ok(vec![channel_message(&metadata, message)?]) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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] --> marv_api/src/marv_api/helper.rs:103:25 [INFO] [stdout] | [INFO] [stdout] 103 | let nick = safe_get(&metadata, "nick")?; [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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] --> marv_api/src/marv_api/helper.rs:104:28 [INFO] [stdout] | [INFO] [stdout] 104 | let channel = safe_get(&metadata, "channel")?; [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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] --> marv_api/src/marv_api/helper.rs:129:34 [INFO] [stdout] | [INFO] [stdout] 129 | Ok(vec![channel_user_message(&metadata, message)?]) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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 can be `std::io::Error::other(_)` [INFO] [stdout] --> marv_api/src/marv_api/helper.rs:149:5 [INFO] [stdout] | [INFO] [stdout] 149 | Error::new(ErrorKind::Other, message) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] = note: `#[warn(clippy::io_other_error)]` on by default [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 149 - Error::new(ErrorKind::Other, message) [INFO] [stdout] 149 + Error::other(message) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> marv_api/src/marv_api/helper.rs:179:33 [INFO] [stdout] | [INFO] [stdout] 179 | pub fn join(items: &Vec, separator: &str) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 179 - pub fn join(items: &Vec, separator: &str) -> String { [INFO] [stdout] 179 + pub fn join(items: &[T], separator: &str) -> String { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> marv_api/src/marv_api/plugins.rs:11:36 [INFO] [stdout] | [INFO] [stdout] 11 | fn responds_to(&self, message: &String) -> bool; [INFO] [stdout] | ^^^^^^^ help: change this to: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> marv_api/src/marv_api/plugins.rs:12:38 [INFO] [stdout] | [INFO] [stdout] 12 | async fn perform(&self, message: &String) -> Result, Error>; [INFO] [stdout] | ^^^^^^^ help: change this to: `&'life1 str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> marv_api/src/marv_api/config.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | return Ok(config); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 30 - return Ok(config); [INFO] [stdout] 30 + Ok(config) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> marv_api/src/marv_api/helper.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | return results; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 40 - return results; [INFO] [stdout] 40 + results [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> marv_api/src/marv_api/helper.rs:26:45 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn regex_to_map(pattern: &str, payload: &String) -> HashMap { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 26 - pub fn regex_to_map(pattern: &str, payload: &String) -> HashMap { [INFO] [stdout] 26 + pub fn regex_to_map(pattern: &str, payload: &str) -> HashMap { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Some` variant of the iterator element is used [INFO] [stdout] --> marv_api/src/marv_api/helper.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | / for name in regex.capture_names() { [INFO] [stdout] 32 | | if let Some(name_str) = name { [INFO] [stdout] 33 | | if let Some(matched_value) = caps.name(name_str) { [INFO] [stdout] 34 | | results.insert(name_str.into(), matched_value.as_str().into()); [INFO] [stdout] ... | [INFO] [stdout] 37 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> marv_api/src/marv_api/helper.rs:32:13 [INFO] [stdout] | [INFO] [stdout] 32 | / if let Some(name_str) = name { [INFO] [stdout] 33 | | if let Some(matched_value) = caps.name(name_str) { [INFO] [stdout] 34 | | results.insert(name_str.into(), matched_value.as_str().into()); [INFO] [stdout] 35 | | } [INFO] [stdout] 36 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] = note: `#[warn(clippy::manual_flatten)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 31 ~ for name_str in regex.capture_names().flatten() { [INFO] [stdout] 32 + if let Some(matched_value) = caps.name(name_str) { [INFO] [stdout] 33 + results.insert(name_str.into(), matched_value.as_str().into()); [INFO] [stdout] 34 + } [INFO] [stdout] 35 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> marv_api/src/marv_api/helper.rs:32:13 [INFO] [stdout] | [INFO] [stdout] 32 | / if let Some(name_str) = name { [INFO] [stdout] 33 | | if let Some(matched_value) = caps.name(name_str) { [INFO] [stdout] 34 | | results.insert(name_str.into(), matched_value.as_str().into()); [INFO] [stdout] 35 | | } [INFO] [stdout] 36 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 32 ~ if let Some(name_str) = name [INFO] [stdout] 33 ~ && let Some(matched_value) = caps.name(name_str) { [INFO] [stdout] 34 | results.insert(name_str.into(), matched_value.as_str().into()); [INFO] [stdout] 35 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> marv_api/src/marv_api/helper.rs:58:28 [INFO] [stdout] | [INFO] [stdout] 58 | let channel = safe_get(&metadata, "channel")?; [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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] --> marv_api/src/marv_api/helper.rs:81:29 [INFO] [stdout] | [INFO] [stdout] 81 | Ok(vec![channel_message(&metadata, message)?]) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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] --> marv_api/src/marv_api/helper.rs:103:25 [INFO] [stdout] | [INFO] [stdout] 103 | let nick = safe_get(&metadata, "nick")?; [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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] --> marv_api/src/marv_api/helper.rs:104:28 [INFO] [stdout] | [INFO] [stdout] 104 | let channel = safe_get(&metadata, "channel")?; [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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] --> marv_api/src/marv_api/helper.rs:129:34 [INFO] [stdout] | [INFO] [stdout] 129 | Ok(vec![channel_user_message(&metadata, message)?]) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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 can be `std::io::Error::other(_)` [INFO] [stdout] --> marv_api/src/marv_api/helper.rs:149:5 [INFO] [stdout] | [INFO] [stdout] 149 | Error::new(ErrorKind::Other, message) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] = note: `#[warn(clippy::io_other_error)]` on by default [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 149 - Error::new(ErrorKind::Other, message) [INFO] [stdout] 149 + Error::other(message) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> marv_api/src/marv_api/helper.rs:179:33 [INFO] [stdout] | [INFO] [stdout] 179 | pub fn join(items: &Vec, separator: &str) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 179 - pub fn join(items: &Vec, separator: &str) -> String { [INFO] [stdout] 179 + pub fn join(items: &[T], separator: &str) -> String { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> marv_api/src/marv_api/plugins.rs:11:36 [INFO] [stdout] | [INFO] [stdout] 11 | fn responds_to(&self, message: &String) -> bool; [INFO] [stdout] | ^^^^^^^ help: change this to: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> marv_api/src/marv_api/plugins.rs:12:38 [INFO] [stdout] | [INFO] [stdout] 12 | async fn perform(&self, message: &String) -> Result, Error>; [INFO] [stdout] | ^^^^^^^ help: change this to: `&'life1 str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking git2 v0.20.2 [INFO] [stderr] Checking git2-curl v0.21.0 [INFO] [stderr] Checking rdkafka v0.38.0 [INFO] [stderr] Checking marv_plugins v0.1.0 (/opt/rustwide/workdir/marv_plugins) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> marv_plugins/src/marv_plugins/kafka/producer.rs:30:13 [INFO] [stdout] | [INFO] [stdout] 30 | producer: producer, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `producer` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> marv_plugins/src/marv_plugins/todo/adapter.rs:32:13 [INFO] [stdout] | [INFO] [stdout] 32 | id: id, [INFO] [stdout] | ^^^^^^ help: replace it with: `id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> marv_plugins/src/marv_plugins/kafka/producer.rs:30:13 [INFO] [stdout] | [INFO] [stdout] 30 | producer: producer, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `producer` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> marv_plugins/src/marv_plugins/todo/adapter.rs:32:13 [INFO] [stdout] | [INFO] [stdout] 32 | id: id, [INFO] [stdout] | ^^^^^^ help: replace it with: `id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> marv_plugins/src/marv_plugins/ask_chatgpt.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | / pub fn new() -> DynamicPlugin { [INFO] [stdout] 13 | | Box::new(AskChatGPT {}) [INFO] [stdout] 14 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] = note: `#[warn(clippy::new_ret_no_self)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `parsed [INFO] [stdout] .get("choices") [INFO] [stdout] .unwrap() [INFO] [stdout] .as_array() [INFO] [stdout] .unwrap().get(0)` [INFO] [stdout] --> marv_plugins/src/marv_plugins/ask_chatgpt.rs:67:24 [INFO] [stdout] | [INFO] [stdout] 67 | let response = parsed [INFO] [stdout] | ________________________^ [INFO] [stdout] 68 | | .get("choices") [INFO] [stdout] 69 | | .unwrap() [INFO] [stdout] 70 | | .as_array() [INFO] [stdout] 71 | | .unwrap() [INFO] [stdout] 72 | | .get(0) [INFO] [stdout] | |___________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] = note: `#[warn(clippy::get_first)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 67 ~ let response = parsed [INFO] [stdout] 68 + .get("choices") [INFO] [stdout] 69 + .unwrap() [INFO] [stdout] 70 + .as_array() [INFO] [stdout] 71 + .unwrap().first() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> marv_plugins/src/marv_plugins/kafka/consumer.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | / pub fn new() -> DynamicPlugin { [INFO] [stdout] 17 | | tokio::task::spawn(async { [INFO] [stdout] 18 | | match attach_and_handle().await { [INFO] [stdout] 19 | | Ok(_) => log::info!("Stopping Marvbot!!!"), [INFO] [stdout] ... | [INFO] [stdout] 27 | | Box::new(KafkaConsumer {}) [INFO] [stdout] 28 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> marv_plugins/src/marv_plugins/kafka/consumer.rs:60:17 [INFO] [stdout] | [INFO] [stdout] 60 | / if let Ok(payload) = extract_metadata_and_deserialize(&message).await { [INFO] [stdout] 61 | | if let Ok(_) = handle(payload).await { [INFO] [stdout] 62 | | if consumer [INFO] [stdout] 63 | | .commit_message(&message, CommitMode::Async) [INFO] [stdout] ... | [INFO] [stdout] 71 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 60 ~ if let Ok(payload) = extract_metadata_and_deserialize(&message).await [INFO] [stdout] 61 ~ && let Ok(_) = handle(payload).await { [INFO] [stdout] 62 | if consumer [INFO] [stdout] ... [INFO] [stdout] 69 | } [INFO] [stdout] 70 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stdout] --> marv_plugins/src/marv_plugins/kafka/consumer.rs:61:28 [INFO] [stdout] | [INFO] [stdout] 61 | if let Ok(_) = handle(payload).await { [INFO] [stdout] | -------^^^^^------------------------ help: try: `if handle(payload).await.is_ok()` [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: this `if` statement can be collapsed [INFO] [stdout] --> marv_plugins/src/marv_plugins/kafka/consumer.rs:61:21 [INFO] [stdout] | [INFO] [stdout] 61 | / if let Ok(_) = handle(payload).await { [INFO] [stdout] 62 | | if consumer [INFO] [stdout] 63 | | .commit_message(&message, CommitMode::Async) [INFO] [stdout] 64 | | .is_err() [INFO] [stdout] ... | [INFO] [stdout] 70 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 61 ~ if let Ok(_) = handle(payload).await [INFO] [stdout] 62 ~ && consumer [INFO] [stdout] 63 | .commit_message(&message, CommitMode::Async) [INFO] [stdout] ... [INFO] [stdout] 68 | ); [INFO] [stdout] 69 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> marv_plugins/src/marv_plugins/kafka/consumer.rs:83:5 [INFO] [stdout] | [INFO] [stdout] 83 | Ok(log::info!("----> : {}", payload)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] = note: `#[warn(clippy::unit_arg)]` on by default [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 83 ~ let _: () = log::info!("----> : {}", payload); [INFO] [stdout] 84 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&str` [INFO] [stdout] --> marv_plugins/src/marv_plugins/kafka/consumer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | "Problems trying to fetch Kafka Message".into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"Problems trying to fetch Kafka Message"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> marv_plugins/src/marv_plugins/kafka/producer.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | / pub fn new() -> DynamicPlugin { [INFO] [stdout] 20 | | let config = config::config(); [INFO] [stdout] 21 | | [INFO] [stdout] 22 | | let producer: FutureProducer = ClientConfig::new() [INFO] [stdout] ... | [INFO] [stdout] 31 | | }) [INFO] [stdout] 32 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> marv_plugins/src/marv_plugins/todo/adapter.rs:54:57 [INFO] [stdout] | [INFO] [stdout] 54 | .map(|current| helper::channel_user_message(&metadata, ¤t.to_string()).unwrap()) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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] --> marv_plugins/src/marv_plugins/todo/controller.rs:21:40 [INFO] [stdout] | [INFO] [stdout] 21 | let message = helper::safe_get(&metadata, "argument")?; [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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] --> marv_plugins/src/marv_plugins/todo/controller.rs:25:58 [INFO] [stdout] | [INFO] [stdout] 25 | Ok(_) => helper::simple_channel_user_message(&metadata, "created!"), [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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] --> marv_plugins/src/marv_plugins/todo/controller.rs:27:53 [INFO] [stdout] | [INFO] [stdout] 27 | helper::simple_channel_user_message(&metadata, &format!("Failed! {}", error)) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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] --> marv_plugins/src/marv_plugins/todo/controller.rs:33:40 [INFO] [stdout] | [INFO] [stdout] 33 | let message = helper::safe_get(&metadata, "argument")?; [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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] --> marv_plugins/src/marv_plugins/todo/controller.rs:37:58 [INFO] [stdout] | [INFO] [stdout] 37 | Ok(_) => helper::simple_channel_user_message(&metadata, "updated!"), [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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] --> marv_plugins/src/marv_plugins/todo/controller.rs:39:53 [INFO] [stdout] | [INFO] [stdout] 39 | helper::simple_channel_user_message(&metadata, &format!("Failed! {}", error)) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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: length comparison to zero [INFO] [stdout] --> marv_plugins/src/marv_plugins/todo/controller.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 45 | if current.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!current.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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> marv_plugins/src/marv_plugins/todo/controller.rs:55:53 [INFO] [stdout] | [INFO] [stdout] 55 | TodoAdapter::from_todos_to_response(&metadata, todos)?, [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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] --> marv_plugins/src/marv_plugins/todo/controller.rs:56:53 [INFO] [stdout] | [INFO] [stdout] 56 | helper::simple_channel_user_message(&metadata, "The're no :Todos to list")?, [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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] --> marv_plugins/src/marv_plugins/todo/controller.rs:59:17 [INFO] [stdout] | [INFO] [stdout] 59 | &metadata, [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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] --> marv_plugins/src/marv_plugins/todo/controller.rs:66:40 [INFO] [stdout] | [INFO] [stdout] 66 | let message = helper::safe_get(&metadata, "argument")?; [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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] --> marv_plugins/src/marv_plugins/todo/controller.rs:70:58 [INFO] [stdout] | [INFO] [stdout] 70 | Ok(_) => helper::simple_channel_user_message(&metadata, "deleted!"), [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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] --> marv_plugins/src/marv_plugins/todo/controller.rs:72:53 [INFO] [stdout] | [INFO] [stdout] 72 | helper::simple_channel_user_message(&metadata, &format!("Failed! {}", error)) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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] --> marv_plugins/src/marv_plugins/todo/controller.rs:82:41 [INFO] [stdout] | [INFO] [stdout] 82 | Ok(vec![helper::channel_message(&metadata, message)?]) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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: implementation of inherent method `to_string(&self) -> String` for type `marv_plugins::todo::models::Todo` [INFO] [stdout] --> marv_plugins/src/marv_plugins/todo/models.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | / pub fn to_string(&self) -> String { [INFO] [stdout] 26 | | format!("{} - {} - {}", self.id, self.body, self.status) [INFO] [stdout] 27 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: implement trait `Display` for type `marv_plugins::todo::models::Todo` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inherent_to_string [INFO] [stdout] = note: `#[warn(clippy::inherent_to_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> marv_plugins/src/marv_plugins/todo.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | / pub fn new() -> DynamicPlugin { [INFO] [stdout] 19 | | Box::new(Todo { [INFO] [stdout] 20 | | controller: controller::new(), [INFO] [stdout] 21 | | }) [INFO] [stdout] 22 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> marv_plugins/src/marv_plugins/ask_chatgpt.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | / pub fn new() -> DynamicPlugin { [INFO] [stdout] 13 | | Box::new(AskChatGPT {}) [INFO] [stdout] 14 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] = note: `#[warn(clippy::new_ret_no_self)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `parsed [INFO] [stdout] .get("choices") [INFO] [stdout] .unwrap() [INFO] [stdout] .as_array() [INFO] [stdout] .unwrap().get(0)` [INFO] [stdout] --> marv_plugins/src/marv_plugins/ask_chatgpt.rs:67:24 [INFO] [stdout] | [INFO] [stdout] 67 | let response = parsed [INFO] [stdout] | ________________________^ [INFO] [stdout] 68 | | .get("choices") [INFO] [stdout] 69 | | .unwrap() [INFO] [stdout] 70 | | .as_array() [INFO] [stdout] 71 | | .unwrap() [INFO] [stdout] 72 | | .get(0) [INFO] [stdout] | |___________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] = note: `#[warn(clippy::get_first)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 67 ~ let response = parsed [INFO] [stdout] 68 + .get("choices") [INFO] [stdout] 69 + .unwrap() [INFO] [stdout] 70 + .as_array() [INFO] [stdout] 71 + .unwrap().first() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> marv_plugins/src/marv_plugins/kafka/consumer.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | / pub fn new() -> DynamicPlugin { [INFO] [stdout] 17 | | tokio::task::spawn(async { [INFO] [stdout] 18 | | match attach_and_handle().await { [INFO] [stdout] 19 | | Ok(_) => log::info!("Stopping Marvbot!!!"), [INFO] [stdout] ... | [INFO] [stdout] 27 | | Box::new(KafkaConsumer {}) [INFO] [stdout] 28 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> marv_plugins/src/marv_plugins/kafka/consumer.rs:60:17 [INFO] [stdout] | [INFO] [stdout] 60 | / if let Ok(payload) = extract_metadata_and_deserialize(&message).await { [INFO] [stdout] 61 | | if let Ok(_) = handle(payload).await { [INFO] [stdout] 62 | | if consumer [INFO] [stdout] 63 | | .commit_message(&message, CommitMode::Async) [INFO] [stdout] ... | [INFO] [stdout] 71 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 60 ~ if let Ok(payload) = extract_metadata_and_deserialize(&message).await [INFO] [stdout] 61 ~ && let Ok(_) = handle(payload).await { [INFO] [stdout] 62 | if consumer [INFO] [stdout] ... [INFO] [stdout] 69 | } [INFO] [stdout] 70 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stdout] --> marv_plugins/src/marv_plugins/kafka/consumer.rs:61:28 [INFO] [stdout] | [INFO] [stdout] 61 | if let Ok(_) = handle(payload).await { [INFO] [stdout] | -------^^^^^------------------------ help: try: `if handle(payload).await.is_ok()` [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: this `if` statement can be collapsed [INFO] [stdout] --> marv_plugins/src/marv_plugins/kafka/consumer.rs:61:21 [INFO] [stdout] | [INFO] [stdout] 61 | / if let Ok(_) = handle(payload).await { [INFO] [stdout] 62 | | if consumer [INFO] [stdout] 63 | | .commit_message(&message, CommitMode::Async) [INFO] [stdout] 64 | | .is_err() [INFO] [stdout] ... | [INFO] [stdout] 70 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 61 ~ if let Ok(_) = handle(payload).await [INFO] [stdout] 62 ~ && consumer [INFO] [stdout] 63 | .commit_message(&message, CommitMode::Async) [INFO] [stdout] ... [INFO] [stdout] 68 | ); [INFO] [stdout] 69 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> marv_plugins/src/marv_plugins/kafka/consumer.rs:83:5 [INFO] [stdout] | [INFO] [stdout] 83 | Ok(log::info!("----> : {}", payload)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] = note: `#[warn(clippy::unit_arg)]` on by default [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 83 ~ let _: () = log::info!("----> : {}", payload); [INFO] [stdout] 84 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `&str` [INFO] [stdout] --> marv_plugins/src/marv_plugins/kafka/consumer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | "Problems trying to fetch Kafka Message".into(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `"Problems trying to fetch Kafka Message"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> marv_plugins/src/marv_plugins/kafka/producer.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | / pub fn new() -> DynamicPlugin { [INFO] [stdout] 20 | | let config = config::config(); [INFO] [stdout] 21 | | [INFO] [stdout] 22 | | let producer: FutureProducer = ClientConfig::new() [INFO] [stdout] ... | [INFO] [stdout] 31 | | }) [INFO] [stdout] 32 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> marv_plugins/src/marv_plugins/todo/adapter.rs:54:57 [INFO] [stdout] | [INFO] [stdout] 54 | .map(|current| helper::channel_user_message(&metadata, ¤t.to_string()).unwrap()) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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] --> marv_plugins/src/marv_plugins/todo/controller.rs:21:40 [INFO] [stdout] | [INFO] [stdout] 21 | let message = helper::safe_get(&metadata, "argument")?; [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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] --> marv_plugins/src/marv_plugins/todo/controller.rs:25:58 [INFO] [stdout] | [INFO] [stdout] 25 | Ok(_) => helper::simple_channel_user_message(&metadata, "created!"), [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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] --> marv_plugins/src/marv_plugins/todo/controller.rs:27:53 [INFO] [stdout] | [INFO] [stdout] 27 | helper::simple_channel_user_message(&metadata, &format!("Failed! {}", error)) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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] --> marv_plugins/src/marv_plugins/todo/controller.rs:33:40 [INFO] [stdout] | [INFO] [stdout] 33 | let message = helper::safe_get(&metadata, "argument")?; [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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] --> marv_plugins/src/marv_plugins/todo/controller.rs:37:58 [INFO] [stdout] | [INFO] [stdout] 37 | Ok(_) => helper::simple_channel_user_message(&metadata, "updated!"), [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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] --> marv_plugins/src/marv_plugins/todo/controller.rs:39:53 [INFO] [stdout] | [INFO] [stdout] 39 | helper::simple_channel_user_message(&metadata, &format!("Failed! {}", error)) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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: length comparison to zero [INFO] [stdout] --> marv_plugins/src/marv_plugins/todo/controller.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 45 | if current.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!current.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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> marv_plugins/src/marv_plugins/todo/controller.rs:55:53 [INFO] [stdout] | [INFO] [stdout] 55 | TodoAdapter::from_todos_to_response(&metadata, todos)?, [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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] --> marv_plugins/src/marv_plugins/todo/controller.rs:56:53 [INFO] [stdout] | [INFO] [stdout] 56 | helper::simple_channel_user_message(&metadata, "The're no :Todos to list")?, [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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] --> marv_plugins/src/marv_plugins/todo/controller.rs:59:17 [INFO] [stdout] | [INFO] [stdout] 59 | &metadata, [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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] --> marv_plugins/src/marv_plugins/todo/controller.rs:66:40 [INFO] [stdout] | [INFO] [stdout] 66 | let message = helper::safe_get(&metadata, "argument")?; [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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] --> marv_plugins/src/marv_plugins/todo/controller.rs:70:58 [INFO] [stdout] | [INFO] [stdout] 70 | Ok(_) => helper::simple_channel_user_message(&metadata, "deleted!"), [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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] --> marv_plugins/src/marv_plugins/todo/controller.rs:72:53 [INFO] [stdout] | [INFO] [stdout] 72 | helper::simple_channel_user_message(&metadata, &format!("Failed! {}", error)) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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] --> marv_plugins/src/marv_plugins/todo/controller.rs:82:41 [INFO] [stdout] | [INFO] [stdout] 82 | Ok(vec![helper::channel_message(&metadata, message)?]) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `metadata` [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: implementation of inherent method `to_string(&self) -> String` for type `marv_plugins::todo::models::Todo` [INFO] [stdout] --> marv_plugins/src/marv_plugins/todo/models.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | / pub fn to_string(&self) -> String { [INFO] [stdout] 26 | | format!("{} - {} - {}", self.id, self.body, self.status) [INFO] [stdout] 27 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: implement trait `Display` for type `marv_plugins::todo::models::Todo` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#inherent_to_string [INFO] [stdout] = note: `#[warn(clippy::inherent_to_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> marv_plugins/src/marv_plugins/todo.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | / pub fn new() -> DynamicPlugin { [INFO] [stdout] 19 | | Box::new(Todo { [INFO] [stdout] 20 | | controller: controller::new(), [INFO] [stdout] 21 | | }) [INFO] [stdout] 22 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking marv-core v0.1.0 (/opt/rustwide/workdir/marv_core) [INFO] [stdout] warning: unneeded unit expression [INFO] [stdout] --> marv_core/src/marv/plugins/scheduled.rs:30:17 [INFO] [stdout] | [INFO] [stdout] 30 | () [INFO] [stdout] | ^^ help: remove the final `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit expression [INFO] [stdout] --> marv_core/src/marv/plugins/scheduled.rs:30:17 [INFO] [stdout] | [INFO] [stdout] 30 | () [INFO] [stdout] | ^^ help: remove the final `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> marv_core/src/marv/plugins/core/channel.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | / pub fn new() -> DynamicPlugin { [INFO] [stdout] 17 | | let config = config::config(); [INFO] [stdout] 18 | | [INFO] [stdout] 19 | | Box::new(Channel { [INFO] [stdout] 20 | | channel: config.channel.clone(), [INFO] [stdout] 21 | | }) [INFO] [stdout] 22 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] = note: `#[warn(clippy::new_ret_no_self)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> marv_core/src/marv/plugins/core/channel.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | / pub fn new() -> DynamicPlugin { [INFO] [stdout] 17 | | let config = config::config(); [INFO] [stdout] 18 | | [INFO] [stdout] 19 | | Box::new(Channel { [INFO] [stdout] 20 | | channel: config.channel.clone(), [INFO] [stdout] 21 | | }) [INFO] [stdout] 22 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] = note: `#[warn(clippy::new_ret_no_self)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> marv_core/src/marv/plugins/core/hello.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | / pub fn new() -> DynamicPlugin { [INFO] [stdout] 12 | | Box::new(Hello {}) [INFO] [stdout] 13 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> marv_core/src/marv/plugins/core/hello_fast.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | / pub fn new() -> DynamicPlugin { [INFO] [stdout] 13 | | Box::new(HelloFast {}) [INFO] [stdout] 14 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> marv_core/src/marv/plugins/core/hello_slow.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | / pub fn new() -> DynamicPlugin { [INFO] [stdout] 13 | | Box::new(HelloSlow {}) [INFO] [stdout] 14 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> marv_core/src/marv/plugins/core/log.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | / pub fn new() -> DynamicPlugin { [INFO] [stdout] 9 | | Box::new(Logger {}) [INFO] [stdout] 10 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> marv_core/src/marv/plugins/core/login.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | / pub fn new() -> DynamicPlugin { [INFO] [stdout] 15 | | let config = config::config(); [INFO] [stdout] 16 | | [INFO] [stdout] 17 | | Box::new(Login { [INFO] [stdout] 18 | | nickname: config.nickname.clone(), [INFO] [stdout] 19 | | }) [INFO] [stdout] 20 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> marv_core/src/marv/plugins/core/pong.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | / pub fn new() -> DynamicPlugin { [INFO] [stdout] 9 | | Box::new(Pong {}) [INFO] [stdout] 10 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> marv_core/src/marv/plugins/core/pong.rs:31:20 [INFO] [stdout] | [INFO] [stdout] 31 | .ok_or(Error::new( [INFO] [stdout] | ____________________^ [INFO] [stdout] 32 | | ErrorKind::Other, [INFO] [stdout] 33 | | "Problems trying to extract :host from PONG message", [INFO] [stdout] 34 | | ))? [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] = note: `#[warn(clippy::io_other_error)]` on by default [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 31 ~ .ok_or(Error::other( [INFO] [stdout] 32 ~ "Problems trying to extract :host from PONG message", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> marv_core/src/marv/plugins/core/spam.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | / pub fn new() -> DynamicPlugin { [INFO] [stdout] 13 | | Box::new(Spam {}) [INFO] [stdout] 14 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> marv_core/src/marv/plugins/dispatch.rs:46:31 [INFO] [stdout] | [INFO] [stdout] 46 | if plugin.responds_to(&protocol) { [INFO] [stdout] | ^^^^^^^^^ help: change this to: `protocol` [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: methods called `new` usually return `Self` [INFO] [stdout] --> marv_core/src/marv/plugins/core/hello.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | / pub fn new() -> DynamicPlugin { [INFO] [stdout] 12 | | Box::new(Hello {}) [INFO] [stdout] 13 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> marv_core/src/marv/plugins/core/hello_fast.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | / pub fn new() -> DynamicPlugin { [INFO] [stdout] 13 | | Box::new(HelloFast {}) [INFO] [stdout] 14 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> marv_core/src/marv/plugins/core/hello_slow.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | / pub fn new() -> DynamicPlugin { [INFO] [stdout] 13 | | Box::new(HelloSlow {}) [INFO] [stdout] 14 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stdout] --> marv_core/src/marv/plugins.rs:28:35 [INFO] [stdout] | [INFO] [stdout] 28 | fn schedulables() -> Vec<(String, &'static Box)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&'static dyn Plugin` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stdout] = note: `#[warn(clippy::borrowed_box)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> marv_core/src/marv/plugins/core/log.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | / pub fn new() -> DynamicPlugin { [INFO] [stdout] 9 | | Box::new(Logger {}) [INFO] [stdout] 10 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> marv_core/src/marv/plugins/core/login.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | / pub fn new() -> DynamicPlugin { [INFO] [stdout] 15 | | let config = config::config(); [INFO] [stdout] 16 | | [INFO] [stdout] 17 | | Box::new(Login { [INFO] [stdout] 18 | | nickname: config.nickname.clone(), [INFO] [stdout] 19 | | }) [INFO] [stdout] 20 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> marv_core/src/marv/plugins/core/pong.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | / pub fn new() -> DynamicPlugin { [INFO] [stdout] 9 | | Box::new(Pong {}) [INFO] [stdout] 10 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> marv_core/src/marv/plugins/core/pong.rs:31:20 [INFO] [stdout] | [INFO] [stdout] 31 | .ok_or(Error::new( [INFO] [stdout] | ____________________^ [INFO] [stdout] 32 | | ErrorKind::Other, [INFO] [stdout] 33 | | "Problems trying to extract :host from PONG message", [INFO] [stdout] 34 | | ))? [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] = note: `#[warn(clippy::io_other_error)]` on by default [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 31 ~ .ok_or(Error::other( [INFO] [stdout] 32 ~ "Problems trying to extract :host from PONG message", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> marv_core/src/marv/plugins/core/spam.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | / pub fn new() -> DynamicPlugin { [INFO] [stdout] 13 | | Box::new(Spam {}) [INFO] [stdout] 14 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> marv_core/src/marv/plugins/dispatch.rs:46:31 [INFO] [stdout] | [INFO] [stdout] 46 | if plugin.responds_to(&protocol) { [INFO] [stdout] | ^^^^^^^^^ help: change this to: `protocol` [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: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stdout] --> marv_core/src/marv/plugins.rs:28:35 [INFO] [stdout] | [INFO] [stdout] 28 | fn schedulables() -> Vec<(String, &'static Box)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&'static dyn Plugin` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stdout] = note: `#[warn(clippy::borrowed_box)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> marv_core/src/marv/plugins.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | PLUGINS.set(default); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 21 | let _ = PLUGINS.set(default); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> marv_core/src/marv/plugins.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | PLUGINS.set(default); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 21 | let _ = PLUGINS.set(default); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 6m 57s [INFO] running `Command { std: "docker" "inspect" "f0d7a3542b1957322751cf7e80bffa8ae71c4163edb1f37ae3b44837d7041152", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f0d7a3542b1957322751cf7e80bffa8ae71c4163edb1f37ae3b44837d7041152", kill_on_drop: false }` [INFO] [stdout] f0d7a3542b1957322751cf7e80bffa8ae71c4163edb1f37ae3b44837d7041152