[INFO] cloning repository https://github.com/nTorre/RRDP
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/nTorre/RRDP" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FnTorre%2FRRDP", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FnTorre%2FRRDP'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1b3c19625dcdb0b0bd20c80a3275f52477ef79d3
[INFO] checking nTorre/RRDP against master#568b11762723b001bfa693d0f21c5dad01d4e813 for pr-149058
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FnTorre%2FRRDP" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/nTorre/RRDP
[INFO] finished tweaking git repo https://github.com/nTorre/RRDP
[INFO] tweaked toml for git repo https://github.com/nTorre/RRDP written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/nTorre/RRDP on toolchain 568b11762723b001bfa693d0f21c5dad01d4e813
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+568b11762723b001bfa693d0f21c5dad01d4e813" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/nTorre/RRDP 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" "+568b11762723b001bfa693d0f21c5dad01d4e813" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded toml_edit v0.22.9
[INFO] [stderr]   Downloaded document-features v0.2.8
[INFO] [stderr]   Downloaded xdg-home v1.1.0
[INFO] [stderr]   Downloaded objc2-encode v4.0.1
[INFO] [stderr]   Downloaded pam-sys v1.0.0-alpha5
[INFO] [stderr]   Downloaded blocking v1.6.0
[INFO] [stderr]   Downloaded egui-wgpu v0.27.2
[INFO] [stderr]   Downloaded async-signal v0.2.6
[INFO] [stderr]   Downloaded enumflags2 v0.7.9
[INFO] [stderr]   Downloaded egui_glow v0.27.2
[INFO] [stderr]   Downloaded enumflags2_derive v0.7.9
[INFO] [stderr]   Downloaded quinn v0.10.2
[INFO] [stderr]   Downloaded serde v1.0.200
[INFO] [stderr]   Downloaded winnow v0.6.5
[INFO] [stderr]   Downloaded eframe v0.27.2
[INFO] [stderr]   Downloaded rcgen v0.13.1
[INFO] [stderr]   Downloaded sysinfo v0.30.8
[INFO] [stderr]   Downloaded quinn-proto v0.10.6
[INFO] [stderr]   Downloaded xcb v1.3.0
[INFO] [stderr]   Downloaded syn v2.0.58
[INFO] [stderr]   Downloaded objc2 v0.5.1
[INFO] [stderr]   Downloaded objc2-foundation v0.2.0
[INFO] [stderr]   Downloaded chrono v0.4.37
[INFO] [stderr]   Downloaded egui v0.27.2
[INFO] [stderr]   Downloaded objc2-app-kit v0.2.0
[INFO] [stderr]   Downloaded half v2.4.0
[INFO] [stderr]   Downloaded image-webp v0.1.1
[INFO] [stderr]   Downloaded bitstream-io v2.2.0
[INFO] [stderr]   Downloaded serde_derive v1.0.200
[INFO] [stderr]   Downloaded objc2-core-data v0.2.0
[INFO] [stderr]   Downloaded egui-winit v0.27.2
[INFO] [stderr]   Downloaded enumn v0.1.13
[INFO] [stderr]   Downloaded mini-redis v0.4.1
[INFO] [stderr]   Downloaded rustls-pki-types v1.6.0
[INFO] [stderr]   Downloaded raw-window-handle v0.6.1
[INFO] [stderr]   Downloaded ecolor v0.27.2
[INFO] [stderr]   Downloaded egui_extras v0.27.2
[INFO] [stderr]   Downloaded quinn-udp v0.4.1
[INFO] [stderr]   Downloaded cfg-expr v0.15.7
[INFO] [stderr]   Downloaded block2 v0.5.0
[INFO] [stderr]   Downloaded epaint v0.27.2
[INFO] [stderr]   Downloaded scrap v0.5.0
[INFO] [stderr]   Downloaded ab_glyph v0.2.25
[INFO] [stderr]   Downloaded emath v0.27.2
[INFO] [stderr]   Downloaded tokio-stream v0.1.15
[INFO] [stderr]   Downloaded pem v3.0.4
[INFO] [stderr]   Downloaded built v0.7.1
[INFO] [stderr]   Downloaded pam v0.8.0
[INFO] [stderr]   Downloaded xcap v0.0.8
[INFO] [stderr]   Downloaded objc-sys v0.3.3
[INFO] [stderr]   Downloaded atoi v0.3.3
[INFO] [stderr]   Downloaded pam-macros v0.0.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:94a0c148923f5b2b52a63ef0eeb1882ad339ab61bce784c8077cbe41c61feb6c" "/opt/rustwide/cargo-home/bin/cargo" "+568b11762723b001bfa693d0f21c5dad01d4e813" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] d413f2e689bd5698ddd089799545e723387912b3151ce1ca9c0b3ff7d5f5ddd5
[INFO] running `Command { std: "docker" "start" "-a" "d413f2e689bd5698ddd089799545e723387912b3151ce1ca9c0b3ff7d5f5ddd5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d413f2e689bd5698ddd089799545e723387912b3151ce1ca9c0b3ff7d5f5ddd5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d413f2e689bd5698ddd089799545e723387912b3151ce1ca9c0b3ff7d5f5ddd5", kill_on_drop: false }`
[INFO] [stdout] d413f2e689bd5698ddd089799545e723387912b3151ce1ca9c0b3ff7d5f5ddd5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:94a0c148923f5b2b52a63ef0eeb1882ad339ab61bce784c8077cbe41c61feb6c" "/opt/rustwide/cargo-home/bin/cargo" "+568b11762723b001bfa693d0f21c5dad01d4e813" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f1415581632f4e2d1e94f7383a5aca503e0338d9c98b52d4c2ad5eb1c5ade36b
[INFO] running `Command { std: "docker" "start" "-a" "f1415581632f4e2d1e94f7383a5aca503e0338d9c98b52d4c2ad5eb1c5ade36b", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.79
[INFO] [stderr]    Compiling autocfg v1.2.0
[INFO] [stderr]     Checking log v0.4.21
[INFO] [stderr]    Compiling memchr v2.7.2
[INFO] [stderr]    Compiling cc v1.0.90
[INFO] [stderr]    Compiling serde v1.0.200
[INFO] [stderr]     Checking smallvec v1.13.2
[INFO] [stderr]    Compiling pkg-config v0.3.30
[INFO] [stderr]     Checking getrandom v0.2.12
[INFO] [stderr]     Checking tracing-core v0.1.32
[INFO] [stderr]     Checking bitflags v2.5.0
[INFO] [stderr]    Compiling lock_api v0.4.11
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]     Checking libloading v0.8.3
[INFO] [stderr]     Checking futures-core v0.3.30
[INFO] [stderr]    Compiling rustix v0.38.34
[INFO] [stderr]     Checking linux-raw-sys v0.4.13
[INFO] [stderr]     Checking dlib v0.5.2
[INFO] [stderr]    Compiling wayland-sys v0.31.1
[INFO] [stderr]     Checking concurrent-queue v2.5.0
[INFO] [stderr]     Checking parking v2.2.0
[INFO] [stderr]    Compiling thiserror v1.0.58
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling quote v1.0.35
[INFO] [stderr]    Compiling num-traits v0.2.18
[INFO] [stderr]    Compiling regex-syntax v0.8.3
[INFO] [stderr]     Checking scoped-tls v1.0.1
[INFO] [stderr]     Checking downcast-rs v1.2.1
[INFO] [stderr]    Compiling indexmap v2.2.6
[INFO] [stderr]    Compiling quick-xml v0.31.0
[INFO] [stderr]    Compiling syn v2.0.58
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling wayland-backend v0.3.3
[INFO] [stderr]     Checking futures-io v0.3.30
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]    Compiling wayland-scanner v0.31.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.9
[INFO] [stderr]     Checking generic-array v0.14.7
[INFO] [stderr]     Checking event-listener v4.0.3
[INFO] [stderr]     Checking event-listener v5.3.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking fastrand v2.1.0
[INFO] [stderr]    Compiling regex-automata v0.4.6
[INFO] [stderr]     Checking arrayvec v0.7.4
[INFO] [stderr]    Compiling io-lifetimes v1.0.11
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking event-listener-strategy v0.5.2
[INFO] [stderr]     Checking event-listener-strategy v0.4.0
[INFO] [stderr]     Checking futures-lite v2.3.0
[INFO] [stderr]    Compiling memoffset v0.7.1
[INFO] [stderr]    Compiling polling v2.8.0
[INFO] [stderr]    Compiling proc-macro-crate v1.3.1
[INFO] [stderr]     Checking async-task v4.7.1
[INFO] [stderr]     Checking fastrand v1.9.0
[INFO] [stderr]     Checking waker-fn v1.1.1
[INFO] [stderr]     Checking ttf-parser v0.20.0
[INFO] [stderr]    Compiling rustix v0.37.27
[INFO] [stderr]    Compiling khronos_api v3.1.0
[INFO] [stderr]     Checking piper v0.2.1
[INFO] [stderr]     Checking futures-lite v1.13.0
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling zvariant_utils v1.0.1
[INFO] [stderr]     Checking parking_lot v0.12.1
[INFO] [stderr]     Checking async-lock v3.3.0
[INFO] [stderr]     Checking async-channel v2.2.1
[INFO] [stderr]     Checking async-lock v2.8.0
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]    Compiling async-io v1.13.0
[INFO] [stderr]    Compiling regex v1.10.4
[INFO] [stderr]     Checking owned_ttf_parser v0.20.0
[INFO] [stderr]    Compiling async-fs v1.6.0
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]     Checking linux-raw-sys v0.3.8
[INFO] [stderr]     Checking simd-adler32 v0.3.7
[INFO] [stderr]    Compiling serde_derive v1.0.200
[INFO] [stderr]    Compiling tracing-attributes v0.1.27
[INFO] [stderr]    Compiling bytemuck_derive v1.6.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.58
[INFO] [stderr]    Compiling enumflags2_derive v0.7.9
[INFO] [stderr]     Checking wayland-client v0.31.2
[INFO] [stderr]     Checking ab_glyph_rasterizer v0.1.8
[INFO] [stderr]     Checking ab_glyph v0.2.25
[INFO] [stderr]    Compiling zvariant_derive v3.15.2
[INFO] [stderr]     Checking bytemuck v1.15.0
[INFO] [stderr]     Checking blocking v1.6.0
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking tracing v0.1.40
[INFO] [stderr]     Checking socket2 v0.4.10
[INFO] [stderr]     Checking polling v3.7.0
[INFO] [stderr]     Checking wayland-protocols v0.31.2
[INFO] [stderr]    Compiling xml-rs v0.8.20
[INFO] [stderr]     Checking futures-task v0.3.30
[INFO] [stderr]     Checking futures-sink v0.3.30
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking nix v0.26.4
[INFO] [stderr]     Checking futures-util v0.3.30
[INFO] [stderr]     Checking calloop v0.12.4
[INFO] [stderr]    Compiling zbus_macros v3.15.2
[INFO] [stderr]    Compiling derivative v2.2.0
[INFO] [stderr]    Compiling enumn v0.1.13
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]    Compiling async-recursion v1.1.1
[INFO] [stderr]    Compiling serde_repr v0.1.19
[INFO] [stderr]    Compiling async-trait v0.1.80
[INFO] [stderr]     Checking async-executor v1.11.0
[INFO] [stderr]     Checking async-broadcast v0.5.1
[INFO] [stderr]    Compiling ring v0.17.8
[INFO] [stderr]     Checking ordered-stream v0.2.0
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]     Checking xdg-home v1.1.0
[INFO] [stderr]     Checking xcursor v0.3.5
[INFO] [stderr]    Compiling crc32fast v1.4.0
[INFO] [stderr]     Checking xkeysym v0.2.0
[INFO] [stderr]     Checking cursor-icon v1.1.0
[INFO] [stderr]    Compiling smithay-client-toolkit v0.18.1
[INFO] [stderr]    Compiling glob v0.3.1
[INFO] [stderr]     Checking miniz_oxide v0.7.2
[INFO] [stderr]     Checking wayland-csd-frame v0.3.0
[INFO] [stderr]    Compiling clang-sys v1.7.0
[INFO] [stderr]     Checking wayland-cursor v0.31.1
[INFO] [stderr]     Checking calloop-wayland-source v0.2.0
[INFO] [stderr]    Compiling num-bigint v0.4.4
[INFO] [stderr]     Checking memmap2 v0.9.4
[INFO] [stderr]    Compiling libc v0.2.153
[INFO] [stderr]     Checking either v1.10.0
[INFO] [stderr]     Checking strict-num v0.1.1
[INFO] [stderr]     Checking arrayref v0.3.7
[INFO] [stderr]     Checking tiny-skia-path v0.11.4
[INFO] [stderr]     Checking wayland-protocols-wlr v0.2.0
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]    Compiling num-rational v0.4.1
[INFO] [stderr]    Compiling unicase v2.7.0
[INFO] [stderr]     Checking x11rb-protocol v0.13.0
[INFO] [stderr]    Compiling anyhow v1.0.81
[INFO] [stderr]     Checking as-raw-xcb-connection v1.0.1
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]     Checking tiny-skia v0.11.4
[INFO] [stderr]     Checking enumflags2 v0.7.9
[INFO] [stderr]     Checking zvariant v3.15.2
[INFO] [stderr]     Checking accesskit v0.12.3
[INFO] [stderr]     Checking emath v0.27.2
[INFO] [stderr]     Checking ecolor v0.27.2
[INFO] [stderr]     Checking flate2 v1.0.30
[INFO] [stderr]     Checking zbus_names v2.6.1
[INFO] [stderr]     Checking rayon v1.10.0
[INFO] [stderr]    Compiling winit v0.29.15
[INFO] [stderr]     Checking zbus v3.15.2
[INFO] [stderr]     Checking nohash-hasher v0.2.0
[INFO] [stderr]    Compiling bindgen v0.69.4
[INFO] [stderr]     Checking raw-window-handle v0.5.2
[INFO] [stderr]     Checking bytes v1.6.0
[INFO] [stderr]     Checking aligned-vec v0.5.0
[INFO] [stderr]    Compiling built v0.7.1
[INFO] [stderr]     Checking v_frame v0.3.8
[INFO] [stderr]    Compiling itertools v0.12.1
[INFO] [stderr]    Compiling rav1e v0.7.1
[INFO] [stderr]     Checking epaint v0.27.2
[INFO] [stderr]    Compiling cexpr v0.6.0
[INFO] [stderr]     Checking sctk-adwaita v0.8.1
[INFO] [stderr]     Checking wayland-protocols-plasma v0.2.0
[INFO] [stderr]     Checking xkbcommon-dl v0.4.2
[INFO] [stderr]     Checking unicode-normalization v0.1.23
[INFO] [stderr]    Compiling glutin_glx_sys v0.5.0
[INFO] [stderr]    Compiling glutin_egl_sys v0.6.0
[INFO] [stderr]     Checking fdeflate v0.3.4
[INFO] [stderr]    Compiling profiling-procmacros v1.0.15
[INFO] [stderr]     Checking socket2 v0.5.6
[INFO] [stderr]     Checking smol_str v0.2.1
[INFO] [stderr]     Checking unicode-bidi v0.3.15
[INFO] [stderr]     Checking raw-window-handle v0.6.1
[INFO] [stderr]    Compiling lazycell v1.3.0
[INFO] [stderr]     Checking profiling v1.0.15
[INFO] [stderr]     Checking png v0.17.13
[INFO] [stderr]     Checking egui v0.27.2
[INFO] [stderr]     Checking idna v0.5.0
[INFO] [stderr]     Checking av1-grain v0.2.3
[INFO] [stderr]     Checking maybe-rayon v0.1.1
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]     Checking accesskit_consumer v0.16.1
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]    Compiling tokio-macros v2.2.0
[INFO] [stderr]    Compiling glutin v0.31.3
[INFO] [stderr]    Compiling ring v0.16.20
[INFO] [stderr]    Compiling libdbus-sys v0.2.5
[INFO] [stderr]    Compiling simd_helpers v0.1.0
[INFO] [stderr]    Compiling quick-xml v0.30.0
[INFO] [stderr]    Compiling memoffset v0.9.1
[INFO] [stderr]     Checking num_cpus v1.16.0
[INFO] [stderr]     Checking signal-hook-registry v1.4.1
[INFO] [stderr]     Checking mio v0.8.11
[INFO] [stderr]    Compiling unicode-segmentation v1.11.0
[INFO] [stderr]     Checking weezl v0.1.8
[INFO] [stderr]     Checking unicode-width v0.1.11
[INFO] [stderr]    Compiling rustls v0.21.10
[INFO] [stderr]     Checking async-once-cell v0.5.3
[INFO] [stderr]     Checking ansi_term v0.12.1
[INFO] [stderr]    Compiling serde_json v1.0.115
[INFO] [stderr]     Checking imgref v1.10.1
[INFO] [stderr]    Compiling noop_proc_macro v0.3.0
[INFO] [stderr]     Checking bitstream-io v2.2.0
[INFO] [stderr]     Checking loop9 v0.1.5
[INFO] [stderr]     Checking atspi-common v0.3.0
[INFO] [stderr]     Checking textwrap v0.11.0
[INFO] [stderr]     Checking tokio v1.37.0
[INFO] [stderr]    Compiling xcb v1.3.0
[INFO] [stderr]    Compiling heck v0.3.3
[INFO] [stderr]    Compiling pam-sys v1.0.0-alpha5
[INFO] [stderr]     Checking x11rb v0.13.0
[INFO] [stderr]     Checking url v2.5.0
[INFO] [stderr]     Checking atspi-proxies v0.3.0
[INFO] [stderr]    Compiling mime_guess2 v2.0.5
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]     Checking sct v0.7.1
[INFO] [stderr]     Checking rustls-webpki v0.101.7
[INFO] [stderr]     Checking rgb v0.8.37
[INFO] [stderr]     Checking zune-inflate v0.2.54
[INFO] [stderr]    Compiling pin-project-internal v1.1.5
[INFO] [stderr]     Checking flume v0.11.0
[INFO] [stderr]    Compiling glutin-winit v0.4.2
[INFO] [stderr]     Checking avif-serialize v0.8.1
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking half v2.4.0
[INFO] [stderr]     Checking spin v0.5.2
[INFO] [stderr]     Checking jpeg-decoder v0.3.1
[INFO] [stderr]     Checking bit_field v0.10.2
[INFO] [stderr]     Checking untrusted v0.7.1
[INFO] [stderr]     Checking ryu v1.0.17
[INFO] [stderr]     Checking itoa v1.0.11
[INFO] [stderr]     Checking lebe v0.5.2
[INFO] [stderr]     Checking strsim v0.8.0
[INFO] [stderr]     Checking home v0.5.9
[INFO] [stderr]     Checking hashbrown v0.14.3
[INFO] [stderr]     Checking quick-error v2.0.1
[INFO] [stderr]     Checking vec_map v0.8.2
[INFO] [stderr]     Checking iana-time-zone v0.1.60
[INFO] [stderr]     Checking zune-core v0.4.12
[INFO] [stderr]     Checking chrono v0.4.37
[INFO] [stderr]     Checking clap v2.34.0
[INFO] [stderr]     Checking pin-project v1.1.5
[INFO] [stderr]     Checking zune-jpeg v0.4.11
[INFO] [stderr]     Checking ravif v0.11.5
[INFO] [stderr]     Checking tiff v0.9.1
[INFO] [stderr]     Checking exr v1.72.0
[INFO] [stderr]     Checking atspi-connection v0.3.0
[INFO] [stderr]     Checking time v0.3.36
[INFO] [stderr]     Checking atspi v0.19.0
[INFO] [stderr]     Checking accesskit_unix v0.6.2
[INFO] [stderr]     Checking webbrowser v0.8.15
[INFO] [stderr]     Checking rustls-native-certs v0.6.3
[INFO] [stderr]     Checking arboard v3.4.0
[INFO] [stderr]     Checking anstyle-parse v0.2.3
[INFO] [stderr]    Compiling structopt-derive v0.4.18
[INFO] [stderr]     Checking matchers v0.0.1
[INFO] [stderr]     Checking sharded-slab v0.1.7
[INFO] [stderr]     Checking gif v0.13.1
[INFO] [stderr]     Checking accesskit_winit v0.16.1
[INFO] [stderr]     Checking smithay-clipboard v0.7.1
[INFO] [stderr]     Checking toml_datetime v0.6.5
[INFO] [stderr]     Checking tracing-serde v0.1.3
[INFO] [stderr]     Checking serde_spanned v0.6.5
[INFO] [stderr]     Checking image-webp v0.1.1
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]    Compiling async-stream-impl v0.3.5
[INFO] [stderr]    Compiling enum-map-derive v0.17.0
[INFO] [stderr]     Checking tracing-log v0.1.4
[INFO] [stderr]     Checking thread_local v1.1.8
[INFO] [stderr]     Checking glow v0.13.1
[INFO] [stderr]     Checking web-time v0.2.4
[INFO] [stderr]    Compiling litrs v0.4.1
[INFO] [stderr]     Checking anstyle v1.0.6
[INFO] [stderr]     Checking anstyle-query v1.0.2
[INFO] [stderr]     Checking winnow v0.6.5
[INFO] [stderr]     Checking base64 v0.22.1
[INFO] [stderr]    Compiling scrap v0.5.0
[INFO] [stderr]     Checking enum-map v2.7.3
[INFO] [stderr]     Checking image v0.25.1
[INFO] [stderr]     Checking pem v3.0.4
[INFO] [stderr]     Checking async-stream v0.3.5
[INFO] [stderr]     Checking anstream v0.6.13
[INFO] [stderr]     Checking tracing-subscriber v0.2.25
[INFO] [stderr]     Checking quinn-proto v0.10.6
[INFO] [stderr]     Checking egui-winit v0.27.2
[INFO] [stderr]    Compiling document-features v0.2.8
[INFO] [stderr]     Checking structopt v0.3.26
[INFO] [stderr]     Checking egui_glow v0.27.2
[INFO] [stderr]     Checking dbus v0.9.7
[INFO] [stderr]     Checking yasna v0.5.2
[INFO] [stderr]     Checking tracing-futures v0.2.5
[INFO] [stderr]     Checking tokio-stream v0.1.15
[INFO] [stderr]     Checking image v0.24.9
[INFO] [stderr]     Checking env_filter v0.1.0
[INFO] [stderr]     Checking quinn-udp v0.4.1
[INFO] [stderr]     Checking sysinfo v0.30.8
[INFO] [stderr]    Compiling pam-macros v0.0.3
[INFO] [stderr]     Checking toml_edit v0.22.9
[INFO] [stderr]     Checking atoi v0.3.3
[INFO] [stderr]     Checking users v0.10.0
[INFO] [stderr]     Checking rustls-pki-types v1.6.0
[INFO] [stderr]     Checking block v0.1.6
[INFO] [stderr]     Checking winapi v0.2.8
[INFO] [stderr]     Checking env_logger v0.11.3
[INFO] [stderr]     Checking rcgen v0.13.1
[INFO] [stderr]     Checking pam v0.8.0
[INFO] [stderr]     Checking eframe v0.27.2
[INFO] [stderr]     Checking mini-redis v0.4.1
[INFO] [stderr]     Checking egui_extras v0.27.2
[INFO] [stderr]     Checking fern v0.6.2
[INFO] [stderr]     Checking quinn v0.10.2
[INFO] [stderr]     Checking toml v0.8.12
[INFO] [stderr]     Checking xcap v0.0.8
[INFO] [stderr]     Checking torre_rdp v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/screenshot/mod.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl ScreenFrame{
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 14 |
[INFO] [stdout] 15 |     fn new(frame: DynamicImage)->ScreenFrame{
[INFO] [stdout]    |        ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/screenshot/mod.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl ScreenFrame{
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 14 |
[INFO] [stdout] 15 |     fn new(frame: DynamicImage)->ScreenFrame{
[INFO] [stdout]    |        ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs`
[INFO] [stdout]  --> tests/server_test.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 |     use std::fs;
[INFO] [stdout]   |         ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `toml`
[INFO] [stdout]  --> tests/server_test.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     use toml;
[INFO] [stdout]   |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rustls_pemfile::rsa_private_keys`
[INFO] [stdout]  --> src/bin/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rustls_pemfile::rsa_private_keys;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Connection`
[INFO] [stdout]  --> src/bin/main.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use quinn::{Connection, Endpoint, ServerConfig};
[INFO] [stdout]   |             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `image::DynamicImage`
[INFO] [stdout]  --> src/bin/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use image::DynamicImage;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bin/main.rs:80:53
[INFO] [stdout]    |
[INFO] [stdout] 80 | async fn handle_stream(mut send: quinn::SendStream, mut recv: quinn::RecvStream) -> Result<()> {
[INFO] [stdout]    |                                                     ----^^^^
[INFO] [stdout]    |                                                     |
[INFO] [stdout]    |                                                     help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bin/main.rs:66:28
[INFO] [stdout]    |
[INFO] [stdout] 66 | async fn handle_connection(mut new_conn: quinn::Connection) -> Result<()> {
[INFO] [stdout]    |                            ----^^^^^^^^
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `egui::Modifiers`
[INFO] [stdout]  --> src/client/gui/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use egui::Modifiers;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RgbImage`
[INFO] [stdout]  --> src/client/gui/mod.rs:7:24
[INFO] [stdout]   |
[INFO] [stdout] 7 | use image::{RgbaImage, RgbImage};
[INFO] [stdout]   |                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]   --> src/client/gui/mod.rs:59:29
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let pos = ctx.input((|i| i.pointer.interact_pos()));
[INFO] [stdout]    |                             ^                            ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 59 -         let pos = ctx.input((|i| i.pointer.interact_pos()));
[INFO] [stdout] 59 +         let pos = ctx.input(|i| i.pointer.interact_pos());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RgbImage` and `Rgb`
[INFO] [stdout]  --> src/client/main.rs:6:43
[INFO] [stdout]   |
[INFO] [stdout] 6 | use image::{EncodableLayout, ImageBuffer, Rgb, Rgba, RgbaImage, RgbImage};
[INFO] [stdout]   |                                           ^^^                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `recv`
[INFO] [stdout]   --> src/bin/main.rs:80:53
[INFO] [stdout]    |
[INFO] [stdout] 80 | async fn handle_stream(mut send: quinn::SendStream, mut recv: quinn::RecvStream) -> Result<()> {
[INFO] [stdout]    |                                                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_recv`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `message`
[INFO] [stdout]   --> src/bin/main.rs:86:13
[INFO] [stdout]    |
[INFO] [stdout] 86 |         let message = "Hello from server!\n";
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `capture_screen` and `split_image_into_chunks`
[INFO] [stdout]  --> tests/test_screenshot.rs:5:33
[INFO] [stdout]   |
[INFO] [stdout] 5 |     use torre_rdp::screenshot::{capture_screen, capture_screen_fram, split_image_into_chunks};
[INFO] [stdout]   |                                 ^^^^^^^^^^^^^^                       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/client/gui/mod.rs:10:24
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub async fn start_gui(mut image_rx: Receiver<(RgbaImage, (u16, u16))>,
[INFO] [stdout]    |                        ----^^^^^^^^
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ReadExactError`
[INFO] [stdout]  --> src/server/handlers/mod.rs:5:25
[INFO] [stdout]   |
[INFO] [stdout] 5 | use quinn::{Connection, ReadExactError};
[INFO] [stdout]   |                         ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::task`
[INFO] [stdout]  --> src/server/handlers/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use tokio::task;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CertifiedKey` and `Error`
[INFO] [stdout]  --> src/server/cryptography/mod.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rcgen::{CertifiedKey, Error, generate_simple_self_signed};
[INFO] [stdout]   |             ^^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/server/cryptography/mod.rs:75:7
[INFO] [stdout]    |
[INFO] [stdout] 75 |     ->(Result<(Vec<Certificate>, PrivateKey), CryptoError>){
[INFO] [stdout]    |       ^                                                   ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 75 -     ->(Result<(Vec<Certificate>, PrivateKey), CryptoError>){
[INFO] [stdout] 75 +     ->Result<(Vec<Certificate>, PrivateKey), CryptoError> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `KeyPressEvent` and `Window`
[INFO] [stdout]  --> src/server/display/display.rs:2:120
[INFO] [stdout]   |
[INFO] [stdout] 2 | ...XprotoConnectionExt, EventMask, ImageFormat, KeyPressEvent, Rectangle, Screen, Window};
[INFO] [stdout]   |                                                 ^^^^^^^^^^^^^                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/server/display/display.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `x11rb::errors::ConnectError`
[INFO] [stdout]  --> src/server/display/display.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use x11rb::errors::ConnectError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Redirect`
[INFO] [stdout]  --> src/server/display/display.rs:8:49
[INFO] [stdout]   |
[INFO] [stdout] 8 | use x11rb::protocol::composite::{ConnectionExt, Redirect};
[INFO] [stdout]   |                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `xproto`
[INFO] [stdout]   --> src/server/display/display.rs:10:30
[INFO] [stdout]    |
[INFO] [stdout] 10 | use x11rb::protocol::{Event, xproto};
[INFO] [stdout]    |                              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/server/display/display.rs:148:90
[INFO] [stdout]     |
[INFO] [stdout] 148 |             let bottom_right_x = (bounding_box.x as i32 + bounding_box.width as i32).max((area.x as i32 + area.width as i32)) as i16;
[INFO] [stdout]     |                                                                                          ^                                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 148 -             let bottom_right_x = (bounding_box.x as i32 + bounding_box.width as i32).max((area.x as i32 + area.width as i32)) as i16;
[INFO] [stdout] 148 +             let bottom_right_x = (bounding_box.x as i32 + bounding_box.width as i32).max(area.x as i32 + area.width as i32 ) as i16;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/server/display/display.rs:149:91
[INFO] [stdout]     |
[INFO] [stdout] 149 | ...   let bottom_right_y = (bounding_box.y as i32 + bounding_box.height as i32).max((area.y as i32 + area.height as i32)) as i16;
[INFO] [stdout]     |                                                                                     ^                                  ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 149 -             let bottom_right_y = (bounding_box.y as i32 + bounding_box.height as i32).max((area.y as i32 + area.height as i32)) as i16;
[INFO] [stdout] 149 +             let bottom_right_y = (bounding_box.y as i32 + bounding_box.height as i32).max(area.y as i32 + area.height as i32 ) as i16;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error` and `warn`
[INFO] [stdout]  --> src/server/configs/functions.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | use log::{error, info, warn};
[INFO] [stdout]   |           ^^^^^        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::display::ScreenDimensions`
[INFO] [stdout]  --> src/server/configs/functions.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::display::ScreenDimensions;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::Cow`
[INFO] [stdout]  --> src/server/rd/handle.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::Cow;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]  --> src/server/rd/handle.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::error::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Cursor` and `IoSlice`
[INFO] [stdout]  --> src/server/rd/handle.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::{Cursor, IoSlice};
[INFO] [stdout]   |               ^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::sleep`
[INFO] [stdout]  --> src/server/rd/handle.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::thread::sleep;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `Instant`
[INFO] [stdout]  --> src/server/rd/handle.rs:6:17
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::time::{Duration, Instant};
[INFO] [stdout]   |                 ^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DynamicImage`, `EncodableLayout`, and `ImageBuffer`
[INFO] [stdout]  --> src/server/rd/handle.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | use image::{DynamicImage, EncodableLayout, ImageBuffer};
[INFO] [stdout]   |             ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `image::ImageFormat::Png`
[INFO] [stdout]  --> src/server/rd/handle.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use image::ImageFormat::Png;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Connection`, `ReadDatagram`, `RecvStream`, and `SendStream`
[INFO] [stdout]   --> src/server/rd/handle.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 | use quinn::{Connection, Endpoint, ReadDatagram, RecvStream, SendStream, ServerConfig as QuinnServerConfig};
[INFO] [stdout]    |             ^^^^^^^^^^            ^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rustls::internal::msgs::codec::u24`
[INFO] [stdout]   --> src/server/rd/handle.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use rustls::internal::msgs::codec::u24;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AsyncReadExt` and `AsyncWriteExt`
[INFO] [stdout]   --> src/server/rd/handle.rs:16:17
[INFO] [stdout]    |
[INFO] [stdout] 16 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
[INFO] [stdout]    |                 ^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mutex`, `Notify`, and `Semaphore`
[INFO] [stdout]   --> src/server/rd/handle.rs:17:19
[INFO] [stdout]    |
[INFO] [stdout] 17 | use tokio::sync::{Semaphore, Mutex, Notify};
[INFO] [stdout]    |                   ^^^^^^^^^  ^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::time::interval`
[INFO] [stdout]   --> src/server/rd/handle.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use tokio::time::interval;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Connection as XConnection` and `RequestConnection`
[INFO] [stdout]   --> src/server/rd/handle.rs:19:25
[INFO] [stdout]    |
[INFO] [stdout] 19 | use x11rb::connection::{Connection as XConnection, RequestConnection};
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `x11rb::cookie::VoidCookie`
[INFO] [stdout]   --> src/server/rd/handle.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use x11rb::cookie::VoidCookie;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BUTTON_PRESS_EVENT`, `ButtonPressEvent`, `ButtonReleaseEvent`, `ChangeWindowAttributesAux`, `ConnectionExt as TConnectionExt`, `CreateWindowAux`, `EventMask`, `GetInputFocusReply`, `GrabMode`, `GrabStatus`, `ImageFormat`, `KeyButMask`, `QueryPointerReply`, `Rectangle`, `Screen`, `SendEventRequest`, `Time`, `Timestamp`, `WindowClass`, `Window`, and `send_event`
[INFO] [stdout]   --> src/server/rd/handle.rs:21:31
[INFO] [stdout]    |
[INFO] [stdout] 21 | ...::{BUTTON_PRESS_EVENT, ButtonPressEvent, ButtonReleaseEvent, ChangeWindowAttributesAux, ConnectionExt as TConnectionExt, CreateWindowAux, EventMask, GetInputFocusReply, GrabMode, GrabStatus, ImageFormat, KeyButMask, QueryPointerReply, Rectangle, Screen, send_event, SendEventRequest, Time, Timestamp, Window, WindowClass};
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^  ^^^^^^^^^  ^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `x11rb::rust_connection::RustConnection`
[INFO] [stdout]   --> src/server/rd/handle.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use x11rb::rust_connection::RustConnection;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `x11rb::x11_utils::Serialize`
[INFO] [stdout]   --> src/server/rd/handle.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | use x11rb::x11_utils::Serialize;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Utc`
[INFO] [stdout]   --> src/server/rd/handle.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use chrono::Utc;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Event`, `damage`, and `xproto`
[INFO] [stdout]   --> src/server/rd/handle.rs:25:23
[INFO] [stdout]    |
[INFO] [stdout] 25 | use x11rb::protocol::{damage, Event, xproto};
[INFO] [stdout]    |                       ^^^^^^  ^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ConnectionExt` and `ReportLevel`
[INFO] [stdout]   --> src/server/rd/handle.rs:26:31
[INFO] [stdout]    |
[INFO] [stdout] 26 | use x11rb::protocol::damage::{ConnectionExt, ReportLevel};
[INFO] [stdout]    |                               ^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ConnectionExt as XTestExt` and `self`
[INFO] [stdout]   --> src/server/rd/handle.rs:27:30
[INFO] [stdout]    |
[INFO] [stdout] 27 | use x11rb::protocol::xtest::{self, ConnectionExt as XTestExt};
[INFO] [stdout]    |                              ^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::display::RrdpDisplay`
[INFO] [stdout]   --> src/server/rd/handle.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | use crate::display::RrdpDisplay;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::handlers`
[INFO] [stdout]   --> src/server/rd/handle.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use crate::handlers;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RgbImage`
[INFO] [stdout]  --> src/server/rd/serializer.rs:1:41
[INFO] [stdout]   |
[INFO] [stdout] 1 | use image::{EncodableLayout, RgbaImage, RgbImage};
[INFO] [stdout]   |                                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs`
[INFO] [stdout]  --> src/server/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::fs;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/server/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Endpoint` and `ServerConfig as QuinnServerConfig`
[INFO] [stdout]   --> src/server/main.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 | use quinn::{Endpoint, ServerConfig as QuinnServerConfig};
[INFO] [stdout]    |             ^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::runtime::Runtime`
[INFO] [stdout]   --> src/server/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use tokio::runtime::Runtime;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `toml::Table`
[INFO] [stdout]   --> src/server/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use toml::Table;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `setup_config`
[INFO] [stdout]   --> src/server/main.rs:15:22
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::configs::{setup_config, ServerConfig};
[INFO] [stdout]    |                      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::errors::config_errors::ConfigError`
[INFO] [stdout]   --> src/server/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::errors::config_errors::ConfigError;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::errors::connection_errors::ConnectionError`
[INFO] [stdout]   --> src/server/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::errors::connection_errors::ConnectionError;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::errors::crypto_errors::CryptoError`
[INFO] [stdout]   --> src/server/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::errors::crypto_errors::CryptoError;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rustls_pemfile::rsa_private_keys`
[INFO] [stdout]  --> src/bin/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use rustls_pemfile::rsa_private_keys;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Connection`
[INFO] [stdout]  --> src/bin/main.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use quinn::{Connection, Endpoint, ServerConfig};
[INFO] [stdout]   |             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `image::DynamicImage`
[INFO] [stdout]  --> src/bin/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use image::DynamicImage;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/server/handlers/mod.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 141 | /             loop {
[INFO] [stdout] 142 | |                 interval.tick().await;
[INFO] [stdout] 143 | |                 let damage_events = display.fetch_damage_events().unwrap();
[INFO] [stdout] 144 | |                 if !damage_events.is_empty() {
[INFO] [stdout] ...   |
[INFO] [stdout] 165 | |             }
[INFO] [stdout]     | |_____________- any code following this expression is unreachable
[INFO] [stdout] ...
[INFO] [stdout] 168 |               Ok(())
[INFO] [stdout]     |               ^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/client/main.rs:308:5
[INFO] [stdout]     |
[INFO] [stdout] 185 | /     loop {
[INFO] [stdout] 186 | |
[INFO] [stdout] 187 | |         // Assicurati di avere abbastanza dati per leggere gli header
[INFO] [stdout] 188 | |         while global_buffer.len() - cursor < 9 {
[INFO] [stdout] ...   |
[INFO] [stdout] 248 | |     }
[INFO] [stdout]     | |_____- any code following this expression is unreachable
[INFO] [stdout] ...
[INFO] [stdout] 308 |       Ok(())
[INFO] [stdout]     |       ^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/handlers/mod.rs:146:25
[INFO] [stdout]     |
[INFO] [stdout] 146 |                     let mut width = bounding_box.width;
[INFO] [stdout]     |                         ----^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/handlers/mod.rs:147:25
[INFO] [stdout]     |
[INFO] [stdout] 147 |                     let mut height = bounding_box.height;
[INFO] [stdout]     |                         ----^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/handlers/mod.rs:148:25
[INFO] [stdout]     |
[INFO] [stdout] 148 |                     let mut start_x = bounding_box.x;
[INFO] [stdout]     |                         ----^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/handlers/mod.rs:149:25
[INFO] [stdout]     |
[INFO] [stdout] 149 |                     let mut start_y = bounding_box.y;
[INFO] [stdout]     |                         ----^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `while let` pattern
[INFO] [stdout]    --> src/client/main.rs:110:15
[INFO] [stdout]     |
[INFO] [stdout] 110 |         while let coord = mouse.lock().await.muse_rx.recv().await {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the loop will never exit
[INFO] [stdout]     = help: consider instead using a `loop { ... }` with a `let` inside it
[INFO] [stdout]     = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `while let` pattern
[INFO] [stdout]    --> src/client/main.rs:140:15
[INFO] [stdout]     |
[INFO] [stdout] 140 |         while let coord = mouse_press.lock().await.muse_press_rx.recv().await {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the loop will never exit
[INFO] [stdout]     = help: consider instead using a `loop { ... }` with a `let` inside it
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `while let` pattern
[INFO] [stdout]    --> src/client/main.rs:161:15
[INFO] [stdout]     |
[INFO] [stdout] 161 |         while let keys = keyboard_shared_state.lock().await.keyboard_rx.recv().await {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the loop will never exit
[INFO] [stdout]     = help: consider instead using a `loop { ... }` with a `let` inside it
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `egui::Modifiers`
[INFO] [stdout]  --> src/client/gui/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use egui::Modifiers;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RgbImage`
[INFO] [stdout]  --> src/client/gui/mod.rs:7:24
[INFO] [stdout]   |
[INFO] [stdout] 7 | use image::{RgbaImage, RgbImage};
[INFO] [stdout]   |                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]   --> src/client/gui/mod.rs:59:29
[INFO] [stdout]    |
[INFO] [stdout] 59 |         let pos = ctx.input((|i| i.pointer.interact_pos()));
[INFO] [stdout]    |                             ^                            ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 59 -         let pos = ctx.input((|i| i.pointer.interact_pos()));
[INFO] [stdout] 59 +         let pos = ctx.input(|i| i.pointer.interact_pos());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RgbImage` and `Rgb`
[INFO] [stdout]  --> src/client/main.rs:6:43
[INFO] [stdout]   |
[INFO] [stdout] 6 | use image::{EncodableLayout, ImageBuffer, Rgb, Rgba, RgbaImage, RgbImage};
[INFO] [stdout]   |                                           ^^^                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `x11rb::protocol::xproto::ConnectionExt`
[INFO] [stdout]  --> src/server/handlers/mod.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use x11rb::protocol::xproto::ConnectionExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ConnectionExt`
[INFO] [stdout]  --> src/server/handlers/mod.rs:8:31
[INFO] [stdout]   |
[INFO] [stdout] 8 | use x11rb::protocol::damage::{ConnectionExt as XConnectionExt};
[INFO] [stdout]   |                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/server/handlers/mod.rs:52:25
[INFO] [stdout]    |
[INFO] [stdout] 52 |                     Err(err) => {println!("Error"); panic!()}       // TODO: gestione errori
[INFO] [stdout]    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/server/handlers/mod.rs:59:25
[INFO] [stdout]    |
[INFO] [stdout] 59 |                     let n = recv.read(&mut type_byte).await;
[INFO] [stdout]    |                         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/server/handlers/mod.rs:66:29
[INFO] [stdout]    |
[INFO] [stdout] 66 |                         let n = recv.read(&mut bytes).await;
[INFO] [stdout]    |                             ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/server/handlers/mod.rs:78:29
[INFO] [stdout]    |
[INFO] [stdout] 78 |                         let n = recv.read(&mut button).await;
[INFO] [stdout]    |                             ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/server/handlers/mod.rs:86:29
[INFO] [stdout]    |
[INFO] [stdout] 86 |                         let n = recv.read(&mut button).await;
[INFO] [stdout]    |                             ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/server/handlers/mod.rs:93:29
[INFO] [stdout]    |
[INFO] [stdout] 93 |                         let n = recv.read(&mut buf).await;
[INFO] [stdout]    |                             ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `damage_id`
[INFO] [stdout]    --> src/server/handlers/mod.rs:128:17
[INFO] [stdout]     |
[INFO] [stdout] 128 |             let damage_id = display.setup_damage();
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_damage_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `damage_version`
[INFO] [stdout]   --> src/server/display/display.rs:54:13
[INFO] [stdout]    |
[INFO] [stdout] 54 |         let damage_version = &self.connection.damage_query_version(1, 1).unwrap().reply().unwrap();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_damage_version`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> src/server/display/display.rs:114:17
[INFO] [stdout]     |
[INFO] [stdout] 114 |             Err(err) => {
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/server/display/display.rs:129:21
[INFO] [stdout]     |
[INFO] [stdout] 129 |                 Err(e) => return Err(ConnectionError::CreateConnectionError("Failed to poll event".to_string())),
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bin/main.rs:80:53
[INFO] [stdout]    |
[INFO] [stdout] 80 | async fn handle_stream(mut send: quinn::SendStream, mut recv: quinn::RecvStream) -> Result<()> {
[INFO] [stdout]    |                                                     ----^^^^
[INFO] [stdout]    |                                                     |
[INFO] [stdout]    |                                                     help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/server/main.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |     let mut server_config;
[INFO] [stdout]    |         ----^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `damage_notify` is never read
[INFO] [stdout]   --> src/server/display/display.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct RrdpDisplay {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |     damage_notify: Option<NotifyEvent>,
[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 `setup_xcomposite` and `get_root` are never used
[INFO] [stdout]   --> src/server/display/display.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl RrdpDisplay {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn setup_xcomposite(&self){
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn get_root(&self) -> &Screen {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Image` is never constructed
[INFO] [stdout]  --> src/server/display/image.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Image {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `SendingError` is never constructed
[INFO] [stdout]   --> src/server/errors/connection_errors.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub enum ConnectionError {
[INFO] [stdout]    |          --------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 14 |     SendingError(String)
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ConnectionError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `log_path` is never read
[INFO] [stdout]   --> src/server/configs/structs.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct SettingsConfig {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 40 |     pub log_path: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SettingsConfig` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/server/display/display.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |         &self.connection.damage_subtract(damage_id, x11rb::NONE, x11rb::NONE).unwrap();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 168 |         let _ = &self.connection.damage_subtract(damage_id, x11rb::NONE, x11rb::NONE).unwrap();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/client/main.rs:94:10
[INFO] [stdout]    |
[INFO] [stdout] 94 |     let (mut send, mut recv) = match connection.accept_bi().await{
[INFO] [stdout]    |          ----^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/server/display/display.rs:178:9
[INFO] [stdout]     |
[INFO] [stdout] 178 |         self.connection.xtest_fake_input(4, button, 0, self.get_screen().root, pos.0, pos.1, 0);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 178 |         let _ = self.connection.xtest_fake_input(4, button, 0, self.get_screen().root, pos.0, pos.1, 0);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/server/display/display.rs:184:9
[INFO] [stdout]     |
[INFO] [stdout] 184 |         self.connection.flush();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 184 |         let _ = self.connection.flush();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/server/display/display.rs:193:9
[INFO] [stdout]     |
[INFO] [stdout] 193 |         self.connection.xtest_fake_input(5, button, 0, self.get_screen().root, pos.0, pos.1, 0);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 193 |         let _ = self.connection.xtest_fake_input(5, button, 0, self.get_screen().root, pos.0, pos.1, 0);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/server/display/display.rs:196:9
[INFO] [stdout]     |
[INFO] [stdout] 196 |         self.connection.flush();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 196 |         let _ = self.connection.flush();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/server/display/display.rs:214:9
[INFO] [stdout]     |
[INFO] [stdout] 214 | /         &self.connection.xtest_fake_input(2, key, 0, self.get_screen().root, 0, 0, 0)
[INFO] [stdout] 215 | |             .unwrap();
[INFO] [stdout]     | |_____________________^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 214 |         let _ = &self.connection.xtest_fake_input(2, key, 0, self.get_screen().root, 0, 0, 0)
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/server/display/display.rs:216:9
[INFO] [stdout]     |
[INFO] [stdout] 216 |         &self.connection.flush().unwrap();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 216 |         let _ = &self.connection.flush().unwrap();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/server/display/display.rs:222:9
[INFO] [stdout]     |
[INFO] [stdout] 222 | /         &self.connection.xtest_fake_input(3, key, 0, self.get_screen().root, 0, 0, 0)
[INFO] [stdout] 223 | |             .unwrap();
[INFO] [stdout]     | |_____________________^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 222 |         let _ = &self.connection.xtest_fake_input(3, key, 0, self.get_screen().root, 0, 0, 0)
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/server/display/display.rs:224:9
[INFO] [stdout]     |
[INFO] [stdout] 224 |         &self.connection.flush().unwrap();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 224 |         let _ = &self.connection.flush().unwrap();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ReadExactError`
[INFO] [stdout]  --> src/server/handlers/mod.rs:5:25
[INFO] [stdout]   |
[INFO] [stdout] 5 | use quinn::{Connection, ReadExactError};
[INFO] [stdout]   |                         ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bin/main.rs:66:28
[INFO] [stdout]    |
[INFO] [stdout] 66 | async fn handle_connection(mut new_conn: quinn::Connection) -> Result<()> {
[INFO] [stdout]    |                            ----^^^^^^^^
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::task`
[INFO] [stdout]  --> src/server/handlers/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use tokio::task;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CertifiedKey` and `Error`
[INFO] [stdout]  --> src/server/cryptography/mod.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | use rcgen::{CertifiedKey, Error, generate_simple_self_signed};
[INFO] [stdout]   |             ^^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/server/cryptography/mod.rs:75:7
[INFO] [stdout]    |
[INFO] [stdout] 75 |     ->(Result<(Vec<Certificate>, PrivateKey), CryptoError>){
[INFO] [stdout]    |       ^                                                   ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 75 -     ->(Result<(Vec<Certificate>, PrivateKey), CryptoError>){
[INFO] [stdout] 75 +     ->Result<(Vec<Certificate>, PrivateKey), CryptoError> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `KeyPressEvent` and `Window`
[INFO] [stdout]  --> src/server/display/display.rs:2:120
[INFO] [stdout]   |
[INFO] [stdout] 2 | ...XprotoConnectionExt, EventMask, ImageFormat, KeyPressEvent, Rectangle, Screen, Window};
[INFO] [stdout]   |                                                 ^^^^^^^^^^^^^                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/server/display/display.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `x11rb::errors::ConnectError`
[INFO] [stdout]  --> src/server/display/display.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use x11rb::errors::ConnectError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Redirect`
[INFO] [stdout]  --> src/server/display/display.rs:8:49
[INFO] [stdout]   |
[INFO] [stdout] 8 | use x11rb::protocol::composite::{ConnectionExt, Redirect};
[INFO] [stdout]   |                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `xproto`
[INFO] [stdout]   --> src/server/display/display.rs:10:30
[INFO] [stdout]    |
[INFO] [stdout] 10 | use x11rb::protocol::{Event, xproto};
[INFO] [stdout]    |                              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/server/display/display.rs:148:90
[INFO] [stdout]     |
[INFO] [stdout] 148 |             let bottom_right_x = (bounding_box.x as i32 + bounding_box.width as i32).max((area.x as i32 + area.width as i32)) as i16;
[INFO] [stdout]     |                                                                                          ^                                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 148 -             let bottom_right_x = (bounding_box.x as i32 + bounding_box.width as i32).max((area.x as i32 + area.width as i32)) as i16;
[INFO] [stdout] 148 +             let bottom_right_x = (bounding_box.x as i32 + bounding_box.width as i32).max(area.x as i32 + area.width as i32 ) as i16;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/server/display/display.rs:149:91
[INFO] [stdout]     |
[INFO] [stdout] 149 | ...   let bottom_right_y = (bounding_box.y as i32 + bounding_box.height as i32).max((area.y as i32 + area.height as i32)) as i16;
[INFO] [stdout]     |                                                                                     ^                                  ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 149 -             let bottom_right_y = (bounding_box.y as i32 + bounding_box.height as i32).max((area.y as i32 + area.height as i32)) as i16;
[INFO] [stdout] 149 +             let bottom_right_y = (bounding_box.y as i32 + bounding_box.height as i32).max(area.y as i32 + area.height as i32 ) as i16;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error` and `warn`
[INFO] [stdout]  --> src/server/configs/functions.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | use log::{error, info, warn};
[INFO] [stdout]   |           ^^^^^        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::display::ScreenDimensions`
[INFO] [stdout]  --> src/server/configs/functions.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::display::ScreenDimensions;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::Cow`
[INFO] [stdout]  --> src/server/rd/handle.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::Cow;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]  --> src/server/rd/handle.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::error::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Cursor` and `IoSlice`
[INFO] [stdout]  --> src/server/rd/handle.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::{Cursor, IoSlice};
[INFO] [stdout]   |               ^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread::sleep`
[INFO] [stdout]  --> src/server/rd/handle.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::thread::sleep;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `Instant`
[INFO] [stdout]  --> src/server/rd/handle.rs:6:17
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::time::{Duration, Instant};
[INFO] [stdout]   |                 ^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DynamicImage`, `EncodableLayout`, and `ImageBuffer`
[INFO] [stdout]  --> src/server/rd/handle.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | use image::{DynamicImage, EncodableLayout, ImageBuffer};
[INFO] [stdout]   |             ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `image::ImageFormat::Png`
[INFO] [stdout]  --> src/server/rd/handle.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use image::ImageFormat::Png;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Connection`, `ReadDatagram`, `RecvStream`, and `SendStream`
[INFO] [stdout]   --> src/server/rd/handle.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 | use quinn::{Connection, Endpoint, ReadDatagram, RecvStream, SendStream, ServerConfig as QuinnServerConfig};
[INFO] [stdout]    |             ^^^^^^^^^^            ^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rustls::internal::msgs::codec::u24`
[INFO] [stdout]   --> src/server/rd/handle.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use rustls::internal::msgs::codec::u24;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AsyncReadExt` and `AsyncWriteExt`
[INFO] [stdout]   --> src/server/rd/handle.rs:16:17
[INFO] [stdout]    |
[INFO] [stdout] 16 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
[INFO] [stdout]    |                 ^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Mutex`, `Notify`, and `Semaphore`
[INFO] [stdout]   --> src/server/rd/handle.rs:17:19
[INFO] [stdout]    |
[INFO] [stdout] 17 | use tokio::sync::{Semaphore, Mutex, Notify};
[INFO] [stdout]    |                   ^^^^^^^^^  ^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::time::interval`
[INFO] [stdout]   --> src/server/rd/handle.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use tokio::time::interval;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Connection as XConnection` and `RequestConnection`
[INFO] [stdout]   --> src/server/rd/handle.rs:19:25
[INFO] [stdout]    |
[INFO] [stdout] 19 | use x11rb::connection::{Connection as XConnection, RequestConnection};
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `x11rb::cookie::VoidCookie`
[INFO] [stdout]   --> src/server/rd/handle.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use x11rb::cookie::VoidCookie;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BUTTON_PRESS_EVENT`, `ButtonPressEvent`, `ButtonReleaseEvent`, `ChangeWindowAttributesAux`, `ConnectionExt as TConnectionExt`, `CreateWindowAux`, `EventMask`, `GetInputFocusReply`, `GrabMode`, `GrabStatus`, `ImageFormat`, `KeyButMask`, `QueryPointerReply`, `Rectangle`, `Screen`, `SendEventRequest`, `Time`, `Timestamp`, `WindowClass`, `Window`, and `send_event`
[INFO] [stdout]   --> src/server/rd/handle.rs:21:31
[INFO] [stdout]    |
[INFO] [stdout] 21 | ...::{BUTTON_PRESS_EVENT, ButtonPressEvent, ButtonReleaseEvent, ChangeWindowAttributesAux, ConnectionExt as TConnectionExt, CreateWindowAux, EventMask, GetInputFocusReply, GrabMode, GrabStatus, ImageFormat, KeyButMask, QueryPointerReply, Rectangle, Screen, send_event, SendEventRequest, Time, Timestamp, Window, WindowClass};
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^  ^^^^^^^^^  ^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `x11rb::rust_connection::RustConnection`
[INFO] [stdout]   --> src/server/rd/handle.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use x11rb::rust_connection::RustConnection;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `x11rb::x11_utils::Serialize`
[INFO] [stdout]   --> src/server/rd/handle.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | use x11rb::x11_utils::Serialize;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Utc`
[INFO] [stdout]   --> src/server/rd/handle.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use chrono::Utc;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Event`, `damage`, and `xproto`
[INFO] [stdout]   --> src/server/rd/handle.rs:25:23
[INFO] [stdout]    |
[INFO] [stdout] 25 | use x11rb::protocol::{damage, Event, xproto};
[INFO] [stdout]    |                       ^^^^^^  ^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ConnectionExt` and `ReportLevel`
[INFO] [stdout]   --> src/server/rd/handle.rs:26:31
[INFO] [stdout]    |
[INFO] [stdout] 26 | use x11rb::protocol::damage::{ConnectionExt, ReportLevel};
[INFO] [stdout]    |                               ^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ConnectionExt as XTestExt` and `self`
[INFO] [stdout]   --> src/server/rd/handle.rs:27:30
[INFO] [stdout]    |
[INFO] [stdout] 27 | use x11rb::protocol::xtest::{self, ConnectionExt as XTestExt};
[INFO] [stdout]    |                              ^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::display::RrdpDisplay`
[INFO] [stdout]   --> src/server/rd/handle.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | use crate::display::RrdpDisplay;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::handlers`
[INFO] [stdout]   --> src/server/rd/handle.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use crate::handlers;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RgbImage`
[INFO] [stdout]  --> src/server/rd/serializer.rs:1:41
[INFO] [stdout]   |
[INFO] [stdout] 1 | use image::{EncodableLayout, RgbaImage, RgbImage};
[INFO] [stdout]   |                                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs`
[INFO] [stdout]  --> src/server/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::fs;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/server/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Endpoint` and `ServerConfig as QuinnServerConfig`
[INFO] [stdout]   --> src/server/main.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 | use quinn::{Endpoint, ServerConfig as QuinnServerConfig};
[INFO] [stdout]    |             ^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::runtime::Runtime`
[INFO] [stdout]   --> src/server/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use tokio::runtime::Runtime;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `toml::Table`
[INFO] [stdout]   --> src/server/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use toml::Table;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `setup_config`
[INFO] [stdout]   --> src/server/main.rs:15:22
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::configs::{setup_config, ServerConfig};
[INFO] [stdout]    |                      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::errors::config_errors::ConfigError`
[INFO] [stdout]   --> src/server/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::errors::config_errors::ConfigError;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::errors::connection_errors::ConnectionError`
[INFO] [stdout]   --> src/server/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::errors::connection_errors::ConnectionError;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::errors::crypto_errors::CryptoError`
[INFO] [stdout]   --> src/server/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::errors::crypto_errors::CryptoError;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/client/gui/mod.rs:10:24
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub async fn start_gui(mut image_rx: Receiver<(RgbaImage, (u16, u16))>,
[INFO] [stdout]    |                        ----^^^^^^^^
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame`
[INFO] [stdout]   --> src/client/gui/mod.rs:58:47
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn update(&mut self, ctx: &egui::Context, frame: &mut eframe::Frame) {
[INFO] [stdout]    |                                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `recv`
[INFO] [stdout]   --> src/bin/main.rs:80:53
[INFO] [stdout]    |
[INFO] [stdout] 80 | async fn handle_stream(mut send: quinn::SendStream, mut recv: quinn::RecvStream) -> Result<()> {
[INFO] [stdout]    |                                                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_recv`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `message`
[INFO] [stdout]   --> src/bin/main.rs:86:13
[INFO] [stdout]    |
[INFO] [stdout] 86 |         let message = "Hello from server!\n";
[INFO] [stdout]    |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/server/handlers/mod.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 141 | /             loop {
[INFO] [stdout] 142 | |                 interval.tick().await;
[INFO] [stdout] 143 | |                 let damage_events = display.fetch_damage_events().unwrap();
[INFO] [stdout] 144 | |                 if !damage_events.is_empty() {
[INFO] [stdout] ...   |
[INFO] [stdout] 165 | |             }
[INFO] [stdout]     | |_____________- any code following this expression is unreachable
[INFO] [stdout] ...
[INFO] [stdout] 168 |               Ok(())
[INFO] [stdout]     |               ^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/client/gui/mod.rs:291:9
[INFO] [stdout]     |
[INFO] [stdout] 291 |         _ => 0, // Default for unspecified keys
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/client/gui/mod.rs:291:9
[INFO] [stdout]     |
[INFO] [stdout] 188 |         Key::ArrowDown => 116,
[INFO] [stdout]     |         -------------- matches some of the same values
[INFO] [stdout] 189 |         Key::ArrowLeft => 113,
[INFO] [stdout]     |         -------------- matches some of the same values
[INFO] [stdout] 190 |         Key::ArrowRight => 114,
[INFO] [stdout]     |         --------------- matches some of the same values
[INFO] [stdout] 191 |         Key::ArrowUp => 111,
[INFO] [stdout]     |         ------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 291 |         _ => 0, // Default for unspecified keys
[INFO] [stdout]     |         ^ ...and 99 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/client/main.rs:35:15
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let (mtx, mut mrx) = mpsc::channel(32);
[INFO] [stdout]    |               ----^^^
[INFO] [stdout]    |               |
[INFO] [stdout]    |               help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/client/main.rs:39:21
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let (mtx_press, mut mrx_press) = mpsc::channel(32);
[INFO] [stdout]    |                     ----^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/client/main.rs:43:14
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let (tx, mut rx) = mpsc::channel(32);
[INFO] [stdout]    |              ----^^
[INFO] [stdout]    |              |
[INFO] [stdout]    |              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/client/main.rs:47:23
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let (keyboard_tx, mut keyboard_rx) = mpsc::channel(32);
[INFO] [stdout]    |                       ----^^^^^^^^^^^
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf_type`
[INFO] [stdout]    --> src/client/main.rs:195:13
[INFO] [stdout]     |
[INFO] [stdout] 195 |         let buf_type = global_buffer[cursor];
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_buf_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/client/main.rs:308:5
[INFO] [stdout]     |
[INFO] [stdout] 185 | /     loop {
[INFO] [stdout] 186 | |
[INFO] [stdout] 187 | |         // Assicurati di avere abbastanza dati per leggere gli header
[INFO] [stdout] 188 | |         while global_buffer.len() - cursor < 9 {
[INFO] [stdout] ...   |
[INFO] [stdout] 248 | |     }
[INFO] [stdout]     | |_____- any code following this expression is unreachable
[INFO] [stdout] ...
[INFO] [stdout] 308 |       Ok(())
[INFO] [stdout]     |       ^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/client/gui/mod.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | impl MyApp{
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] 51 |     fn new(){
[INFO] [stdout]    |        ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/client/main.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |         client_task.await; // Nota: Doppio '?' per gestire Result di Result.
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 71 |         let _ = client_task.await; // Nota: Doppio '?' per gestire Result di Result.
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/client/main.rs:123:25
[INFO] [stdout]     |
[INFO] [stdout] 123 |                         send.write_all(new_data.as_bytes()).await;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 123 |                         let _ = send.write_all(new_data.as_bytes()).await;
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/client/main.rs:152:21
[INFO] [stdout]     |
[INFO] [stdout] 152 |                     send.write_all(new_data.as_bytes()).await;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 152 |                     let _ = send.write_all(new_data.as_bytes()).await;
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/client/main.rs:174:21
[INFO] [stdout]     |
[INFO] [stdout] 174 |                     send.write_all(to_send.as_bytes()).await;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 174 |                     let _ = send.write_all(to_send.as_bytes()).await;
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/client/main.rs:224:17
[INFO] [stdout]     |
[INFO] [stdout] 224 |                 state.image_tx.send((rgba_img.unwrap(), (start_x, start_y))).await;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 224 |                 let _ = state.image_tx.send((rgba_img.unwrap(), (start_x, start_y))).await;
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/client/gui/mod.rs:112:13
[INFO] [stdout]     |
[INFO] [stdout] 112 |             self.key_sender.try_send(to_send);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 112 |             let _ = self.key_sender.try_send(to_send);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/client/gui/mod.rs:120:13
[INFO] [stdout]     |
[INFO] [stdout] 120 |             self.key_sender.try_send(to_send);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 120 |             let _ = self.key_sender.try_send(to_send);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/client/gui/mod.rs:126:13
[INFO] [stdout]     |
[INFO] [stdout] 126 |             self.mouse_press_sender.try_send((1,1));
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 126 |             let _ = self.mouse_press_sender.try_send((1,1));
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/client/gui/mod.rs:131:13
[INFO] [stdout]     |
[INFO] [stdout] 131 |             self.mouse_press_sender.try_send((2,1));
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 131 |             let _ = self.mouse_press_sender.try_send((2,1));
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/client/gui/mod.rs:136:13
[INFO] [stdout]     |
[INFO] [stdout] 136 |             self.mouse_press_sender.try_send((1,2));
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 136 |             let _ = self.mouse_press_sender.try_send((1,2));
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/client/gui/mod.rs:141:13
[INFO] [stdout]     |
[INFO] [stdout] 141 |             self.mouse_press_sender.try_send((2,2));
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 141 |             let _ = self.mouse_press_sender.try_send((2,2));
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/client/gui/mod.rs:148:21
[INFO] [stdout]     |
[INFO] [stdout] 148 |                     self.sender.try_send((pos.x as i32, pos.y as i32));
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 148 |                     let _ = self.sender.try_send((pos.x as i32, pos.y as i32));
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `while let` pattern
[INFO] [stdout]    --> src/client/main.rs:110:15
[INFO] [stdout]     |
[INFO] [stdout] 110 |         while let coord = mouse.lock().await.muse_rx.recv().await {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the loop will never exit
[INFO] [stdout]     = help: consider instead using a `loop { ... }` with a `let` inside it
[INFO] [stdout]     = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `while let` pattern
[INFO] [stdout]    --> src/client/main.rs:140:15
[INFO] [stdout]     |
[INFO] [stdout] 140 |         while let coord = mouse_press.lock().await.muse_press_rx.recv().await {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the loop will never exit
[INFO] [stdout]     = help: consider instead using a `loop { ... }` with a `let` inside it
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `while let` pattern
[INFO] [stdout]    --> src/client/main.rs:161:15
[INFO] [stdout]     |
[INFO] [stdout] 161 |         while let keys = keyboard_shared_state.lock().await.keyboard_rx.recv().await {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the loop will never exit
[INFO] [stdout]     = help: consider instead using a `loop { ... }` with a `let` inside it
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/handlers/mod.rs:146:25
[INFO] [stdout]     |
[INFO] [stdout] 146 |                     let mut width = bounding_box.width;
[INFO] [stdout]     |                         ----^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/handlers/mod.rs:147:25
[INFO] [stdout]     |
[INFO] [stdout] 147 |                     let mut height = bounding_box.height;
[INFO] [stdout]     |                         ----^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/handlers/mod.rs:148:25
[INFO] [stdout]     |
[INFO] [stdout] 148 |                     let mut start_x = bounding_box.x;
[INFO] [stdout]     |                         ----^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server/handlers/mod.rs:149:25
[INFO] [stdout]     |
[INFO] [stdout] 149 |                     let mut start_y = bounding_box.y;
[INFO] [stdout]     |                         ----^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/client/main.rs:94:10
[INFO] [stdout]    |
[INFO] [stdout] 94 |     let (mut send, mut recv) = match connection.accept_bi().await{
[INFO] [stdout]    |          ----^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame`
[INFO] [stdout]   --> src/client/gui/mod.rs:58:47
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn update(&mut self, ctx: &egui::Context, frame: &mut eframe::Frame) {
[INFO] [stdout]    |                                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/client/gui/mod.rs:291:9
[INFO] [stdout]     |
[INFO] [stdout] 291 |         _ => 0, // Default for unspecified keys
[INFO] [stdout]     |         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/client/gui/mod.rs:291:9
[INFO] [stdout]     |
[INFO] [stdout] 188 |         Key::ArrowDown => 116,
[INFO] [stdout]     |         -------------- matches some of the same values
[INFO] [stdout] 189 |         Key::ArrowLeft => 113,
[INFO] [stdout]     |         -------------- matches some of the same values
[INFO] [stdout] 190 |         Key::ArrowRight => 114,
[INFO] [stdout]     |         --------------- matches some of the same values
[INFO] [stdout] 191 |         Key::ArrowUp => 111,
[INFO] [stdout]     |         ------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 291 |         _ => 0, // Default for unspecified keys
[INFO] [stdout]     |         ^ ...and 99 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `x11rb::protocol::xproto::ConnectionExt`
[INFO] [stdout]  --> src/server/handlers/mod.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use x11rb::protocol::xproto::ConnectionExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ConnectionExt`
[INFO] [stdout]  --> src/server/handlers/mod.rs:8:31
[INFO] [stdout]   |
[INFO] [stdout] 8 | use x11rb::protocol::damage::{ConnectionExt as XConnectionExt};
[INFO] [stdout]   |                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/server/handlers/mod.rs:52:25
[INFO] [stdout]    |
[INFO] [stdout] 52 |                     Err(err) => {println!("Error"); panic!()}       // TODO: gestione errori
[INFO] [stdout]    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/server/handlers/mod.rs:59:25
[INFO] [stdout]    |
[INFO] [stdout] 59 |                     let n = recv.read(&mut type_byte).await;
[INFO] [stdout]    |                         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/server/handlers/mod.rs:66:29
[INFO] [stdout]    |
[INFO] [stdout] 66 |                         let n = recv.read(&mut bytes).await;
[INFO] [stdout]    |                             ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/server/handlers/mod.rs:78:29
[INFO] [stdout]    |
[INFO] [stdout] 78 |                         let n = recv.read(&mut button).await;
[INFO] [stdout]    |                             ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/server/handlers/mod.rs:86:29
[INFO] [stdout]    |
[INFO] [stdout] 86 |                         let n = recv.read(&mut button).await;
[INFO] [stdout]    |                             ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/server/handlers/mod.rs:93:29
[INFO] [stdout]    |
[INFO] [stdout] 93 |                         let n = recv.read(&mut buf).await;
[INFO] [stdout]    |                             ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `damage_id`
[INFO] [stdout]    --> src/server/handlers/mod.rs:128:17
[INFO] [stdout]     |
[INFO] [stdout] 128 |             let damage_id = display.setup_damage();
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_damage_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/client/main.rs:35:15
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let (mtx, mut mrx) = mpsc::channel(32);
[INFO] [stdout]    |               ----^^^
[INFO] [stdout]    |               |
[INFO] [stdout]    |               help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/client/main.rs:39:21
[INFO] [stdout]    |
[INFO] [stdout] 39 |     let (mtx_press, mut mrx_press) = mpsc::channel(32);
[INFO] [stdout]    |                     ----^^^^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/client/main.rs:43:14
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let (tx, mut rx) = mpsc::channel(32);
[INFO] [stdout]    |              ----^^
[INFO] [stdout]    |              |
[INFO] [stdout]    |              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/client/main.rs:47:23
[INFO] [stdout]    |
[INFO] [stdout] 47 |     let (keyboard_tx, mut keyboard_rx) = mpsc::channel(32);
[INFO] [stdout]    |                       ----^^^^^^^^^^^
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf_type`
[INFO] [stdout]    --> src/client/main.rs:195:13
[INFO] [stdout]     |
[INFO] [stdout] 195 |         let buf_type = global_buffer[cursor];
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_buf_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `damage_version`
[INFO] [stdout]   --> src/server/display/display.rs:54:13
[INFO] [stdout]    |
[INFO] [stdout] 54 |         let damage_version = &self.connection.damage_query_version(1, 1).unwrap().reply().unwrap();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_damage_version`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]    --> src/server/display/display.rs:114:17
[INFO] [stdout]     |
[INFO] [stdout] 114 |             Err(err) => {
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/server/display/display.rs:129:21
[INFO] [stdout]     |
[INFO] [stdout] 129 |                 Err(e) => return Err(ConnectionError::CreateConnectionError("Failed to poll event".to_string())),
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/client/gui/mod.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | impl MyApp{
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] 51 |     fn new(){
[INFO] [stdout]    |        ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/client/main.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |         client_task.await; // Nota: Doppio '?' per gestire Result di Result.
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 71 |         let _ = client_task.await; // Nota: Doppio '?' per gestire Result di Result.
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/client/main.rs:123:25
[INFO] [stdout]     |
[INFO] [stdout] 123 |                         send.write_all(new_data.as_bytes()).await;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 123 |                         let _ = send.write_all(new_data.as_bytes()).await;
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/client/main.rs:152:21
[INFO] [stdout]     |
[INFO] [stdout] 152 |                     send.write_all(new_data.as_bytes()).await;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 152 |                     let _ = send.write_all(new_data.as_bytes()).await;
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/client/main.rs:174:21
[INFO] [stdout]     |
[INFO] [stdout] 174 |                     send.write_all(to_send.as_bytes()).await;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 174 |                     let _ = send.write_all(to_send.as_bytes()).await;
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/client/main.rs:224:17
[INFO] [stdout]     |
[INFO] [stdout] 224 |                 state.image_tx.send((rgba_img.unwrap(), (start_x, start_y))).await;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 224 |                 let _ = state.image_tx.send((rgba_img.unwrap(), (start_x, start_y))).await;
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/client/gui/mod.rs:112:13
[INFO] [stdout]     |
[INFO] [stdout] 112 |             self.key_sender.try_send(to_send);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 112 |             let _ = self.key_sender.try_send(to_send);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/client/gui/mod.rs:120:13
[INFO] [stdout]     |
[INFO] [stdout] 120 |             self.key_sender.try_send(to_send);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 120 |             let _ = self.key_sender.try_send(to_send);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/client/gui/mod.rs:126:13
[INFO] [stdout]     |
[INFO] [stdout] 126 |             self.mouse_press_sender.try_send((1,1));
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 126 |             let _ = self.mouse_press_sender.try_send((1,1));
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/client/gui/mod.rs:131:13
[INFO] [stdout]     |
[INFO] [stdout] 131 |             self.mouse_press_sender.try_send((2,1));
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 131 |             let _ = self.mouse_press_sender.try_send((2,1));
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/client/gui/mod.rs:136:13
[INFO] [stdout]     |
[INFO] [stdout] 136 |             self.mouse_press_sender.try_send((1,2));
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 136 |             let _ = self.mouse_press_sender.try_send((1,2));
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/client/gui/mod.rs:141:13
[INFO] [stdout]     |
[INFO] [stdout] 141 |             self.mouse_press_sender.try_send((2,2));
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 141 |             let _ = self.mouse_press_sender.try_send((2,2));
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/client/gui/mod.rs:148:21
[INFO] [stdout]     |
[INFO] [stdout] 148 |                     self.sender.try_send((pos.x as i32, pos.y as i32));
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 148 |                     let _ = self.sender.try_send((pos.x as i32, pos.y as i32));
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/server/main.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 36 |     let mut server_config;
[INFO] [stdout]    |         ----^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `damage_notify` is never read
[INFO] [stdout]   --> src/server/display/display.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct RrdpDisplay {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |     damage_notify: Option<NotifyEvent>,
[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 `setup_xcomposite` and `get_root` are never used
[INFO] [stdout]   --> src/server/display/display.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl RrdpDisplay {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn setup_xcomposite(&self){
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn get_root(&self) -> &Screen {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Image` is never constructed
[INFO] [stdout]  --> src/server/display/image.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct Image {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `SendingError` is never constructed
[INFO] [stdout]   --> src/server/errors/connection_errors.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub enum ConnectionError {
[INFO] [stdout]    |          --------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 14 |     SendingError(String)
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ConnectionError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `log_path` is never read
[INFO] [stdout]   --> src/server/configs/structs.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct SettingsConfig {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 40 |     pub log_path: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SettingsConfig` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/server/display/display.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 168 |         &self.connection.damage_subtract(damage_id, x11rb::NONE, x11rb::NONE).unwrap();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 168 |         let _ = &self.connection.damage_subtract(damage_id, x11rb::NONE, x11rb::NONE).unwrap();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/server/display/display.rs:178:9
[INFO] [stdout]     |
[INFO] [stdout] 178 |         self.connection.xtest_fake_input(4, button, 0, self.get_screen().root, pos.0, pos.1, 0);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 178 |         let _ = self.connection.xtest_fake_input(4, button, 0, self.get_screen().root, pos.0, pos.1, 0);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/server/display/display.rs:184:9
[INFO] [stdout]     |
[INFO] [stdout] 184 |         self.connection.flush();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 184 |         let _ = self.connection.flush();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/server/display/display.rs:193:9
[INFO] [stdout]     |
[INFO] [stdout] 193 |         self.connection.xtest_fake_input(5, button, 0, self.get_screen().root, pos.0, pos.1, 0);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 193 |         let _ = self.connection.xtest_fake_input(5, button, 0, self.get_screen().root, pos.0, pos.1, 0);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/server/display/display.rs:196:9
[INFO] [stdout]     |
[INFO] [stdout] 196 |         self.connection.flush();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 196 |         let _ = self.connection.flush();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/server/display/display.rs:214:9
[INFO] [stdout]     |
[INFO] [stdout] 214 | /         &self.connection.xtest_fake_input(2, key, 0, self.get_screen().root, 0, 0, 0)
[INFO] [stdout] 215 | |             .unwrap();
[INFO] [stdout]     | |_____________________^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 214 |         let _ = &self.connection.xtest_fake_input(2, key, 0, self.get_screen().root, 0, 0, 0)
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/server/display/display.rs:216:9
[INFO] [stdout]     |
[INFO] [stdout] 216 |         &self.connection.flush().unwrap();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 216 |         let _ = &self.connection.flush().unwrap();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/server/display/display.rs:222:9
[INFO] [stdout]     |
[INFO] [stdout] 222 | /         &self.connection.xtest_fake_input(3, key, 0, self.get_screen().root, 0, 0, 0)
[INFO] [stdout] 223 | |             .unwrap();
[INFO] [stdout]     | |_____________________^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 222 |         let _ = &self.connection.xtest_fake_input(3, key, 0, self.get_screen().root, 0, 0, 0)
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/server/display/display.rs:224:9
[INFO] [stdout]     |
[INFO] [stdout] 224 |         &self.connection.flush().unwrap();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 224 |         let _ = &self.connection.flush().unwrap();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3m 50s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: document-features v0.2.8, xcap v0.0.8
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] running `Command { std: "docker" "inspect" "f1415581632f4e2d1e94f7383a5aca503e0338d9c98b52d4c2ad5eb1c5ade36b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f1415581632f4e2d1e94f7383a5aca503e0338d9c98b52d4c2ad5eb1c5ade36b", kill_on_drop: false }`
[INFO] [stdout] f1415581632f4e2d1e94f7383a5aca503e0338d9c98b52d4c2ad5eb1c5ade36b
