[INFO] cloning repository https://github.com/Nicklaskiaer/ap-rustaceans-wit-attitudes [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Nicklaskiaer/ap-rustaceans-wit-attitudes" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNicklaskiaer%2Fap-rustaceans-wit-attitudes", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNicklaskiaer%2Fap-rustaceans-wit-attitudes'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 08eab899277be52d2c6bd76bab6d4dd8409af913 [INFO] linting Nicklaskiaer/ap-rustaceans-wit-attitudes against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNicklaskiaer%2Fap-rustaceans-wit-attitudes" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Nicklaskiaer/ap-rustaceans-wit-attitudes [INFO] finished tweaking git repo https://github.com/Nicklaskiaer/ap-rustaceans-wit-attitudes [INFO] tweaked toml for git repo https://github.com/Nicklaskiaer/ap-rustaceans-wit-attitudes written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Nicklaskiaer/ap-rustaceans-wit-attitudes 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/Nicklaskiaer/ap-rustaceans-wit-attitudes 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 git repository `https://github.com/anass03/LeDron_James.git` [INFO] [stderr] Updating git repository `https://github.com/Beto-prog/TrustDone` [INFO] [stderr] Updating git repository `https://github.com/daw-dev/bagel-bomber.git` [INFO] [stderr] Updating git repository `https://github.com/Lockheed-Rustin/drone.git` [INFO] [stderr] Updating git repository `https://github.com/RustAndFurious/RF_drone.git` [INFO] [stderr] Updating git repository `https://github.com/giorebecchi/RollingDrone.git` [INFO] [stderr] Updating git repository `https://github.com/Nicklaskiaer/ap-rustaceans-wit-attitudes-drone.git` [INFO] [stderr] Updating git repository `https://github.com/Rustafarian-Unitn/rustafarian-drone` [INFO] [stderr] Updating git repository `https://github.com/Rustastic/RustasticDrone.git` [INFO] [stderr] Updating git repository `https://github.com/Suge42/Skylink_drone.git` [INFO] [stderr] Updating git repository `https://github.com/WGL-2024/WGL_repo_2024.git` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded gif v0.13.2 [INFO] [stderr] Downloaded xcursor v0.3.9 [INFO] [stderr] Downloaded chrono-tz-build v0.4.1 [INFO] [stderr] Downloaded wgpu v24.0.5 [INFO] [stderr] Downloaded wgpu-core v24.0.5 [INFO] [stderr] Downloaded chrono-tz v0.10.3 [INFO] [stderr] Downloaded winit v0.30.11 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] f1a3783612e2edefb89d5e10860056a791b81cde73d5d191f62e36d028dc0c74 [INFO] running `Command { std: "docker" "start" "-a" "f1a3783612e2edefb89d5e10860056a791b81cde73d5d191f62e36d028dc0c74", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "f1a3783612e2edefb89d5e10860056a791b81cde73d5d191f62e36d028dc0c74", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f1a3783612e2edefb89d5e10860056a791b81cde73d5d191f62e36d028dc0c74", kill_on_drop: false }` [INFO] [stdout] f1a3783612e2edefb89d5e10860056a791b81cde73d5d191f62e36d028dc0c74 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] 891fafa1ae3cfb283ac29b5d6b2b569200bf22e4066d349729f8a02a6913ca7c [INFO] running `Command { std: "docker" "start" "-a" "891fafa1ae3cfb283ac29b5d6b2b569200bf22e4066d349729f8a02a6913ca7c", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.174 [INFO] [stderr] Compiling memchr v2.7.5 [INFO] [stderr] Compiling winnow v0.7.11 [INFO] [stderr] Compiling indexmap v2.9.0 [INFO] [stderr] Checking libloading v0.8.8 [INFO] [stderr] Compiling enumflags2_derive v0.7.12 [INFO] [stderr] Compiling zvariant_utils v2.1.0 [INFO] [stderr] Compiling rustix v1.0.7 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Checking linux-raw-sys v0.4.15 [INFO] [stderr] Checking linux-raw-sys v0.9.4 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Checking dlib v0.5.2 [INFO] [stderr] Compiling wayland-sys v0.31.6 [INFO] [stderr] Compiling bytemuck_derive v1.9.3 [INFO] [stderr] Compiling wayland-backend v0.3.10 [INFO] [stderr] Checking event-listener v5.4.0 [INFO] [stderr] Checking wg_network v0.1.0 (https://github.com/WGL-2024/WGL_repo_2024.git#07520dfe) [INFO] [stderr] Checking crossbeam-channel v0.5.15 [INFO] [stderr] Checking wg_packet v0.1.0 (https://github.com/WGL-2024/WGL_repo_2024.git#07520dfe) [INFO] [stderr] Checking event-listener-strategy v0.5.4 [INFO] [stderr] Compiling quick-xml v0.37.5 [INFO] [stderr] Compiling wayland-client v0.31.10 [INFO] [stderr] Compiling enumflags2 v0.7.12 [INFO] [stderr] Checking wg_controller v0.1.0 (https://github.com/WGL-2024/WGL_repo_2024.git#07520dfe) [INFO] [stderr] Checking futures-lite v2.6.0 [INFO] [stderr] Checking endi v1.1.0 [INFO] [stderr] Checking bytemuck v1.23.1 [INFO] [stderr] Compiling static_assertions v1.1.0 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Checking getrandom v0.2.16 [INFO] [stderr] Checking getrandom v0.3.3 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Compiling wayland-scanner v0.31.6 [INFO] [stderr] Compiling memoffset v0.9.1 [INFO] [stderr] Checking wg_drone v0.1.0 (https://github.com/WGL-2024/WGL_repo_2024.git#07520dfe) [INFO] [stderr] Checking hashbrown v0.15.4 [INFO] [stderr] Checking piper v0.2.4 [INFO] [stderr] Checking wg_tests v0.1.0 (https://github.com/WGL-2024/WGL_repo_2024.git#07520dfe) [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking async-channel v2.3.1 [INFO] [stderr] Checking async-lock v3.4.0 [INFO] [stderr] Compiling quick-xml v0.30.0 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking wg_config v0.1.0 (https://github.com/WGL-2024/WGL_repo_2024.git#07520dfe) [INFO] [stderr] Compiling nix v0.29.0 [INFO] [stderr] Checking wg_internal v0.1.0 (https://github.com/WGL-2024/WGL_repo_2024.git#07520dfe) [INFO] [stderr] Checking blocking v1.6.1 [INFO] [stderr] Checking ttf-parser v0.25.1 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Compiling proc-macro-crate v3.3.0 [INFO] [stderr] Checking async-fs v2.1.2 [INFO] [stderr] Checking wg_2024 v0.1.0 (https://github.com/WGL-2024/WGL_repo_2024.git#07520dfe) [INFO] [stderr] Checking async-executor v1.13.2 [INFO] [stderr] Checking xdg-home v1.3.0 [INFO] [stderr] Checking async-broadcast v0.7.2 [INFO] [stderr] Checking ordered-stream v0.2.0 [INFO] [stderr] Compiling serde_repr v0.1.20 [INFO] [stderr] Compiling async-trait v0.1.88 [INFO] [stderr] Compiling xml-rs v0.8.26 [INFO] [stderr] Checking xcursor v0.3.9 [INFO] [stderr] Compiling x11-dl v2.21.0 [INFO] [stderr] Compiling zvariant_derive v4.2.0 [INFO] [stderr] Compiling zbus_macros v4.4.0 [INFO] [stderr] Checking polling v3.8.0 [INFO] [stderr] Checking owned_ttf_parser v0.25.0 [INFO] [stderr] Checking async-io v2.4.1 [INFO] [stderr] Checking ab_glyph v0.2.29 [INFO] [stderr] Compiling gl_generator v0.14.0 [INFO] [stderr] Checking calloop v0.13.0 [INFO] [stderr] Checking zvariant v4.2.0 [INFO] [stderr] Checking ahash v0.8.12 [INFO] [stderr] Checking memmap2 v0.9.5 [INFO] [stderr] Checking accesskit v0.17.1 [INFO] [stderr] Checking tiny-skia-path v0.11.4 [INFO] [stderr] Checking wayland-csd-frame v0.3.0 [INFO] [stderr] Checking flate2 v1.1.2 [INFO] [stderr] Checking parking_lot_core v0.9.11 [INFO] [stderr] Checking rand_core v0.9.3 [INFO] [stderr] Compiling regex-syntax v0.8.5 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking x11rb v0.13.1 [INFO] [stderr] Checking wayland-protocols v0.32.8 [INFO] [stderr] Checking calloop-wayland-source v0.3.0 [INFO] [stderr] Checking wayland-cursor v0.31.10 [INFO] [stderr] Checking parking_lot v0.12.4 [INFO] [stderr] Checking icu_normalizer v2.0.0 [INFO] [stderr] Checking zbus_names v3.0.0 [INFO] [stderr] Compiling regex-automata v0.4.9 [INFO] [stderr] Checking tiny-skia v0.11.4 [INFO] [stderr] Checking immutable-chunkmap v2.0.6 [INFO] [stderr] Checking zbus_xml v4.0.0 [INFO] [stderr] Checking zbus v4.4.0 [INFO] [stderr] Checking emath v0.31.1 [INFO] [stderr] Checking zbus-lockstep v0.4.4 [INFO] [stderr] Compiling winit v0.30.11 [INFO] [stderr] Checking ecolor v0.31.1 [INFO] [stderr] Checking png v0.17.16 [INFO] [stderr] Checking accesskit_consumer v0.26.0 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Compiling phf_generator v0.11.3 [INFO] [stderr] Checking rand v0.9.1 [INFO] [stderr] Compiling glutin_egl_sys v0.7.1 [INFO] [stderr] Compiling glutin_glx_sys v0.6.1 [INFO] [stderr] Compiling zbus-lockstep-macros v0.4.4 [INFO] [stderr] Compiling regex v1.11.1 [INFO] [stderr] Checking xkbcommon-dl v0.4.2 [INFO] [stderr] Checking dpi v0.1.2 [INFO] [stderr] Checking smol_str v0.2.2 [INFO] [stderr] Checking profiling v1.0.17 [INFO] [stderr] Checking epaint_default_fonts v0.31.1 [INFO] [stderr] Compiling parse-zoneinfo v0.3.1 [INFO] [stderr] Checking idna v1.0.3 [INFO] [stderr] Checking epaint v0.31.1 [INFO] [stderr] Compiling phf_codegen v0.11.3 [INFO] [stderr] Compiling glutin v0.32.3 [INFO] [stderr] Checking either v1.15.0 [INFO] [stderr] Checking image v0.25.6 [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Compiling chrono-tz-build v0.4.1 [INFO] [stderr] Checking url v2.5.4 [INFO] [stderr] Checking egui v0.31.1 [INFO] [stderr] Compiling glutin-winit v0.5.0 [INFO] [stderr] Checking siphasher v1.0.1 [INFO] [stderr] Checking phf_shared v0.11.3 [INFO] [stderr] Checking arboard v3.5.0 [INFO] [stderr] Compiling chrono-tz v0.10.3 [INFO] [stderr] Checking webbrowser v1.0.5 [INFO] [stderr] Checking aho-corasick v1.1.3 [INFO] [stderr] Checking toml v0.8.23 [INFO] [stderr] Checking half v2.6.0 [INFO] [stderr] Checking jpeg-decoder v0.3.2 [INFO] [stderr] Checking ascii v1.1.0 [INFO] [stderr] Checking chunked_transfer v1.5.0 [INFO] [stderr] Checking exr v1.73.0 [INFO] [stderr] Checking wayland-protocols-wlr v0.3.8 [INFO] [stderr] Checking wayland-protocols-plasma v0.3.8 [INFO] [stderr] Checking tiff v0.9.1 [INFO] [stderr] Checking tiny_http v0.12.0 [INFO] [stderr] Checking gif v0.13.2 [INFO] [stderr] Checking atspi-common v0.6.0 [INFO] [stderr] Checking tungstenite v0.26.2 [INFO] [stderr] Checking serde_json v1.0.140 [INFO] [stderr] Checking smithay-client-toolkit v0.19.2 [INFO] [stderr] Checking chrono v0.4.41 [INFO] [stderr] Checking egui_glow v0.31.1 [INFO] [stderr] Compiling document-features v0.2.11 [INFO] [stderr] Checking crossbeam v0.8.4 [INFO] [stderr] Checking phf v0.11.3 [INFO] [stderr] Checking qoi v0.4.1 [INFO] [stderr] Checking sctk-adwaita v0.10.1 [INFO] [stderr] Checking smithay-clipboard v0.7.2 [INFO] [stderr] Checking colored v3.0.0 [INFO] [stderr] Checking bagel_bomber v0.1.0 (https://github.com/daw-dev/bagel-bomber.git#222ab4f0) [INFO] [stderr] Checking rustastic-drone v0.1.0 (https://github.com/Rustastic/RustasticDrone.git#107c57f8) [INFO] [stderr] Checking rustafarian-drone v1.0.0 (https://github.com/Rustafarian-Unitn/rustafarian-drone#5b36c6d4) [INFO] [stderr] Checking LeDron_James v0.1.0 (https://github.com/anass03/LeDron_James.git#a9c5fae9) [INFO] [stderr] Checking rf_drone v0.1.0 (https://github.com/RustAndFurious/RF_drone.git#bc2e8eb4) [INFO] [stderr] Checking image v0.24.9 [INFO] [stderr] Checking rolling_drone v0.1.0 (https://github.com/giorebecchi/RollingDrone.git#b5c9cd63) [INFO] [stderr] Checking rustaceans_wit_attitudes v0.0.0 (https://github.com/Nicklaskiaer/ap-rustaceans-wit-attitudes-drone.git#5f51a159) [INFO] [stderr] Checking lockheedrustin-drone v0.1.0 (https://github.com/Lockheed-Rustin/drone.git#e82cf495) [INFO] [stderr] Checking drone v0.1.0 (https://github.com/Beto-prog/TrustDone#a8827d2c) [INFO] [stderr] Checking skylink v0.1.0 (https://github.com/Suge42/Skylink_drone.git#1626f7c8) [INFO] [stderr] Checking atspi-proxies v0.6.0 [INFO] [stderr] Checking accesskit_atspi_common v0.10.1 [INFO] [stderr] Checking atspi-connection v0.6.0 [INFO] [stderr] Checking atspi v0.22.0 [INFO] [stderr] Checking accesskit_unix v0.13.1 [INFO] [stderr] Checking accesskit_winit v0.23.1 [INFO] [stderr] Checking egui-winit v0.31.1 [INFO] [stderr] Checking eframe v0.31.1 [INFO] [stderr] Checking ap-project-rustaceans-wit-attitudes v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/network_initializer/network_initializer.rs:69:10 [INFO] [stdout] | [INFO] [stdout] 69 | for (i, drone) in config.drone.into_iter().enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/network_initializer/network_initializer.rs:69:10 [INFO] [stdout] | [INFO] [stdout] 69 | for (i, drone) in config.drone.into_iter().enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ui` [INFO] [stdout] --> src/simulation_controller/gui.rs:328:54 [INFO] [stdout] | [INFO] [stdout] 328 | egui::CentralPanel::default().show(ctx, |ui| { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ui` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ui` [INFO] [stdout] --> src/simulation_controller/gui.rs:328:54 [INFO] [stdout] | [INFO] [stdout] 328 | egui::CentralPanel::default().show(ctx, |ui| { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ui` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_server_ids`, `get_packet_channels`, and `handle_print_all_node_data_command` are never used [INFO] [stdout] --> src/simulation_controller/simulation_controller.rs:237:12 [INFO] [stdout] | [INFO] [stdout] 22 | impl SimulationController { [INFO] [stdout] | ------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 237 | pub fn get_server_ids(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 270 | pub fn get_packet_channels(&self) -> &HashMap, Receiver)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 340 | pub fn handle_print_all_node_data_command(&self, node_id: NodeId) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_all_know_text` and `get_all_know_media` are never used [INFO] [stdout] --> src/simulation_controller/gui_structs.rs:56:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl ClientsDownloadedData { [INFO] [stdout] | -------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 56 | pub fn get_all_know_text(&self, client_id: NodeId) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn get_all_know_media(&self, client_id: NodeId) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `stringify` and `from_string` are never used [INFO] [stdout] --> src/message/message.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 16 | pub trait DroneSend: Serialize + DeserializeOwned + std::fmt::Debug { [INFO] [stdout] | --------- associated items in this trait [INFO] [stdout] 17 | fn stringify(&self) -> String; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 18 | fn from_string(raw: String) -> Result; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Request` is never used [INFO] [stdout] --> src/message/message.rs:21:11 [INFO] [stdout] | [INFO] [stdout] 21 | pub trait Request: DroneSend { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Response` is never used [INFO] [stdout] --> src/message/message.rs:24:11 [INFO] [stdout] | [INFO] [stdout] 24 | pub trait Response: DroneSend { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/message/message.rs:32:24 [INFO] [stdout] | [INFO] [stdout] 32 | ServerTypeResponse(ServerTypeResponse), [INFO] [stdout] | ------------------ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `MessageContent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 32 - ServerTypeResponse(ServerTypeResponse), [INFO] [stdout] 32 + ServerTypeResponse(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/message/message.rs:33:17 [INFO] [stdout] | [INFO] [stdout] 33 | TextRequest(TextRequest), [INFO] [stdout] | ----------- ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `MessageContent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 33 - TextRequest(TextRequest), [INFO] [stdout] 33 + TextRequest(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/message/message.rs:34:18 [INFO] [stdout] | [INFO] [stdout] 34 | TextResponse(TextResponse), [INFO] [stdout] | ------------ ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `MessageContent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 34 - TextResponse(TextResponse), [INFO] [stdout] 34 + TextResponse(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/message/message.rs:40:18 [INFO] [stdout] | [INFO] [stdout] 40 | MediaRequest(MediaRequest), [INFO] [stdout] | ------------ ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `MessageContent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 40 - MediaRequest(MediaRequest), [INFO] [stdout] 40 + MediaRequest(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/message/message.rs:41:19 [INFO] [stdout] | [INFO] [stdout] 41 | MediaResponse(MediaResponseForMessageContent), [INFO] [stdout] | ------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `MessageContent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 41 - MediaResponse(MediaResponseForMessageContent), [INFO] [stdout] 41 + MediaResponse(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `ChatRequest` is never constructed [INFO] [stdout] --> src/message/message.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 30 | pub enum MessageContent { [INFO] [stdout] | -------------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 38 | ChatRequest(ChatRequest), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MessageContent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `packet_send` and `result_recv` are never read [INFO] [stdout] --> src/assembler/assembler.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct Assembler { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 12 | pub assemblies: Vec, [INFO] [stdout] 13 | pub packet_send: Sender, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | pub result_recv: Receiver>, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ServerTypeWithSessionId` is never used [INFO] [stdout] --> src/client_server/client.rs:25:10 [INFO] [stdout] | [INFO] [stdout] 25 | pub enum ServerTypeWithSessionId { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `run` is never used [INFO] [stdout] --> src/client_server/client.rs:142:8 [INFO] [stdout] | [INFO] [stdout] 111 | impl Client { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 142 | fn run(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `PrintAllNodeData` is never constructed [INFO] [stdout] --> src/client_server/network_core.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub enum ClientServerCommand { [INFO] [stdout] | ------------------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 15 | PrintAllNodeData, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/network_initializer/mod.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | pub mod network_initializer; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_server_ids`, `get_packet_channels`, and `handle_print_all_node_data_command` are never used [INFO] [stdout] --> src/simulation_controller/simulation_controller.rs:237:12 [INFO] [stdout] | [INFO] [stdout] 22 | impl SimulationController { [INFO] [stdout] | ------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 237 | pub fn get_server_ids(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 270 | pub fn get_packet_channels(&self) -> &HashMap, Receiver)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 340 | pub fn handle_print_all_node_data_command(&self, node_id: NodeId) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_all_know_text` and `get_all_know_media` are never used [INFO] [stdout] --> src/simulation_controller/gui_structs.rs:56:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl ClientsDownloadedData { [INFO] [stdout] | -------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 56 | pub fn get_all_know_text(&self, client_id: NodeId) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn get_all_know_media(&self, client_id: NodeId) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `stringify` and `from_string` are never used [INFO] [stdout] --> src/message/message.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 16 | pub trait DroneSend: Serialize + DeserializeOwned + std::fmt::Debug { [INFO] [stdout] | --------- associated items in this trait [INFO] [stdout] 17 | fn stringify(&self) -> String; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 18 | fn from_string(raw: String) -> Result; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Request` is never used [INFO] [stdout] --> src/message/message.rs:21:11 [INFO] [stdout] | [INFO] [stdout] 21 | pub trait Request: DroneSend { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Response` is never used [INFO] [stdout] --> src/message/message.rs:24:11 [INFO] [stdout] | [INFO] [stdout] 24 | pub trait Response: DroneSend { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/message/message.rs:32:24 [INFO] [stdout] | [INFO] [stdout] 32 | ServerTypeResponse(ServerTypeResponse), [INFO] [stdout] | ------------------ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `MessageContent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 32 - ServerTypeResponse(ServerTypeResponse), [INFO] [stdout] 32 + ServerTypeResponse(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/message/message.rs:33:17 [INFO] [stdout] | [INFO] [stdout] 33 | TextRequest(TextRequest), [INFO] [stdout] | ----------- ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `MessageContent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 33 - TextRequest(TextRequest), [INFO] [stdout] 33 + TextRequest(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/message/message.rs:34:18 [INFO] [stdout] | [INFO] [stdout] 34 | TextResponse(TextResponse), [INFO] [stdout] | ------------ ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `MessageContent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 34 - TextResponse(TextResponse), [INFO] [stdout] 34 + TextResponse(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/message/message.rs:40:18 [INFO] [stdout] | [INFO] [stdout] 40 | MediaRequest(MediaRequest), [INFO] [stdout] | ------------ ^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `MessageContent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 40 - MediaRequest(MediaRequest), [INFO] [stdout] 40 + MediaRequest(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/message/message.rs:41:19 [INFO] [stdout] | [INFO] [stdout] 41 | MediaResponse(MediaResponseForMessageContent), [INFO] [stdout] | ------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `MessageContent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 41 - MediaResponse(MediaResponseForMessageContent), [INFO] [stdout] 41 + MediaResponse(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `ChatRequest` is never constructed [INFO] [stdout] --> src/message/message.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 30 | pub enum MessageContent { [INFO] [stdout] | -------------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 38 | ChatRequest(ChatRequest), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MessageContent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `packet_send` and `result_recv` are never read [INFO] [stdout] --> src/assembler/assembler.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct Assembler { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 12 | pub assemblies: Vec, [INFO] [stdout] 13 | pub packet_send: Sender, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | pub result_recv: Receiver>, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ServerTypeWithSessionId` is never used [INFO] [stdout] --> src/client_server/client.rs:25:10 [INFO] [stdout] | [INFO] [stdout] 25 | pub enum ServerTypeWithSessionId { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `run` is never used [INFO] [stdout] --> src/client_server/client.rs:142:8 [INFO] [stdout] | [INFO] [stdout] 111 | impl Client { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 142 | fn run(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `PrintAllNodeData` is never constructed [INFO] [stdout] --> src/client_server/network_core.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub enum ClientServerCommand { [INFO] [stdout] | ------------------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 15 | PrintAllNodeData, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/network_initializer/mod.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | pub mod network_initializer; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/network_initializer/network_initializer.rs:279:14 [INFO] [stdout] | [INFO] [stdout] 279 | .zip(server_types_with_content.into_iter()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:629:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 279 - .zip(server_types_with_content.into_iter()) [INFO] [stdout] 279 + .zip(server_types_with_content) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/network_initializer/network_initializer.rs:614:12 [INFO] [stdout] | [INFO] [stdout] 614 | if !(n_drones >= min_drones) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(n_drones < min_drones)` [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: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/network_initializer/network_initializer.rs:279:14 [INFO] [stdout] | [INFO] [stdout] 279 | .zip(server_types_with_content.into_iter()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:629:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 279 - .zip(server_types_with_content.into_iter()) [INFO] [stdout] 279 + .zip(server_types_with_content) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/network_initializer/network_initializer.rs:628:14 [INFO] [stdout] | [INFO] [stdout] 628 | .or_insert_with(HashSet::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `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: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/network_initializer/network_initializer.rs:635:14 [INFO] [stdout] | [INFO] [stdout] 635 | .or_insert_with(HashSet::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `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 `or_insert_with` to construct default value [INFO] [stdout] --> src/network_initializer/network_initializer.rs:642:14 [INFO] [stdout] | [INFO] [stdout] 642 | .or_insert_with(HashSet::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `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 `map_or` can be simplified [INFO] [stdout] --> src/network_initializer/network_initializer.rs:649:17 [INFO] [stdout] | [INFO] [stdout] 649 | if !connection_map [INFO] [stdout] | _________________^ [INFO] [stdout] 650 | | .get(&connected_id) [INFO] [stdout] 651 | | .map_or(false, |conns| conns.contains(node_id)) [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] 651 - .map_or(false, |conns| conns.contains(node_id)) [INFO] [stdout] 651 + .is_some_and(|conns| conns.contains(node_id)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/simulation_controller/mod.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | pub mod simulation_controller; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/network_initializer/network_initializer.rs:614:12 [INFO] [stdout] | [INFO] [stdout] 614 | if !(n_drones >= min_drones) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(n_drones < min_drones)` [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: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/network_initializer/network_initializer.rs:628:14 [INFO] [stdout] | [INFO] [stdout] 628 | .or_insert_with(HashSet::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `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: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/network_initializer/network_initializer.rs:635:14 [INFO] [stdout] | [INFO] [stdout] 635 | .or_insert_with(HashSet::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `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 `or_insert_with` to construct default value [INFO] [stdout] --> src/network_initializer/network_initializer.rs:642:14 [INFO] [stdout] | [INFO] [stdout] 642 | .or_insert_with(HashSet::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `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 `map_or` can be simplified [INFO] [stdout] --> src/network_initializer/network_initializer.rs:649:17 [INFO] [stdout] | [INFO] [stdout] 649 | if !connection_map [INFO] [stdout] | _________________^ [INFO] [stdout] 650 | | .get(&connected_id) [INFO] [stdout] 651 | | .map_or(false, |conns| conns.contains(node_id)) [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] 651 - .map_or(false, |conns| conns.contains(node_id)) [INFO] [stdout] 651 + .is_some_and(|conns| conns.contains(node_id)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/simulation_controller/mod.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | pub mod simulation_controller; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/simulation_controller/simulation_controller.rs:226:55 [INFO] [stdout] | [INFO] [stdout] 226 | .map(|node_id| format!("Drone {}", node_id.to_string())) [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/simulation_controller/simulation_controller.rs:233:56 [INFO] [stdout] | [INFO] [stdout] 233 | .map(|node_id| format!("Client {}", node_id.to_string())) [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/simulation_controller/simulation_controller.rs:240:56 [INFO] [stdout] | [INFO] [stdout] 240 | .map(|node_id| format!("Server {}", node_id.to_string())) [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/simulation_controller/simulation_controller.rs:226:55 [INFO] [stdout] | [INFO] [stdout] 226 | .map(|node_id| format!("Drone {}", node_id.to_string())) [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/simulation_controller/simulation_controller.rs:233:56 [INFO] [stdout] | [INFO] [stdout] 233 | .map(|node_id| format!("Client {}", node_id.to_string())) [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/simulation_controller/simulation_controller.rs:240:56 [INFO] [stdout] | [INFO] [stdout] 240 | .map(|node_id| format!("Server {}", node_id.to_string())) [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's values [INFO] [stdout] --> src/simulation_controller/simulation_controller.rs:275:33 [INFO] [stdout] | [INFO] [stdout] 275 | for (_, (sender, _)) in &self.clients { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] = note: `#[warn(clippy::for_kv_map)]` on by default [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 275 - for (_, (sender, _)) in &self.clients { [INFO] [stdout] 275 + for (sender, _) in self.clients.values() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's values [INFO] [stdout] --> src/simulation_controller/simulation_controller.rs:279:36 [INFO] [stdout] | [INFO] [stdout] 279 | for (_, (sender, _, _)) in &self.servers { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 279 - for (_, (sender, _, _)) in &self.servers { [INFO] [stdout] 279 + for (sender, _, _) in self.servers.values() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's values [INFO] [stdout] --> src/simulation_controller/simulation_controller.rs:275:33 [INFO] [stdout] | [INFO] [stdout] 275 | for (_, (sender, _)) in &self.clients { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] = note: `#[warn(clippy::for_kv_map)]` on by default [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 275 - for (_, (sender, _)) in &self.clients { [INFO] [stdout] 275 + for (sender, _) in self.clients.values() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to want to iterate on a map's values [INFO] [stdout] --> src/simulation_controller/simulation_controller.rs:279:36 [INFO] [stdout] | [INFO] [stdout] 279 | for (_, (sender, _, _)) in &self.servers { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stdout] help: use the corresponding method [INFO] [stdout] | [INFO] [stdout] 279 - for (_, (sender, _, _)) in &self.servers { [INFO] [stdout] 279 + for (sender, _, _) in self.servers.values() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u8` which implements the `Copy` trait [INFO] [stdout] --> src/simulation_controller/gui.rs:150:72 [INFO] [stdout] | [INFO] [stdout] 150 | ... self.registered_clients.insert(clients.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try dereferencing it: `*clients` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u8` which implements the `Copy` trait [INFO] [stdout] --> src/simulation_controller/gui.rs:150:72 [INFO] [stdout] | [INFO] [stdout] 150 | ... self.registered_clients.insert(clients.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try dereferencing it: `*clients` [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: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/simulation_controller/gui.rs:160:42 [INFO] [stdout] | [INFO] [stdout] 160 | ... .or_insert_with(Vec::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `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 `or_insert_with` to construct default value [INFO] [stdout] --> src/simulation_controller/gui.rs:160:42 [INFO] [stdout] | [INFO] [stdout] 160 | ... .or_insert_with(Vec::new) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `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 `u8` which implements the `Copy` trait [INFO] [stdout] --> src/simulation_controller/gui.rs:219:33 [INFO] [stdout] | [INFO] [stdout] 219 | ... chatroom.server_id.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `chatroom.server_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u8` which implements the `Copy` trait [INFO] [stdout] --> src/simulation_controller/gui.rs:219:33 [INFO] [stdout] | [INFO] [stdout] 219 | ... chatroom.server_id.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `chatroom.server_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/simulation_controller/gui.rs:499:25 [INFO] [stdout] | [INFO] [stdout] 499 | &self.simulation_controller.get_clients(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `self.simulation_controller.get_clients()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/simulation_controller/gui.rs:500:25 [INFO] [stdout] | [INFO] [stdout] 500 | &self.simulation_controller.get_servers(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `self.simulation_controller.get_servers()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/simulation_controller/gui.rs:499:25 [INFO] [stdout] | [INFO] [stdout] 499 | &self.simulation_controller.get_clients(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `self.simulation_controller.get_clients()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/simulation_controller/gui.rs:500:25 [INFO] [stdout] | [INFO] [stdout] 500 | &self.simulation_controller.get_servers(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `self.simulation_controller.get_servers()` [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: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/simulation_controller/gui_structs.rs:25:74 [INFO] [stdout] | [INFO] [stdout] 25 | let client_server_data = self.text.entry((client_id, server_id)).or_insert_with(HashSet::new); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `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 `or_insert_with` to construct default value [INFO] [stdout] --> src/simulation_controller/gui_structs.rs:36:74 [INFO] [stdout] | [INFO] [stdout] 36 | let client_server_data = self.text.entry((client_id, server_id)).or_insert_with(HashSet::new); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `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 `or_insert_with` to construct default value [INFO] [stdout] --> src/simulation_controller/gui_structs.rs:25:74 [INFO] [stdout] | [INFO] [stdout] 25 | let client_server_data = self.text.entry((client_id, server_id)).or_insert_with(HashSet::new); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `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 `or_insert_with` to construct default value [INFO] [stdout] --> src/simulation_controller/gui_structs.rs:89:75 [INFO] [stdout] | [INFO] [stdout] 89 | let client_server_data = self.media.entry((client_id, server_id)).or_insert_with(HashSet::new); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `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 `or_insert_with` to construct default value [INFO] [stdout] --> src/simulation_controller/gui_structs.rs:100:75 [INFO] [stdout] | [INFO] [stdout] 100 | let client_server_data = self.media.entry((client_id, server_id)).or_insert_with(HashSet::new); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `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 `or_insert_with` to construct default value [INFO] [stdout] --> src/simulation_controller/gui_structs.rs:36:74 [INFO] [stdout] | [INFO] [stdout] 36 | let client_server_data = self.text.entry((client_id, server_id)).or_insert_with(HashSet::new); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `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 `or_insert_with` to construct default value [INFO] [stdout] --> src/simulation_controller/gui_structs.rs:89:75 [INFO] [stdout] | [INFO] [stdout] 89 | let client_server_data = self.media.entry((client_id, server_id)).or_insert_with(HashSet::new); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `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 `or_insert_with` to construct default value [INFO] [stdout] --> src/simulation_controller/gui_structs.rs:100:75 [INFO] [stdout] | [INFO] [stdout] 100 | let client_server_data = self.media.entry((client_id, server_id)).or_insert_with(HashSet::new); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `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 `or_insert_with` to construct default value [INFO] [stdout] --> src/simulation_controller/popup_handler.rs:83:10 [INFO] [stdout] | [INFO] [stdout] 83 | .or_insert_with(String::new); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `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 `if` statement can be collapsed [INFO] [stdout] --> src/simulation_controller/popup_handler.rs:95:13 [INFO] [stdout] | [INFO] [stdout] 95 | / if ui.button("Update").clicked() { [INFO] [stdout] 96 | | if (*entry - drop_rate).abs() > f32::EPSILON { [INFO] [stdout] 97 | | app.simulation_controller [INFO] [stdout] 98 | | .handle_set_packet_drop_rate(node_id, *entry); [INFO] [stdout] ... | [INFO] [stdout] 108 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 95 ~ if ui.button("Update").clicked() [INFO] [stdout] 96 ~ && (*entry - drop_rate).abs() > f32::EPSILON { [INFO] [stdout] 97 | app.simulation_controller [INFO] [stdout] ... [INFO] [stdout] 106 | }); [INFO] [stdout] 107 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert_with` to construct default value [INFO] [stdout] --> src/simulation_controller/popup_handler.rs:83:10 [INFO] [stdout] | [INFO] [stdout] 83 | .or_insert_with(String::new); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `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 `if` statement can be collapsed [INFO] [stdout] --> src/simulation_controller/popup_handler.rs:95:13 [INFO] [stdout] | [INFO] [stdout] 95 | / if ui.button("Update").clicked() { [INFO] [stdout] 96 | | if (*entry - drop_rate).abs() > f32::EPSILON { [INFO] [stdout] 97 | | app.simulation_controller [INFO] [stdout] 98 | | .handle_set_packet_drop_rate(node_id, *entry); [INFO] [stdout] ... | [INFO] [stdout] 108 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 95 ~ if ui.button("Update").clicked() [INFO] [stdout] 96 ~ && (*entry - drop_rate).abs() > f32::EPSILON { [INFO] [stdout] 97 | app.simulation_controller [INFO] [stdout] ... [INFO] [stdout] 106 | }); [INFO] [stdout] 107 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/simulation_controller/popup_handler.rs:247:17 [INFO] [stdout] | [INFO] [stdout] 247 | / if ui.button("Register").clicked() { [INFO] [stdout] 248 | | if !registered_servers.contains(&server_id_sel) { [INFO] [stdout] 249 | | app.simulation_controller [INFO] [stdout] 250 | | .handle_registration_request(node_id, server_id_sel.clone()); [INFO] [stdout] 251 | | } [INFO] [stdout] 252 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 247 ~ if ui.button("Register").clicked() [INFO] [stdout] 248 ~ && !registered_servers.contains(&server_id_sel) { [INFO] [stdout] 249 | app.simulation_controller [INFO] [stdout] 250 | .handle_registration_request(node_id, server_id_sel.clone()); [INFO] [stdout] 251 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u8` which implements the `Copy` trait [INFO] [stdout] --> src/simulation_controller/popup_handler.rs:250:67 [INFO] [stdout] | [INFO] [stdout] 250 | ... .handle_registration_request(node_id, server_id_sel.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `server_id_sel` [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` statement can be collapsed [INFO] [stdout] --> src/simulation_controller/popup_handler.rs:255:17 [INFO] [stdout] | [INFO] [stdout] 255 | / if registered_servers.contains(&server_id_sel) { [INFO] [stdout] 256 | | if ui.button("Client List").clicked(){ [INFO] [stdout] 257 | | // Set the client list popup to open for this client [INFO] [stdout] 258 | | app.client_list_popups.insert(node_id, true); [INFO] [stdout] ... | [INFO] [stdout] 261 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 255 ~ if registered_servers.contains(&server_id_sel) [INFO] [stdout] 256 ~ && ui.button("Client List").clicked(){ [INFO] [stdout] 257 | // Set the client list popup to open for this client [INFO] [stdout] 258 | app.client_list_popups.insert(node_id, true); [INFO] [stdout] 259 | app.simulation_controller.handle_client_list_request(node_id, server_id_sel.clone()); [INFO] [stdout] 260 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u8` which implements the `Copy` trait [INFO] [stdout] --> src/simulation_controller/popup_handler.rs:259:87 [INFO] [stdout] | [INFO] [stdout] 259 | app.simulation_controller.handle_client_list_request(node_id, server_id_sel.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `server_id_sel` [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: useless use of `format!` [INFO] [stdout] --> src/simulation_controller/popup_handler.rs:283:50 [INFO] [stdout] | [INFO] [stdout] 283 | ... ui.label(format!("{}", chat_message.content)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `chat_message.content.to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/simulation_controller/popup_handler.rs:247:17 [INFO] [stdout] | [INFO] [stdout] 247 | / if ui.button("Register").clicked() { [INFO] [stdout] 248 | | if !registered_servers.contains(&server_id_sel) { [INFO] [stdout] 249 | | app.simulation_controller [INFO] [stdout] 250 | | .handle_registration_request(node_id, server_id_sel.clone()); [INFO] [stdout] 251 | | } [INFO] [stdout] 252 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 247 ~ if ui.button("Register").clicked() [INFO] [stdout] 248 ~ && !registered_servers.contains(&server_id_sel) { [INFO] [stdout] 249 | app.simulation_controller [INFO] [stdout] 250 | .handle_registration_request(node_id, server_id_sel.clone()); [INFO] [stdout] 251 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u8` which implements the `Copy` trait [INFO] [stdout] --> src/simulation_controller/popup_handler.rs:250:67 [INFO] [stdout] | [INFO] [stdout] 250 | ... .handle_registration_request(node_id, server_id_sel.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `server_id_sel` [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` statement can be collapsed [INFO] [stdout] --> src/simulation_controller/popup_handler.rs:255:17 [INFO] [stdout] | [INFO] [stdout] 255 | / if registered_servers.contains(&server_id_sel) { [INFO] [stdout] 256 | | if ui.button("Client List").clicked(){ [INFO] [stdout] 257 | | // Set the client list popup to open for this client [INFO] [stdout] 258 | | app.client_list_popups.insert(node_id, true); [INFO] [stdout] ... | [INFO] [stdout] 261 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 255 ~ if registered_servers.contains(&server_id_sel) [INFO] [stdout] 256 ~ && ui.button("Client List").clicked(){ [INFO] [stdout] 257 | // Set the client list popup to open for this client [INFO] [stdout] 258 | app.client_list_popups.insert(node_id, true); [INFO] [stdout] 259 | app.simulation_controller.handle_client_list_request(node_id, server_id_sel.clone()); [INFO] [stdout] 260 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u8` which implements the `Copy` trait [INFO] [stdout] --> src/simulation_controller/popup_handler.rs:259:87 [INFO] [stdout] | [INFO] [stdout] 259 | app.simulation_controller.handle_client_list_request(node_id, server_id_sel.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `server_id_sel` [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: useless use of `format!` [INFO] [stdout] --> src/simulation_controller/popup_handler.rs:283:50 [INFO] [stdout] | [INFO] [stdout] 283 | ... ui.label(format!("{}", chat_message.content)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `chat_message.content.to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/simulation_controller/popup_handler.rs:426:76 [INFO] [stdout] | [INFO] [stdout] 426 | ... if let Ok(image) = image::open(&Path::new(&image_path)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Path::new(&image_path)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: compiling a regex in a loop [INFO] [stdout] --> src/simulation_controller/popup_handler.rs:516:66 [INFO] [stdout] | [INFO] [stdout] 516 | ... let re = regex::Regex::new(r"\[image_(\d+)]").unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: move the regex construction outside this loop [INFO] [stdout] --> src/simulation_controller/popup_handler.rs:503:41 [INFO] [stdout] | [INFO] [stdout] 503 | ... for file_id in files { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_creation_in_loops [INFO] [stdout] = note: `#[warn(clippy::regex_creation_in_loops)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/simulation_controller/popup_handler.rs:426:76 [INFO] [stdout] | [INFO] [stdout] 426 | ... if let Ok(image) = image::open(&Path::new(&image_path)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Path::new(&image_path)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/simulation_controller/popup_handler.rs:555:116 [INFO] [stdout] | [INFO] [stdout] 555 | ... if let Ok(image) = image::open(&Path::new(&image_path)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Path::new(&image_path)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: compiling a regex in a loop [INFO] [stdout] --> src/simulation_controller/popup_handler.rs:516:66 [INFO] [stdout] | [INFO] [stdout] 516 | ... let re = regex::Regex::new(r"\[image_(\d+)]").unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: move the regex construction outside this loop [INFO] [stdout] --> src/simulation_controller/popup_handler.rs:503:41 [INFO] [stdout] | [INFO] [stdout] 503 | ... for file_id in files { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#regex_creation_in_loops [INFO] [stdout] = note: `#[warn(clippy::regex_creation_in_loops)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/simulation_controller/popup_handler.rs:555:116 [INFO] [stdout] | [INFO] [stdout] 555 | ... if let Ok(image) = image::open(&Path::new(&image_path)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `Path::new(&image_path)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/message/mod.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | pub mod message; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/message/mod.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | pub mod message; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u64` which implements the `Copy` trait [INFO] [stdout] --> src/message/message.rs:57:56 [INFO] [stdout] | [INFO] [stdout] 57 | MediaResponse::Media(_m, _) => Self::Media(_m.clone()), [INFO] [stdout] | ^^^^^^^^^^ help: try dereferencing it: `*_m` [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: redundant closure [INFO] [stdout] --> src/message/message.rs:68:23 [INFO] [stdout] | [INFO] [stdout] 68 | .and_then(|v| serde_json::from_value::(v)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `serde_json::from_value::` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/message/message.rs:72:23 [INFO] [stdout] | [INFO] [stdout] 72 | .and_then(|v| serde_json::from_value::(v)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `serde_json::from_value::` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/message/message.rs:76:53 [INFO] [stdout] | [INFO] [stdout] 76 | serde_json::to_value(&content).and_then(|v| serde_json::from_value::(v)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `serde_json::from_value::` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/message/message.rs:80:53 [INFO] [stdout] | [INFO] [stdout] 80 | serde_json::to_value(&content).and_then(|v| serde_json::from_value::(v)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `serde_json::from_value::` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/message/message.rs:84:53 [INFO] [stdout] | [INFO] [stdout] 84 | serde_json::to_value(&content).and_then(|v| serde_json::from_value::(v)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `serde_json::from_value::` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/message/message.rs:88:23 [INFO] [stdout] | [INFO] [stdout] 88 | .and_then(|v| serde_json::from_value::(v)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `serde_json::from_value::` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u64` which implements the `Copy` trait [INFO] [stdout] --> src/message/message.rs:57:56 [INFO] [stdout] | [INFO] [stdout] 57 | MediaResponse::Media(_m, _) => Self::Media(_m.clone()), [INFO] [stdout] | ^^^^^^^^^^ help: try dereferencing it: `*_m` [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: redundant closure [INFO] [stdout] --> src/message/message.rs:68:23 [INFO] [stdout] | [INFO] [stdout] 68 | .and_then(|v| serde_json::from_value::(v)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `serde_json::from_value::` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/message/message.rs:72:23 [INFO] [stdout] | [INFO] [stdout] 72 | .and_then(|v| serde_json::from_value::(v)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `serde_json::from_value::` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/message/message.rs:76:53 [INFO] [stdout] | [INFO] [stdout] 76 | serde_json::to_value(&content).and_then(|v| serde_json::from_value::(v)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `serde_json::from_value::` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/message/message.rs:80:53 [INFO] [stdout] | [INFO] [stdout] 80 | serde_json::to_value(&content).and_then(|v| serde_json::from_value::(v)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `serde_json::from_value::` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/message/message.rs:84:53 [INFO] [stdout] | [INFO] [stdout] 84 | serde_json::to_value(&content).and_then(|v| serde_json::from_value::(v)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `serde_json::from_value::` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/message/message.rs:88:23 [INFO] [stdout] | [INFO] [stdout] 88 | .and_then(|v| serde_json::from_value::(v)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `serde_json::from_value::` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/assembler/mod.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | pub mod assembler; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/assembler/assembler.rs:56:9 [INFO] [stdout] | [INFO] [stdout] 56 | / match packet.pack_type { [INFO] [stdout] 57 | | PacketType::MsgFragment(fragment) => { [INFO] [stdout] 58 | | if fragment.total_n_fragments == 0 { [INFO] [stdout] 59 | | debug!("Received fragment with total_n_fragments == 0, ignoring"); [INFO] [stdout] ... | [INFO] [stdout] 144 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 56 ~ if let PacketType::MsgFragment(fragment) = packet.pack_type { [INFO] [stdout] 57 + if fragment.total_n_fragments == 0 { [INFO] [stdout] 58 + debug!("Received fragment with total_n_fragments == 0, ignoring"); [INFO] [stdout] 59 + return; [INFO] [stdout] 60 + } [INFO] [stdout] 61 + // If total_n_fragments is 1, we can directly send back the data [INFO] [stdout] 62 + if fragment.total_n_fragments == 1 { [INFO] [stdout] 63 + match self.result_send.send(fragment.data.to_vec().clone()) { [INFO] [stdout] 64 + Ok(_) => { [INFO] [stdout] 65 + debug!( [INFO] [stdout] 66 + "Assembled data sent successfully for session_id: {}", [INFO] [stdout] 67 + session_id [INFO] [stdout] 68 + ); [INFO] [stdout] 69 + } [INFO] [stdout] 70 + Err(_e) => { [INFO] [stdout] 71 + debug!( [INFO] [stdout] 72 + "Failed to send single fragment data for session_id: {}: {}", [INFO] [stdout] 73 + session_id, _e [INFO] [stdout] 74 + ); [INFO] [stdout] 75 + } [INFO] [stdout] 76 + } [INFO] [stdout] 77 + return; [INFO] [stdout] 78 + } [INFO] [stdout] 79 + [INFO] [stdout] 80 + // Check if the fragment has an assembly in progress [INFO] [stdout] 81 + let assembly = self [INFO] [stdout] 82 + .assemblies [INFO] [stdout] 83 + .iter_mut() [INFO] [stdout] 84 + .find(|a| a.session_id == session_id); [INFO] [stdout] 85 + [INFO] [stdout] 86 + if let Some(assembly) = assembly { [INFO] [stdout] 87 + assembly.data.extend(fragment.data.clone()); [INFO] [stdout] 88 + assembly.current_fragment_index += 1; [INFO] [stdout] 89 + [INFO] [stdout] 90 + if assembly.current_fragment_index == assembly.total_fragments { [INFO] [stdout] 91 + // All fragments received, process the data [INFO] [stdout] 92 + match self.result_send.send(assembly.data.clone()) { [INFO] [stdout] 93 + Ok(_) => { [INFO] [stdout] 94 + debug!( [INFO] [stdout] 95 + "Assembled data for session_id: {} sent successfully", [INFO] [stdout] 96 + session_id [INFO] [stdout] 97 + ); [INFO] [stdout] 98 + } [INFO] [stdout] 99 + Err(_e) => { [INFO] [stdout] 100 + debug!( [INFO] [stdout] 101 + "Failed to send assembled data for session_id: {}: {}", [INFO] [stdout] 102 + session_id, _e [INFO] [stdout] 103 + ); [INFO] [stdout] 104 + } [INFO] [stdout] 105 + } [INFO] [stdout] 106 + } [INFO] [stdout] 107 + } else { [INFO] [stdout] 108 + // No assembly in progress, create a new one [INFO] [stdout] 109 + let mut new_assembly = DataAssembly { [INFO] [stdout] 110 + session_id, [INFO] [stdout] 111 + data: Vec::new(), [INFO] [stdout] 112 + total_fragments: fragment.total_n_fragments, [INFO] [stdout] 113 + current_fragment_index: 1, [INFO] [stdout] 114 + }; [INFO] [stdout] 115 + new_assembly.data.extend(fragment.data.clone()); [INFO] [stdout] 116 + [INFO] [stdout] 117 + // Check if this is the last fragment [INFO] [stdout] 118 + if new_assembly.current_fragment_index == new_assembly.total_fragments { [INFO] [stdout] 119 + // All fragments received, process the data [INFO] [stdout] 120 + match self.result_send.send(new_assembly.data.clone()) { [INFO] [stdout] 121 + Ok(_) => { [INFO] [stdout] 122 + debug!( [INFO] [stdout] 123 + "Assembled data for session_id: {} sent successfully", [INFO] [stdout] 124 + session_id [INFO] [stdout] 125 + ); [INFO] [stdout] 126 + } [INFO] [stdout] 127 + Err(_e) => { [INFO] [stdout] 128 + debug!( [INFO] [stdout] 129 + "Failed to send assembled data for session_id: {}: {}", [INFO] [stdout] 130 + session_id, _e [INFO] [stdout] 131 + ); [INFO] [stdout] 132 + } [INFO] [stdout] 133 + } [INFO] [stdout] 134 + } [INFO] [stdout] 135 + [INFO] [stdout] 136 + self.assemblies.push(new_assembly); [INFO] [stdout] 137 + debug!("New assembly created for session_id: {}", session_id); [INFO] [stdout] 138 + } [INFO] [stdout] 139 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `[u8; 128]` which implements the `Copy` trait [INFO] [stdout] --> src/assembler/assembler.rs:88:42 [INFO] [stdout] | [INFO] [stdout] 88 | assembly.data.extend(fragment.data.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `fragment.data` [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 `[u8; 128]` which implements the `Copy` trait [INFO] [stdout] --> src/assembler/assembler.rs:116:46 [INFO] [stdout] | [INFO] [stdout] 116 | new_assembly.data.extend(fragment.data.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `fragment.data` [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: module has the same name as its containing module [INFO] [stdout] --> src/assembler/mod.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | pub mod assembler; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (12/7) [INFO] [stdout] --> src/client_server/client.rs:112:5 [INFO] [stdout] | [INFO] [stdout] 112 | / pub fn new( [INFO] [stdout] 113 | | id: NodeId, [INFO] [stdout] 114 | | connected_drone_ids: HashSet, [INFO] [stdout] 115 | | controller_send: Sender, [INFO] [stdout] ... | [INFO] [stdout] 124 | | assembler_res_recv: Receiver>, [INFO] [stdout] 125 | | ) -> Self { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/assembler/assembler.rs:56:9 [INFO] [stdout] | [INFO] [stdout] 56 | / match packet.pack_type { [INFO] [stdout] 57 | | PacketType::MsgFragment(fragment) => { [INFO] [stdout] 58 | | if fragment.total_n_fragments == 0 { [INFO] [stdout] 59 | | debug!("Received fragment with total_n_fragments == 0, ignoring"); [INFO] [stdout] ... | [INFO] [stdout] 144 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 56 ~ if let PacketType::MsgFragment(fragment) = packet.pack_type { [INFO] [stdout] 57 + if fragment.total_n_fragments == 0 { [INFO] [stdout] 58 + debug!("Received fragment with total_n_fragments == 0, ignoring"); [INFO] [stdout] 59 + return; [INFO] [stdout] 60 + } [INFO] [stdout] 61 + // If total_n_fragments is 1, we can directly send back the data [INFO] [stdout] 62 + if fragment.total_n_fragments == 1 { [INFO] [stdout] 63 + match self.result_send.send(fragment.data.to_vec().clone()) { [INFO] [stdout] 64 + Ok(_) => { [INFO] [stdout] 65 + debug!( [INFO] [stdout] 66 + "Assembled data sent successfully for session_id: {}", [INFO] [stdout] 67 + session_id [INFO] [stdout] 68 + ); [INFO] [stdout] 69 + } [INFO] [stdout] 70 + Err(_e) => { [INFO] [stdout] 71 + debug!( [INFO] [stdout] 72 + "Failed to send single fragment data for session_id: {}: {}", [INFO] [stdout] 73 + session_id, _e [INFO] [stdout] 74 + ); [INFO] [stdout] 75 + } [INFO] [stdout] 76 + } [INFO] [stdout] 77 + return; [INFO] [stdout] 78 + } [INFO] [stdout] 79 + [INFO] [stdout] 80 + // Check if the fragment has an assembly in progress [INFO] [stdout] 81 + let assembly = self [INFO] [stdout] 82 + .assemblies [INFO] [stdout] 83 + .iter_mut() [INFO] [stdout] 84 + .find(|a| a.session_id == session_id); [INFO] [stdout] 85 + [INFO] [stdout] 86 + if let Some(assembly) = assembly { [INFO] [stdout] 87 + assembly.data.extend(fragment.data.clone()); [INFO] [stdout] 88 + assembly.current_fragment_index += 1; [INFO] [stdout] 89 + [INFO] [stdout] 90 + if assembly.current_fragment_index == assembly.total_fragments { [INFO] [stdout] 91 + // All fragments received, process the data [INFO] [stdout] 92 + match self.result_send.send(assembly.data.clone()) { [INFO] [stdout] 93 + Ok(_) => { [INFO] [stdout] 94 + debug!( [INFO] [stdout] 95 + "Assembled data for session_id: {} sent successfully", [INFO] [stdout] 96 + session_id [INFO] [stdout] 97 + ); [INFO] [stdout] 98 + } [INFO] [stdout] 99 + Err(_e) => { [INFO] [stdout] 100 + debug!( [INFO] [stdout] 101 + "Failed to send assembled data for session_id: {}: {}", [INFO] [stdout] 102 + session_id, _e [INFO] [stdout] 103 + ); [INFO] [stdout] 104 + } [INFO] [stdout] 105 + } [INFO] [stdout] 106 + } [INFO] [stdout] 107 + } else { [INFO] [stdout] 108 + // No assembly in progress, create a new one [INFO] [stdout] 109 + let mut new_assembly = DataAssembly { [INFO] [stdout] 110 + session_id, [INFO] [stdout] 111 + data: Vec::new(), [INFO] [stdout] 112 + total_fragments: fragment.total_n_fragments, [INFO] [stdout] 113 + current_fragment_index: 1, [INFO] [stdout] 114 + }; [INFO] [stdout] 115 + new_assembly.data.extend(fragment.data.clone()); [INFO] [stdout] 116 + [INFO] [stdout] 117 + // Check if this is the last fragment [INFO] [stdout] 118 + if new_assembly.current_fragment_index == new_assembly.total_fragments { [INFO] [stdout] 119 + // All fragments received, process the data [INFO] [stdout] 120 + match self.result_send.send(new_assembly.data.clone()) { [INFO] [stdout] 121 + Ok(_) => { [INFO] [stdout] 122 + debug!( [INFO] [stdout] 123 + "Assembled data for session_id: {} sent successfully", [INFO] [stdout] 124 + session_id [INFO] [stdout] 125 + ); [INFO] [stdout] 126 + } [INFO] [stdout] 127 + Err(_e) => { [INFO] [stdout] 128 + debug!( [INFO] [stdout] 129 + "Failed to send assembled data for session_id: {}: {}", [INFO] [stdout] 130 + session_id, _e [INFO] [stdout] 131 + ); [INFO] [stdout] 132 + } [INFO] [stdout] 133 + } [INFO] [stdout] 134 + } [INFO] [stdout] 135 + [INFO] [stdout] 136 + self.assemblies.push(new_assembly); [INFO] [stdout] 137 + debug!("New assembly created for session_id: {}", session_id); [INFO] [stdout] 138 + } [INFO] [stdout] 139 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `[u8; 128]` which implements the `Copy` trait [INFO] [stdout] --> src/assembler/assembler.rs:88:42 [INFO] [stdout] | [INFO] [stdout] 88 | assembly.data.extend(fragment.data.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `fragment.data` [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 `[u8; 128]` which implements the `Copy` trait [INFO] [stdout] --> src/assembler/assembler.rs:116:46 [INFO] [stdout] | [INFO] [stdout] 116 | new_assembly.data.extend(fragment.data.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `fragment.data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/client_server/client.rs:412:90 [INFO] [stdout] | [INFO] [stdout] 412 | if let Ok(message) = serde_json::from_str::>(&str_data) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `str_data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/client_server/client.rs:433:89 [INFO] [stdout] | [INFO] [stdout] 433 | else if let Ok(message) = serde_json::from_str::>(&str_data) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `str_data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/client_server/client.rs:468:89 [INFO] [stdout] | [INFO] [stdout] 468 | else if let Ok(message) = serde_json::from_str::>(&str_data) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `str_data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/client_server/client.rs:494:68 [INFO] [stdout] | [INFO] [stdout] 494 | serde_json::from_str::>(&str_data) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `str_data` [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 function has too many arguments (12/7) [INFO] [stdout] --> src/client_server/client.rs:112:5 [INFO] [stdout] | [INFO] [stdout] 112 | / pub fn new( [INFO] [stdout] 113 | | id: NodeId, [INFO] [stdout] 114 | | connected_drone_ids: HashSet, [INFO] [stdout] 115 | | controller_send: Sender, [INFO] [stdout] ... | [INFO] [stdout] 124 | | assembler_res_recv: Receiver>, [INFO] [stdout] 125 | | ) -> Self { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/client_server/client.rs:412:90 [INFO] [stdout] | [INFO] [stdout] 412 | if let Ok(message) = serde_json::from_str::>(&str_data) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `str_data` [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 `u8` which implements the `Copy` trait [INFO] [stdout] --> src/client_server/network_core.rs:101:34 [INFO] [stdout] | [INFO] [stdout] 101 | let target_node_id: u8 = new_path.last().unwrap().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*new_path.last().unwrap()` [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: manually reimplementing `div_ceil` [INFO] [stdout] --> src/client_server/network_core.rs:190:31 [INFO] [stdout] | [INFO] [stdout] 190 | let total_fragments = (serialized_bytes.len() + 127) / 128; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `serialized_bytes.len().div_ceil(128)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] = note: `#[warn(clippy::manual_div_ceil)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/client_server/client.rs:433:89 [INFO] [stdout] | [INFO] [stdout] 433 | else if let Ok(message) = serde_json::from_str::>(&str_data) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `str_data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/client_server/client.rs:468:89 [INFO] [stdout] | [INFO] [stdout] 468 | else if let Ok(message) = serde_json::from_str::>(&str_data) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `str_data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/client_server/client.rs:494:68 [INFO] [stdout] | [INFO] [stdout] 494 | serde_json::from_str::>(&str_data) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `str_data` [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: redundant closure [INFO] [stdout] --> src/client_server/network_core.rs:222:31 [INFO] [stdout] | [INFO] [stdout] 222 | .and_then(|v| serde_json::from_value::(v)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `serde_json::from_value::` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (11/7) [INFO] [stdout] --> src/client_server/communication_server.rs:98:5 [INFO] [stdout] | [INFO] [stdout] 98 | / pub fn new( [INFO] [stdout] 99 | | id: NodeId, [INFO] [stdout] 100 | | connected_drone_ids: HashSet, [INFO] [stdout] 101 | | controller_send: Sender, [INFO] [stdout] ... | [INFO] [stdout] 109 | | messages_stored: Vec, [INFO] [stdout] 110 | | ) -> Self { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/client_server/communication_server.rs:264:89 [INFO] [stdout] | [INFO] [stdout] 264 | if let Ok(message) = serde_json::from_str::>(&str_data) { [INFO] [stdout] | ^^^^^^^^^ help: change this to: `str_data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/client_server/communication_server.rs:281:88 [INFO] [stdout] | [INFO] [stdout] 281 | else if let Ok(message) = serde_json::from_str::>(&str_data) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `str_data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/client_server/communication_server.rs:306:88 [INFO] [stdout] | [INFO] [stdout] 306 | else if let Ok(message) = serde_json::from_str::>(&str_data) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `str_data` [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: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/client_server/communication_server.rs:324:42 [INFO] [stdout] | [INFO] [stdout] 324 | ... content: String::from(format!( [INFO] [stdout] | ________________________________^ [INFO] [stdout] 325 | | ... "Client {} has entered the chatroom", [INFO] [stdout] 326 | | ... client_id [INFO] [stdout] 327 | | ... )), [INFO] [stdout] | |________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `String::from()` [INFO] [stdout] | [INFO] [stdout] 324 ~ content: format!( [INFO] [stdout] 325 + "Client {} has entered the chatroom", [INFO] [stdout] 326 + client_id [INFO] [stdout] 327 ~ ), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u8` which implements the `Copy` trait [INFO] [stdout] --> src/client_server/network_core.rs:101:34 [INFO] [stdout] | [INFO] [stdout] 101 | let target_node_id: u8 = new_path.last().unwrap().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*new_path.last().unwrap()` [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: manually reimplementing `div_ceil` [INFO] [stdout] --> src/client_server/network_core.rs:190:31 [INFO] [stdout] | [INFO] [stdout] 190 | let total_fragments = (serialized_bytes.len() + 127) / 128; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `serialized_bytes.len().div_ceil(128)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] = note: `#[warn(clippy::manual_div_ceil)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/client_server/network_core.rs:222:31 [INFO] [stdout] | [INFO] [stdout] 222 | .and_then(|v| serde_json::from_value::(v)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `serde_json::from_value::` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (11/7) [INFO] [stdout] --> src/client_server/content_server.rs:98:5 [INFO] [stdout] | [INFO] [stdout] 98 | / pub fn new( [INFO] [stdout] 99 | | id: NodeId, [INFO] [stdout] 100 | | connected_drone_ids: HashSet, [INFO] [stdout] 101 | | controller_send: Sender, [INFO] [stdout] ... | [INFO] [stdout] 109 | | files: Vec, [INFO] [stdout] 110 | | ) -> Self { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/client_server/content_server.rs:262:89 [INFO] [stdout] | [INFO] [stdout] 262 | if let Ok(message) = serde_json::from_str::>(&str_data) { [INFO] [stdout] | ^^^^^^^^^ help: change this to: `str_data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/client_server/content_server.rs:279:88 [INFO] [stdout] | [INFO] [stdout] 279 | else if let Ok(message) = serde_json::from_str::>(&str_data) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `str_data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/client_server/content_server.rs:302:91 [INFO] [stdout] | [INFO] [stdout] 302 | } else if let Ok(message) = serde_json::from_str::>(&str_data) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `str_data` [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 function has too many arguments (11/7) [INFO] [stdout] --> src/client_server/communication_server.rs:98:5 [INFO] [stdout] | [INFO] [stdout] 98 | / pub fn new( [INFO] [stdout] 99 | | id: NodeId, [INFO] [stdout] 100 | | connected_drone_ids: HashSet, [INFO] [stdout] 101 | | controller_send: Sender, [INFO] [stdout] ... | [INFO] [stdout] 109 | | messages_stored: Vec, [INFO] [stdout] 110 | | ) -> Self { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/client_server/communication_server.rs:264:89 [INFO] [stdout] | [INFO] [stdout] 264 | if let Ok(message) = serde_json::from_str::>(&str_data) { [INFO] [stdout] | ^^^^^^^^^ help: change this to: `str_data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/client_server/communication_server.rs:281:88 [INFO] [stdout] | [INFO] [stdout] 281 | else if let Ok(message) = serde_json::from_str::>(&str_data) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `str_data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/client_server/communication_server.rs:306:88 [INFO] [stdout] | [INFO] [stdout] 306 | else if let Ok(message) = serde_json::from_str::>(&str_data) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `str_data` [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: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/client_server/communication_server.rs:324:42 [INFO] [stdout] | [INFO] [stdout] 324 | ... content: String::from(format!( [INFO] [stdout] | ________________________________^ [INFO] [stdout] 325 | | ... "Client {} has entered the chatroom", [INFO] [stdout] 326 | | ... client_id [INFO] [stdout] 327 | | ... )), [INFO] [stdout] | |________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `String::from()` [INFO] [stdout] | [INFO] [stdout] 324 ~ content: format!( [INFO] [stdout] 325 + "Client {} has entered the chatroom", [INFO] [stdout] 326 + client_id [INFO] [stdout] 327 ~ ), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (11/7) [INFO] [stdout] --> src/client_server/content_server.rs:98:5 [INFO] [stdout] | [INFO] [stdout] 98 | / pub fn new( [INFO] [stdout] 99 | | id: NodeId, [INFO] [stdout] 100 | | connected_drone_ids: HashSet, [INFO] [stdout] 101 | | controller_send: Sender, [INFO] [stdout] ... | [INFO] [stdout] 109 | | files: Vec, [INFO] [stdout] 110 | | ) -> Self { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/client_server/content_server.rs:262:89 [INFO] [stdout] | [INFO] [stdout] 262 | if let Ok(message) = serde_json::from_str::>(&str_data) { [INFO] [stdout] | ^^^^^^^^^ help: change this to: `str_data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/client_server/content_server.rs:279:88 [INFO] [stdout] | [INFO] [stdout] 279 | else if let Ok(message) = serde_json::from_str::>(&str_data) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `str_data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/client_server/content_server.rs:302:91 [INFO] [stdout] | [INFO] [stdout] 302 | } else if let Ok(message) = serde_json::from_str::>(&str_data) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `str_data` [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] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 24s [INFO] running `Command { std: "docker" "inspect" "891fafa1ae3cfb283ac29b5d6b2b569200bf22e4066d349729f8a02a6913ca7c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "891fafa1ae3cfb283ac29b5d6b2b569200bf22e4066d349729f8a02a6913ca7c", kill_on_drop: false }` [INFO] [stdout] 891fafa1ae3cfb283ac29b5d6b2b569200bf22e4066d349729f8a02a6913ca7c