[INFO] cloning repository https://github.com/Spospider/distri [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Spospider/distri" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSpospider%2Fdistri", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSpospider%2Fdistri'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 282d1218cca4f22f2e25db119fe3e2d8d7739483 [INFO] linting Spospider/distri against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSpospider%2Fdistri" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Spospider/distri [INFO] finished tweaking git repo https://github.com/Spospider/distri [INFO] tweaked toml for git repo https://github.com/Spospider/distri written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Spospider/distri 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/Spospider/distri 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 serde_derive v1.0.213 [INFO] [stderr] Downloaded uuid-macro-internal v1.11.0 [INFO] [stderr] Downloaded fdeflate v0.3.5 [INFO] [stderr] Downloaded thiserror-impl v1.0.65 [INFO] [stderr] Downloaded anstyle-wincon v3.0.6 [INFO] [stderr] Downloaded engine v0.0.0 [INFO] [stderr] Downloaded bitstream-io v2.5.3 [INFO] [stderr] Downloaded pixels v0.14.0 [INFO] [stderr] Downloaded anstyle v1.0.9 [INFO] [stderr] Downloaded syn v2.0.85 [INFO] [stderr] Downloaded ultraviolet v0.9.2 [INFO] [stderr] Downloaded serde v1.0.213 [INFO] [stderr] Downloaded image v0.25.4 [INFO] [stderr] Downloaded steganography v1.0.2 [INFO] [stderr] Downloaded anstream v0.6.17 [INFO] [stderr] Downloaded anyhow v1.0.91 [INFO] [stderr] Downloaded thiserror v1.0.65 [INFO] [stderr] Downloaded wide v0.7.30 [INFO] [stderr] Downloaded image v0.21.3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 8a4088545a3829cd2c9955c4f21e49a74e72b5902840f137ef1f6a0eabb3fa3e [INFO] running `Command { std: "docker" "start" "-a" "8a4088545a3829cd2c9955c4f21e49a74e72b5902840f137ef1f6a0eabb3fa3e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "8a4088545a3829cd2c9955c4f21e49a74e72b5902840f137ef1f6a0eabb3fa3e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8a4088545a3829cd2c9955c4f21e49a74e72b5902840f137ef1f6a0eabb3fa3e", kill_on_drop: false }` [INFO] [stdout] 8a4088545a3829cd2c9955c4f21e49a74e72b5902840f137ef1f6a0eabb3fa3e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 076b34eea0d47ded9dbf6dc1b8e23a545c211e304da7026a0198bd3e0db9cd38 [INFO] running `Command { std: "docker" "start" "-a" "076b34eea0d47ded9dbf6dc1b8e23a545c211e304da7026a0198bd3e0db9cd38", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.89 [INFO] [stderr] Compiling libc v0.2.161 [INFO] [stderr] Checking smallvec v1.13.2 [INFO] [stderr] Compiling thiserror v1.0.65 [INFO] [stderr] Compiling xml-rs v0.8.23 [INFO] [stderr] Checking libloading v0.8.6 [INFO] [stderr] Compiling memoffset v0.6.5 [INFO] [stderr] Checking bitflags v2.6.0 [INFO] [stderr] Checking bytemuck v1.19.0 [INFO] [stderr] Compiling wayland-sys v0.29.5 [INFO] [stderr] Checking miniz_oxide v0.8.0 [INFO] [stderr] Compiling ahash v0.8.11 [INFO] [stderr] Checking either v1.13.0 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Compiling slotmap v1.0.7 [INFO] [stderr] Checking libloading v0.7.4 [INFO] [stderr] Compiling khronos-egl v4.1.0 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Checking bit-vec v0.6.3 [INFO] [stderr] Checking allocator-api2 v0.2.20 [INFO] [stderr] Compiling syn v0.15.44 [INFO] [stderr] Compiling anyhow v1.0.91 [INFO] [stderr] Checking codespan-reporting v0.11.1 [INFO] [stderr] Checking dlib v0.5.2 [INFO] [stderr] Checking gpu-descriptor-types v0.1.2 [INFO] [stderr] Checking gpu-alloc-types v0.3.0 [INFO] [stderr] Checking flate2 v1.0.34 [INFO] [stderr] Compiling ash v0.37.3+1.3.251 [INFO] [stderr] Checking spirv v0.2.0+1.5.4 [INFO] [stderr] Checking fdeflate v0.3.5 [INFO] [stderr] Checking bit-set v0.5.3 [INFO] [stderr] Checking adler32 v1.2.0 [INFO] [stderr] Checking unicode-xid v0.2.6 [INFO] [stderr] Checking hexf-parse v0.2.1 [INFO] [stderr] Compiling num-derive v0.2.5 [INFO] [stderr] Compiling built v0.7.5 [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Checking nom v7.1.3 [INFO] [stderr] Checking gpu-alloc v0.6.0 [INFO] [stderr] Checking png v0.17.14 [INFO] [stderr] Checking wgpu-types v0.17.0 [INFO] [stderr] Compiling num-rational v0.2.4 [INFO] [stderr] Compiling rav1e v0.7.1 [INFO] [stderr] Compiling smithay-client-toolkit v0.16.1 [INFO] [stderr] Compiling failure_derive v0.1.8 [INFO] [stderr] Checking lzw v0.10.0 [INFO] [stderr] Checking vec_map v0.8.2 [INFO] [stderr] Checking gimli v0.31.1 [INFO] [stderr] Checking renderdoc-sys v1.1.0 [INFO] [stderr] Compiling quote v1.0.37 [INFO] [stderr] Checking tiny-skia-path v0.8.4 [INFO] [stderr] Checking anstyle-parse v0.2.6 [INFO] [stderr] Checking inflate v0.4.5 [INFO] [stderr] Compiling syn v2.0.85 [INFO] [stderr] Compiling wayland-scanner v0.29.5 [INFO] [stderr] Checking deflate v0.7.20 [INFO] [stderr] Checking itertools v0.12.1 [INFO] [stderr] Checking safe_arch v0.7.2 [INFO] [stderr] Compiling simd_helpers v0.1.0 [INFO] [stderr] Checking num-iter v0.1.45 [INFO] [stderr] Checking spin v0.9.8 [INFO] [stderr] Compiling x11-dl v2.21.0 [INFO] [stderr] Checking object v0.36.5 [INFO] [stderr] Checking maybe-rayon v0.1.1 [INFO] [stderr] Checking adler v1.0.2 [INFO] [stderr] Checking rustc-demangle v0.1.24 [INFO] [stderr] Checking anstyle-query v1.1.2 [INFO] [stderr] Compiling serde v1.0.213 [INFO] [stderr] Checking anstyle v1.0.9 [INFO] [stderr] Checking bitstream-io v2.5.3 [INFO] [stderr] Compiling rustix v0.38.41 [INFO] [stderr] Checking colorchoice v1.0.3 [INFO] [stderr] Checking miniz_oxide v0.7.4 [INFO] [stderr] Checking anstream v0.6.17 [INFO] [stderr] Checking wide v0.7.30 [INFO] [stderr] Checking tiny-skia v0.8.4 [INFO] [stderr] Checking png v0.14.1 [INFO] [stderr] Checking flume v0.11.1 [INFO] [stderr] Checking gif v0.10.3 [INFO] [stderr] Checking nix v0.24.3 [INFO] [stderr] Checking parking_lot_core v0.9.10 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking nix v0.25.1 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking memmap2 v0.5.10 [INFO] [stderr] Checking avif-serialize v0.8.2 [INFO] [stderr] Checking half v2.4.1 [INFO] [stderr] Checking linux-raw-sys v0.4.14 [INFO] [stderr] Compiling wayland-client v0.29.5 [INFO] [stderr] Compiling wayland-protocols v0.29.5 [INFO] [stderr] Checking av1-grain v0.2.3 [INFO] [stderr] Checking jpeg-decoder v0.1.22 [INFO] [stderr] Checking wayland-commons v0.29.5 [INFO] [stderr] Compiling winit v0.28.7 [INFO] [stderr] Checking scoped_threadpool v0.1.9 [INFO] [stderr] Compiling serde_json v1.0.132 [INFO] [stderr] Checking tiff v0.9.1 [INFO] [stderr] Compiling synstructure v0.12.6 [INFO] [stderr] Checking clap_builder v4.5.20 [INFO] [stderr] Checking tiff v0.2.2 [INFO] [stderr] Checking regex-automata v0.4.8 [INFO] [stderr] Checking zune-jpeg v0.4.13 [INFO] [stderr] Checking exr v1.72.0 [INFO] [stderr] Checking image v0.21.3 [INFO] [stderr] Checking addr2line v0.24.2 [INFO] [stderr] Checking ultraviolet v0.9.2 [INFO] [stderr] Checking image-webp v0.2.0 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking signal-hook-registry v1.4.2 [INFO] [stderr] Checking socket2 v0.5.7 [INFO] [stderr] Checking mio v1.0.2 [INFO] [stderr] Checking mio v0.8.11 [INFO] [stderr] Checking qoi v0.4.1 [INFO] [stderr] Checking backtrace v0.3.74 [INFO] [stderr] Checking instant v0.1.13 [INFO] [stderr] Checking cpufeatures v0.2.14 [INFO] [stderr] Checking pollster v0.3.0 [INFO] [stderr] Checking wayland-cursor v0.29.5 [INFO] [stderr] Checking sha2 v0.10.8 [INFO] [stderr] Checking colored v2.1.0 [INFO] [stderr] Checking failure v0.1.8 [INFO] [stderr] Checking engine v0.0.0 [INFO] [stderr] Compiling thiserror-impl v1.0.65 [INFO] [stderr] Compiling zerocopy-derive v0.7.35 [INFO] [stderr] Compiling profiling-procmacros v1.0.16 [INFO] [stderr] Compiling arg_enum_proc_macro v0.3.4 [INFO] [stderr] Compiling num-derive v0.4.2 [INFO] [stderr] Compiling uuid-macro-internal v1.11.0 [INFO] [stderr] Compiling tokio-macros v2.4.0 [INFO] [stderr] Checking profiling v1.0.16 [INFO] [stderr] Checking clap v4.5.20 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Checking tokio v1.41.0 [INFO] [stderr] Checking naga v0.13.0 [INFO] [stderr] Checking calloop v0.10.6 [INFO] [stderr] Checking steganography v1.0.2 [INFO] [stderr] Checking ppv-lite86 v0.2.20 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking tempfile v3.14.0 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking gpu-descriptor v0.2.4 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking regex v1.11.1 [INFO] [stderr] Checking uuid v1.11.0 [INFO] [stderr] Checking wgpu-hal v0.17.2 [INFO] [stderr] Checking ravif v0.11.11 [INFO] [stderr] Checking image v0.25.4 [INFO] [stderr] Checking wgpu-core v0.17.1 [INFO] [stderr] Checking wgpu v0.17.2 [INFO] [stderr] Checking pixels v0.14.0 [INFO] [stderr] Checking sctk-adwaita v0.5.4 [INFO] [stderr] Checking distri v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `END_OF_TRANSMISSION` [INFO] [stdout] --> src/cloud.rs:14:37 [INFO] [stdout] | [INFO] [stdout] 14 | use crate::utils::{DEFAULT_TIMEOUT, END_OF_TRANSMISSION, server_encrypt_img, send_with_retry, recv_with_timeout, recv_reliable, send... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/cloud.rs:510:5 [INFO] [stdout] | [INFO] [stdout] 510 | / /// Elects the leader node based on the lowest load value, breaking ties with the lowest id [INFO] [stdout] 511 | | [INFO] [stdout] | |_____^ [INFO] [stdout] 512 | async fn elect_leader(self: &Arc, for_db:Option) { [INFO] [stdout] | --------------------- the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PathBuf` [INFO] [stdout] --> src/peer.rs:7:23 [INFO] [stdout] | [INFO] [stdout] 7 | use std::path::{Path, PathBuf}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CHUNK_SIZE`, `server_decrypt_img`, and `server_encrypt_img` [INFO] [stdout] --> src/peer.rs:16:86 [INFO] [stdout] | [INFO] [stdout] 16 | ...nd_reliable, send_with_retry, server_decrypt_img, peer_decrypt_img, server_encrypt_img, CHUNK_SIZE, DEFAULT_TIMEOUT, MAX_RETRIES}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty lines after doc comment [INFO] [stdout] --> src/peer.rs:35:1 [INFO] [stdout] | [INFO] [stdout] 35 | / /// done: [INFO] [stdout] ... | [INFO] [stdout] 48 | | [INFO] [stdout] | |_^ [INFO] [stdout] 49 | impl Peer { [INFO] [stdout] | - the comment documents this implementation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty lines are unintentional, remove them [INFO] [stdout] help: if the doc comment should not document the following item then comment it out [INFO] [stdout] | [INFO] [stdout] 35 | // /// done: [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::Path` [INFO] [stdout] --> src/utils.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::path::Path; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DynamicImage`, `ImageBuffer`, `Rgba`, and `open` [INFO] [stdout] --> src/utils.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | DynamicImage, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 22 | ImageBuffer, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 23 | Rgba, [INFO] [stdout] | ^^^^ [INFO] [stdout] 24 | open [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ControlFlow`, `EventLoop`, `Event`, `WindowEvent`, `platform::run_return::EventLoopExtRunReturn`, and `window::WindowBuilder` [INFO] [stdout] --> src/utils.rs:29:13 [INFO] [stdout] | [INFO] [stdout] 29 | event::{Event, WindowEvent}, [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ [INFO] [stdout] 30 | event_loop::{ControlFlow, EventLoop}, [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] 31 | window::WindowBuilder, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 32 | platform::run_return::EventLoopExtRunReturn [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `END_OF_TRANSMISSION` [INFO] [stdout] --> src/cloud.rs:14:37 [INFO] [stdout] | [INFO] [stdout] 14 | use crate::utils::{DEFAULT_TIMEOUT, END_OF_TRANSMISSION, server_encrypt_img, send_with_retry, recv_with_timeout, recv_reliable, send... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `base64::encode`: Use Engine::encode [INFO] [stdout] --> src/utils.rs:54:39 [INFO] [stdout] | [INFO] [stdout] 54 | let encoded_img_to_hide = base64::encode(&img_to_hide_bytes); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `base64::decode`: Use Engine::decode [INFO] [stdout] --> src/utils.rs:66:43 [INFO] [stdout] | [INFO] [stdout] 66 | let decoded_img_bytes = match base64::decode(&encoded_message) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `base64::decode`: Use Engine::decode [INFO] [stdout] --> src/utils.rs:132:43 [INFO] [stdout] | [INFO] [stdout] 132 | let decoded_img_bytes = match base64::decode(&encoded_message) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/cloud.rs:510:5 [INFO] [stdout] | [INFO] [stdout] 510 | / /// Elects the leader node based on the lowest load value, breaking ties with the lowest id [INFO] [stdout] 511 | | [INFO] [stdout] | |_____^ [INFO] [stdout] 512 | async fn elect_leader(self: &Arc, for_db:Option) { [INFO] [stdout] | --------------------- the comment documents this function [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PathBuf` [INFO] [stdout] --> src/peer.rs:7:23 [INFO] [stdout] | [INFO] [stdout] 7 | use std::path::{Path, PathBuf}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CHUNK_SIZE`, `server_decrypt_img`, and `server_encrypt_img` [INFO] [stdout] --> src/peer.rs:16:86 [INFO] [stdout] | [INFO] [stdout] 16 | ...nd_reliable, send_with_retry, server_decrypt_img, peer_decrypt_img, server_encrypt_img, CHUNK_SIZE, DEFAULT_TIMEOUT, MAX_RETRIES}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty lines after doc comment [INFO] [stdout] --> src/peer.rs:35:1 [INFO] [stdout] | [INFO] [stdout] 35 | / /// done: [INFO] [stdout] ... | [INFO] [stdout] 48 | | [INFO] [stdout] | |_^ [INFO] [stdout] 49 | impl Peer { [INFO] [stdout] | - the comment documents this implementation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty lines are unintentional, remove them [INFO] [stdout] help: if the doc comment should not document the following item then comment it out [INFO] [stdout] | [INFO] [stdout] 35 | // /// done: [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::Path` [INFO] [stdout] --> src/utils.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::path::Path; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DynamicImage`, `ImageBuffer`, `Rgba`, and `open` [INFO] [stdout] --> src/utils.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | DynamicImage, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 22 | ImageBuffer, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 23 | Rgba, [INFO] [stdout] | ^^^^ [INFO] [stdout] 24 | open [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ControlFlow`, `EventLoop`, `Event`, `WindowEvent`, `platform::run_return::EventLoopExtRunReturn`, and `window::WindowBuilder` [INFO] [stdout] --> src/utils.rs:29:13 [INFO] [stdout] | [INFO] [stdout] 29 | event::{Event, WindowEvent}, [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ [INFO] [stdout] 30 | event_loop::{ControlFlow, EventLoop}, [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] 31 | window::WindowBuilder, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 32 | platform::run_return::EventLoopExtRunReturn [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `base64::encode`: Use Engine::encode [INFO] [stdout] --> src/utils.rs:54:39 [INFO] [stdout] | [INFO] [stdout] 54 | let encoded_img_to_hide = base64::encode(&img_to_hide_bytes); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `base64::decode`: Use Engine::decode [INFO] [stdout] --> src/utils.rs:66:43 [INFO] [stdout] | [INFO] [stdout] 66 | let decoded_img_bytes = match base64::decode(&encoded_message) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `base64::decode`: Use Engine::decode [INFO] [stdout] --> src/utils.rs:132:43 [INFO] [stdout] | [INFO] [stdout] 132 | let decoded_img_bytes = match base64::decode(&encoded_message) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/cloud.rs:466:17 [INFO] [stdout] | [INFO] [stdout] 422 | Ok((packet, size, _)) => { [INFO] [stdout] | --------------------- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 466 | Ok((_, _, recv_addr)) => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/cloud.rs:466:17 [INFO] [stdout] | [INFO] [stdout] 422 | Ok((packet, size, _)) => { [INFO] [stdout] | --------------------- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 466 | Ok((_, _, recv_addr)) => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/peer.rs:378:9 [INFO] [stdout] | [INFO] [stdout] 369 | return Ok(addr.parse::()?); [INFO] [stdout] | -------------------------------------- any code following this expression is unreachable [INFO] [stdout] ... [INFO] [stdout] 378 | return Err(Box::new(std::io::Error::new(std::io::ErrorKind::Other, "No address was found"))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/peer.rs:207:13 [INFO] [stdout] | [INFO] [stdout] 207 | let mut pending = self.pending_approval().await; [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/peer.rs:378:9 [INFO] [stdout] | [INFO] [stdout] 369 | return Ok(addr.parse::()?); [INFO] [stdout] | -------------------------------------- any code following this expression is unreachable [INFO] [stdout] ... [INFO] [stdout] 378 | return Err(Box::new(std::io::Error::new(std::io::ErrorKind::Other, "No address was found"))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/peer.rs:207:13 [INFO] [stdout] | [INFO] [stdout] 207 | let mut pending = self.pending_approval().await; [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/utils.rs:86:5 [INFO] [stdout] | [INFO] [stdout] 85 | return Ok(()); [INFO] [stdout] | ------------- any code following this expression is unreachable [INFO] [stdout] 86 | / match File::create(file_path).await { [INFO] [stdout] 87 | | Ok(mut file) => { [INFO] [stdout] 88 | | file.write_all(data).await?; [INFO] [stdout] 89 | | println!("File saved to '{}'.", file_path); [INFO] [stdout] ... | [INFO] [stdout] 96 | | } [INFO] [stdout] | |_____^ unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/utils.rs:101:10 [INFO] [stdout] | [INFO] [stdout] 101 | let mut temp_file = Builder::new() [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/client.rs:61:21 [INFO] [stdout] | [INFO] [stdout] 61 | Err(e) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/client.rs:116:21 [INFO] [stdout] | [INFO] [stdout] 116 | Err(e) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/client.rs:163:21 [INFO] [stdout] | [INFO] [stdout] 163 | Err(e) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `size` [INFO] [stdout] --> src/cloud.rs:707:29 [INFO] [stdout] | [INFO] [stdout] 707 | Ok((packet, size, recv_addr)) if recv_addr == addr => { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_size` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/utils.rs:86:5 [INFO] [stdout] | [INFO] [stdout] 85 | return Ok(()); [INFO] [stdout] | ------------- any code following this expression is unreachable [INFO] [stdout] 86 | / match File::create(file_path).await { [INFO] [stdout] 87 | | Ok(mut file) => { [INFO] [stdout] 88 | | file.write_all(data).await?; [INFO] [stdout] 89 | | println!("File saved to '{}'.", file_path); [INFO] [stdout] ... | [INFO] [stdout] 96 | | } [INFO] [stdout] | |_____^ unreachable expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/utils.rs:101:10 [INFO] [stdout] | [INFO] [stdout] 101 | let mut temp_file = Builder::new() [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `num_views` [INFO] [stdout] --> src/peer.rs:270:49 [INFO] [stdout] | [INFO] [stdout] 270 | async fn encrypt_img(&self, file_name:&str, num_views:u32) -> Result, Box> { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_views` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/client.rs:61:21 [INFO] [stdout] | [INFO] [stdout] 61 | Err(e) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/peer.rs:179:51 [INFO] [stdout] | [INFO] [stdout] 179 | async fn handle_request_msg(self: &Arc, addr:SocketAddr, json_obj:Value) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/client.rs:116:21 [INFO] [stdout] | [INFO] [stdout] 116 | Err(e) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/client.rs:163:21 [INFO] [stdout] | [INFO] [stdout] 163 | Err(e) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/peer.rs:1001:24 [INFO] [stdout] | [INFO] [stdout] 1001 | if let Err(e) = async { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `file_path` [INFO] [stdout] --> src/utils.rs:84:28 [INFO] [stdout] | [INFO] [stdout] 84 | pub async fn write_to_file(file_path: &str, data: &[u8]) -> Result<(), std::io::Error> { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/utils.rs:84:45 [INFO] [stdout] | [INFO] [stdout] 84 | pub async fn write_to_file(file_path: &str, data: &[u8]) -> Result<(), std::io::Error> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/client.rs:21:1 [INFO] [stdout] | [INFO] [stdout] 21 | / impl Default for Client { [INFO] [stdout] 22 | | fn default() -> Self { [INFO] [stdout] 23 | | Client { [INFO] [stdout] 24 | | nodes: HashMap::new(), [INFO] [stdout] ... | [INFO] [stdout] 28 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 16 + #[derive(Default)] [INFO] [stdout] 17 | pub struct Client { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `size` [INFO] [stdout] --> src/cloud.rs:707:29 [INFO] [stdout] | [INFO] [stdout] 707 | Ok((packet, size, recv_addr)) if recv_addr == addr => { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_size` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `unwrap_or_else` to construct default value [INFO] [stdout] --> src/client.rs:33:35 [INFO] [stdout] | [INFO] [stdout] 33 | let initial_nodes = nodes.unwrap_or_else(HashMap::new); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/client.rs:89:13 [INFO] [stdout] | [INFO] [stdout] 89 | return Ok(buffer[..size].to_vec()); [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] 89 - return Ok(buffer[..size].to_vec()); [INFO] [stdout] 89 + Ok(buffer[..size].to_vec()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `SocketAddr` which implements the `Copy` trait [INFO] [stdout] --> src/client.rs:54:29 [INFO] [stdout] | [INFO] [stdout] 54 | let node_addr = node_addr.clone(); // Clone the address [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*node_addr` [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: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> src/client.rs:83:24 [INFO] [stdout] | [INFO] [stdout] 83 | return Ok(result?) [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark [INFO] [stdout] = note: `#[warn(clippy::needless_question_mark)]` on by default [INFO] [stdout] help: remove the enclosing `Ok` and `?` operator [INFO] [stdout] | [INFO] [stdout] 83 - return Ok(result?) [INFO] [stdout] 83 + return result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/client.rs:86:17 [INFO] [stdout] | [INFO] [stdout] 86 | Err(std::io::Error::new(std::io::ErrorKind::Other, "Send request not accepted.")) [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] 86 - Err(std::io::Error::new(std::io::ErrorKind::Other, "Send request not accepted.")) [INFO] [stdout] 86 + Err(std::io::Error::other("Send request not accepted.")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `SocketAddr` which implements the `Copy` trait [INFO] [stdout] --> src/client.rs:108:29 [INFO] [stdout] | [INFO] [stdout] 108 | let node_addr = node_addr.clone(); // Clone the address [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*node_addr` [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: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> src/client.rs:141:20 [INFO] [stdout] | [INFO] [stdout] 141 | return Ok(result?); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark [INFO] [stdout] help: remove the enclosing `Ok` and `?` operator [INFO] [stdout] | [INFO] [stdout] 141 - return Ok(result?); [INFO] [stdout] 141 + return result; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/client.rs:143:13 [INFO] [stdout] | [INFO] [stdout] 143 | Err(std::io::Error::new(std::io::ErrorKind::Other, "Send request not accepted.")) [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] 143 - Err(std::io::Error::new(std::io::ErrorKind::Other, "Send request not accepted.")) [INFO] [stdout] 143 + Err(std::io::Error::other("Send request not accepted.")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `SocketAddr` which implements the `Copy` trait [INFO] [stdout] --> src/client.rs:157:29 [INFO] [stdout] | [INFO] [stdout] 157 | let node_addr = node_addr.clone(); // Clone the address [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*node_addr` [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 let-binding has unit value [INFO] [stdout] --> src/client.rs:170:13 [INFO] [stdout] | [INFO] [stdout] 170 | / let _ = match recv_with_timeout(&socket, &mut buffer, Duration::from_secs(DEFAULT_TIMEOUT)).await { [INFO] [stdout] 171 | | Ok((size, addr)) => { [INFO] [stdout] 172 | | let response = String::from_utf8_lossy(&buffer[..size]); [INFO] [stdout] 173 | | println!("Received response from {}: {}", addr, response); [INFO] [stdout] ... | [INFO] [stdout] 179 | | }; [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 170 - let _ = match recv_with_timeout(&socket, &mut buffer, Duration::from_secs(DEFAULT_TIMEOUT)).await { [INFO] [stdout] 170 + match recv_with_timeout(&socket, &mut buffer, Duration::from_secs(DEFAULT_TIMEOUT)).await { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/client.rs:202:24 [INFO] [stdout] | [INFO] [stdout] 202 | return Err(std::io::Error::new( [INFO] [stdout] | ________________________^ [INFO] [stdout] 203 | | std::io::ErrorKind::Other, [INFO] [stdout] 204 | | "Received data from unexpected sender", [INFO] [stdout] 205 | | )); [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] 202 ~ return Err(std::io::Error::other( [INFO] [stdout] 203 ~ "Received data from unexpected sender", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `unwrap_or_else` to construct default value [INFO] [stdout] --> src/cloud.rs:69:14 [INFO] [stdout] | [INFO] [stdout] 69 | .unwrap_or_else(HashMap::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `unwrap_or_else` to construct default value [INFO] [stdout] --> src/cloud.rs:89:39 [INFO] [stdout] | [INFO] [stdout] 89 | for table_name in table_names.unwrap_or_else(Vec::new) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u32` which implements the `Copy` trait [INFO] [stdout] --> src/cloud.rs:126:27 [INFO] [stdout] | [INFO] [stdout] 126 | let num_workers = self.num_workers.lock().await.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.num_workers.lock().await` [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: non-binding `let` on a future [INFO] [stdout] --> src/cloud.rs:156:21 [INFO] [stdout] | [INFO] [stdout] 156 | let _ = recv_self.get_info(); // Retrieve updated info from all nodes [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider awaiting the future or dropping explicitly with `std::mem::drop` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_future [INFO] [stdout] = note: `#[warn(clippy::let_underscore_future)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `bool` which implements the `Copy` trait [INFO] [stdout] --> src/cloud.rs:287:102 [INFO] [stdout] | [INFO] [stdout] 287 | ...pdateInfo" || proc_self.elected.lock().await.clone() { // only if elected, or its a stats request [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*proc_self.elected.lock().await` [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: unused variable: `num_views` [INFO] [stdout] --> src/peer.rs:270:49 [INFO] [stdout] | [INFO] [stdout] 270 | async fn encrypt_img(&self, file_name:&str, num_views:u32) -> Result, Box> { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_views` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/cloud.rs:421:13 [INFO] [stdout] | [INFO] [stdout] 421 | / let _ = match recv_reliable(&socket, Some(Duration::from_secs(DEFAULT_TIMEOUT))).await { [INFO] [stdout] 422 | | Ok((packet, size, _)) => { [INFO] [stdout] 423 | | let data = &packet[..size]; [INFO] [stdout] ... | [INFO] [stdout] 477 | | }; [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 421 - let _ = match recv_reliable(&socket, Some(Duration::from_secs(DEFAULT_TIMEOUT))).await { [INFO] [stdout] 421 + match recv_reliable(&socket, Some(Duration::from_secs(DEFAULT_TIMEOUT))).await { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `addr` [INFO] [stdout] --> src/peer.rs:179:51 [INFO] [stdout] | [INFO] [stdout] 179 | async fn handle_request_msg(self: &Arc, addr:SocketAddr, json_obj:Value) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `bool` which implements the `Copy` trait [INFO] [stdout] --> src/cloud.rs:515:13 [INFO] [stdout] | [INFO] [stdout] 515 | if !self.time_to_update.lock().await.clone() && self.db_data_version.lock().await.clone() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.time_to_update.lock().await` [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 `u32` which implements the `Copy` trait [INFO] [stdout] --> src/cloud.rs:515:57 [INFO] [stdout] | [INFO] [stdout] 515 | if !self.time_to_update.lock().await.clone() && self.db_data_version.lock().await.clone() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.db_data_version.lock().await` [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/cloud.rs:581:9 [INFO] [stdout] | [INFO] [stdout] 581 | return elected; [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] 581 - return elected; [INFO] [stdout] 581 + elected [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `i32` which implements the `Copy` trait [INFO] [stdout] --> src/cloud.rs:549:31 [INFO] [stdout] | [INFO] [stdout] 549 | let mut lowest_load = self.load.lock().await.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.load.lock().await` [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 `u16` which implements the `Copy` trait [INFO] [stdout] --> src/cloud.rs:550:32 [INFO] [stdout] | [INFO] [stdout] 550 | let mut elected_node = self.id.lock().await.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.id.lock().await` [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 `u32` which implements the `Copy` trait [INFO] [stdout] --> src/cloud.rs:551:38 [INFO] [stdout] | [INFO] [stdout] 551 | let mut highest_db_version = self.db_data_version.lock().await.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.db_data_version.lock().await` [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 if-then-else expression returns a bool literal [INFO] [stdout] --> src/cloud.rs:574:13 [INFO] [stdout] | [INFO] [stdout] 574 | / if *self.db_data_version.lock().await >= highest_db_version { [INFO] [stdout] 575 | | return true; [INFO] [stdout] 576 | | } [INFO] [stdout] 577 | | else { [INFO] [stdout] 578 | | return false; [INFO] [stdout] 579 | | } [INFO] [stdout] | |_____________^ help: you can reduce it to: `return *self.db_data_version.lock().await >= highest_db_version` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/peer.rs:1001:24 [INFO] [stdout] | [INFO] [stdout] 1001 | if let Err(e) = async { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u32` which implements the `Copy` trait [INFO] [stdout] --> src/cloud.rs:619:24 [INFO] [stdout] | [INFO] [stdout] 619 | let requests = self.requests.lock().await.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.requests.lock().await` [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 `u32` which implements the `Copy` trait [INFO] [stdout] --> src/cloud.rs:620:24 [INFO] [stdout] | [INFO] [stdout] 620 | let accepted = self.accepted.lock().await.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.accepted.lock().await` [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 `u32` which implements the `Copy` trait [INFO] [stdout] --> src/cloud.rs:621:25 [INFO] [stdout] | [INFO] [stdout] 621 | let completed = self.completed.lock().await.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.completed.lock().await` [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 `u32` which implements the `Copy` trait [INFO] [stdout] --> src/cloud.rs:622:28 [INFO] [stdout] | [INFO] [stdout] 622 | let failed_times = self.failed_number_of_times.lock().await.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.failed_number_of_times.lock().await` [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 `Duration` which implements the `Copy` trait [INFO] [stdout] --> src/cloud.rs:624:26 [INFO] [stdout] | [INFO] [stdout] 624 | let total_time = self.total_task_time.lock().await.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.total_task_time.lock().await` [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: unused variable: `file_path` [INFO] [stdout] --> src/utils.rs:84:28 [INFO] [stdout] | [INFO] [stdout] 84 | pub async fn write_to_file(file_path: &str, data: &[u8]) -> Result<(), std::io::Error> { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/utils.rs:84:45 [INFO] [stdout] | [INFO] [stdout] 84 | pub async fn write_to_file(file_path: &str, data: &[u8]) -> Result<(), std::io::Error> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/cloud.rs:670:9 [INFO] [stdout] | [INFO] [stdout] 670 | return copy; [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] 670 - return copy; [INFO] [stdout] 670 + copy [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/client.rs:21:1 [INFO] [stdout] | [INFO] [stdout] 21 | / impl Default for Client { [INFO] [stdout] 22 | | fn default() -> Self { [INFO] [stdout] 23 | | Client { [INFO] [stdout] 24 | | nodes: HashMap::new(), [INFO] [stdout] ... | [INFO] [stdout] 28 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 16 + #[derive(Default)] [INFO] [stdout] 17 | pub struct Client { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/cloud.rs:823:9 [INFO] [stdout] | [INFO] [stdout] 823 | return Err(Error::new(ErrorKind::Other, "Client did not communicate")); [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] 823 - return Err(Error::new(ErrorKind::Other, "Client did not communicate")); [INFO] [stdout] 823 + Err(Error::new(ErrorKind::Other, "Client did not communicate")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/cloud.rs:748:44 [INFO] [stdout] | [INFO] [stdout] 748 | let table_name = &extract_variable(&received_msg)?; [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `received_msg` [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: use of `unwrap_or_else` to construct default value [INFO] [stdout] --> src/client.rs:33:35 [INFO] [stdout] | [INFO] [stdout] 33 | let initial_nodes = nodes.unwrap_or_else(HashMap::new); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/client.rs:89:13 [INFO] [stdout] | [INFO] [stdout] 89 | return Ok(buffer[..size].to_vec()); [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] 89 - return Ok(buffer[..size].to_vec()); [INFO] [stdout] 89 + Ok(buffer[..size].to_vec()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `SocketAddr` which implements the `Copy` trait [INFO] [stdout] --> src/client.rs:54:29 [INFO] [stdout] | [INFO] [stdout] 54 | let node_addr = node_addr.clone(); // Clone the address [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*node_addr` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/cloud.rs:772:40 [INFO] [stdout] | [INFO] [stdout] 772 | ... return Err(Error::new(ErrorKind::Other, "Failed to parse JSON")); [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] 772 - return Err(Error::new(ErrorKind::Other, "Failed to parse JSON")); [INFO] [stdout] 772 + return Err(Error::other("Failed to parse JSON")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> src/client.rs:83:24 [INFO] [stdout] | [INFO] [stdout] 83 | return Ok(result?) [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark [INFO] [stdout] = note: `#[warn(clippy::needless_question_mark)]` on by default [INFO] [stdout] help: remove the enclosing `Ok` and `?` operator [INFO] [stdout] | [INFO] [stdout] 83 - return Ok(result?) [INFO] [stdout] 83 + return result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/client.rs:86:17 [INFO] [stdout] | [INFO] [stdout] 86 | Err(std::io::Error::new(std::io::ErrorKind::Other, "Send request not accepted.")) [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] 86 - Err(std::io::Error::new(std::io::ErrorKind::Other, "Send request not accepted.")) [INFO] [stdout] 86 + Err(std::io::Error::other("Send request not accepted.")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/cloud.rs:815:32 [INFO] [stdout] | [INFO] [stdout] 815 | return Err(Error::new(ErrorKind::Other, "Receive operation timed out")); [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] 815 - return Err(Error::new(ErrorKind::Other, "Receive operation timed out")); [INFO] [stdout] 815 + return Err(Error::other("Receive operation timed out")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `SocketAddr` which implements the `Copy` trait [INFO] [stdout] --> src/client.rs:108:29 [INFO] [stdout] | [INFO] [stdout] 108 | let node_addr = node_addr.clone(); // Clone the address [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*node_addr` [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/cloud.rs:819:32 [INFO] [stdout] | [INFO] [stdout] 819 | return Err(Error::new(ErrorKind::Other, "No variable supplied")); [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] 819 - return Err(Error::new(ErrorKind::Other, "No variable supplied")); [INFO] [stdout] 819 + return Err(Error::other("No variable supplied")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/cloud.rs:823:20 [INFO] [stdout] | [INFO] [stdout] 823 | return Err(Error::new(ErrorKind::Other, "Client did not communicate")); [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] 823 - return Err(Error::new(ErrorKind::Other, "Client did not communicate")); [INFO] [stdout] 823 + return Err(Error::other("Client did not communicate")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/cloud.rs:942:9 [INFO] [stdout] | [INFO] [stdout] 942 | return Err(Error::new(ErrorKind::Other, "Client did not communicate")); [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] 942 - return Err(Error::new(ErrorKind::Other, "Client did not communicate")); [INFO] [stdout] 942 + Err(Error::new(ErrorKind::Other, "Client did not communicate")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/cloud.rs:829:44 [INFO] [stdout] | [INFO] [stdout] 829 | let table_name = &extract_variable(&received_msg)?; [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `received_msg` [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: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> src/client.rs:141:20 [INFO] [stdout] | [INFO] [stdout] 141 | return Ok(result?); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark [INFO] [stdout] help: remove the enclosing `Ok` and `?` operator [INFO] [stdout] | [INFO] [stdout] 141 - return Ok(result?); [INFO] [stdout] 141 + return result; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/client.rs:143:13 [INFO] [stdout] | [INFO] [stdout] 143 | Err(std::io::Error::new(std::io::ErrorKind::Other, "Send request not accepted.")) [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] 143 - Err(std::io::Error::new(std::io::ErrorKind::Other, "Send request not accepted.")) [INFO] [stdout] 143 + Err(std::io::Error::other("Send request not accepted.")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `SocketAddr` which implements the `Copy` trait [INFO] [stdout] --> src/client.rs:157:29 [INFO] [stdout] | [INFO] [stdout] 157 | let node_addr = node_addr.clone(); // Clone the address [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*node_addr` [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/cloud.rs:853:40 [INFO] [stdout] | [INFO] [stdout] 853 | ... return Err(Error::new(ErrorKind::Other, "Failed to parse JSON")); [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] 853 - return Err(Error::new(ErrorKind::Other, "Failed to parse JSON")); [INFO] [stdout] 853 + return Err(Error::other("Failed to parse JSON")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/client.rs:170:13 [INFO] [stdout] | [INFO] [stdout] 170 | / let _ = match recv_with_timeout(&socket, &mut buffer, Duration::from_secs(DEFAULT_TIMEOUT)).await { [INFO] [stdout] 171 | | Ok((size, addr)) => { [INFO] [stdout] 172 | | let response = String::from_utf8_lossy(&buffer[..size]); [INFO] [stdout] 173 | | println!("Received response from {}: {}", addr, response); [INFO] [stdout] ... | [INFO] [stdout] 179 | | }; [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 170 - let _ = match recv_with_timeout(&socket, &mut buffer, Duration::from_secs(DEFAULT_TIMEOUT)).await { [INFO] [stdout] 170 + match recv_with_timeout(&socket, &mut buffer, Duration::from_secs(DEFAULT_TIMEOUT)).await { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/cloud.rs:865:40 [INFO] [stdout] | [INFO] [stdout] 865 | ... return Err(Error::new(ErrorKind::Other, "No valid 'UUID' field found in JSON")); [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] 865 - return Err(Error::new(ErrorKind::Other, "No valid 'UUID' field found in JSON")); [INFO] [stdout] 865 + return Err(Error::other("No valid 'UUID' field found in JSON")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/client.rs:202:24 [INFO] [stdout] | [INFO] [stdout] 202 | return Err(std::io::Error::new( [INFO] [stdout] | ________________________^ [INFO] [stdout] 203 | | std::io::ErrorKind::Other, [INFO] [stdout] 204 | | "Received data from unexpected sender", [INFO] [stdout] 205 | | )); [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] 202 ~ return Err(std::io::Error::other( [INFO] [stdout] 203 ~ "Received data from unexpected sender", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/cloud.rs:871:36 [INFO] [stdout] | [INFO] [stdout] 871 | return Err(Error::new(ErrorKind::Other, "JSON must be an object")); [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] 871 - return Err(Error::new(ErrorKind::Other, "JSON must be an object")); [INFO] [stdout] 871 + return Err(Error::other("JSON must be an object")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `unwrap_or_else` to construct default value [INFO] [stdout] --> src/cloud.rs:69:14 [INFO] [stdout] | [INFO] [stdout] 69 | .unwrap_or_else(HashMap::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `unwrap_or_else` to construct default value [INFO] [stdout] --> src/cloud.rs:89:39 [INFO] [stdout] | [INFO] [stdout] 89 | for table_name in table_names.unwrap_or_else(Vec::new) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/cloud.rs:934:32 [INFO] [stdout] | [INFO] [stdout] 934 | return Err(Error::new(ErrorKind::Other, "Receive operation timed out")); [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] 934 - return Err(Error::new(ErrorKind::Other, "Receive operation timed out")); [INFO] [stdout] 934 + return Err(Error::other("Receive operation timed out")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/cloud.rs:938:32 [INFO] [stdout] | [INFO] [stdout] 938 | return Err(Error::new(ErrorKind::Other, "No variable supplied")); [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] 938 - return Err(Error::new(ErrorKind::Other, "No variable supplied")); [INFO] [stdout] 938 + return Err(Error::other("No variable supplied")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/cloud.rs:942:20 [INFO] [stdout] | [INFO] [stdout] 942 | return Err(Error::new(ErrorKind::Other, "Client did not communicate")); [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] 942 - return Err(Error::new(ErrorKind::Other, "Client did not communicate")); [INFO] [stdout] 942 + return Err(Error::other("Client did not communicate")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/cloud.rs:1031:9 [INFO] [stdout] | [INFO] [stdout] 1031 | return Err(Error::new(ErrorKind::Other, "Client did not communicate")); [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] 1031 - return Err(Error::new(ErrorKind::Other, "Client did not communicate")); [INFO] [stdout] 1031 + Err(Error::new(ErrorKind::Other, "Client did not communicate")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/cloud.rs:948:44 [INFO] [stdout] | [INFO] [stdout] 948 | let table_name = &extract_variable(&received_msg)?; [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `received_msg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u32` which implements the `Copy` trait [INFO] [stdout] --> src/cloud.rs:126:27 [INFO] [stdout] | [INFO] [stdout] 126 | let num_workers = self.num_workers.lock().await.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.num_workers.lock().await` [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/cloud.rs:971:40 [INFO] [stdout] | [INFO] [stdout] 971 | ... return Err(Error::new(ErrorKind::Other, "Failed to parse JSON")); [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] 971 - return Err(Error::new(ErrorKind::Other, "Failed to parse JSON")); [INFO] [stdout] 971 + return Err(Error::other("Failed to parse JSON")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-binding `let` on a future [INFO] [stdout] --> src/cloud.rs:156:21 [INFO] [stdout] | [INFO] [stdout] 156 | let _ = recv_self.get_info(); // Retrieve updated info from all nodes [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider awaiting the future or dropping explicitly with `std::mem::drop` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_underscore_future [INFO] [stdout] = note: `#[warn(clippy::let_underscore_future)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/cloud.rs:992:30 [INFO] [stdout] | [INFO] [stdout] 992 | ... !existing_entry.as_object().map_or(false, |existing_fields| { [INFO] [stdout] | ________________________^ [INFO] [stdout] 993 | | ... entry_object.iter().all(|(key, value)| { [INFO] [stdout] 994 | | ... existing_fields.get(key) == Some(value) [INFO] [stdout] 995 | | ... }) [INFO] [stdout] 996 | | ... }) [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] 992 - !existing_entry.as_object().map_or(false, |existing_fields| { [INFO] [stdout] 992 + !existing_entry.as_object().is_some_and(|existing_fields| { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/cloud.rs:1023:32 [INFO] [stdout] | [INFO] [stdout] 1023 | return Err(Error::new(ErrorKind::Other, "Receive operation timed out")); [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] 1023 - return Err(Error::new(ErrorKind::Other, "Receive operation timed out")); [INFO] [stdout] 1023 + return Err(Error::other("Receive operation timed out")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/cloud.rs:1027:32 [INFO] [stdout] | [INFO] [stdout] 1027 | return Err(Error::new(ErrorKind::Other, "No variable supplied")); [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] 1027 - return Err(Error::new(ErrorKind::Other, "No variable supplied")); [INFO] [stdout] 1027 + return Err(Error::other("No variable supplied")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/cloud.rs:1031:20 [INFO] [stdout] | [INFO] [stdout] 1031 | return Err(Error::new(ErrorKind::Other, "Client did not communicate")); [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] 1031 - return Err(Error::new(ErrorKind::Other, "Client did not communicate")); [INFO] [stdout] 1031 + return Err(Error::other("Client did not communicate")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/cloud.rs:1038:44 [INFO] [stdout] | [INFO] [stdout] 1038 | let table_name = &extract_variable(&received_msg)?; [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `received_msg` [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/cloud.rs:1058:36 [INFO] [stdout] | [INFO] [stdout] 1058 | return Err(Error::new(ErrorKind::Other, "Failed to parse JSON")); [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] 1058 - return Err(Error::new(ErrorKind::Other, "Failed to parse JSON")); [INFO] [stdout] 1058 + return Err(Error::other("Failed to parse JSON")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `bool` which implements the `Copy` trait [INFO] [stdout] --> src/cloud.rs:287:102 [INFO] [stdout] | [INFO] [stdout] 287 | ...pdateInfo" || proc_self.elected.lock().await.clone() { // only if elected, or its a stats request [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*proc_self.elected.lock().await` [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/cloud.rs:1080:25 [INFO] [stdout] | [INFO] [stdout] 1080 | / existing_entry.as_object().map_or(false, |existing_fields| { [INFO] [stdout] 1081 | | // Ensure all fields in `entry_object` match the corresponding fields in `existing_fields` [INFO] [stdout] 1082 | | entry_object.iter().all(|(key, value)| { [INFO] [stdout] 1083 | | existing_fields.get(key) == Some(value) [INFO] [stdout] 1084 | | }) [INFO] [stdout] 1085 | | }) [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] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 1080 - existing_entry.as_object().map_or(false, |existing_fields| { [INFO] [stdout] 1080 + existing_entry.as_object().is_some_and(|existing_fields| { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `SocketAddr` which implements the `Copy` trait [INFO] [stdout] --> src/peer.rs:170:51 [INFO] [stdout] | [INFO] [stdout] 170 | serve_self.handle_request_msg(addr.clone(), json_obj.clone()).await; [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `addr` [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 `SocketAddr` which implements the `Copy` trait [INFO] [stdout] --> src/peer.rs:173:49 [INFO] [stdout] | [INFO] [stdout] 173 | serve_self.handle_grant_msg(addr.clone(), json_obj.clone()).await; [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `addr` [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 let-binding has unit value [INFO] [stdout] --> src/cloud.rs:421:13 [INFO] [stdout] | [INFO] [stdout] 421 | / let _ = match recv_reliable(&socket, Some(Duration::from_secs(DEFAULT_TIMEOUT))).await { [INFO] [stdout] 422 | | Ok((packet, size, _)) => { [INFO] [stdout] 423 | | let data = &packet[..size]; [INFO] [stdout] ... | [INFO] [stdout] 477 | | }; [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 421 - let _ = match recv_reliable(&socket, Some(Duration::from_secs(DEFAULT_TIMEOUT))).await { [INFO] [stdout] 421 + match recv_reliable(&socket, Some(Duration::from_secs(DEFAULT_TIMEOUT))).await { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/peer.rs:292:17 [INFO] [stdout] | [INFO] [stdout] 292 | return Ok(data); [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] 292 - return Ok(data); [INFO] [stdout] 292 + Ok(data) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/peer.rs:296:17 [INFO] [stdout] | [INFO] [stdout] 296 | return Err(Box::new(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] 296 - return Err(Box::new(e)); [INFO] [stdout] 296 + Err(Box::new(e)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/peer.rs:313:9 [INFO] [stdout] | [INFO] [stdout] 313 | let filter_data:Vec; [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 `filter_data` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 313 ~ [INFO] [stdout] 314 ~ let filter_data:Vec = if filter.is_some() { [INFO] [stdout] 315 ~ to_vec(&filter).unwrap_or(Vec::new()) [INFO] [stdout] 316 | } [INFO] [stdout] 317 | else { [INFO] [stdout] 318 ~ Vec::new() [INFO] [stdout] 319 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `unwrap_or` to construct default value [INFO] [stdout] --> src/peer.rs:315:43 [INFO] [stdout] | [INFO] [stdout] 315 | filter_data = to_vec(&filter).unwrap_or(Vec::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `bool` which implements the `Copy` trait [INFO] [stdout] --> src/cloud.rs:515:13 [INFO] [stdout] | [INFO] [stdout] 515 | if !self.time_to_update.lock().await.clone() && self.db_data_version.lock().await.clone() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.time_to_update.lock().await` [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/peer.rs:378:9 [INFO] [stdout] | [INFO] [stdout] 378 | return Err(Box::new(std::io::Error::new(std::io::ErrorKind::Other, "No address was found"))); [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] 378 - return Err(Box::new(std::io::Error::new(std::io::ErrorKind::Other, "No address was found"))); [INFO] [stdout] 378 + Err(Box::new(std::io::Error::new(std::io::ErrorKind::Other, "No address was found"))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u32` which implements the `Copy` trait [INFO] [stdout] --> src/cloud.rs:515:57 [INFO] [stdout] | [INFO] [stdout] 515 | if !self.time_to_update.lock().await.clone() && self.db_data_version.lock().await.clone() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.db_data_version.lock().await` [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: accessing first element with `data.get(0)` [INFO] [stdout] --> src/peer.rs:366:36 [INFO] [stdout] | [INFO] [stdout] 366 | if let Some(first_entry) = data.get(0) { [INFO] [stdout] | ^^^^^^^^^^^ help: try: `data.first()` [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] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/peer.rs:372:37 [INFO] [stdout] | [INFO] [stdout] 372 | ... return Err(Box::new(std::io::Error::new(std::io::ErrorKind::Other, "The 'addr' field is missing in the first entry"))); [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] 372 - return Err(Box::new(std::io::Error::new(std::io::ErrorKind::Other, "The 'addr' field is missing in the first entry"))); [INFO] [stdout] 372 + return Err(Box::new(std::io::Error::other("The 'addr' field is missing in the first entry"))); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/peer.rs:376:33 [INFO] [stdout] | [INFO] [stdout] 376 | return Err(Box::new(std::io::Error::new(std::io::ErrorKind::Other, "Decryption failed"))); [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] 376 - return Err(Box::new(std::io::Error::new(std::io::ErrorKind::Other, "Decryption failed"))); [INFO] [stdout] 376 + return Err(Box::new(std::io::Error::other("Decryption failed"))); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/peer.rs:378:29 [INFO] [stdout] | [INFO] [stdout] 378 | return Err(Box::new(std::io::Error::new(std::io::ErrorKind::Other, "No address was found"))); [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] 378 - return Err(Box::new(std::io::Error::new(std::io::ErrorKind::Other, "No address was found"))); [INFO] [stdout] 378 + return Err(Box::new(std::io::Error::other("No address was found"))); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/cloud.rs:581:9 [INFO] [stdout] | [INFO] [stdout] 581 | return elected; [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] 581 - return elected; [INFO] [stdout] 581 + elected [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/peer.rs:405:58 [INFO] [stdout] | [INFO] [stdout] 405 | let encrypted_data = match self.encrypt_img(&entry.path().to_str().unwrap(), 0).await { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `entry.path().to_str().unwrap()` [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 `i32` which implements the `Copy` trait [INFO] [stdout] --> src/cloud.rs:549:31 [INFO] [stdout] | [INFO] [stdout] 549 | let mut lowest_load = self.load.lock().await.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.load.lock().await` [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 `u16` which implements the `Copy` trait [INFO] [stdout] --> src/cloud.rs:550:32 [INFO] [stdout] | [INFO] [stdout] 550 | let mut elected_node = self.id.lock().await.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.id.lock().await` [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 `u32` which implements the `Copy` trait [INFO] [stdout] --> src/cloud.rs:551:38 [INFO] [stdout] | [INFO] [stdout] 551 | let mut highest_db_version = self.db_data_version.lock().await.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.db_data_version.lock().await` [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 if-then-else expression returns a bool literal [INFO] [stdout] --> src/cloud.rs:574:13 [INFO] [stdout] | [INFO] [stdout] 574 | / if *self.db_data_version.lock().await >= highest_db_version { [INFO] [stdout] 575 | | return true; [INFO] [stdout] 576 | | } [INFO] [stdout] 577 | | else { [INFO] [stdout] 578 | | return false; [INFO] [stdout] 579 | | } [INFO] [stdout] | |_____________^ help: you can reduce it to: `return *self.db_data_version.lock().await >= highest_db_version` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/peer.rs:522:12 [INFO] [stdout] | [INFO] [stdout] 522 | if !tokio::fs::metadata(&resource_path).await.is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `tokio::fs::metadata(&resource_path).await.is_err()` [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 `u32` which implements the `Copy` trait [INFO] [stdout] --> src/cloud.rs:619:24 [INFO] [stdout] | [INFO] [stdout] 619 | let requests = self.requests.lock().await.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.requests.lock().await` [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 `u32` which implements the `Copy` trait [INFO] [stdout] --> src/cloud.rs:620:24 [INFO] [stdout] | [INFO] [stdout] 620 | let accepted = self.accepted.lock().await.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.accepted.lock().await` [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 `u32` which implements the `Copy` trait [INFO] [stdout] --> src/cloud.rs:621:25 [INFO] [stdout] | [INFO] [stdout] 621 | let completed = self.completed.lock().await.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.completed.lock().await` [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 `u32` which implements the `Copy` trait [INFO] [stdout] --> src/cloud.rs:622:28 [INFO] [stdout] | [INFO] [stdout] 622 | let failed_times = self.failed_number_of_times.lock().await.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.failed_number_of_times.lock().await` [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 `Duration` which implements the `Copy` trait [INFO] [stdout] --> src/cloud.rs:624:26 [INFO] [stdout] | [INFO] [stdout] 624 | let total_time = self.total_task_time.lock().await.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.total_task_time.lock().await` [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 let-binding has unit value [INFO] [stdout] --> src/peer.rs:583:13 [INFO] [stdout] | [INFO] [stdout] 583 | / ... let _ = match send_with_retry(&socket, entry.clone().as_bytes(), myself.resolve_id(peer_id_.as_str()).await.expect("Failed ... [INFO] [stdout] 584 | | ... Ok(()) => (), // Successfully received data [INFO] [stdout] 585 | | ... Err(e) if e.kind() == std::io::ErrorKind::TimedOut => { [INFO] [stdout] ... | [INFO] [stdout] 591 | | ... }; [INFO] [stdout] | |________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 583 - let _ = match send_with_retry(&socket, entry.clone().as_bytes(), myself.resolve_id(peer_id_.as_str()).await.expect("Failed grant address resolve"), MAX_RETRIES).await { [INFO] [stdout] 583 + match send_with_retry(&socket, entry.clone().as_bytes(), myself.resolve_id(peer_id_.as_str()).await.expect("Failed grant address resolve"), MAX_RETRIES).await { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/cloud.rs:670:9 [INFO] [stdout] | [INFO] [stdout] 670 | return copy; [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] 670 - return copy; [INFO] [stdout] 670 + copy [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `println!` args [INFO] [stdout] --> src/peer.rs:652:13 [INFO] [stdout] | [INFO] [stdout] 652 | println!("deleting UUID: {}", format!("req:{:?}|{:?}|{}", myself.id, peer_id_, resource_n)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `println!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] = note: `#[warn(clippy::format_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/peer.rs:670:12 [INFO] [stdout] | [INFO] [stdout] 670 | if !tokio::fs::metadata(&resource_path).await.is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `tokio::fs::metadata(&resource_path).await.is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/cloud.rs:823:9 [INFO] [stdout] | [INFO] [stdout] 823 | return Err(Error::new(ErrorKind::Other, "Client did not communicate")); [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] 823 - return Err(Error::new(ErrorKind::Other, "Client did not communicate")); [INFO] [stdout] 823 + Err(Error::new(ErrorKind::Other, "Client did not communicate")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/cloud.rs:748:44 [INFO] [stdout] | [INFO] [stdout] 748 | let table_name = &extract_variable(&received_msg)?; [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `received_msg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/peer.rs:696:13 [INFO] [stdout] | [INFO] [stdout] 696 | / ... let _ = match send_with_retry(&socket, entry.clone().as_bytes(), myself.resolve_id(peer_id_.as_str()).await.expect("Failed ... [INFO] [stdout] 697 | | ... Ok(()) => (), // Successfully received data [INFO] [stdout] 698 | | ... Err(e) if e.kind() == std::io::ErrorKind::TimedOut => { [INFO] [stdout] ... | [INFO] [stdout] 704 | | ... }; [INFO] [stdout] | |________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 696 - let _ = match send_with_retry(&socket, entry.clone().as_bytes(), myself.resolve_id(peer_id_.as_str()).await.expect("Failed grant address resolve"), MAX_RETRIES).await { [INFO] [stdout] 696 + match send_with_retry(&socket, entry.clone().as_bytes(), myself.resolve_id(peer_id_.as_str()).await.expect("Failed grant address resolve"), MAX_RETRIES).await { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/cloud.rs:772:40 [INFO] [stdout] | [INFO] [stdout] 772 | ... return Err(Error::new(ErrorKind::Other, "Failed to parse JSON")); [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] 772 - return Err(Error::new(ErrorKind::Other, "Failed to parse JSON")); [INFO] [stdout] 772 + return Err(Error::other("Failed to parse JSON")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `println!` args [INFO] [stdout] --> src/peer.rs:766:13 [INFO] [stdout] | [INFO] [stdout] 766 | println!("deleting UUID: {}", format!("req:{:?}|{:?}|{}", myself.id, peer_id_, resource_n)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `println!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/cloud.rs:815:32 [INFO] [stdout] | [INFO] [stdout] 815 | return Err(Error::new(ErrorKind::Other, "Receive operation timed out")); [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] 815 - return Err(Error::new(ErrorKind::Other, "Receive operation timed out")); [INFO] [stdout] 815 + return Err(Error::other("Receive operation timed out")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/cloud.rs:819:32 [INFO] [stdout] | [INFO] [stdout] 819 | return Err(Error::new(ErrorKind::Other, "No variable supplied")); [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] 819 - return Err(Error::new(ErrorKind::Other, "No variable supplied")); [INFO] [stdout] 819 + return Err(Error::other("No variable supplied")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/cloud.rs:823:20 [INFO] [stdout] | [INFO] [stdout] 823 | return Err(Error::new(ErrorKind::Other, "Client did not communicate")); [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] 823 - return Err(Error::new(ErrorKind::Other, "Client did not communicate")); [INFO] [stdout] 823 + return Err(Error::other("Client did not communicate")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/peer.rs:849:9 [INFO] [stdout] | [INFO] [stdout] 849 | return transactions [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] 849 - return transactions [INFO] [stdout] 849 + transactions [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/peer.rs:860:9 [INFO] [stdout] | [INFO] [stdout] 860 | return transactions [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] 860 - return transactions [INFO] [stdout] 860 + transactions [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/cloud.rs:942:9 [INFO] [stdout] | [INFO] [stdout] 942 | return Err(Error::new(ErrorKind::Other, "Client did not communicate")); [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] 942 - return Err(Error::new(ErrorKind::Other, "Client did not communicate")); [INFO] [stdout] 942 + Err(Error::new(ErrorKind::Other, "Client did not communicate")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/cloud.rs:829:44 [INFO] [stdout] | [INFO] [stdout] 829 | let table_name = &extract_variable(&received_msg)?; [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `received_msg` [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 boolean expression can be simplified [INFO] [stdout] --> src/peer.rs:874:12 [INFO] [stdout] | [INFO] [stdout] 874 | if !std::fs::metadata(&file_path).is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `std::fs::metadata(&file_path).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/cloud.rs:853:40 [INFO] [stdout] | [INFO] [stdout] 853 | ... return Err(Error::new(ErrorKind::Other, "Failed to parse JSON")); [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] 853 - return Err(Error::new(ErrorKind::Other, "Failed to parse JSON")); [INFO] [stdout] 853 + return Err(Error::other("Failed to parse JSON")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/cloud.rs:865:40 [INFO] [stdout] | [INFO] [stdout] 865 | ... return Err(Error::new(ErrorKind::Other, "No valid 'UUID' field found in JSON")); [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] 865 - return Err(Error::new(ErrorKind::Other, "No valid 'UUID' field found in JSON")); [INFO] [stdout] 865 + return Err(Error::other("No valid 'UUID' field found in JSON")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/cloud.rs:871:36 [INFO] [stdout] | [INFO] [stdout] 871 | return Err(Error::new(ErrorKind::Other, "JSON must be an object")); [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] 871 - return Err(Error::new(ErrorKind::Other, "JSON must be an object")); [INFO] [stdout] 871 + return Err(Error::other("JSON must be an object")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/cloud.rs:934:32 [INFO] [stdout] | [INFO] [stdout] 934 | return Err(Error::new(ErrorKind::Other, "Receive operation timed out")); [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] 934 - return Err(Error::new(ErrorKind::Other, "Receive operation timed out")); [INFO] [stdout] 934 + return Err(Error::other("Receive operation timed out")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/cloud.rs:938:32 [INFO] [stdout] | [INFO] [stdout] 938 | return Err(Error::new(ErrorKind::Other, "No variable supplied")); [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] 938 - return Err(Error::new(ErrorKind::Other, "No variable supplied")); [INFO] [stdout] 938 + return Err(Error::other("No variable supplied")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/cloud.rs:942:20 [INFO] [stdout] | [INFO] [stdout] 942 | return Err(Error::new(ErrorKind::Other, "Client did not communicate")); [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] 942 - return Err(Error::new(ErrorKind::Other, "Client did not communicate")); [INFO] [stdout] 942 + return Err(Error::other("Client did not communicate")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/cloud.rs:1031:9 [INFO] [stdout] | [INFO] [stdout] 1031 | return Err(Error::new(ErrorKind::Other, "Client did not communicate")); [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] 1031 - return Err(Error::new(ErrorKind::Other, "Client did not communicate")); [INFO] [stdout] 1031 + Err(Error::new(ErrorKind::Other, "Client did not communicate")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/cloud.rs:948:44 [INFO] [stdout] | [INFO] [stdout] 948 | let table_name = &extract_variable(&received_msg)?; [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `received_msg` [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/cloud.rs:971:40 [INFO] [stdout] | [INFO] [stdout] 971 | ... return Err(Error::new(ErrorKind::Other, "Failed to parse JSON")); [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] 971 - return Err(Error::new(ErrorKind::Other, "Failed to parse JSON")); [INFO] [stdout] 971 + return Err(Error::other("Failed to parse JSON")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/cloud.rs:992:30 [INFO] [stdout] | [INFO] [stdout] 992 | ... !existing_entry.as_object().map_or(false, |existing_fields| { [INFO] [stdout] | ________________________^ [INFO] [stdout] 993 | | ... entry_object.iter().all(|(key, value)| { [INFO] [stdout] 994 | | ... existing_fields.get(key) == Some(value) [INFO] [stdout] 995 | | ... }) [INFO] [stdout] 996 | | ... }) [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] 992 - !existing_entry.as_object().map_or(false, |existing_fields| { [INFO] [stdout] 992 + !existing_entry.as_object().is_some_and(|existing_fields| { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/utils.rs:100:44 [INFO] [stdout] | [INFO] [stdout] 100 | pub async fn peer_decrypt_img(encoded_img: &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] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 100 - pub async fn peer_decrypt_img(encoded_img: &Vec) -> Result, Box> { [INFO] [stdout] 100 + pub async fn peer_decrypt_img(encoded_img: &[u8]) -> Result, Box> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/cloud.rs:1023:32 [INFO] [stdout] | [INFO] [stdout] 1023 | return Err(Error::new(ErrorKind::Other, "Receive operation timed out")); [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] 1023 - return Err(Error::new(ErrorKind::Other, "Receive operation timed out")); [INFO] [stdout] 1023 + return Err(Error::other("Receive operation timed out")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/cloud.rs:1027:32 [INFO] [stdout] | [INFO] [stdout] 1027 | return Err(Error::new(ErrorKind::Other, "No variable supplied")); [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] 1027 - return Err(Error::new(ErrorKind::Other, "No variable supplied")); [INFO] [stdout] 1027 + return Err(Error::other("No variable supplied")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/cloud.rs:1031:20 [INFO] [stdout] | [INFO] [stdout] 1031 | return Err(Error::new(ErrorKind::Other, "Client did not communicate")); [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] 1031 - return Err(Error::new(ErrorKind::Other, "Client did not communicate")); [INFO] [stdout] 1031 + return Err(Error::other("Client did not communicate")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/utils.rs:200:9 [INFO] [stdout] | [INFO] [stdout] 200 | Err(std::io::Error::new(std::io::ErrorKind::Other, "Failed to send message after retries")) [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] 200 - Err(std::io::Error::new(std::io::ErrorKind::Other, "Failed to send message after retries")) [INFO] [stdout] 200 + Err(std::io::Error::other("Failed to send message after retries")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/cloud.rs:1038:44 [INFO] [stdout] | [INFO] [stdout] 1038 | let table_name = &extract_variable(&received_msg)?; [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `received_msg` [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/cloud.rs:1058:36 [INFO] [stdout] | [INFO] [stdout] 1058 | return Err(Error::new(ErrorKind::Other, "Failed to parse JSON")); [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] 1058 - return Err(Error::new(ErrorKind::Other, "Failed to parse JSON")); [INFO] [stdout] 1058 + return Err(Error::other("Failed to parse JSON")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/utils.rs:278:24 [INFO] [stdout] | [INFO] [stdout] 278 | return Err(io::Error::new( [INFO] [stdout] | ________________________^ [INFO] [stdout] 279 | | io::ErrorKind::Other, [INFO] [stdout] 280 | | "Failed to receive ACK after retries", [INFO] [stdout] 281 | | )); [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] 278 ~ return Err(io::Error::other( [INFO] [stdout] 279 ~ "Failed to receive ACK after retries", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/utils.rs:310:46 [INFO] [stdout] | [INFO] [stdout] 310 | let (size, addr) = recv_with_timeout(&socket, &mut buffer, duration.unwrap_or(Duration::from_secs(DEFAULT_TIMEOUT))).await?; [INFO] [stdout] | ^^^^^^^ help: change this to: `socket` [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 `SocketAddr` which implements the `Copy` trait [INFO] [stdout] --> src/utils.rs:314:19 [INFO] [stdout] | [INFO] [stdout] 314 | address = addr.clone(); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `addr` [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/cloud.rs:1080:25 [INFO] [stdout] | [INFO] [stdout] 1080 | / existing_entry.as_object().map_or(false, |existing_fields| { [INFO] [stdout] 1081 | | // Ensure all fields in `entry_object` match the corresponding fields in `existing_fields` [INFO] [stdout] 1082 | | entry_object.iter().all(|(key, value)| { [INFO] [stdout] 1083 | | existing_fields.get(key) == Some(value) [INFO] [stdout] 1084 | | }) [INFO] [stdout] 1085 | | }) [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] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 1080 - existing_entry.as_object().map_or(false, |existing_fields| { [INFO] [stdout] 1080 + existing_entry.as_object().is_some_and(|existing_fields| { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/utils.rs:359:24 [INFO] [stdout] | [INFO] [stdout] 359 | return Err(io::Error::new(io::ErrorKind::Other, "Missing data chunk")); [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] 359 - return Err(io::Error::new(io::ErrorKind::Other, "Missing data chunk")); [INFO] [stdout] 359 + return Err(io::Error::other("Missing data chunk")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/utils.rs:379:13 [INFO] [stdout] | [INFO] [stdout] 379 | Err(io::Error::new(io::ErrorKind::Other, "No variable supplied")) [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] 379 - Err(io::Error::new(io::ErrorKind::Other, "No variable supplied")) [INFO] [stdout] 379 + Err(io::Error::other("No variable supplied")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `SocketAddr` which implements the `Copy` trait [INFO] [stdout] --> src/peer.rs:170:51 [INFO] [stdout] | [INFO] [stdout] 170 | serve_self.handle_request_msg(addr.clone(), json_obj.clone()).await; [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `addr` [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 `SocketAddr` which implements the `Copy` trait [INFO] [stdout] --> src/peer.rs:173:49 [INFO] [stdout] | [INFO] [stdout] 173 | serve_self.handle_grant_msg(addr.clone(), json_obj.clone()).await; [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `addr` [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/peer.rs:292:17 [INFO] [stdout] | [INFO] [stdout] 292 | return Ok(data); [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] 292 - return Ok(data); [INFO] [stdout] 292 + Ok(data) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/peer.rs:296:17 [INFO] [stdout] | [INFO] [stdout] 296 | return Err(Box::new(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] 296 - return Err(Box::new(e)); [INFO] [stdout] 296 + Err(Box::new(e)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/peer.rs:313:9 [INFO] [stdout] | [INFO] [stdout] 313 | let filter_data:Vec; [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 `filter_data` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 313 ~ [INFO] [stdout] 314 ~ let filter_data:Vec = if filter.is_some() { [INFO] [stdout] 315 ~ to_vec(&filter).unwrap_or(Vec::new()) [INFO] [stdout] 316 | } [INFO] [stdout] 317 | else { [INFO] [stdout] 318 ~ Vec::new() [INFO] [stdout] 319 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `unwrap_or` to construct default value [INFO] [stdout] --> src/peer.rs:315:43 [INFO] [stdout] | [INFO] [stdout] 315 | filter_data = to_vec(&filter).unwrap_or(Vec::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/peer.rs:378:9 [INFO] [stdout] | [INFO] [stdout] 378 | return Err(Box::new(std::io::Error::new(std::io::ErrorKind::Other, "No address was found"))); [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] 378 - return Err(Box::new(std::io::Error::new(std::io::ErrorKind::Other, "No address was found"))); [INFO] [stdout] 378 + Err(Box::new(std::io::Error::new(std::io::ErrorKind::Other, "No address was found"))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `data.get(0)` [INFO] [stdout] --> src/peer.rs:366:36 [INFO] [stdout] | [INFO] [stdout] 366 | if let Some(first_entry) = data.get(0) { [INFO] [stdout] | ^^^^^^^^^^^ help: try: `data.first()` [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] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/peer.rs:372:37 [INFO] [stdout] | [INFO] [stdout] 372 | ... return Err(Box::new(std::io::Error::new(std::io::ErrorKind::Other, "The 'addr' field is missing in the first entry"))); [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] 372 - return Err(Box::new(std::io::Error::new(std::io::ErrorKind::Other, "The 'addr' field is missing in the first entry"))); [INFO] [stdout] 372 + return Err(Box::new(std::io::Error::other("The 'addr' field is missing in the first entry"))); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/peer.rs:376:33 [INFO] [stdout] | [INFO] [stdout] 376 | return Err(Box::new(std::io::Error::new(std::io::ErrorKind::Other, "Decryption failed"))); [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] 376 - return Err(Box::new(std::io::Error::new(std::io::ErrorKind::Other, "Decryption failed"))); [INFO] [stdout] 376 + return Err(Box::new(std::io::Error::other("Decryption failed"))); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/peer.rs:378:29 [INFO] [stdout] | [INFO] [stdout] 378 | return Err(Box::new(std::io::Error::new(std::io::ErrorKind::Other, "No address was found"))); [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] 378 - return Err(Box::new(std::io::Error::new(std::io::ErrorKind::Other, "No address was found"))); [INFO] [stdout] 378 + return Err(Box::new(std::io::Error::other("No address was found"))); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/peer.rs:405:58 [INFO] [stdout] | [INFO] [stdout] 405 | let encrypted_data = match self.encrypt_img(&entry.path().to_str().unwrap(), 0).await { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `entry.path().to_str().unwrap()` [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 boolean expression can be simplified [INFO] [stdout] --> src/peer.rs:522:12 [INFO] [stdout] | [INFO] [stdout] 522 | if !tokio::fs::metadata(&resource_path).await.is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `tokio::fs::metadata(&resource_path).await.is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/peer.rs:583:13 [INFO] [stdout] | [INFO] [stdout] 583 | / ... let _ = match send_with_retry(&socket, entry.clone().as_bytes(), myself.resolve_id(peer_id_.as_str()).await.expect("Failed ... [INFO] [stdout] 584 | | ... Ok(()) => (), // Successfully received data [INFO] [stdout] 585 | | ... Err(e) if e.kind() == std::io::ErrorKind::TimedOut => { [INFO] [stdout] ... | [INFO] [stdout] 591 | | ... }; [INFO] [stdout] | |________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 583 - let _ = match send_with_retry(&socket, entry.clone().as_bytes(), myself.resolve_id(peer_id_.as_str()).await.expect("Failed grant address resolve"), MAX_RETRIES).await { [INFO] [stdout] 583 + match send_with_retry(&socket, entry.clone().as_bytes(), myself.resolve_id(peer_id_.as_str()).await.expect("Failed grant address resolve"), MAX_RETRIES).await { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `println!` args [INFO] [stdout] --> src/peer.rs:652:13 [INFO] [stdout] | [INFO] [stdout] 652 | println!("deleting UUID: {}", format!("req:{:?}|{:?}|{}", myself.id, peer_id_, resource_n)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `println!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] = note: `#[warn(clippy::format_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/peer.rs:670:12 [INFO] [stdout] | [INFO] [stdout] 670 | if !tokio::fs::metadata(&resource_path).await.is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `tokio::fs::metadata(&resource_path).await.is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/peer.rs:696:13 [INFO] [stdout] | [INFO] [stdout] 696 | / ... let _ = match send_with_retry(&socket, entry.clone().as_bytes(), myself.resolve_id(peer_id_.as_str()).await.expect("Failed ... [INFO] [stdout] 697 | | ... Ok(()) => (), // Successfully received data [INFO] [stdout] 698 | | ... Err(e) if e.kind() == std::io::ErrorKind::TimedOut => { [INFO] [stdout] ... | [INFO] [stdout] 704 | | ... }; [INFO] [stdout] | |________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 696 - let _ = match send_with_retry(&socket, entry.clone().as_bytes(), myself.resolve_id(peer_id_.as_str()).await.expect("Failed grant address resolve"), MAX_RETRIES).await { [INFO] [stdout] 696 + match send_with_retry(&socket, entry.clone().as_bytes(), myself.resolve_id(peer_id_.as_str()).await.expect("Failed grant address resolve"), MAX_RETRIES).await { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `println!` args [INFO] [stdout] --> src/peer.rs:766:13 [INFO] [stdout] | [INFO] [stdout] 766 | println!("deleting UUID: {}", format!("req:{:?}|{:?}|{}", myself.id, peer_id_, resource_n)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `println!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/peer.rs:849:9 [INFO] [stdout] | [INFO] [stdout] 849 | return transactions [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] 849 - return transactions [INFO] [stdout] 849 + transactions [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/peer.rs:860:9 [INFO] [stdout] | [INFO] [stdout] 860 | return transactions [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] 860 - return transactions [INFO] [stdout] 860 + transactions [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/peer.rs:874:12 [INFO] [stdout] | [INFO] [stdout] 874 | if !std::fs::metadata(&file_path).is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `std::fs::metadata(&file_path).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/utils.rs:100:44 [INFO] [stdout] | [INFO] [stdout] 100 | pub async fn peer_decrypt_img(encoded_img: &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] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 100 - pub async fn peer_decrypt_img(encoded_img: &Vec) -> Result, Box> { [INFO] [stdout] 100 + pub async fn peer_decrypt_img(encoded_img: &[u8]) -> Result, Box> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/utils.rs:200:9 [INFO] [stdout] | [INFO] [stdout] 200 | Err(std::io::Error::new(std::io::ErrorKind::Other, "Failed to send message after retries")) [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] 200 - Err(std::io::Error::new(std::io::ErrorKind::Other, "Failed to send message after retries")) [INFO] [stdout] 200 + Err(std::io::Error::other("Failed to send message after retries")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/utils.rs:278:24 [INFO] [stdout] | [INFO] [stdout] 278 | return Err(io::Error::new( [INFO] [stdout] | ________________________^ [INFO] [stdout] 279 | | io::ErrorKind::Other, [INFO] [stdout] 280 | | "Failed to receive ACK after retries", [INFO] [stdout] 281 | | )); [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] 278 ~ return Err(io::Error::other( [INFO] [stdout] 279 ~ "Failed to receive ACK after retries", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/utils.rs:310:46 [INFO] [stdout] | [INFO] [stdout] 310 | let (size, addr) = recv_with_timeout(&socket, &mut buffer, duration.unwrap_or(Duration::from_secs(DEFAULT_TIMEOUT))).await?; [INFO] [stdout] | ^^^^^^^ help: change this to: `socket` [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 `SocketAddr` which implements the `Copy` trait [INFO] [stdout] --> src/utils.rs:314:19 [INFO] [stdout] | [INFO] [stdout] 314 | address = addr.clone(); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `addr` [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/utils.rs:359:24 [INFO] [stdout] | [INFO] [stdout] 359 | return Err(io::Error::new(io::ErrorKind::Other, "Missing data chunk")); [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] 359 - return Err(io::Error::new(io::ErrorKind::Other, "Missing data chunk")); [INFO] [stdout] 359 + return Err(io::Error::other("Missing data chunk")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/utils.rs:379:13 [INFO] [stdout] | [INFO] [stdout] 379 | Err(io::Error::new(io::ErrorKind::Other, "No variable supplied")) [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] 379 - Err(io::Error::new(io::ErrorKind::Other, "No variable supplied")) [INFO] [stdout] 379 + Err(io::Error::other("No variable supplied")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 51.96s [INFO] running `Command { std: "docker" "inspect" "076b34eea0d47ded9dbf6dc1b8e23a545c211e304da7026a0198bd3e0db9cd38", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "076b34eea0d47ded9dbf6dc1b8e23a545c211e304da7026a0198bd3e0db9cd38", kill_on_drop: false }` [INFO] [stdout] 076b34eea0d47ded9dbf6dc1b8e23a545c211e304da7026a0198bd3e0db9cd38