[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] 21bb012645c642c43152122d8581be399e1e82e2 [INFO] checking flowithin/MChat against master#779e19d8baa3e3625bd4fc5c85cbb2ad47b43155 for pr-147589-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fflowithin%2FMChat" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-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-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/flowithin/MChat on toolchain 779e19d8baa3e3625bd4fc5c85cbb2ad47b43155 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "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" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded crossterm v0.26.1 [INFO] [stderr] Downloaded ratatui v0.21.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 01de659cb2920c980ac64f43d1d045c9ad444679584725ce09052e4853c90aa1 [INFO] running `Command { std: "docker" "start" "-a" "01de659cb2920c980ac64f43d1d045c9ad444679584725ce09052e4853c90aa1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "01de659cb2920c980ac64f43d1d045c9ad444679584725ce09052e4853c90aa1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "01de659cb2920c980ac64f43d1d045c9ad444679584725ce09052e4853c90aa1", kill_on_drop: false }` [INFO] [stdout] 01de659cb2920c980ac64f43d1d045c9ad444679584725ce09052e4853c90aa1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 409c60a268222a778ea3b1b9a995a2cedb15cc57525a950d2a6836f163e217c0 [INFO] running `Command { std: "docker" "start" "-a" "409c60a268222a778ea3b1b9a995a2cedb15cc57525a950d2a6836f163e217c0", kill_on_drop: false }` [INFO] [stderr] Checking smallvec v1.15.0 [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] Compiling openssl-sys v0.9.109 [INFO] [stderr] Checking socket2 v0.5.10 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Checking mio v0.8.11 [INFO] [stderr] Checking signal-hook v0.3.18 [INFO] [stderr] Checking parking_lot_core v0.9.10 [INFO] [stderr] Compiling convert_case v0.7.1 [INFO] [stderr] Checking getrandom v0.3.3 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking futures-channel v0.3.31 [INFO] [stderr] Checking signal-hook-mio v0.2.4 [INFO] [stderr] Compiling rustix v1.0.7 [INFO] [stderr] Checking rand_core v0.9.3 [INFO] [stderr] Checking crossterm v0.26.1 [INFO] [stderr] Checking encoding_rs v0.8.35 [INFO] [stderr] Compiling openssl v0.10.73 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Checking cassowary v0.3.0 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking unicode-segmentation v1.12.0 [INFO] [stderr] Checking rand v0.9.2 [INFO] [stderr] Checking ratatui v0.21.0 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.0 [INFO] [stderr] Compiling zerovec-derive v0.11.1 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling derive_more-impl v2.0.1 [INFO] [stderr] Checking tokio v1.45.1 [INFO] [stderr] Checking derive_more v2.0.1 [INFO] [stderr] Checking crossterm v0.29.0 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking yoke v0.8.0 [INFO] [stderr] Checking zerovec v0.11.2 [INFO] [stderr] Checking zerotrie v0.2.2 [INFO] [stderr] Checking tinystr v0.8.1 [INFO] [stderr] Checking potential_utf v0.1.2 [INFO] [stderr] Checking icu_collections v2.0.0 [INFO] [stderr] Checking icu_locale_core v2.0.0 [INFO] [stderr] Checking icu_provider v2.0.0 [INFO] [stderr] Checking icu_normalizer v2.0.0 [INFO] [stderr] Checking icu_properties v2.0.1 [INFO] [stderr] Checking serde v1.0.219 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking idna v1.0.3 [INFO] [stderr] Checking url v2.5.4 [INFO] [stderr] Checking tokio-util v0.7.15 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking serde_json v1.0.140 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking h2 v0.3.26 [INFO] [stderr] Checking hyper v0.14.32 [INFO] [stderr] Checking hyper-tls v0.5.0 [INFO] [stderr] Checking reqwest v0.11.27 [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)]` (part of `#[warn(nonstandard_style)]`) 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, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) 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: 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)]` (part of `#[warn(nonstandard_style)]`) 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, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) 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)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Receiver` and `channel` [INFO] [stdout] --> src/llm.rs:4:23 [INFO] [stdout] | [INFO] [stdout] 4 | use std::sync::mpsc::{channel, Receiver, Sender}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `message` should have an upper camel case name [INFO] [stdout] --> src/server.rs:33:6 [INFO] [stdout] | [INFO] [stdout] 33 | enum message { [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper camel case: `Message` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `unConnected` should have an upper camel case name [INFO] [stdout] --> src/server.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | 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:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | New_message { [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to upper camel case: `NewMessage` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng` [INFO] [stdout] --> src/server.rs:275:62 [INFO] [stdout] | [INFO] [stdout] 275 | let token = distr::Alphanumeric.sample_string(&mut rand::thread_rng(), 16); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Error` and `string` [INFO] [stdout] --> src/term.rs:3:24 [INFO] [stdout] | [INFO] [stdout] 3 | io::{self, stdout, Error, Read, Write}, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 4 | string, [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 imports: `DisableBlinking`, `EnableBlinking`, `EnableBracketedPaste`, `EnableFocusChange`, `EnableMouseCapture`, `RestorePosition`, and `SavePosition` [INFO] [stdout] --> src/term.rs:11:14 [INFO] [stdout] | [INFO] [stdout] 11 | cursor::{DisableBlinking, EnableBlinking, MoveTo, RestorePosition, SavePosition}, [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 14 | EnableBracketedPaste, EnableFocusChange, EnableMouseCapture, Event, KeyCode, KeyEvent, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::os::fd::AsRawFd` [INFO] [stdout] --> src/rata.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::os::fd::AsRawFd; [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 imports: `Stdout`, `stdout`, and `thread` [INFO] [stdout] --> src/rata.rs:8:16 [INFO] [stdout] | [INFO] [stdout] 8 | io::{self, stdout, Read, Stdout, Write}, [INFO] [stdout] | ^^^^^^ ^^^^^^ [INFO] [stdout] 9 | path::Path, [INFO] [stdout] 10 | thread, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DisableBracketedPaste`, `DisableFocusChange`, `EnableBracketedPaste`, `EnableFocusChange`, `MouseEvent`, `WindowSize`, and `poll` [INFO] [stdout] --> src/rata.rs:19:15 [INFO] [stdout] | [INFO] [stdout] 19 | self, poll, read, DisableBracketedPaste, DisableFocusChange, DisableMouseCapture, [INFO] [stdout] | ^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 20 | EnableBracketedPaste, EnableFocusChange, EnableMouseCapture, Event, KeyCode, KeyEvent, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 21 | KeyModifiers, MouseEvent, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 26 | WindowSize, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Rect` and `Spans` [INFO] [stdout] --> src/rata.rs:31:56 [INFO] [stdout] | [INFO] [stdout] 31 | layout::{Alignment, Constraint, Direction, Layout, Rect}, [INFO] [stdout] | ^^^^ [INFO] [stdout] 32 | style::{Color, Modifier, Style}, [INFO] [stdout] 33 | text::{Span, Spans}, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Error` and `string` [INFO] [stdout] --> src/term.rs:3:24 [INFO] [stdout] | [INFO] [stdout] 3 | io::{self, stdout, Error, Read, Write}, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 4 | string, [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 imports: `DisableBlinking`, `EnableBlinking`, `EnableBracketedPaste`, `EnableFocusChange`, `EnableMouseCapture`, `RestorePosition`, and `SavePosition` [INFO] [stdout] --> src/term.rs:11:14 [INFO] [stdout] | [INFO] [stdout] 11 | cursor::{DisableBlinking, EnableBlinking, MoveTo, RestorePosition, SavePosition}, [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 14 | EnableBracketedPaste, EnableFocusChange, EnableMouseCapture, Event, KeyCode, KeyEvent, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `ratatui::text::Spans`: Use `ratatui::text::Line` instead [INFO] [stdout] --> src/rata.rs:33:18 [INFO] [stdout] | [INFO] [stdout] 33 | text::{Span, Spans}, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::os::fd::AsRawFd` [INFO] [stdout] --> src/rata.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::os::fd::AsRawFd; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated tuple struct `ratatui::text::Spans`: Use `ratatui::text::Line` instead [INFO] [stdout] --> src/rata.rs:33:18 [INFO] [stdout] | [INFO] [stdout] 33 | text::{Span, Spans}, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/term.rs:132:5 [INFO] [stdout] | [INFO] [stdout] 76 | / loop { [INFO] [stdout] 77 | | let ws: terminal::WindowSize = window_size().unwrap(); [INFO] [stdout] 78 | | // `read()` blocks until an `Event` is available [INFO] [stdout] 79 | | while poll(Duration::from_millis(0))? { [INFO] [stdout] ... | [INFO] [stdout] 130 | | sleep(Duration::from_millis(33)); [INFO] [stdout] 131 | | } [INFO] [stdout] | |_____- any code following this expression is unreachable [INFO] [stdout] 132 | / execute!( [INFO] [stdout] 133 | | std::io::stdout(), [INFO] [stdout] 134 | | DisableBracketedPaste, [INFO] [stdout] 135 | | DisableFocusChange, [INFO] [stdout] 136 | | DisableMouseCapture [INFO] [stdout] 137 | | )?; [INFO] [stdout] | |_______^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Stdout`, `stdout`, and `thread` [INFO] [stdout] --> src/rata.rs:8:16 [INFO] [stdout] | [INFO] [stdout] 8 | io::{self, stdout, Read, Stdout, Write}, [INFO] [stdout] | ^^^^^^ ^^^^^^ [INFO] [stdout] 9 | path::Path, [INFO] [stdout] 10 | thread, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DisableBracketedPaste`, `DisableFocusChange`, `EnableBracketedPaste`, `EnableFocusChange`, `MouseEvent`, `WindowSize`, and `poll` [INFO] [stdout] --> src/rata.rs:19:15 [INFO] [stdout] | [INFO] [stdout] 19 | self, poll, read, DisableBracketedPaste, DisableFocusChange, DisableMouseCapture, [INFO] [stdout] | ^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 20 | EnableBracketedPaste, EnableFocusChange, EnableMouseCapture, Event, KeyCode, KeyEvent, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 21 | KeyModifiers, MouseEvent, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 26 | WindowSize, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Rect` and `Spans` [INFO] [stdout] --> src/rata.rs:31:56 [INFO] [stdout] | [INFO] [stdout] 31 | layout::{Alignment, Constraint, Direction, Layout, Rect}, [INFO] [stdout] | ^^^^ [INFO] [stdout] 32 | style::{Color, Modifier, Style}, [INFO] [stdout] 33 | text::{Span, Spans}, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable statement [INFO] [stdout] --> src/term.rs:132:5 [INFO] [stdout] | [INFO] [stdout] 76 | / loop { [INFO] [stdout] 77 | | let ws: terminal::WindowSize = window_size().unwrap(); [INFO] [stdout] 78 | | // `read()` blocks until an `Event` is available [INFO] [stdout] 79 | | while poll(Duration::from_millis(0))? { [INFO] [stdout] ... | [INFO] [stdout] 130 | | sleep(Duration::from_millis(33)); [INFO] [stdout] 131 | | } [INFO] [stdout] | |_____- any code following this expression is unreachable [INFO] [stdout] 132 | / execute!( [INFO] [stdout] 133 | | std::io::stdout(), [INFO] [stdout] 134 | | DisableBracketedPaste, [INFO] [stdout] 135 | | DisableFocusChange, [INFO] [stdout] 136 | | DisableMouseCapture [INFO] [stdout] 137 | | )?; [INFO] [stdout] | |_______^ unreachable statement [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `ratatui::text::Spans`: Use `ratatui::text::Line` instead [INFO] [stdout] --> src/rata.rs:33:18 [INFO] [stdout] | [INFO] [stdout] 33 | text::{Span, Spans}, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated tuple struct `ratatui::text::Spans`: Use `ratatui::text::Line` instead [INFO] [stdout] --> src/rata.rs:33:18 [INFO] [stdout] | [INFO] [stdout] 33 | text::{Span, Spans}, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `kind` [INFO] [stdout] --> src/term.rs:86:21 [INFO] [stdout] | [INFO] [stdout] 86 | kind, [INFO] [stdout] | ^^^^ help: try ignoring the field: `kind: _` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/term.rs:87:21 [INFO] [stdout] | [INFO] [stdout] 87 | state, [INFO] [stdout] | ^^^^^ help: try ignoring the field: `state: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `val` [INFO] [stdout] --> src/term.rs:132:5 [INFO] [stdout] | [INFO] [stdout] 132 | / execute!( [INFO] [stdout] 133 | | std::io::stdout(), [INFO] [stdout] 134 | | DisableBracketedPaste, [INFO] [stdout] 135 | | DisableFocusChange, [INFO] [stdout] 136 | | DisableMouseCapture [INFO] [stdout] 137 | | )?; [INFO] [stdout] | |______^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `w` is never read [INFO] [stdout] --> src/term.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 22 | struct Rect { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] ... [INFO] [stdout] 25 | w: u16, [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/term.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | 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)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 42 | 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:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | / io::stdout().write({ [INFO] [stdout] 47 | | File::open("mchat.logo")?.read(&mut buf)?; [INFO] [stdout] 48 | | &buf [INFO] [stdout] 49 | | }); [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] 46 | let _ = io::stdout().write({ [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/term.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | 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] 53 | let _ = enable_raw_mode(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/term.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 66 | 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] 66 | let _ = print_events(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/term.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 67 | 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] 67 | 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:69:5 [INFO] [stdout] | [INFO] [stdout] 69 | 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] 69 | let _ = disable_raw_mode(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `kind` [INFO] [stdout] --> src/term.rs:86:21 [INFO] [stdout] | [INFO] [stdout] 86 | kind, [INFO] [stdout] | ^^^^ help: try ignoring the field: `kind: _` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/term.rs:87:21 [INFO] [stdout] | [INFO] [stdout] 87 | state, [INFO] [stdout] | ^^^^^ help: try ignoring the field: `state: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `val` [INFO] [stdout] --> src/term.rs:132:5 [INFO] [stdout] | [INFO] [stdout] 132 | / execute!( [INFO] [stdout] 133 | | std::io::stdout(), [INFO] [stdout] 134 | | DisableBracketedPaste, [INFO] [stdout] 135 | | DisableFocusChange, [INFO] [stdout] 136 | | DisableMouseCapture [INFO] [stdout] 137 | | )?; [INFO] [stdout] | |______^ help: if this is intentional, prefix it with an underscore: `_val` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `w` is never read [INFO] [stdout] --> src/term.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 22 | struct Rect { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] ... [INFO] [stdout] 25 | w: u16, [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/term.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | 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)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 42 | 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:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | / io::stdout().write({ [INFO] [stdout] 47 | | File::open("mchat.logo")?.read(&mut buf)?; [INFO] [stdout] 48 | | &buf [INFO] [stdout] 49 | | }); [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] 46 | let _ = io::stdout().write({ [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/term.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | 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] 53 | let _ = enable_raw_mode(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/term.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 66 | 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] 66 | let _ = print_events(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/term.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 67 | 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] 67 | 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:69:5 [INFO] [stdout] | [INFO] [stdout] 69 | 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] 69 | let _ = disable_raw_mode(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/term.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | 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] 112 | 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:114:9 [INFO] [stdout] | [INFO] [stdout] 114 | 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] 114 | 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:115:9 [INFO] [stdout] | [INFO] [stdout] 115 | 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] 115 | 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:117:9 [INFO] [stdout] | [INFO] [stdout] 117 | 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] 117 | 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:126:9 [INFO] [stdout] | [INFO] [stdout] 126 | 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] 126 | let _ = stdout().queue(MoveTo(0, ws.rows - 1)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Receiver` and `channel` [INFO] [stdout] --> src/llm.rs:4:23 [INFO] [stdout] | [INFO] [stdout] 4 | use std::sync::mpsc::{channel, Receiver, Sender}; [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 `Result` that must be used [INFO] [stdout] --> src/term.rs:127:9 [INFO] [stdout] | [INFO] [stdout] 127 | 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] 127 | let _ = stdout().queue(Print(prompt.clone())); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `message` should have an upper camel case name [INFO] [stdout] --> src/server.rs:33:6 [INFO] [stdout] | [INFO] [stdout] 33 | enum message { [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper camel case: `Message` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `unConnected` should have an upper camel case name [INFO] [stdout] --> src/server.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | unConnected { [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `UnConnected` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/term.rs:129:9 [INFO] [stdout] | [INFO] [stdout] 129 | 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] 129 | let _ = stdout().flush(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `New_message` should have an upper camel case name [INFO] [stdout] --> src/server.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | New_message { [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to upper camel case: `NewMessage` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `prelude` [INFO] [stdout] --> src/server.rs:3:25 [INFO] [stdout] | [INFO] [stdout] 3 | use rand::{self, distr, prelude::*}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/term.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | 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] 112 | 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:114:9 [INFO] [stdout] | [INFO] [stdout] 114 | 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] 114 | 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:115:9 [INFO] [stdout] | [INFO] [stdout] 115 | 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] 115 | 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:117:9 [INFO] [stdout] | [INFO] [stdout] 117 | 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] 117 | 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:126:9 [INFO] [stdout] | [INFO] [stdout] 126 | 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] 126 | 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:127:9 [INFO] [stdout] | [INFO] [stdout] 127 | 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] 127 | 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:129:9 [INFO] [stdout] | [INFO] [stdout] 129 | 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] 129 | let _ = stdout().flush(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ws` [INFO] [stdout] --> src/rata.rs:168:13 [INFO] [stdout] | [INFO] [stdout] 168 | let ws: terminal::WindowSize = window_size().unwrap(); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ws` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng` [INFO] [stdout] --> src/server.rs:275:62 [INFO] [stdout] | [INFO] [stdout] 275 | let token = distr::Alphanumeric.sample_string(&mut rand::thread_rng(), 16); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/rata.rs:182:17 [INFO] [stdout] | [INFO] [stdout] 182 | Err(e) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/rata.rs:199:25 [INFO] [stdout] | [INFO] [stdout] 199 | stream.write(prompt.as_bytes()); [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] 199 | let _ = stream.write(prompt.as_bytes()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/rata.rs:229:5 [INFO] [stdout] | [INFO] [stdout] 229 | / fs::write( [INFO] [stdout] 230 | | "mchat.log", [INFO] [stdout] 231 | | app.chat.iter().fold(fin, |mut fin, str| { [INFO] [stdout] 232 | | fin.push_str(&("user:".to_owned() + str + "\n")); [INFO] [stdout] 233 | | fin [INFO] [stdout] 234 | | }), [INFO] [stdout] 235 | | ); [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] 229 | let _ = fs::write( [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ws` [INFO] [stdout] --> src/rata.rs:168:13 [INFO] [stdout] | [INFO] [stdout] 168 | let ws: terminal::WindowSize = window_size().unwrap(); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ws` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/rata.rs:182:17 [INFO] [stdout] | [INFO] [stdout] 182 | Err(e) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/rata.rs:199:25 [INFO] [stdout] | [INFO] [stdout] 199 | stream.write(prompt.as_bytes()); [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] 199 | let _ = stream.write(prompt.as_bytes()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/rata.rs:229:5 [INFO] [stdout] | [INFO] [stdout] 229 | / fs::write( [INFO] [stdout] 230 | | "mchat.log", [INFO] [stdout] 231 | | app.chat.iter().fold(fin, |mut fin, str| { [INFO] [stdout] 232 | | fin.push_str(&("user:".to_owned() + str + "\n")); [INFO] [stdout] 233 | | fin [INFO] [stdout] 234 | | }), [INFO] [stdout] 235 | | ); [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] 229 | let _ = fs::write( [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `prelude` [INFO] [stdout] --> src/server.rs:3:25 [INFO] [stdout] | [INFO] [stdout] 3 | use rand::{self, distr, prelude::*}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `response_json` [INFO] [stdout] --> src/llm.rs:114:13 [INFO] [stdout] | [INFO] [stdout] 114 | let response_json = serde_json::to_string_pretty(&completion_response)?; // <-- This line should now work [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response_json` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (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.rs:93:21 [INFO] [stdout] | [INFO] [stdout] 93 | let mut tmp = [0; 64]; [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.rs:102:13 [INFO] [stdout] | [INFO] [stdout] 102 | let mut buf_c = [0; 1]; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tmp` [INFO] [stdout] --> src/server.rs:93:21 [INFO] [stdout] | [INFO] [stdout] 93 | let mut tmp = [0; 64]; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tmp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buf_c` [INFO] [stdout] --> src/server.rs:102:13 [INFO] [stdout] | [INFO] [stdout] 102 | let mut buf_c = [0; 1]; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_buf_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `llm` [INFO] [stdout] --> src/server.rs:152:9 [INFO] [stdout] | [INFO] [stdout] 152 | let llm = Llm::new( [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_llm` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `stream` [INFO] [stdout] --> src/server.rs:259:40 [INFO] [stdout] | [INFO] [stdout] 259 | message::unConnected { ip, stream } => { [INFO] [stdout] | ^^^^^^ help: try ignoring the field: `stream: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/server.rs:274:9 [INFO] [stdout] | [INFO] [stdout] 274 | let mut rng = rand::rng(); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rng` [INFO] [stdout] --> src/server.rs:274:9 [INFO] [stdout] | [INFO] [stdout] 274 | let mut rng = rand::rng(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rng` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Sensitive` is never constructed [INFO] [stdout] --> src/server.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 17 | struct Sensitive { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ChildMode` is never used [INFO] [stdout] --> src/server.rs:21:7 [INFO] [stdout] | [INFO] [stdout] 21 | const ChildMode: bool = true; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/server.rs:60:18 [INFO] [stdout] | [INFO] [stdout] 60 | struct AuthError(String); [INFO] [stdout] | --------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = help: consider removing this field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_to` is never used [INFO] [stdout] --> src/server.rs:61:4 [INFO] [stdout] | [INFO] [stdout] 61 | fn read_to(stream: Arc, c: u8, buf: &mut [u8]) -> Result<(), usize> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `handle_connection` is never used [INFO] [stdout] --> src/server.rs:292:4 [INFO] [stdout] | [INFO] [stdout] 292 | fn handle_connection(mut stream: TcpStream) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `model`, `api`, and `url` are never read [INFO] [stdout] --> src/llm.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct Llm { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] 8 | model: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 9 | api: String, [INFO] [stdout] | ^^^ [INFO] [stdout] 10 | url: String, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ChildMode` should have an upper case name [INFO] [stdout] --> src/server.rs:21:7 [INFO] [stdout] | [INFO] [stdout] 21 | const ChildMode: bool = true; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] help: convert the identifier to upper case [INFO] [stdout] | [INFO] [stdout] 21 - const ChildMode: bool = true; [INFO] [stdout] 21 + const CHILD_MODE: bool = true; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `tryc` should have an upper case name [INFO] [stdout] --> src/server.rs:22:7 [INFO] [stdout] | [INFO] [stdout] 22 | const tryc: i32 = 3; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: convert the identifier to upper case [INFO] [stdout] | [INFO] [stdout] 22 - const tryc: i32 = 3; [INFO] [stdout] 22 + const TRYC: i32 = 3; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/server.rs:83:9 [INFO] [stdout] | [INFO] [stdout] 83 | stream.as_ref().read(&mut rtoken); [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] 83 | let _ = stream.as_ref().read(&mut rtoken); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `response_json` [INFO] [stdout] --> src/llm.rs:114:13 [INFO] [stdout] | [INFO] [stdout] 114 | let response_json = serde_json::to_string_pretty(&completion_response)?; // <-- This line should now work [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response_json` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/server.rs:91:17 [INFO] [stdout] | [INFO] [stdout] 91 | stream.as_ref().write("incorrect\n".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] 91 | let _ = stream.as_ref().write("incorrect\n".as_bytes()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/server.rs:99:13 [INFO] [stdout] | [INFO] [stdout] 99 | stream.shutdown(Shutdown::Both); [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] 99 | let _ = stream.shutdown(Shutdown::Both); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/server.rs:124:13 [INFO] [stdout] | [INFO] [stdout] 124 | / messages [INFO] [stdout] 125 | | .send(message::New_message { [INFO] [stdout] 126 | | ip, [INFO] [stdout] 127 | | str: String::from_utf8(buffer[0..n].to_vec()).unwrap(), [INFO] [stdout] ... | [INFO] [stdout] 130 | | eprintln!("cannot send message ERROR : {err}"); [INFO] [stdout] 131 | | }); [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] 124 | let _ = messages [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/server.rs:133:13 [INFO] [stdout] | [INFO] [stdout] 133 | / messages [INFO] [stdout] 134 | | .send(message::unConnected { [INFO] [stdout] 135 | | ip, [INFO] [stdout] 136 | | stream: stream.clone(), [INFO] [stdout] ... | [INFO] [stdout] 139 | | eprintln!("cannot send message ERROR : {err}"); [INFO] [stdout] 140 | | }); [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] 133 | let _ = messages [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `Server` should have a snake case name [INFO] [stdout] --> src/server.rs:146:4 [INFO] [stdout] | [INFO] [stdout] 146 | fn Server(messages: Receiver) -> () { [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `server` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `BAN_LIMIT` should have a snake case name [INFO] [stdout] --> src/server.rs:149:9 [INFO] [stdout] | [INFO] [stdout] 149 | 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:150:9 [INFO] [stdout] | [INFO] [stdout] 150 | 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:151:9 [INFO] [stdout] | [INFO] [stdout] 151 | 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:213:25 [INFO] [stdout] | [INFO] [stdout] 213 | 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] 213 | 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:231:29 [INFO] [stdout] | [INFO] [stdout] 231 | ... stream.as_ref().write(str.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] 231 | let _ = stream.as_ref().write(str.as_bytes()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/server.rs:93:21 [INFO] [stdout] | [INFO] [stdout] 93 | let mut tmp = [0; 64]; [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.rs:102:13 [INFO] [stdout] | [INFO] [stdout] 102 | let mut buf_c = [0; 1]; [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tmp` [INFO] [stdout] --> src/server.rs:93:21 [INFO] [stdout] | [INFO] [stdout] 93 | let mut tmp = [0; 64]; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tmp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buf_c` [INFO] [stdout] --> src/server.rs:102:13 [INFO] [stdout] | [INFO] [stdout] 102 | let mut buf_c = [0; 1]; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_buf_c` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `llm` [INFO] [stdout] --> src/server.rs:152:9 [INFO] [stdout] | [INFO] [stdout] 152 | let llm = Llm::new( [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_llm` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `stream` [INFO] [stdout] --> src/server.rs:259:40 [INFO] [stdout] | [INFO] [stdout] 259 | message::unConnected { ip, stream } => { [INFO] [stdout] | ^^^^^^ help: try ignoring the field: `stream: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/server.rs:274:9 [INFO] [stdout] | [INFO] [stdout] 274 | let mut rng = rand::rng(); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rng` [INFO] [stdout] --> src/server.rs:274:9 [INFO] [stdout] | [INFO] [stdout] 274 | let mut rng = rand::rng(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rng` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Sensitive` is never constructed [INFO] [stdout] --> src/server.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 17 | struct Sensitive { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ChildMode` is never used [INFO] [stdout] --> src/server.rs:21:7 [INFO] [stdout] | [INFO] [stdout] 21 | const ChildMode: bool = true; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/server.rs:60:18 [INFO] [stdout] | [INFO] [stdout] 60 | struct AuthError(String); [INFO] [stdout] | --------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = help: consider removing this field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_to` is never used [INFO] [stdout] --> src/server.rs:61:4 [INFO] [stdout] | [INFO] [stdout] 61 | fn read_to(stream: Arc, c: u8, buf: &mut [u8]) -> Result<(), usize> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `handle_connection` is never used [INFO] [stdout] --> src/server.rs:292:4 [INFO] [stdout] | [INFO] [stdout] 292 | fn handle_connection(mut stream: TcpStream) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `model`, `api`, and `url` are never read [INFO] [stdout] --> src/llm.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct Llm { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] 8 | model: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 9 | api: String, [INFO] [stdout] | ^^^ [INFO] [stdout] 10 | url: String, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ChildMode` should have an upper case name [INFO] [stdout] --> src/server.rs:21:7 [INFO] [stdout] | [INFO] [stdout] 21 | const ChildMode: bool = true; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] help: convert the identifier to upper case [INFO] [stdout] | [INFO] [stdout] 21 - const ChildMode: bool = true; [INFO] [stdout] 21 + const CHILD_MODE: bool = true; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `tryc` should have an upper case name [INFO] [stdout] --> src/server.rs:22:7 [INFO] [stdout] | [INFO] [stdout] 22 | const tryc: i32 = 3; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] help: convert the identifier to upper case [INFO] [stdout] | [INFO] [stdout] 22 - const tryc: i32 = 3; [INFO] [stdout] 22 + const TRYC: i32 = 3; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/server.rs:83:9 [INFO] [stdout] | [INFO] [stdout] 83 | stream.as_ref().read(&mut rtoken); [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] 83 | let _ = stream.as_ref().read(&mut rtoken); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/server.rs:91:17 [INFO] [stdout] | [INFO] [stdout] 91 | stream.as_ref().write("incorrect\n".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] 91 | let _ = stream.as_ref().write("incorrect\n".as_bytes()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/server.rs:99:13 [INFO] [stdout] | [INFO] [stdout] 99 | stream.shutdown(Shutdown::Both); [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] 99 | let _ = stream.shutdown(Shutdown::Both); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/server.rs:124:13 [INFO] [stdout] | [INFO] [stdout] 124 | / messages [INFO] [stdout] 125 | | .send(message::New_message { [INFO] [stdout] 126 | | ip, [INFO] [stdout] 127 | | str: String::from_utf8(buffer[0..n].to_vec()).unwrap(), [INFO] [stdout] ... | [INFO] [stdout] 130 | | eprintln!("cannot send message ERROR : {err}"); [INFO] [stdout] 131 | | }); [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] 124 | let _ = messages [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/server.rs:133:13 [INFO] [stdout] | [INFO] [stdout] 133 | / messages [INFO] [stdout] 134 | | .send(message::unConnected { [INFO] [stdout] 135 | | ip, [INFO] [stdout] 136 | | stream: stream.clone(), [INFO] [stdout] ... | [INFO] [stdout] 139 | | eprintln!("cannot send message ERROR : {err}"); [INFO] [stdout] 140 | | }); [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] 133 | let _ = messages [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `Server` should have a snake case name [INFO] [stdout] --> src/server.rs:146:4 [INFO] [stdout] | [INFO] [stdout] 146 | fn Server(messages: Receiver) -> () { [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `server` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `BAN_LIMIT` should have a snake case name [INFO] [stdout] --> src/server.rs:149:9 [INFO] [stdout] | [INFO] [stdout] 149 | 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:150:9 [INFO] [stdout] | [INFO] [stdout] 150 | 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:151:9 [INFO] [stdout] | [INFO] [stdout] 151 | 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:213:25 [INFO] [stdout] | [INFO] [stdout] 213 | 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] 213 | 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:231:29 [INFO] [stdout] | [INFO] [stdout] 231 | ... stream.as_ref().write(str.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] 231 | let _ = stream.as_ref().write(str.as_bytes()); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 49.36s [INFO] running `Command { std: "docker" "inspect" "409c60a268222a778ea3b1b9a995a2cedb15cc57525a950d2a6836f163e217c0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "409c60a268222a778ea3b1b9a995a2cedb15cc57525a950d2a6836f163e217c0", kill_on_drop: false }` [INFO] [stdout] 409c60a268222a778ea3b1b9a995a2cedb15cc57525a950d2a6836f163e217c0