[INFO] cloning repository https://github.com/flowithin/MChat
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/flowithin/MChat" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fflowithin%2FMChat", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fflowithin%2FMChat'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1572e52d02cdcb97a350e2f07c3ce3d59d095118
[INFO] checking flowithin/MChat against master#8f21a5c92ea55c348c275a1bc4fedbdf181e0d64 for pr-143011
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fflowithin%2FMChat" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/flowithin/MChat
[INFO] finished tweaking git repo https://github.com/flowithin/MChat
[INFO] tweaked toml for git repo https://github.com/flowithin/MChat written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/flowithin/MChat on toolchain 8f21a5c92ea55c348c275a1bc4fedbdf181e0d64
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8f21a5c92ea55c348c275a1bc4fedbdf181e0d64" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/flowithin/MChat 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" "+8f21a5c92ea55c348c275a1bc4fedbdf181e0d64" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8f21a5c92ea55c348c275a1bc4fedbdf181e0d64" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c505c2d839d2ad2adf3af2608c320f89a59638e7e40913e213486e06675ac190
[INFO] running `Command { std: "docker" "start" "-a" "c505c2d839d2ad2adf3af2608c320f89a59638e7e40913e213486e06675ac190", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c505c2d839d2ad2adf3af2608c320f89a59638e7e40913e213486e06675ac190", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c505c2d839d2ad2adf3af2608c320f89a59638e7e40913e213486e06675ac190", kill_on_drop: false }`
[INFO] [stdout] c505c2d839d2ad2adf3af2608c320f89a59638e7e40913e213486e06675ac190
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8f21a5c92ea55c348c275a1bc4fedbdf181e0d64" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9dbe6d12e7ef7d2b7492b20d3f17e6dfa26919d451df2d669170bf383db447fe
[INFO] running `Command { std: "docker" "start" "-a" "9dbe6d12e7ef7d2b7492b20d3f17e6dfa26919d451df2d669170bf383db447fe", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.172
[INFO] [stderr]    Compiling proc-macro2 v1.0.95
[INFO] [stderr]    Compiling unicode-ident v1.0.18
[INFO] [stderr]    Compiling autocfg v1.4.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]     Checking cfg-if v1.0.0
[INFO] [stderr]     Checking log v0.4.27
[INFO] [stderr]     Checking smallvec v1.15.0
[INFO] [stderr]    Compiling rustix v1.0.7
[INFO] [stderr]     Checking bitflags v2.9.1
[INFO] [stderr]    Compiling litrs v0.4.1
[INFO] [stderr]     Checking linux-raw-sys v0.9.4
[INFO] [stderr]    Compiling convert_case v0.7.1
[INFO] [stderr]    Compiling document-features v0.2.11
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling syn v2.0.101
[INFO] [stderr]     Checking signal-hook-registry v1.4.5
[INFO] [stderr]     Checking mio v1.0.3
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking signal-hook-mio v0.2.4
[INFO] [stderr]    Compiling derive_more-impl v2.0.1
[INFO] [stderr]     Checking derive_more v2.0.1
[INFO] [stderr]     Checking crossterm v0.29.0
[INFO] [stderr]     Checking Server v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: type `worker` should have an upper camel case name
[INFO] [stdout]  --> src/lib.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct worker {
[INFO] [stdout]   |        ^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Worker`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `worker` should have an upper camel case name
[INFO] [stdout]  --> src/lib.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct worker {
[INFO] [stdout]   |        ^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Worker`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `workers` is never read
[INFO] [stdout]  --> src/lib.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct ThreadPool {
[INFO] [stdout]   |            ---------- field in this struct
[INFO] [stdout] 6 |     workers: Vec<worker>,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `thread` are never read
[INFO] [stdout]   --> src/lib.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 9  | struct worker {
[INFO] [stdout]    |        ------ fields in this struct
[INFO] [stdout] 10 |     id: usize,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 11 |     thread: thread::JoinHandle<()>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: crate `Server` should have a snake case name
[INFO] [stdout]   |
[INFO] [stdout]   = help: convert the identifier to snake case: `server`
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `workers` is never read
[INFO] [stdout]  --> src/lib.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct ThreadPool {
[INFO] [stdout]   |            ---------- field in this struct
[INFO] [stdout] 6 |     workers: Vec<worker>,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `thread` are never read
[INFO] [stdout]   --> src/lib.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 9  | struct worker {
[INFO] [stdout]    |        ------ fields in this struct
[INFO] [stdout] 10 |     id: usize,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 11 |     thread: thread::JoinHandle<()>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error` and `string`
[INFO] [stdout]  --> src/term.rs:2:24
[INFO] [stdout]   |
[INFO] [stdout] 2 |     io::{self, stdout, Error, Write},
[INFO] [stdout]   |                        ^^^^^
[INFO] [stdout] 3 |     string,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DisableBlinking`, `EnableBlinking`, `EnableBracketedPaste`, `EnableFocusChange`, `EnableMouseCapture`, `RestorePosition`, and `SavePosition`
[INFO] [stdout]   --> src/term.rs:10:14
[INFO] [stdout]    |
[INFO] [stdout] 10 |     cursor::{DisableBlinking, EnableBlinking, MoveTo, RestorePosition, SavePosition},
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^          ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |         EnableBracketedPaste, EnableFocusChange, EnableMouseCapture, Event, KeyCode, KeyEvent,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/term.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | /     loop {
[INFO] [stdout] 39 | |         let ws: terminal::WindowSize = window_size().unwrap();
[INFO] [stdout] 40 | |         // `read()` blocks until an `Event` is available
[INFO] [stdout] 41 | |         while poll(Duration::from_millis(0))? {
[INFO] [stdout] ...  |
[INFO] [stdout] 82 | |         sleep(Duration::from_millis(33));
[INFO] [stdout] 83 | |     }
[INFO] [stdout]    | |_____- any code following this expression is unreachable
[INFO] [stdout] 84 | /     execute!(
[INFO] [stdout] 85 | |         std::io::stdout(),
[INFO] [stdout] 86 | |         DisableBracketedPaste,
[INFO] [stdout] 87 | |         DisableFocusChange,
[INFO] [stdout] 88 | |         DisableMouseCapture
[INFO] [stdout] 89 | |     )?;
[INFO] [stdout]    | |_______^ unreachable statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `kind`
[INFO] [stdout]   --> src/term.rs:48:21
[INFO] [stdout]    |
[INFO] [stdout] 48 |                     kind,
[INFO] [stdout]    |                     ^^^^ help: try ignoring the field: `kind: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/term.rs:49:21
[INFO] [stdout]    |
[INFO] [stdout] 49 |                     state,
[INFO] [stdout]    |                     ^^^^^ help: try ignoring the field: `state: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Shutdown`
[INFO] [stdout]  --> src/server.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::net::{Shutdown, SocketAddr, TcpListener, TcpStream};
[INFO] [stdout]   |                ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `message` should have an upper camel case name
[INFO] [stdout]   --> src/server.rs:26:6
[INFO] [stdout]    |
[INFO] [stdout] 26 | enum message {
[INFO] [stdout]    |      ^^^^^^^ help: convert the identifier to upper camel case: `Message`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `unConnected` should have an upper camel case name
[INFO] [stdout]   --> src/server.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     unConnected {
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `UnConnected`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `New_message` should have an upper camel case name
[INFO] [stdout]   --> src/server.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     New_message {
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `NewMessage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     io::stdout().execute(Clear(crossterm::terminal::ClearType::All));
[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)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let _ = io::stdout().execute(Clear(crossterm::terminal::ClearType::All));
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     enable_raw_mode();
[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] 27 |     let _ = enable_raw_mode();
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     print_events();
[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] 28 |     let _ = print_events();
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     io::stdout().execute(Clear(crossterm::terminal::ClearType::All));
[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] 29 |     let _ = io::stdout().execute(Clear(crossterm::terminal::ClearType::All));
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     disable_raw_mode();
[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] 31 |     let _ = disable_raw_mode();
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 70 |         io::stdout().queue(Clear(crossterm::terminal::ClearType::All));
[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] 70 |         let _ = io::stdout().queue(Clear(crossterm::terminal::ClearType::All));
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |         stdout().queue(MoveTo(0, ws.rows - 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] 72 |         let _ = stdout().queue(MoveTo(0, ws.rows - 2));
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 |         stdout().queue(Print("═".repeat((ws.columns) as usize)));
[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] 73 |         let _ = stdout().queue(Print("═".repeat((ws.columns) as usize)));
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 |         stdout().queue(MoveTo(0, 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] 75 |         let _ = stdout().queue(MoveTo(0, 0));
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 76 |         stdout().queue(Print(chat.clone()));
[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] 76 |         let _ = stdout().queue(Print(chat.clone()));
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |         stdout().queue(MoveTo(0, ws.rows - 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] 78 |         let _ = stdout().queue(MoveTo(0, ws.rows - 1));
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |         stdout().queue(Print(prompt.clone()));
[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] 79 |         let _ = stdout().queue(Print(prompt.clone()));
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:81:9
[INFO] [stdout]    |
[INFO] [stdout] 81 |         stdout().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] 81 |         let _ = stdout().flush();
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Shutdown`
[INFO] [stdout]  --> src/server.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::net::{Shutdown, SocketAddr, TcpListener, TcpStream};
[INFO] [stdout]   |                ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `message` should have an upper camel case name
[INFO] [stdout]   --> src/server.rs:26:6
[INFO] [stdout]    |
[INFO] [stdout] 26 | enum message {
[INFO] [stdout]    |      ^^^^^^^ help: convert the identifier to upper camel case: `Message`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `unConnected` should have an upper camel case name
[INFO] [stdout]   --> src/server.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     unConnected {
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `UnConnected`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `New_message` should have an upper camel case name
[INFO] [stdout]   --> src/server.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     New_message {
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `NewMessage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error` and `string`
[INFO] [stdout]  --> src/term.rs:2:24
[INFO] [stdout]   |
[INFO] [stdout] 2 |     io::{self, stdout, Error, Write},
[INFO] [stdout]   |                        ^^^^^
[INFO] [stdout] 3 |     string,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DisableBlinking`, `EnableBlinking`, `EnableBracketedPaste`, `EnableFocusChange`, `EnableMouseCapture`, `RestorePosition`, and `SavePosition`
[INFO] [stdout]   --> src/term.rs:10:14
[INFO] [stdout]    |
[INFO] [stdout] 10 |     cursor::{DisableBlinking, EnableBlinking, MoveTo, RestorePosition, SavePosition},
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^          ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |         EnableBracketedPaste, EnableFocusChange, EnableMouseCapture, Event, KeyCode, KeyEvent,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/term.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | /     loop {
[INFO] [stdout] 39 | |         let ws: terminal::WindowSize = window_size().unwrap();
[INFO] [stdout] 40 | |         // `read()` blocks until an `Event` is available
[INFO] [stdout] 41 | |         while poll(Duration::from_millis(0))? {
[INFO] [stdout] ...  |
[INFO] [stdout] 82 | |         sleep(Duration::from_millis(33));
[INFO] [stdout] 83 | |     }
[INFO] [stdout]    | |_____- any code following this expression is unreachable
[INFO] [stdout] 84 | /     execute!(
[INFO] [stdout] 85 | |         std::io::stdout(),
[INFO] [stdout] 86 | |         DisableBracketedPaste,
[INFO] [stdout] 87 | |         DisableFocusChange,
[INFO] [stdout] 88 | |         DisableMouseCapture
[INFO] [stdout] 89 | |     )?;
[INFO] [stdout]    | |_______^ unreachable statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `kind`
[INFO] [stdout]   --> src/term.rs:48:21
[INFO] [stdout]    |
[INFO] [stdout] 48 |                     kind,
[INFO] [stdout]    |                     ^^^^ help: try ignoring the field: `kind: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/term.rs:49:21
[INFO] [stdout]    |
[INFO] [stdout] 49 |                     state,
[INFO] [stdout]    |                     ^^^^^ help: try ignoring the field: `state: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stream`
[INFO] [stdout]    --> src/server.rs:168:40
[INFO] [stdout]     |
[INFO] [stdout] 168 |             message::unConnected { ip, stream } => {
[INFO] [stdout]     |                                        ^^^^^^ help: try ignoring the field: `stream: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     io::stdout().execute(Clear(crossterm::terminal::ClearType::All));
[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)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 24 |     let _ = io::stdout().execute(Clear(crossterm::terminal::ClearType::All));
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     enable_raw_mode();
[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] 27 |     let _ = enable_raw_mode();
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     print_events();
[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] 28 |     let _ = print_events();
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     io::stdout().execute(Clear(crossterm::terminal::ClearType::All));
[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] 29 |     let _ = io::stdout().execute(Clear(crossterm::terminal::ClearType::All));
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     disable_raw_mode();
[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] 31 |     let _ = disable_raw_mode();
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server.rs:163:29
[INFO] [stdout]     |
[INFO] [stdout] 163 |                         let mut str_out = str.to_string();
[INFO] [stdout]     |                             ----^^^^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stream`
[INFO] [stdout]    --> src/server.rs:168:40
[INFO] [stdout]     |
[INFO] [stdout] 168 |             message::unConnected { ip, stream } => {
[INFO] [stdout]     |                                        ^^^^^^ help: try ignoring the field: `stream: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 70 |         io::stdout().queue(Clear(crossterm::terminal::ClearType::All));
[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] 70 |         let _ = io::stdout().queue(Clear(crossterm::terminal::ClearType::All));
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |         stdout().queue(MoveTo(0, ws.rows - 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] 72 |         let _ = stdout().queue(MoveTo(0, ws.rows - 2));
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 |         stdout().queue(Print("═".repeat((ws.columns) as usize)));
[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] 73 |         let _ = stdout().queue(Print("═".repeat((ws.columns) as usize)));
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 |         stdout().queue(MoveTo(0, 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] 75 |         let _ = stdout().queue(MoveTo(0, 0));
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 76 |         stdout().queue(Print(chat.clone()));
[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] 76 |         let _ = stdout().queue(Print(chat.clone()));
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |         stdout().queue(MoveTo(0, ws.rows - 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] 78 |         let _ = stdout().queue(MoveTo(0, ws.rows - 1));
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |         stdout().queue(Print(prompt.clone()));
[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] 79 |         let _ = stdout().queue(Print(prompt.clone()));
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:81:9
[INFO] [stdout]    |
[INFO] [stdout] 81 |         stdout().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] 81 |         let _ = stdout().flush();
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server.rs:163:29
[INFO] [stdout]     |
[INFO] [stdout] 163 |                         let mut str_out = str.to_string();
[INFO] [stdout]     |                             ----^^^^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Sensitive` is never constructed
[INFO] [stdout]   --> src/server.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct Sensitive<T> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ChildMode` is never used
[INFO] [stdout]   --> src/server.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const ChildMode: bool = true;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_connection` is never used
[INFO] [stdout]    --> src/server.rs:198:4
[INFO] [stdout]     |
[INFO] [stdout] 198 | fn handle_connection(mut stream: TcpStream) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ChildMode` should have an upper case name
[INFO] [stdout]   --> src/server.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const ChildMode: bool = true;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` on by default
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 15 - const ChildMode: bool = true;
[INFO] [stdout] 15 + const CHILD_MODE: bool = true;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Sensitive` is never constructed
[INFO] [stdout]   --> src/server.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct Sensitive<T> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ChildMode` is never used
[INFO] [stdout]   --> src/server.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const ChildMode: bool = true;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_connection` is never used
[INFO] [stdout]    --> src/server.rs:198:4
[INFO] [stdout]     |
[INFO] [stdout] 198 | fn handle_connection(mut stream: TcpStream) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ChildMode` should have an upper case name
[INFO] [stdout]   --> src/server.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const ChildMode: bool = true;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` on by default
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 15 - const ChildMode: bool = true;
[INFO] [stdout] 15 + const CHILD_MODE: bool = true;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/server.rs:66:13
[INFO] [stdout]    |
[INFO] [stdout] 66 | /             messages
[INFO] [stdout] 67 | |                 .send(message::New_message {
[INFO] [stdout] 68 | |                     ip,
[INFO] [stdout] 69 | |                     str: message_content.to_string(),
[INFO] [stdout] ...  |
[INFO] [stdout] 72 | |                     eprintln!("cannot send message ERROR : {err}");
[INFO] [stdout] 73 | |                 });
[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)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 66 |             let _ = messages
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/server.rs:75:13
[INFO] [stdout]    |
[INFO] [stdout] 75 | /             messages
[INFO] [stdout] 76 | |                 .send(message::unConnected {
[INFO] [stdout] 77 | |                     ip,
[INFO] [stdout] 78 | |                     stream: stream.clone(),
[INFO] [stdout] ...  |
[INFO] [stdout] 81 | |                     eprintln!("cannot send message ERROR : {err}");
[INFO] [stdout] 82 | |                 });
[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] 75 |             let _ = messages
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `Server` should have a snake case name
[INFO] [stdout]   --> src/server.rs:88:4
[INFO] [stdout]    |
[INFO] [stdout] 88 | fn Server(messages: Receiver<message>) -> () {
[INFO] [stdout]    |    ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `server`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `BAN_LIMIT` should have a snake case name
[INFO] [stdout]   --> src/server.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 91 |     let BAN_LIMIT: Duration = Duration::from_secs_f32(10.0 * 60.0);
[INFO] [stdout]    |         ^^^^^^^^^ help: convert the identifier to snake case: `ban_limit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `RATE_LIMIT` should have a snake case name
[INFO] [stdout]   --> src/server.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |     let RATE_LIMIT: Duration = Duration::from_secs_f32(1.0);
[INFO] [stdout]    |         ^^^^^^^^^^ help: convert the identifier to snake case: `rate_limit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `STRIKE_LIMIT` should have a snake case name
[INFO] [stdout]   --> src/server.rs:93:9
[INFO] [stdout]    |
[INFO] [stdout] 93 |     let STRIKE_LIMIT: u32 = 10;
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: convert the identifier to snake case: `strike_limit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/server.rs:147:25
[INFO] [stdout]     |
[INFO] [stdout] 147 |                         stream.as_ref().write(b"you are banned\n\r");
[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] 147 |                         let _ = stream.as_ref().write(b"you are banned\n\r");
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/server.rs:164:25
[INFO] [stdout]     |
[INFO] [stdout] 164 |                         stream.as_ref().write(str_out.as_bytes());
[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] 164 |                         let _ = stream.as_ref().write(str_out.as_bytes());
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/server.rs:66:13
[INFO] [stdout]    |
[INFO] [stdout] 66 | /             messages
[INFO] [stdout] 67 | |                 .send(message::New_message {
[INFO] [stdout] 68 | |                     ip,
[INFO] [stdout] 69 | |                     str: message_content.to_string(),
[INFO] [stdout] ...  |
[INFO] [stdout] 72 | |                     eprintln!("cannot send message ERROR : {err}");
[INFO] [stdout] 73 | |                 });
[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)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 66 |             let _ = messages
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/server.rs:75:13
[INFO] [stdout]    |
[INFO] [stdout] 75 | /             messages
[INFO] [stdout] 76 | |                 .send(message::unConnected {
[INFO] [stdout] 77 | |                     ip,
[INFO] [stdout] 78 | |                     stream: stream.clone(),
[INFO] [stdout] ...  |
[INFO] [stdout] 81 | |                     eprintln!("cannot send message ERROR : {err}");
[INFO] [stdout] 82 | |                 });
[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] 75 |             let _ = messages
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `Server` should have a snake case name
[INFO] [stdout]   --> src/server.rs:88:4
[INFO] [stdout]    |
[INFO] [stdout] 88 | fn Server(messages: Receiver<message>) -> () {
[INFO] [stdout]    |    ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `server`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `BAN_LIMIT` should have a snake case name
[INFO] [stdout]   --> src/server.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 91 |     let BAN_LIMIT: Duration = Duration::from_secs_f32(10.0 * 60.0);
[INFO] [stdout]    |         ^^^^^^^^^ help: convert the identifier to snake case: `ban_limit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `RATE_LIMIT` should have a snake case name
[INFO] [stdout]   --> src/server.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |     let RATE_LIMIT: Duration = Duration::from_secs_f32(1.0);
[INFO] [stdout]    |         ^^^^^^^^^^ help: convert the identifier to snake case: `rate_limit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `STRIKE_LIMIT` should have a snake case name
[INFO] [stdout]   --> src/server.rs:93:9
[INFO] [stdout]    |
[INFO] [stdout] 93 |     let STRIKE_LIMIT: u32 = 10;
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: convert the identifier to snake case: `strike_limit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/server.rs:147:25
[INFO] [stdout]     |
[INFO] [stdout] 147 |                         stream.as_ref().write(b"you are banned\n\r");
[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] 147 |                         let _ = stream.as_ref().write(b"you are banned\n\r");
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/server.rs:164:25
[INFO] [stdout]     |
[INFO] [stdout] 164 |                         stream.as_ref().write(str_out.as_bytes());
[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] 164 |                         let _ = stream.as_ref().write(str_out.as_bytes());
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.57s
[INFO] running `Command { std: "docker" "inspect" "9dbe6d12e7ef7d2b7492b20d3f17e6dfa26919d451df2d669170bf383db447fe", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9dbe6d12e7ef7d2b7492b20d3f17e6dfa26919d451df2d669170bf383db447fe", kill_on_drop: false }`
[INFO] [stdout] 9dbe6d12e7ef7d2b7492b20d3f17e6dfa26919d451df2d669170bf383db447fe
