[INFO] cloning repository https://github.com/martinmsb/decentralized-edge-faas [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/martinmsb/decentralized-edge-faas" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmartinmsb%2Fdecentralized-edge-faas", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmartinmsb%2Fdecentralized-edge-faas'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 7383f2d1d27d4520cfeb743290f8c93b0affb57a [INFO] linting martinmsb/decentralized-edge-faas against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmartinmsb%2Fdecentralized-edge-faas" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/martinmsb/decentralized-edge-faas [INFO] finished tweaking git repo https://github.com/martinmsb/decentralized-edge-faas [INFO] tweaked toml for git repo https://github.com/martinmsb/decentralized-edge-faas written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/martinmsb/decentralized-edge-faas 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/martinmsb/decentralized-edge-faas already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded multihash v0.19.1 [INFO] [stderr] Downloaded libp2p-yamux v0.45.1 [INFO] [stderr] Downloaded libp2p-metrics v0.14.1 [INFO] [stderr] Downloaded if-watch v3.2.0 [INFO] [stderr] Downloaded parse-size v1.0.0 [INFO] [stderr] Downloaded actix-multipart-derive v0.6.1 [INFO] [stderr] Downloaded libp2p-allow-block-list v0.3.0 [INFO] [stderr] Downloaded actix-multipart v0.6.2 [INFO] [stderr] Downloaded libp2p-mdns v0.45.1 [INFO] [stderr] Downloaded prometheus-client v0.22.2 [INFO] [stderr] Downloaded polling v3.7.1 [INFO] [stderr] Downloaded regex-lite v0.1.5 [INFO] [stderr] Downloaded libp2p-kad v0.45.3 [INFO] [stderr] Downloaded hickory-resolver v0.24.1 [INFO] [stderr] Downloaded asn1-rs v0.6.1 [INFO] [stderr] Downloaded actix-http v3.7.0 [INFO] [stderr] Downloaded rustls-webpki v0.102.4 [INFO] [stderr] Downloaded hyper v0.14.29 [INFO] [stderr] Downloaded quinn-proto v0.11.2 [INFO] [stderr] Downloaded quinn v0.11.1 [INFO] [stderr] Downloaded actix-web v4.6.0 [INFO] [stderr] Downloaded libp2p-swarm v0.44.2 [INFO] [stderr] Downloaded hyper-util v0.1.5 [INFO] [stderr] Downloaded curve25519-dalek v4.1.2 [INFO] [stderr] Downloaded object v0.35.0 [INFO] [stderr] Downloaded rcgen v0.11.3 [INFO] [stderr] Downloaded rustls v0.23.9 [INFO] [stderr] Downloaded libp2p-core v0.41.2 [INFO] [stderr] Downloaded hickory-proto v0.24.1 [INFO] [stderr] Downloaded yamux v0.13.2 [INFO] [stderr] Downloaded libp2p-identity v0.2.8 [INFO] [stderr] Downloaded libp2p-quic v0.10.3 [INFO] [stderr] Downloaded libp2p-request-response v0.26.3 [INFO] [stderr] Downloaded libp2p-tcp v0.41.0 [INFO] [stderr] Downloaded igd-next v0.14.3 [INFO] [stderr] Downloaded platforms v3.4.0 [INFO] [stderr] Downloaded libp2p-connection-limits v0.3.1 [INFO] [stderr] Downloaded libp2p-dns v0.41.1 [INFO] [stderr] Downloaded libp2p-identify v0.44.2 [INFO] [stderr] Downloaded quinn-udp v0.5.1 [INFO] [stderr] Downloaded libp2p-noise v0.44.0 [INFO] [stderr] Downloaded oid-registry v0.7.0 [INFO] [stderr] Downloaded libp2p-tls v0.4.0 [INFO] [stderr] Downloaded futures-rustls v0.24.0 [INFO] [stderr] Downloaded data-encoding-macro-internal v0.1.13 [INFO] [stderr] Downloaded libp2p v0.53.2 [INFO] [stderr] Downloaded pem v3.0.4 [INFO] [stderr] Downloaded asn1-rs-derive v0.5.0 [INFO] [stderr] Downloaded zstd-sys v2.0.10+zstd.1.5.6 [INFO] [stderr] Downloaded cbor4ii v0.3.2 [INFO] [stderr] Downloaded libp2p-upnp v0.2.2 [INFO] [stderr] Downloaded libp2p-websocket v0.43.0 [INFO] [stderr] Downloaded libp2p-swarm-derive v0.34.2 [INFO] [stderr] Downloaded multiaddr v0.18.1 [INFO] [stderr] Downloaded data-encoding-macro v0.1.15 [INFO] [stderr] Downloaded backtrace v0.3.72 [INFO] [stderr] Downloaded openssl-src v300.3.1+3.3.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] d5864936ac05a703ded73f842c27676a1bc263d1d983f0ed290fb5219c11fe22 [INFO] running `Command { std: "docker" "start" "-a" "d5864936ac05a703ded73f842c27676a1bc263d1d983f0ed290fb5219c11fe22", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d5864936ac05a703ded73f842c27676a1bc263d1d983f0ed290fb5219c11fe22", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d5864936ac05a703ded73f842c27676a1bc263d1d983f0ed290fb5219c11fe22", kill_on_drop: false }` [INFO] [stdout] d5864936ac05a703ded73f842c27676a1bc263d1d983f0ed290fb5219c11fe22 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] b01870dffd2f86fdcd25f8d9d5b874ab312527dd2d1207c788fbb28478664b7a [INFO] running `Command { std: "docker" "start" "-a" "b01870dffd2f86fdcd25f8d9d5b874ab312527dd2d1207c788fbb28478664b7a", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.85 [INFO] [stderr] Checking log v0.4.22 [INFO] [stderr] Checking futures-core v0.3.30 [INFO] [stderr] Checking futures-io v0.3.30 [INFO] [stderr] Checking futures-task v0.3.30 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Compiling libc v0.2.155 [INFO] [stderr] Checking subtle v2.5.0 [INFO] [stderr] Compiling semver v1.0.23 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking num_cpus v1.16.0 [INFO] [stderr] Checking parking_lot_core v0.9.10 [INFO] [stderr] Checking socket2 v0.5.7 [INFO] [stderr] Compiling serde v1.0.203 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling ahash v0.8.11 [INFO] [stderr] Checking zerocopy v0.7.34 [INFO] [stderr] Compiling platforms v3.4.0 [INFO] [stderr] Checking futures-channel v0.3.30 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking mio v0.8.11 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking allocator-api2 v0.2.18 [INFO] [stderr] Checking data-encoding v2.6.0 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking unsigned-varint v0.7.2 [INFO] [stderr] Checking ed25519 v2.2.3 [INFO] [stderr] Checking quick-protobuf v0.8.1 [INFO] [stderr] Checking core2 v0.4.0 [INFO] [stderr] Checking bs58 v0.5.1 [INFO] [stderr] Checking base-x v0.2.11 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking instant v0.1.13 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Checking unsigned-varint v0.8.0 [INFO] [stderr] Checking sha2 v0.10.8 [INFO] [stderr] Checking hmac v0.12.1 [INFO] [stderr] Checking either v1.12.0 [INFO] [stderr] Checking void v1.0.2 [INFO] [stderr] Checking bitflags v2.5.0 [INFO] [stderr] Compiling syn v2.0.66 [INFO] [stderr] Compiling rustc_version v0.4.0 [INFO] [stderr] Compiling anyhow v1.0.86 [INFO] [stderr] Compiling memchr v2.7.2 [INFO] [stderr] Checking aho-corasick v1.1.3 [INFO] [stderr] Compiling zstd-safe v7.1.0 [INFO] [stderr] Checking multihash v0.19.1 [INFO] [stderr] Checking regex-syntax v0.8.3 [INFO] [stderr] Checking hkdf v0.12.4 [INFO] [stderr] Compiling openssl v0.10.64 [INFO] [stderr] Compiling jobserver v0.1.31 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking local-waker v0.1.4 [INFO] [stderr] Compiling bytes v1.6.0 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Compiling curve25519-dalek v4.1.2 [INFO] [stderr] Checking alloc-stdlib v0.2.2 [INFO] [stderr] Checking http v0.2.12 [INFO] [stderr] Compiling rustls v0.21.12 [INFO] [stderr] Compiling cc v1.0.98 [INFO] [stderr] Compiling tracing-core v0.1.32 [INFO] [stderr] Compiling pin-project-lite v0.2.14 [INFO] [stderr] Compiling crunchy v0.2.2 [INFO] [stderr] Compiling time-core v0.1.2 [INFO] [stderr] Compiling itoa v1.0.11 [INFO] [stderr] Compiling bytestring v1.3.1 [INFO] [stderr] Checking indexmap v2.2.6 [INFO] [stderr] Checking lru v0.12.3 [INFO] [stderr] Compiling time-macros v0.2.18 [INFO] [stderr] Checking hostname v0.3.1 [INFO] [stderr] Checking brotli-decompressor v4.0.1 [INFO] [stderr] Checking deranged v0.3.11 [INFO] [stderr] Compiling tracing v0.1.40 [INFO] [stderr] Checking miniz_oxide v0.7.3 [INFO] [stderr] Checking actix-utils v3.0.1 [INFO] [stderr] Compiling openssl-src v300.3.1+3.3.1 [INFO] [stderr] Compiling snow v0.9.6 [INFO] [stderr] Checking nix v0.24.3 [INFO] [stderr] Checking actix-service v2.0.2 [INFO] [stderr] Checking idna v0.4.0 [INFO] [stderr] Checking block-buffer v0.9.0 [INFO] [stderr] Checking digest v0.9.0 [INFO] [stderr] Checking encoding_rs v0.8.34 [INFO] [stderr] Checking crc32fast v1.4.2 [INFO] [stderr] Compiling cookie v0.16.2 [INFO] [stderr] Checking linked-hash-map v0.5.6 [INFO] [stderr] Compiling regex-lite v0.1.5 [INFO] [stderr] Compiling serde_json v1.0.117 [INFO] [stderr] Checking brotli v6.0.0 [INFO] [stderr] Checking time v0.3.36 [INFO] [stderr] Checking sha-1 v0.9.8 [INFO] [stderr] Checking resolv-conf v0.7.0 [INFO] [stderr] Checking flate2 v1.0.30 [INFO] [stderr] Compiling ring v0.17.8 [INFO] [stderr] Compiling openssl-sys v0.9.102 [INFO] [stderr] Compiling zstd-sys v2.0.10+zstd.1.5.6 [INFO] [stderr] Checking regex-automata v0.4.6 [INFO] [stderr] Checking lru-cache v0.1.2 [INFO] [stderr] Checking anstyle-parse v0.2.4 [INFO] [stderr] Checking local-channel v0.1.5 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Checking anstyle-query v1.1.0 [INFO] [stderr] Checking anstyle v1.0.7 [INFO] [stderr] Checking hex v0.4.3 [INFO] [stderr] Checking is_terminal_polyfill v1.70.0 [INFO] [stderr] Checking colorchoice v1.0.1 [INFO] [stderr] Checking base64 v0.13.1 [INFO] [stderr] Checking anstream v0.6.14 [INFO] [stderr] Checking uint v0.9.5 [INFO] [stderr] Checking rustix v0.38.34 [INFO] [stderr] Checking regex-automata v0.1.10 [INFO] [stderr] Checking rustls-pki-types v1.7.0 [INFO] [stderr] Checking arrayvec v0.7.4 [INFO] [stderr] Compiling parse-size v1.0.0 [INFO] [stderr] Checking clap_builder v4.5.2 [INFO] [stderr] Compiling darling_core v0.20.9 [INFO] [stderr] Checking sharded-slab v0.1.7 [INFO] [stderr] Checking rustls-pemfile v2.1.2 [INFO] [stderr] Compiling data-encoding-macro-internal v0.1.13 [INFO] [stderr] Compiling derive_more v0.99.17 [INFO] [stderr] Checking regex v1.10.5 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Checking thread_local v1.1.8 [INFO] [stderr] Checking matchers v0.1.0 [INFO] [stderr] Checking sync_wrapper v1.0.1 [INFO] [stderr] Checking uuid v1.8.0 [INFO] [stderr] Checking data-encoding-macro v0.1.15 [INFO] [stderr] Checking multibase v0.9.1 [INFO] [stderr] Compiling futures-macro v0.3.30 [INFO] [stderr] Compiling tracing-attributes v0.1.27 [INFO] [stderr] Compiling tokio-macros v2.3.0 [INFO] [stderr] Compiling thiserror-impl v1.0.61 [INFO] [stderr] Compiling serde_derive v1.0.203 [INFO] [stderr] Checking tokio v1.38.0 [INFO] [stderr] Compiling pin-project-internal v1.1.5 [INFO] [stderr] Compiling zeroize_derive v1.4.2 [INFO] [stderr] Checking futures-util v0.3.30 [INFO] [stderr] Checking zeroize v1.8.1 [INFO] [stderr] Compiling curve25519-dalek-derive v0.1.1 [INFO] [stderr] Checking thiserror v1.0.61 [INFO] [stderr] Compiling libp2p-swarm-derive v0.34.2 [INFO] [stderr] Checking pin-project v1.1.5 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Checking netlink-packet-utils v0.5.2 [INFO] [stderr] Compiling async-trait v0.1.80 [INFO] [stderr] Checking netlink-packet-core v0.4.2 [INFO] [stderr] Compiling enum-as-inner v0.6.0 [INFO] [stderr] Compiling darling_macro v0.20.9 [INFO] [stderr] Compiling actix-router v0.5.3 [INFO] [stderr] Checking netlink-packet-route v0.12.0 [INFO] [stderr] Compiling actix-macros v0.2.4 [INFO] [stderr] Compiling darling v0.20.9 [INFO] [stderr] Checking tempfile v3.10.1 [INFO] [stderr] Compiling clap_derive v4.5.4 [INFO] [stderr] Compiling actix-multipart-derive v0.6.1 [INFO] [stderr] Checking tracing-subscriber v0.3.18 [INFO] [stderr] Checking sct v0.7.1 [INFO] [stderr] Checking rustls-webpki v0.101.7 [INFO] [stderr] Checking zstd v0.13.1 [INFO] [stderr] Checking ed25519-dalek v2.1.1 [INFO] [stderr] Checking x25519-dalek v2.0.1 [INFO] [stderr] Checking libp2p-identity v0.2.8 [INFO] [stderr] Compiling actix-web-codegen v4.2.2 [INFO] [stderr] Checking clap v4.5.4 [INFO] [stderr] Checking futures-rustls v0.24.0 [INFO] [stderr] Checking futures-executor v0.3.30 [INFO] [stderr] Checking asynchronous-codec v0.7.0 [INFO] [stderr] Checking futures-bounded v0.2.4 [INFO] [stderr] Checking http-body-util v0.1.2 [INFO] [stderr] Checking futures v0.3.30 [INFO] [stderr] Checking multistream-select v0.13.0 [INFO] [stderr] Checking rw-stream-sink v0.4.0 [INFO] [stderr] Checking soketto v0.7.1 [INFO] [stderr] Checking yamux v0.13.2 [INFO] [stderr] Checking yamux v0.12.1 [INFO] [stderr] Checking quick-protobuf-codec v0.3.1 [INFO] [stderr] Checking tokio-util v0.7.11 [INFO] [stderr] Checking netlink-sys v0.8.6 [INFO] [stderr] Checking actix-rt v2.9.0 [INFO] [stderr] Checking tower v0.4.13 [INFO] [stderr] Checking hickory-proto v0.24.1 [INFO] [stderr] Checking netlink-proto v0.10.0 [INFO] [stderr] Checking rtnetlink v0.10.1 [INFO] [stderr] Checking actix-server v2.3.0 [INFO] [stderr] Checking h2 v0.4.5 [INFO] [stderr] Checking actix-codec v0.5.2 [INFO] [stderr] Checking h2 v0.3.26 [INFO] [stderr] Checking if-watch v3.2.0 [INFO] [stderr] Checking multiaddr v0.18.1 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking cbor4ii v0.3.2 [INFO] [stderr] Checking serde_plain v1.0.2 [INFO] [stderr] Checking libp2p-core v0.41.2 [INFO] [stderr] Checking hickory-resolver v0.24.1 [INFO] [stderr] Checking libp2p-swarm v0.44.2 [INFO] [stderr] Checking libp2p-websocket v0.43.0 [INFO] [stderr] Checking libp2p-tcp v0.41.0 [INFO] [stderr] Checking libp2p-yamux v0.45.1 [INFO] [stderr] Checking libp2p-noise v0.44.0 [INFO] [stderr] Checking libp2p-dns v0.41.1 [INFO] [stderr] Checking libp2p-identify v0.44.2 [INFO] [stderr] Checking libp2p-kad v0.45.3 [INFO] [stderr] Checking libp2p-request-response v0.26.3 [INFO] [stderr] Checking libp2p-connection-limits v0.3.1 [INFO] [stderr] Checking libp2p-allow-block-list v0.3.0 [INFO] [stderr] Checking actix-http v3.7.0 [INFO] [stderr] Checking hyper v1.3.1 [INFO] [stderr] Checking libp2p v0.53.2 [INFO] [stderr] Checking hyper-util v0.1.5 [INFO] [stderr] Checking actix-web v4.6.0 [INFO] [stderr] Checking actix-multipart v0.6.2 [INFO] [stderr] Compiling native-tls v0.2.12 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking hyper-tls v0.6.0 [INFO] [stderr] Checking reqwest v0.12.5 [INFO] [stderr] Checking dec_edge_faas_discovery v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/network.rs:266:13 [INFO] [stdout] | [INFO] [stdout] 266 | swarm: swarm, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `swarm` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/network.rs:266:13 [INFO] [stdout] | [INFO] [stdout] 266 | swarm: swarm, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `swarm` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/network.rs:267:13 [INFO] [stdout] | [INFO] [stdout] 267 | command_receiver: command_receiver, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `command_receiver` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/network.rs:267:13 [INFO] [stdout] | [INFO] [stdout] 267 | command_receiver: command_receiver, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `command_receiver` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/openfaas.rs:27:17 [INFO] [stdout] | [INFO] [stdout] 27 | host: host, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `host` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/openfaas.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | docker_username: docker_username [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `docker_username` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/openfaas.rs:27:17 [INFO] [stdout] | [INFO] [stdout] 27 | host: host, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `host` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/openfaas.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | docker_username: docker_username [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `docker_username` [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/network.rs:253:19 [INFO] [stdout] | [INFO] [stdout] 253 | pending_dial: Arc>>>>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/network.rs:256:31 [INFO] [stdout] | [INFO] [stdout] 256 | ...t_function: Arc>>>>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PeerId` which implements the `Copy` trait [INFO] [stdout] --> src/network.rs:326:51 [INFO] [stdout] | [INFO] [stdout] 326 | ... match self.swarm.dial(provider.clone()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try dereferencing it: `*provider` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PeerId` which implements the `Copy` trait [INFO] [stdout] --> src/network.rs:329:57 [INFO] [stdout] | [INFO] [stdout] 329 | ... pending_dial.insert(provider.clone(), dial_sender); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try dereferencing it: `*provider` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/network.rs:253:19 [INFO] [stdout] | [INFO] [stdout] 253 | pending_dial: Arc>>>>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/network.rs:256:31 [INFO] [stdout] | [INFO] [stdout] 256 | ...t_function: Arc>>>>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/openfaas.rs:35:17 [INFO] [stdout] | [INFO] [stdout] 35 | method: &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] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 35 ~ method: &str, [INFO] [stdout] 36 | body: Option> [INFO] [stdout] 37 | ) -> Result> { [INFO] [stdout] 38 | let resp; [INFO] [stdout] 39 ~ match method { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/openfaas.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 38 | let resp; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `resp` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 38 ~ [INFO] [stdout] 39 ~ let resp = match method.as_str() { [INFO] [stdout] 40 | "GET" => { [INFO] [stdout] 41 ~ self.http_client.get(format!("{}/function/{}", self.host, function_name)).send().await [INFO] [stdout] 42 | }, [INFO] [stdout] ... [INFO] [stdout] 46 | } [INFO] [stdout] 47 ~ self.http_client.post(format!("{}/function/{}", self.host, function_name)).body(body.unwrap()).send().await [INFO] [stdout] 48 | }, [INFO] [stdout] ... [INFO] [stdout] 52 | } [INFO] [stdout] 53 ~ self.http_client.put(format!("{}/function/{}", self.host, function_name)).body(body.unwrap()).send().await [INFO] [stdout] 54 | }, [INFO] [stdout] 55 | "DELETE" => { [INFO] [stdout] 56 ~ self.http_client.delete(format!("{}/function/{}", self.host, function_name)).send().await [INFO] [stdout] 57 | }, [INFO] [stdout] ... [INFO] [stdout] 61 | } [INFO] [stdout] 62 ~ self.http_client.patch(format!("{}/function/{}", self.host, function_name)).body(body.unwrap()).send().await [INFO] [stdout] 63 | }, [INFO] [stdout] ... [INFO] [stdout] 66 | } [INFO] [stdout] 67 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/openfaas.rs:44:20 [INFO] [stdout] | [INFO] [stdout] 44 | if body == None { [INFO] [stdout] | ^^^^^^^^^^^^ help: use `Option::is_none()` instead: `body.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] = note: `#[warn(clippy::partialeq_to_none)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/openfaas.rs:50:20 [INFO] [stdout] | [INFO] [stdout] 50 | if body == None { [INFO] [stdout] | ^^^^^^^^^^^^ help: use `Option::is_none()` instead: `body.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/openfaas.rs:59:20 [INFO] [stdout] | [INFO] [stdout] 59 | if body == None { [INFO] [stdout] | ^^^^^^^^^^^^ help: use `Option::is_none()` instead: `body.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/openfaas.rs:85:67 [INFO] [stdout] | [INFO] [stdout] 85 | generated_function_name = format!("fn-{}", my_uuid.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PeerId` which implements the `Copy` trait [INFO] [stdout] --> src/network.rs:326:51 [INFO] [stdout] | [INFO] [stdout] 326 | ... match self.swarm.dial(provider.clone()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try dereferencing it: `*provider` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PeerId` which implements the `Copy` trait [INFO] [stdout] --> src/network.rs:329:57 [INFO] [stdout] | [INFO] [stdout] 329 | ... pending_dial.insert(provider.clone(), dial_sender); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try dereferencing it: `*provider` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/openfaas.rs:165:41 [INFO] [stdout] | [INFO] [stdout] 165 | ...rr(Box::new(io::Error::new(io::ErrorKind::Other, "Failed to deploy function. Check handler and requirements files"))); [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] 165 - return Err(Box::new(io::Error::new(io::ErrorKind::Other, "Failed to deploy function. Check handler and requirements files"))); [INFO] [stdout] 165 + return Err(Box::new(io::Error::other("Failed to deploy function. Check handler and requirements files"))); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/http_server/handlers.rs:58:13 [INFO] [stdout] | [INFO] [stdout] 58 | return Ok(HttpResponse::build(StatusCode::from_u16(function_response_result.status).unwrap()).body(s)); [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] 58 - return Ok(HttpResponse::build(StatusCode::from_u16(function_response_result.status).unwrap()).body(s)); [INFO] [stdout] 58 + Ok(HttpResponse::build(StatusCode::from_u16(function_response_result.status).unwrap()).body(s)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/http_server/handlers.rs:60:19 [INFO] [stdout] | [INFO] [stdout] 60 | Err(e) => return Err(actix_web::error::ErrorInternalServerError(e)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 60 - Err(e) => return Err(actix_web::error::ErrorInternalServerError(e)) [INFO] [stdout] 60 + Err(e) => Err(actix_web::error::ErrorInternalServerError(e)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/http_server/handlers.rs:45:16 [INFO] [stdout] | [INFO] [stdout] 45 | let body = match body_field { [INFO] [stdout] | ________________^ [INFO] [stdout] 46 | | Some(b) => Some(b.to_string().into_bytes()), [INFO] [stdout] 47 | | None => None [INFO] [stdout] 48 | | }; [INFO] [stdout] | |_____^ help: try: `body_field.as_ref().map(|b| b.to_string().into_bytes())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/http_server/handlers.rs:102:30 [INFO] [stdout] | [INFO] [stdout] 102 | Ok(function_name) => return Ok(HttpResponse::Ok().body(function_name)), [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] 102 - Ok(function_name) => return Ok(HttpResponse::Ok().body(function_name)), [INFO] [stdout] 102 + Ok(function_name) => Ok(HttpResponse::Ok().body(function_name)), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/http_server/handlers.rs:105:13 [INFO] [stdout] | [INFO] [stdout] 105 | return Err(actix_web::error::ErrorInternalServerError("Failed to deploy function")); [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] 105 - return Err(actix_web::error::ErrorInternalServerError("Failed to deploy function")); [INFO] [stdout] 105 + Err(actix_web::error::ErrorInternalServerError("Failed to deploy function")) [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] --> src/openfaas.rs:35:17 [INFO] [stdout] | [INFO] [stdout] 35 | method: &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] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 35 ~ method: &str, [INFO] [stdout] 36 | body: Option> [INFO] [stdout] 37 | ) -> Result> { [INFO] [stdout] 38 | let resp; [INFO] [stdout] 39 ~ match method { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/http_server/handlers.rs:121:18 [INFO] [stdout] | [INFO] [stdout] 121 | Ok(_) => return Ok(HttpResponse::Ok().body(function_name.clone())), [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] 121 - Ok(_) => return Ok(HttpResponse::Ok().body(function_name.clone())), [INFO] [stdout] 121 + Ok(_) => Ok(HttpResponse::Ok().body(function_name.clone())), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/http_server/handlers.rs:124:13 [INFO] [stdout] | [INFO] [stdout] 124 | return Err(actix_web::error::ErrorInternalServerError("Failed to deploy function")); [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] 124 - return Err(actix_web::error::ErrorInternalServerError("Failed to deploy function")); [INFO] [stdout] 124 + Err(actix_web::error::ErrorInternalServerError("Failed to deploy function")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/openfaas.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 38 | let resp; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `resp` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 38 ~ [INFO] [stdout] 39 ~ let resp = match method.as_str() { [INFO] [stdout] 40 | "GET" => { [INFO] [stdout] 41 ~ self.http_client.get(format!("{}/function/{}", self.host, function_name)).send().await [INFO] [stdout] 42 | }, [INFO] [stdout] ... [INFO] [stdout] 46 | } [INFO] [stdout] 47 ~ self.http_client.post(format!("{}/function/{}", self.host, function_name)).body(body.unwrap()).send().await [INFO] [stdout] 48 | }, [INFO] [stdout] ... [INFO] [stdout] 52 | } [INFO] [stdout] 53 ~ self.http_client.put(format!("{}/function/{}", self.host, function_name)).body(body.unwrap()).send().await [INFO] [stdout] 54 | }, [INFO] [stdout] 55 | "DELETE" => { [INFO] [stdout] 56 ~ self.http_client.delete(format!("{}/function/{}", self.host, function_name)).send().await [INFO] [stdout] 57 | }, [INFO] [stdout] ... [INFO] [stdout] 61 | } [INFO] [stdout] 62 ~ self.http_client.patch(format!("{}/function/{}", self.host, function_name)).body(body.unwrap()).send().await [INFO] [stdout] 63 | }, [INFO] [stdout] ... [INFO] [stdout] 66 | } [INFO] [stdout] 67 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/openfaas.rs:44:20 [INFO] [stdout] | [INFO] [stdout] 44 | if body == None { [INFO] [stdout] | ^^^^^^^^^^^^ help: use `Option::is_none()` instead: `body.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] = note: `#[warn(clippy::partialeq_to_none)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/openfaas.rs:50:20 [INFO] [stdout] | [INFO] [stdout] 50 | if body == None { [INFO] [stdout] | ^^^^^^^^^^^^ help: use `Option::is_none()` instead: `body.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PeerId` which implements the `Copy` trait [INFO] [stdout] --> src/data_structures.rs:41:32 [INFO] [stdout] | [INFO] [stdout] 41 | new_queue.push(item.clone()); [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*item` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/openfaas.rs:59:20 [INFO] [stdout] | [INFO] [stdout] 59 | if body == None { [INFO] [stdout] | ^^^^^^^^^^^^ help: use `Option::is_none()` instead: `body.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/data_structures.rs:40:17 [INFO] [stdout] | [INFO] [stdout] 40 | / let mut new_queue: Vec = Vec::new(); [INFO] [stdout] 41 | | new_queue.push(item.clone()); [INFO] [stdout] | |_____________________________________________^ help: consider using the `vec![]` macro: `let new_queue: Vec = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] = note: `#[warn(clippy::vec_init_then_push)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PeerId` which implements the `Copy` trait [INFO] [stdout] --> src/data_structures.rs:46:50 [INFO] [stdout] | [INFO] [stdout] 46 | self.queues_vector[new_pos].push(item.clone()); [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*item` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PeerId` which implements the `Copy` trait [INFO] [stdout] --> src/data_structures.rs:48:29 [INFO] [stdout] | [INFO] [stdout] 48 | self.map.insert(item.clone(), PeerData{vector_position: new_pos, manycall_in_progress: new_mp}); [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*item` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PeerId` which implements the `Copy` trait [INFO] [stdout] --> src/data_structures.rs:56:40 [INFO] [stdout] | [INFO] [stdout] 56 | self.queues_vector[1].push(item.clone()); [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*item` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PeerId` which implements the `Copy` trait [INFO] [stdout] --> src/data_structures.rs:57:29 [INFO] [stdout] | [INFO] [stdout] 57 | self.map.insert(item.clone(), PeerData{vector_position: 1, manycall_in_progress: new_mp}); [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*item` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/openfaas.rs:85:67 [INFO] [stdout] | [INFO] [stdout] 85 | generated_function_name = format!("fn-{}", my_uuid.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/data_structures.rs:82:16 [INFO] [stdout] | [INFO] [stdout] 82 | if new_pos > 0 || ( new_pos == 0 && is_manycall ) || ( new_pos == 0 && !is_manycall && mp > 0 ) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `new_pos > 0 || new_pos == 0 && is_manycall || new_pos == 0 && mp > 0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PeerId` which implements the `Copy` trait [INFO] [stdout] --> src/data_structures.rs:83:50 [INFO] [stdout] | [INFO] [stdout] 83 | self.queues_vector[new_pos].push(item.clone()); [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*item` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PeerId` which implements the `Copy` trait [INFO] [stdout] --> src/data_structures.rs:84:33 [INFO] [stdout] | [INFO] [stdout] 84 | self.map.insert(item.clone(), PeerData{vector_position: new_pos, manycall_in_progress: mp}); [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*item` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/data_structures.rs:91:51 [INFO] [stdout] | [INFO] [stdout] 91 | while self.queues_vector.len() > 2 && self.queues_vector.last().map_or(false, |deque| deque.is_empty()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 91 - while self.queues_vector.len() > 2 && self.queues_vector.last().map_or(false, |deque| deque.is_empty()) { [INFO] [stdout] 91 + while self.queues_vector.len() > 2 && self.queues_vector.last().is_some_and(|deque| deque.is_empty()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/openfaas.rs:165:41 [INFO] [stdout] | [INFO] [stdout] 165 | ...rr(Box::new(io::Error::new(io::ErrorKind::Other, "Failed to deploy function. Check handler and requirements files"))); [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] 165 - return Err(Box::new(io::Error::new(io::ErrorKind::Other, "Failed to deploy function. Check handler and requirements files"))); [INFO] [stdout] 165 + return Err(Box::new(io::Error::other("Failed to deploy function. Check handler and requirements files"))); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PeerId` which implements the `Copy` trait [INFO] [stdout] --> src/data_structures.rs:110:36 [INFO] [stdout] | [INFO] [stdout] 110 | let provider = item.clone(); [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*item` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/data_structures.rs:121:16 [INFO] [stdout] | [INFO] [stdout] 121 | if self.map.contains_key(provider) == false { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!self.map.contains_key(provider)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PeerId` which implements the `Copy` trait [INFO] [stdout] --> src/data_structures.rs:126:29 [INFO] [stdout] | [INFO] [stdout] 126 | return Some(provider.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try dereferencing it: `*provider` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PeerId` which implements the `Copy` trait [INFO] [stdout] --> src/data_structures.rs:143:37 [INFO] [stdout] | [INFO] [stdout] 143 | self.map.insert(provider.clone(), PeerData{vector_position: pos, manycall_in_progress: mp - 1}); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try dereferencing it: `*provider` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/functions_service.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | return Ok(function_response_result) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 69 - return Ok(function_response_result) [INFO] [stdout] 69 + Ok(function_response_result) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/functions_service.rs:47:9 [INFO] [stdout] | [INFO] [stdout] 47 | let function_response_result; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `function_response_result` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 47 ~ [INFO] [stdout] 48 | // Locate all nodes providing the function. [INFO] [stdout] ... [INFO] [stdout] 62 | // If it is, then return the file content [INFO] [stdout] 63 ~ let function_response_result = match self.function_request(providers, peer_id, &name, &method, &body, requests_in_progress, openfaas_client, network_client).await [INFO] [stdout] 64 | { [INFO] [stdout] 65 ~ Ok(resp) => resp, [INFO] [stdout] 66 | Err(e) => return Err(e) [INFO] [stdout] 67 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/functions_service.rs:63:64 [INFO] [stdout] | [INFO] [stdout] 63 | ... match self.function_request(providers, peer_id, &name, &method, &body, requests_in_progress, openfaas_client, network_client).... [INFO] [stdout] | ^^^^^^^ help: change this to: `method` [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: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/functions_service.rs:72:64 [INFO] [stdout] | [INFO] [stdout] 72 | pub(crate) async fn execute_function_manycall(&self, name: &String, items: Vec) -> Result, Box> { [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] 72 ~ pub(crate) async fn execute_function_manycall(&self, name: &str, items: Vec) -> Result, Box> { [INFO] [stdout] 73 | let network_client = &self.nc; [INFO] [stdout] ... [INFO] [stdout] 77 | [INFO] [stdout] 78 ~ let providers = network_client.get_providers(name.to_owned()).await; [INFO] [stdout] 79 | info!("providers: {:?}", providers); [INFO] [stdout] ... [INFO] [stdout] 98 | let providers_clone: HashSet = providers.clone(); [INFO] [stdout] 99 ~ let name_clone = name.to_owned(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `actual_item` is used as a loop counter [INFO] [stdout] --> src/functions_service.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | for item in items_clone { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (actual_item, item) in items_clone.into_iter().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PeerId` which implements the `Copy` trait [INFO] [stdout] --> src/functions_service.rs:96:33 [INFO] [stdout] | [INFO] [stdout] 96 | let peer_id_clone = peer_id.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try dereferencing it: `*peer_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/functions_service.rs:147:21 [INFO] [stdout] | [INFO] [stdout] 147 | let resp; [INFO] [stdout] | ^^^^^^^^^ created here [INFO] [stdout] 148 | [INFO] [stdout] 149 | resp = openfaas_client_clone.request_function(&name_clone, &method, Some(body)).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `resp` here [INFO] [stdout] | [INFO] [stdout] 147 ~ [INFO] [stdout] 148 | [INFO] [stdout] 149 ~ let resp = openfaas_client_clone.request_function(&name_clone, &method, Some(body)).await; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/http_server/handlers.rs:58:13 [INFO] [stdout] | [INFO] [stdout] 58 | return Ok(HttpResponse::build(StatusCode::from_u16(function_response_result.status).unwrap()).body(s)); [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] 58 - return Ok(HttpResponse::build(StatusCode::from_u16(function_response_result.status).unwrap()).body(s)); [INFO] [stdout] 58 + Ok(HttpResponse::build(StatusCode::from_u16(function_response_result.status).unwrap()).body(s)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/http_server/handlers.rs:60:19 [INFO] [stdout] | [INFO] [stdout] 60 | Err(e) => return Err(actix_web::error::ErrorInternalServerError(e)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 60 - Err(e) => return Err(actix_web::error::ErrorInternalServerError(e)) [INFO] [stdout] 60 + Err(e) => Err(actix_web::error::ErrorInternalServerError(e)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/http_server/handlers.rs:45:16 [INFO] [stdout] | [INFO] [stdout] 45 | let body = match body_field { [INFO] [stdout] | ________________^ [INFO] [stdout] 46 | | Some(b) => Some(b.to_string().into_bytes()), [INFO] [stdout] 47 | | None => None [INFO] [stdout] 48 | | }; [INFO] [stdout] | |_____^ help: try: `body_field.as_ref().map(|b| b.to_string().into_bytes())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/functions_service.rs:166:21 [INFO] [stdout] | [INFO] [stdout] 166 | let function_response; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ created here [INFO] [stdout] 167 | [INFO] [stdout] 168 | function_response = network_client_clone.request_function(provider, name_clone, method, Some(body)).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `function_response` here [INFO] [stdout] | [INFO] [stdout] 166 ~ [INFO] [stdout] 167 | [INFO] [stdout] 168 ~ let function_response = network_client_clone.request_function(provider, name_clone, method, Some(body)).await; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/http_server/handlers.rs:102:30 [INFO] [stdout] | [INFO] [stdout] 102 | Ok(function_name) => return Ok(HttpResponse::Ok().body(function_name)), [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] 102 - Ok(function_name) => return Ok(HttpResponse::Ok().body(function_name)), [INFO] [stdout] 102 + Ok(function_name) => Ok(HttpResponse::Ok().body(function_name)), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/http_server/handlers.rs:105:13 [INFO] [stdout] | [INFO] [stdout] 105 | return Err(actix_web::error::ErrorInternalServerError("Failed to deploy function")); [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] 105 - return Err(actix_web::error::ErrorInternalServerError("Failed to deploy function")); [INFO] [stdout] 105 + Err(actix_web::error::ErrorInternalServerError("Failed to deploy function")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/functions_service.rs:227:9 [INFO] [stdout] | [INFO] [stdout] 227 | let function_name; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `function_name` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 227 ~ [INFO] [stdout] 228 ~ let function_name = match deployment_result { [INFO] [stdout] 229 ~ Ok(f_n) => f_n, [INFO] [stdout] 230 | Err(e) => { [INFO] [stdout] ... [INFO] [stdout] 233 | } [INFO] [stdout] 234 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/functions_service.rs:232:37 [INFO] [stdout] | [INFO] [stdout] 232 | return Err(Box::new(io::Error::new(io::ErrorKind::Other, "Failed to deploy function"))); [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] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 232 - return Err(Box::new(io::Error::new(io::ErrorKind::Other, "Failed to deploy function"))); [INFO] [stdout] 232 + return Err(Box::new(io::Error::other("Failed to deploy function"))); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/http_server/handlers.rs:121:18 [INFO] [stdout] | [INFO] [stdout] 121 | Ok(_) => return Ok(HttpResponse::Ok().body(function_name.clone())), [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] 121 - Ok(_) => return Ok(HttpResponse::Ok().body(function_name.clone())), [INFO] [stdout] 121 + Ok(_) => Ok(HttpResponse::Ok().body(function_name.clone())), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/http_server/handlers.rs:124:13 [INFO] [stdout] | [INFO] [stdout] 124 | return Err(actix_web::error::ErrorInternalServerError("Failed to deploy function")); [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] 124 - return Err(actix_web::error::ErrorInternalServerError("Failed to deploy function")); [INFO] [stdout] 124 + Err(actix_web::error::ErrorInternalServerError("Failed to deploy function")) [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] --> src/functions_service.rs:242:69 [INFO] [stdout] | [INFO] [stdout] 242 | pub(crate) async fn deploy_known_function(&self, function_name: &String, payload: Multipart) -> Result<(), Box> { [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] 242 ~ pub(crate) async fn deploy_known_function(&self, function_name: &str, payload: Multipart) -> Result<(), Box> { [INFO] [stdout] 243 | let network_client = &self.nc; [INFO] [stdout] ... [INFO] [stdout] 256 | // Start providing the function name to the network. [INFO] [stdout] 257 ~ network_client.start_providing(function_name.to_owned()).await; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/functions_service.rs:252:37 [INFO] [stdout] | [INFO] [stdout] 252 | return Err(Box::new(io::Error::new(io::ErrorKind::Other, "Failed to deploy function"))); [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] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 252 - return Err(Box::new(io::Error::new(io::ErrorKind::Other, "Failed to deploy function"))); [INFO] [stdout] 252 + return Err(Box::new(io::Error::other("Failed to deploy function"))); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> src/functions_service.rs:262:5 [INFO] [stdout] | [INFO] [stdout] 262 | async fn function_request(&self, provi...ient>) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PeerId` which implements the `Copy` trait [INFO] [stdout] --> src/data_structures.rs:41:32 [INFO] [stdout] | [INFO] [stdout] 41 | new_queue.push(item.clone()); [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*item` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/data_structures.rs:40:17 [INFO] [stdout] | [INFO] [stdout] 40 | / let mut new_queue: Vec = Vec::new(); [INFO] [stdout] 41 | | new_queue.push(item.clone()); [INFO] [stdout] | |_____________________________________________^ help: consider using the `vec![]` macro: `let new_queue: Vec = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] = note: `#[warn(clippy::vec_init_then_push)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PeerId` which implements the `Copy` trait [INFO] [stdout] --> src/data_structures.rs:46:50 [INFO] [stdout] | [INFO] [stdout] 46 | self.queues_vector[new_pos].push(item.clone()); [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*item` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/functions_service.rs:272:57 [INFO] [stdout] | [INFO] [stdout] 272 | let resp = openfaas_client.request_function(&name, &method, body.clone()).await; [INFO] [stdout] | ^^^^^ help: change this to: `name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PeerId` which implements the `Copy` trait [INFO] [stdout] --> src/data_structures.rs:48:29 [INFO] [stdout] | [INFO] [stdout] 48 | self.map.insert(item.clone(), PeerData{vector_position: new_pos, manycall_in_progress: new_mp}); [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*item` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/functions_service.rs:272:64 [INFO] [stdout] | [INFO] [stdout] 272 | let resp = openfaas_client.request_function(&name, &method, body.clone()).await; [INFO] [stdout] | ^^^^^^^ help: change this to: `method` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PeerId` which implements the `Copy` trait [INFO] [stdout] --> src/data_structures.rs:56:40 [INFO] [stdout] | [INFO] [stdout] 56 | self.queues_vector[1].push(item.clone()); [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*item` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/functions_service.rs:285:41 [INFO] [stdout] | [INFO] [stdout] 285 | return Err(Box::new(io::Error::new(io::ErrorKind::Other, "Failed to get response from function"))); [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] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 285 - return Err(Box::new(io::Error::new(io::ErrorKind::Other, "Failed to get response from function"))); [INFO] [stdout] 285 + return Err(Box::new(io::Error::other("Failed to get response from function"))); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PeerId` which implements the `Copy` trait [INFO] [stdout] --> src/data_structures.rs:57:29 [INFO] [stdout] | [INFO] [stdout] 57 | self.map.insert(item.clone(), PeerData{vector_position: 1, manycall_in_progress: new_mp}); [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*item` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/data_structures.rs:82:16 [INFO] [stdout] | [INFO] [stdout] 82 | if new_pos > 0 || ( new_pos == 0 && is_manycall ) || ( new_pos == 0 && !is_manycall && mp > 0 ) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `new_pos > 0 || new_pos == 0 && is_manycall || new_pos == 0 && mp > 0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PeerId` which implements the `Copy` trait [INFO] [stdout] --> src/data_structures.rs:83:50 [INFO] [stdout] | [INFO] [stdout] 83 | self.queues_vector[new_pos].push(item.clone()); [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*item` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PeerId` which implements the `Copy` trait [INFO] [stdout] --> src/data_structures.rs:84:33 [INFO] [stdout] | [INFO] [stdout] 84 | self.map.insert(item.clone(), PeerData{vector_position: new_pos, manycall_in_progress: mp}); [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*item` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/functions_service.rs:337:9 [INFO] [stdout] | [INFO] [stdout] 337 | let function_name; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `function_name` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 337 ~ [INFO] [stdout] 338 ~ let function_name = match deployment_result { [INFO] [stdout] 339 ~ Ok(fun_name) => fun_name, [INFO] [stdout] 340 | Err(e) => { [INFO] [stdout] ... [INFO] [stdout] 343 | } [INFO] [stdout] 344 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/data_structures.rs:91:51 [INFO] [stdout] | [INFO] [stdout] 91 | while self.queues_vector.len() > 2 && self.queues_vector.last().map_or(false, |deque| deque.is_empty()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 91 - while self.queues_vector.len() > 2 && self.queues_vector.last().map_or(false, |deque| deque.is_empty()) { [INFO] [stdout] 91 + while self.queues_vector.len() > 2 && self.queues_vector.last().is_some_and(|deque| deque.is_empty()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PeerId` which implements the `Copy` trait [INFO] [stdout] --> src/data_structures.rs:110:36 [INFO] [stdout] | [INFO] [stdout] 110 | let provider = item.clone(); [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*item` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/data_structures.rs:121:16 [INFO] [stdout] | [INFO] [stdout] 121 | if self.map.contains_key(provider) == false { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!self.map.contains_key(provider)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PeerId` which implements the `Copy` trait [INFO] [stdout] --> src/data_structures.rs:126:29 [INFO] [stdout] | [INFO] [stdout] 126 | return Some(provider.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try dereferencing it: `*provider` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PeerId` which implements the `Copy` trait [INFO] [stdout] --> src/main.rs:109:9 [INFO] [stdout] | [INFO] [stdout] 109 | peer_id.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `peer_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PeerId` which implements the `Copy` trait [INFO] [stdout] --> src/data_structures.rs:143:37 [INFO] [stdout] | [INFO] [stdout] 143 | self.map.insert(provider.clone(), PeerData{vector_position: pos, manycall_in_progress: mp - 1}); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try dereferencing it: `*provider` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/functions_service.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | return Ok(function_response_result) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 69 - return Ok(function_response_result) [INFO] [stdout] 69 + Ok(function_response_result) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/functions_service.rs:47:9 [INFO] [stdout] | [INFO] [stdout] 47 | let function_response_result; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `function_response_result` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 47 ~ [INFO] [stdout] 48 | // Locate all nodes providing the function. [INFO] [stdout] ... [INFO] [stdout] 62 | // If it is, then return the file content [INFO] [stdout] 63 ~ let function_response_result = match self.function_request(providers, peer_id, &name, &method, &body, requests_in_progress, openfaas_client, network_client).await [INFO] [stdout] 64 | { [INFO] [stdout] 65 ~ Ok(resp) => resp, [INFO] [stdout] 66 | Err(e) => return Err(e) [INFO] [stdout] 67 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/functions_service.rs:63:64 [INFO] [stdout] | [INFO] [stdout] 63 | ... match self.function_request(providers, peer_id, &name, &method, &body, requests_in_progress, openfaas_client, network_client).... [INFO] [stdout] | ^^^^^^^ help: change this to: `method` [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: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/functions_service.rs:72:64 [INFO] [stdout] | [INFO] [stdout] 72 | pub(crate) async fn execute_function_manycall(&self, name: &String, items: Vec) -> Result, Box> { [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] 72 ~ pub(crate) async fn execute_function_manycall(&self, name: &str, items: Vec) -> Result, Box> { [INFO] [stdout] 73 | let network_client = &self.nc; [INFO] [stdout] ... [INFO] [stdout] 77 | [INFO] [stdout] 78 ~ let providers = network_client.get_providers(name.to_owned()).await; [INFO] [stdout] 79 | info!("providers: {:?}", providers); [INFO] [stdout] ... [INFO] [stdout] 98 | let providers_clone: HashSet = providers.clone(); [INFO] [stdout] 99 ~ let name_clone = name.to_owned(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `actual_item` is used as a loop counter [INFO] [stdout] --> src/functions_service.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | for item in items_clone { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (actual_item, item) in items_clone.into_iter().enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PeerId` which implements the `Copy` trait [INFO] [stdout] --> src/functions_service.rs:96:33 [INFO] [stdout] | [INFO] [stdout] 96 | let peer_id_clone = peer_id.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try dereferencing it: `*peer_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/functions_service.rs:147:21 [INFO] [stdout] | [INFO] [stdout] 147 | let resp; [INFO] [stdout] | ^^^^^^^^^ created here [INFO] [stdout] 148 | [INFO] [stdout] 149 | resp = openfaas_client_clone.request_function(&name_clone, &method, Some(body)).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `resp` here [INFO] [stdout] | [INFO] [stdout] 147 ~ [INFO] [stdout] 148 | [INFO] [stdout] 149 ~ let resp = openfaas_client_clone.request_function(&name_clone, &method, Some(body)).await; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/functions_service.rs:166:21 [INFO] [stdout] | [INFO] [stdout] 166 | let function_response; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ created here [INFO] [stdout] 167 | [INFO] [stdout] 168 | function_response = network_client_clone.request_function(provider, name_clone, method, Some(body)).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `function_response` here [INFO] [stdout] | [INFO] [stdout] 166 ~ [INFO] [stdout] 167 | [INFO] [stdout] 168 ~ let function_response = network_client_clone.request_function(provider, name_clone, method, Some(body)).await; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/functions_service.rs:227:9 [INFO] [stdout] | [INFO] [stdout] 227 | let function_name; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `function_name` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 227 ~ [INFO] [stdout] 228 ~ let function_name = match deployment_result { [INFO] [stdout] 229 ~ Ok(f_n) => f_n, [INFO] [stdout] 230 | Err(e) => { [INFO] [stdout] ... [INFO] [stdout] 233 | } [INFO] [stdout] 234 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/functions_service.rs:232:37 [INFO] [stdout] | [INFO] [stdout] 232 | return Err(Box::new(io::Error::new(io::ErrorKind::Other, "Failed to deploy function"))); [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] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 232 - return Err(Box::new(io::Error::new(io::ErrorKind::Other, "Failed to deploy function"))); [INFO] [stdout] 232 + return Err(Box::new(io::Error::other("Failed to deploy function"))); [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] --> src/functions_service.rs:242:69 [INFO] [stdout] | [INFO] [stdout] 242 | pub(crate) async fn deploy_known_function(&self, function_name: &String, payload: Multipart) -> Result<(), Box> { [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] 242 ~ pub(crate) async fn deploy_known_function(&self, function_name: &str, payload: Multipart) -> Result<(), Box> { [INFO] [stdout] 243 | let network_client = &self.nc; [INFO] [stdout] ... [INFO] [stdout] 256 | // Start providing the function name to the network. [INFO] [stdout] 257 ~ network_client.start_providing(function_name.to_owned()).await; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/functions_service.rs:252:37 [INFO] [stdout] | [INFO] [stdout] 252 | return Err(Box::new(io::Error::new(io::ErrorKind::Other, "Failed to deploy function"))); [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] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 252 - return Err(Box::new(io::Error::new(io::ErrorKind::Other, "Failed to deploy function"))); [INFO] [stdout] 252 + return Err(Box::new(io::Error::other("Failed to deploy function"))); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> src/functions_service.rs:262:5 [INFO] [stdout] | [INFO] [stdout] 262 | async fn function_request(&self, provi...ient>) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/functions_service.rs:272:57 [INFO] [stdout] | [INFO] [stdout] 272 | let resp = openfaas_client.request_function(&name, &method, body.clone()).await; [INFO] [stdout] | ^^^^^ help: change this to: `name` [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] --> src/functions_service.rs:272:64 [INFO] [stdout] | [INFO] [stdout] 272 | let resp = openfaas_client.request_function(&name, &method, body.clone()).await; [INFO] [stdout] | ^^^^^^^ help: change this to: `method` [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] --> src/functions_service.rs:285:41 [INFO] [stdout] | [INFO] [stdout] 285 | return Err(Box::new(io::Error::new(io::ErrorKind::Other, "Failed to get response from function"))); [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] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 285 - return Err(Box::new(io::Error::new(io::ErrorKind::Other, "Failed to get response from function"))); [INFO] [stdout] 285 + return Err(Box::new(io::Error::other("Failed to get response from function"))); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/functions_service.rs:337:9 [INFO] [stdout] | [INFO] [stdout] 337 | let function_name; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `function_name` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 337 ~ [INFO] [stdout] 338 ~ let function_name = match deployment_result { [INFO] [stdout] 339 ~ Ok(fun_name) => fun_name, [INFO] [stdout] 340 | Err(e) => { [INFO] [stdout] ... [INFO] [stdout] 343 | } [INFO] [stdout] 344 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PeerId` which implements the `Copy` trait [INFO] [stdout] --> src/main.rs:109:9 [INFO] [stdout] | [INFO] [stdout] 109 | peer_id.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `peer_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 53s [INFO] running `Command { std: "docker" "inspect" "b01870dffd2f86fdcd25f8d9d5b874ab312527dd2d1207c788fbb28478664b7a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b01870dffd2f86fdcd25f8d9d5b874ab312527dd2d1207c788fbb28478664b7a", kill_on_drop: false }` [INFO] [stdout] b01870dffd2f86fdcd25f8d9d5b874ab312527dd2d1207c788fbb28478664b7a