[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] testing flowithin/MChat against 1.100.0-beta.1 for beta-1.100-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fflowithin%2FMChat" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/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-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/flowithin/MChat on toolchain 1.100.0-beta.1 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "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" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] ea5a57dce49508d149fac312e20abe1519faa54839e1162578d2e7d149597a07 [INFO] running `Command { std: "docker" "start" "ea5a57dce49508d149fac312e20abe1519faa54839e1162578d2e7d149597a07", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ea5a57dce49508d149fac312e20abe1519faa54839e1162578d2e7d149597a07", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "ea5a57dce49508d149fac312e20abe1519faa54839e1162578d2e7d149597a07" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ea5a57dce49508d149fac312e20abe1519faa54839e1162578d2e7d149597a07", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "ea5a57dce49508d149fac312e20abe1519faa54839e1162578d2e7d149597a07" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.172 [INFO] [stderr] Compiling smallvec v1.15.0 [INFO] [stderr] Compiling autocfg v1.4.0 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Compiling syn v2.0.101 [INFO] [stderr] Compiling hashbrown v0.15.4 [INFO] [stderr] Compiling getrandom v0.3.3 [INFO] [stderr] Compiling futures-io v0.3.31 [INFO] [stderr] Compiling tracing v0.1.41 [INFO] [stderr] Compiling http-body v0.4.6 [INFO] [stderr] Compiling litrs v0.4.2 [INFO] [stderr] Compiling sync_wrapper v0.1.2 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Compiling document-features v0.2.11 [INFO] [stderr] Compiling indexmap v2.9.0 [INFO] [stderr] Compiling signal-hook-registry v1.4.5 [INFO] [stderr] Compiling mio v1.0.3 [INFO] [stderr] Compiling socket2 v0.5.10 [INFO] [stderr] Compiling openssl-sys v0.9.109 [INFO] [stderr] Compiling mio v0.8.11 [INFO] [stderr] Compiling rand_core v0.9.3 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling parking_lot v0.12.3 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling signal-hook-mio v0.2.4 [INFO] [stderr] Compiling crossterm v0.26.1 [INFO] [stderr] Compiling 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] Compiling openssl v0.10.73 [INFO] [stderr] Compiling tokio v1.45.1 [INFO] [stderr] Compiling derive_more v2.0.1 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling yoke v0.8.0 [INFO] [stderr] Compiling zerovec v0.11.2 [INFO] [stderr] Compiling zerotrie v0.2.2 [INFO] [stderr] Compiling tinystr v0.8.1 [INFO] [stderr] Compiling potential_utf v0.1.2 [INFO] [stderr] Compiling icu_collections v2.0.0 [INFO] [stderr] Compiling icu_locale_core v2.0.0 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling icu_provider v2.0.0 [INFO] [stderr] Compiling icu_normalizer v2.0.0 [INFO] [stderr] Compiling icu_properties v2.0.1 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.0.3 [INFO] [stderr] Compiling url v2.5.4 [INFO] [stderr] Compiling serde_json v1.0.140 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling tokio-util v0.7.15 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [INFO] [stderr] Compiling h2 v0.3.26 [INFO] [stderr] Compiling hyper v0.14.32 [INFO] [stderr] Compiling hyper-tls v0.5.0 [INFO] [stderr] Compiling reqwest v0.11.27 [INFO] [stderr] Compiling 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: 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 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 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] = note: `#[warn(deprecated)]` on by default [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: `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 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 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: 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 `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 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 `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 43.69s [INFO] running `Command { std: "docker" "inspect" "ea5a57dce49508d149fac312e20abe1519faa54839e1162578d2e7d149597a07", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "ea5a57dce49508d149fac312e20abe1519faa54839e1162578d2e7d149597a07" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [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] [stderr] Compiling Server v0.1.0 (/opt/rustwide/workdir) [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: `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: 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] = note: `#[warn(deprecated)]` 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)]` (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: 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 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: 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 `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: `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 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: 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 `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: `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 `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 `test` profile [unoptimized + debuginfo] target(s) in 0.94s [INFO] running `Command { std: "docker" "inspect" "ea5a57dce49508d149fac312e20abe1519faa54839e1162578d2e7d149597a07", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "ea5a57dce49508d149fac312e20abe1519faa54839e1162578d2e7d149597a07" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen", kill_on_drop: false }` [INFO] [stderr] warning: type `worker` should have an upper camel case name [INFO] [stderr] --> src/lib.rs:9:8 [INFO] [stderr] | [INFO] [stderr] 9 | struct worker { [INFO] [stderr] | ^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Worker` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: field `workers` is never read [INFO] [stderr] --> src/lib.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 5 | pub struct ThreadPool { [INFO] [stderr] | ---------- field in this struct [INFO] [stderr] 6 | workers: Vec, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: fields `id` and `thread` are never read [INFO] [stderr] --> src/lib.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 9 | struct worker { [INFO] [stderr] | ------ fields in this struct [INFO] [stderr] 10 | id: usize, [INFO] [stderr] | ^^ [INFO] [stderr] 11 | thread: thread::JoinHandle<()>, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: crate `Server` should have a snake case name [INFO] [stderr] | [INFO] [stderr] = help: convert the identifier to snake case: `server` [INFO] [stderr] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `Server` (lib) generated 4 warnings [INFO] [stderr] warning: `Server` (lib test) generated 3 warnings (3 duplicates) [INFO] [stderr] warning: unused imports: `Error` and `string` [INFO] [stderr] --> src/term.rs:3:24 [INFO] [stderr] | [INFO] [stderr] 3 | io::{self, stdout, Error, Read, Write}, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 4 | string, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `DisableBlinking`, `EnableBlinking`, `EnableBracketedPaste`, `EnableFocusChange`, `EnableMouseCapture`, `RestorePosition`, and `SavePosition` [INFO] [stderr] --> src/term.rs:11:14 [INFO] [stderr] | [INFO] [stderr] 11 | cursor::{DisableBlinking, EnableBlinking, MoveTo, RestorePosition, SavePosition}, [INFO] [stderr] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 14 | EnableBracketedPaste, EnableFocusChange, EnableMouseCapture, Event, KeyCode, KeyEvent, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unreachable statement [INFO] [stderr] --> src/term.rs:132:5 [INFO] [stderr] | [INFO] [stderr] 76 | / loop { [INFO] [stderr] 77 | | let ws: terminal::WindowSize = window_size().unwrap(); [INFO] [stderr] 78 | | // `read()` blocks until an `Event` is available [INFO] [stderr] 79 | | while poll(Duration::from_millis(0))? { [INFO] [stderr] ... | [INFO] [stderr] 130 | | sleep(Duration::from_millis(33)); [INFO] [stderr] 131 | | } [INFO] [stderr] | |_____- any code following this expression is unreachable [INFO] [stderr] 132 | / execute!( [INFO] [stderr] 133 | | std::io::stdout(), [INFO] [stderr] 134 | | DisableBracketedPaste, [INFO] [stderr] 135 | | DisableFocusChange, [INFO] [stderr] 136 | | DisableMouseCapture [INFO] [stderr] 137 | | )?; [INFO] [stderr] | |_______^ unreachable statement [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `kind` [INFO] [stderr] --> src/term.rs:86:21 [INFO] [stderr] | [INFO] [stderr] 86 | kind, [INFO] [stderr] | ^^^^ help: try ignoring the field: `kind: _` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `state` [INFO] [stderr] --> src/term.rs:87:21 [INFO] [stderr] | [INFO] [stderr] 87 | state, [INFO] [stderr] | ^^^^^ help: try ignoring the field: `state: _` [INFO] [stderr] [INFO] [stderr] warning: field `w` is never read [INFO] [stderr] --> src/term.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 22 | struct Rect { [INFO] [stderr] | ---- field in this struct [INFO] [stderr] ... [INFO] [stderr] 25 | w: u16, [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/term.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | io::stdout().execute(Clear(crossterm::terminal::ClearType::All)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 42 | let _ = io::stdout().execute(Clear(crossterm::terminal::ClearType::All)); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/term.rs:46:5 [INFO] [stderr] | [INFO] [stderr] 46 | / io::stdout().write({ [INFO] [stderr] 47 | | File::open("mchat.logo")?.read(&mut buf)?; [INFO] [stderr] 48 | | &buf [INFO] [stderr] 49 | | }); [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 46 | let _ = io::stdout().write({ [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/term.rs:53:5 [INFO] [stderr] | [INFO] [stderr] 53 | enable_raw_mode(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 53 | let _ = enable_raw_mode(); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/term.rs:66:5 [INFO] [stderr] | [INFO] [stderr] 66 | print_events(); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 66 | let _ = print_events(); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/term.rs:67:5 [INFO] [stderr] | [INFO] [stderr] 67 | io::stdout().execute(Clear(crossterm::terminal::ClearType::All)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 67 | let _ = io::stdout().execute(Clear(crossterm::terminal::ClearType::All)); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/term.rs:69:5 [INFO] [stderr] | [INFO] [stderr] 69 | disable_raw_mode(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 69 | let _ = disable_raw_mode(); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/term.rs:112:9 [INFO] [stderr] | [INFO] [stderr] 112 | io::stdout().queue(Clear(crossterm::terminal::ClearType::All)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 112 | let _ = io::stdout().queue(Clear(crossterm::terminal::ClearType::All)); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/term.rs:114:9 [INFO] [stderr] | [INFO] [stderr] 114 | stdout().queue(MoveTo(0, ws.rows - 2)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 114 | let _ = stdout().queue(MoveTo(0, ws.rows - 2)); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/term.rs:115:9 [INFO] [stderr] | [INFO] [stderr] 115 | stdout().queue(Print("═".repeat((ws.columns) as usize))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 115 | let _ = stdout().queue(Print("═".repeat((ws.columns) as usize))); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/term.rs:117:9 [INFO] [stderr] | [INFO] [stderr] 117 | stdout().queue(MoveTo(0, 0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 117 | let _ = stdout().queue(MoveTo(0, 0)); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/term.rs:126:9 [INFO] [stderr] | [INFO] [stderr] 126 | stdout().queue(MoveTo(0, ws.rows - 1)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 126 | let _ = stdout().queue(MoveTo(0, ws.rows - 1)); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/term.rs:127:9 [INFO] [stderr] | [INFO] [stderr] 127 | stdout().queue(Print(prompt.clone())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 127 | let _ = stdout().queue(Print(prompt.clone())); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/term.rs:129:9 [INFO] [stderr] | [INFO] [stderr] 129 | stdout().flush(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 129 | let _ = stdout().flush(); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::os::fd::AsRawFd` [INFO] [stderr] --> src/rata.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::os::fd::AsRawFd; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Stdout`, `stdout`, and `thread` [INFO] [stderr] --> src/rata.rs:8:16 [INFO] [stderr] | [INFO] [stderr] 8 | io::{self, stdout, Read, Stdout, Write}, [INFO] [stderr] | ^^^^^^ ^^^^^^ [INFO] [stderr] 9 | path::Path, [INFO] [stderr] 10 | thread, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `DisableBracketedPaste`, `DisableFocusChange`, `EnableBracketedPaste`, `EnableFocusChange`, `MouseEvent`, `WindowSize`, and `poll` [INFO] [stderr] --> src/rata.rs:19:15 [INFO] [stderr] | [INFO] [stderr] 19 | self, poll, read, DisableBracketedPaste, DisableFocusChange, DisableMouseCapture, [INFO] [stderr] | ^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 20 | EnableBracketedPaste, EnableFocusChange, EnableMouseCapture, Event, KeyCode, KeyEvent, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ [INFO] [stderr] 21 | KeyModifiers, MouseEvent, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 26 | WindowSize, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Rect` and `Spans` [INFO] [stderr] --> src/rata.rs:31:56 [INFO] [stderr] | [INFO] [stderr] 31 | layout::{Alignment, Constraint, Direction, Layout, Rect}, [INFO] [stderr] | ^^^^ [INFO] [stderr] 32 | style::{Color, Modifier, Style}, [INFO] [stderr] 33 | text::{Span, Spans}, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated tuple struct `ratatui::text::Spans`: Use `ratatui::text::Line` instead [INFO] [stderr] --> src/rata.rs:33:18 [INFO] [stderr] | [INFO] [stderr] 33 | text::{Span, Spans}, [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ws` [INFO] [stderr] --> src/rata.rs:168:13 [INFO] [stderr] | [INFO] [stderr] 168 | let ws: terminal::WindowSize = window_size().unwrap(); [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_ws` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/rata.rs:182:17 [INFO] [stderr] | [INFO] [stderr] 182 | Err(e) => { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/rata.rs:199:25 [INFO] [stderr] | [INFO] [stderr] 199 | stream.write(prompt.as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 199 | let _ = stream.write(prompt.as_bytes()); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/rata.rs:229:5 [INFO] [stderr] | [INFO] [stderr] 229 | / fs::write( [INFO] [stderr] 230 | | "mchat.log", [INFO] [stderr] 231 | | app.chat.iter().fold(fin, |mut fin, str| { [INFO] [stderr] 232 | | fin.push_str(&("user:".to_owned() + str + "\n")); [INFO] [stderr] 233 | | fin [INFO] [stderr] 234 | | }), [INFO] [stderr] 235 | | ); [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 229 | let _ = fs::write( [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Receiver` and `channel` [INFO] [stderr] --> src/llm.rs:4:23 [INFO] [stderr] | [INFO] [stderr] 4 | use std::sync::mpsc::{channel, Receiver, Sender}; [INFO] [stderr] | ^^^^^^^ ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: type `message` should have an upper camel case name [INFO] [stderr] --> src/server.rs:33:6 [INFO] [stderr] | [INFO] [stderr] 33 | enum message { [INFO] [stderr] | ^^^^^^^ help: convert the identifier to upper camel case: `Message` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: variant `unConnected` should have an upper camel case name [INFO] [stderr] --> src/server.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | unConnected { [INFO] [stderr] | ^^^^^^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `UnConnected` [INFO] [stderr] [INFO] [stderr] warning: variant `New_message` should have an upper camel case name [INFO] [stderr] --> src/server.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | New_message { [INFO] [stderr] | ^^^^^^^^^^^ help: convert the identifier to upper camel case: `NewMessage` [INFO] [stderr] [INFO] [stderr] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng` [INFO] [stderr] --> src/server.rs:275:62 [INFO] [stderr] | [INFO] [stderr] 275 | let token = distr::Alphanumeric.sample_string(&mut rand::thread_rng(), 16); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `prelude` [INFO] [stderr] --> src/server.rs:3:25 [INFO] [stderr] | [INFO] [stderr] 3 | use rand::{self, distr, prelude::*}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `response_json` [INFO] [stderr] --> src/llm.rs:114:13 [INFO] [stderr] | [INFO] [stderr] 114 | let response_json = serde_json::to_string_pretty(&completion_response)?; // <-- This line should now work [INFO] [stderr] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response_json` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/server.rs:93:21 [INFO] [stderr] | [INFO] [stderr] 93 | let mut tmp = [0; 64]; [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/server.rs:102:13 [INFO] [stderr] | [INFO] [stderr] 102 | let mut buf_c = [0; 1]; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `tmp` [INFO] [stderr] --> src/server.rs:93:21 [INFO] [stderr] | [INFO] [stderr] 93 | let mut tmp = [0; 64]; [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tmp` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `buf_c` [INFO] [stderr] --> src/server.rs:102:13 [INFO] [stderr] | [INFO] [stderr] 102 | let mut buf_c = [0; 1]; [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_buf_c` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `llm` [INFO] [stderr] --> src/server.rs:152:9 [INFO] [stderr] | [INFO] [stderr] 152 | let llm = Llm::new( [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_llm` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `stream` [INFO] [stderr] --> src/server.rs:259:40 [INFO] [stderr] | [INFO] [stderr] 259 | message::unConnected { ip, stream } => { [INFO] [stderr] | ^^^^^^ help: try ignoring the field: `stream: _` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/server.rs:274:9 [INFO] [stderr] | [INFO] [stderr] 274 | let mut rng = rand::rng(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rng` [INFO] [stderr] --> src/server.rs:274:9 [INFO] [stderr] | [INFO] [stderr] 274 | let mut rng = rand::rng(); [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rng` [INFO] [stderr] [INFO] [stderr] warning: struct `Sensitive` is never constructed [INFO] [stderr] --> src/server.rs:17:8 [INFO] [stderr] | [INFO] [stderr] 17 | struct Sensitive { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: constant `ChildMode` is never used [INFO] [stderr] --> src/server.rs:21:7 [INFO] [stderr] | [INFO] [stderr] 21 | const ChildMode: bool = true; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `0` is never read [INFO] [stderr] --> src/server.rs:60:18 [INFO] [stderr] | [INFO] [stderr] 60 | struct AuthError(String); [INFO] [stderr] | --------- ^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | field in this struct [INFO] [stderr] | [INFO] [stderr] = help: consider removing this field [INFO] [stderr] [INFO] [stderr] warning: function `read_to` is never used [INFO] [stderr] --> src/server.rs:61:4 [INFO] [stderr] | [INFO] [stderr] 61 | fn read_to(stream: Arc, c: u8, buf: &mut [u8]) -> Result<(), usize> { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `handle_connection` is never used [INFO] [stderr] --> src/server.rs:292:4 [INFO] [stderr] | [INFO] [stderr] 292 | fn handle_connection(mut stream: TcpStream) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `model`, `api`, and `url` are never read [INFO] [stderr] --> src/llm.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 7 | pub struct Llm { [INFO] [stderr] | --- fields in this struct [INFO] [stderr] 8 | model: String, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 9 | api: String, [INFO] [stderr] | ^^^ [INFO] [stderr] 10 | url: String, [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `ChildMode` should have an upper case name [INFO] [stderr] --> src/server.rs:21:7 [INFO] [stderr] | [INFO] [stderr] 21 | const ChildMode: bool = true; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stderr] help: convert the identifier to upper case [INFO] [stderr] | [INFO] [stderr] 21 - const ChildMode: bool = true; [INFO] [stderr] 21 + const CHILD_MODE: bool = true; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: constant `tryc` should have an upper case name [INFO] [stderr] --> src/server.rs:22:7 [INFO] [stderr] | [INFO] [stderr] 22 | const tryc: i32 = 3; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] help: convert the identifier to upper case [INFO] [stderr] | [INFO] [stderr] 22 - const tryc: i32 = 3; [INFO] [stderr] 22 + const TRYC: i32 = 3; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/server.rs:83:9 [INFO] [stderr] | [INFO] [stderr] 83 | stream.as_ref().read(&mut rtoken); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 83 | let _ = stream.as_ref().read(&mut rtoken); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/server.rs:91:17 [INFO] [stderr] | [INFO] [stderr] 91 | stream.as_ref().write("incorrect\n".as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 91 | let _ = stream.as_ref().write("incorrect\n".as_bytes()); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/server.rs:99:13 [INFO] [stderr] | [INFO] [stderr] 99 | stream.shutdown(Shutdown::Both); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 99 | let _ = stream.shutdown(Shutdown::Both); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/server.rs:124:13 [INFO] [stderr] | [INFO] [stderr] 124 | / messages [INFO] [stderr] 125 | | .send(message::New_message { [INFO] [stderr] 126 | | ip, [INFO] [stderr] 127 | | str: String::from_utf8(buffer[0..n].to_vec()).unwrap(), [INFO] [stderr] ... | [INFO] [stderr] 130 | | eprintln!("cannot send message ERROR : {err}"); [INFO] [stderr] 131 | | }); [INFO] [stderr] | |__________________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 124 | let _ = messages [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/server.rs:133:13 [INFO] [stderr] | [INFO] [stderr] 133 | / messages [INFO] [stderr] 134 | | .send(message::unConnected { [INFO] [stderr] 135 | | ip, [INFO] [stderr] 136 | | stream: stream.clone(), [INFO] [stderr] ... | [INFO] [stderr] 139 | | eprintln!("cannot send message ERROR : {err}"); [INFO] [stderr] 140 | | }); [INFO] [stderr] | |__________________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 133 | let _ = messages [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: function `Server` should have a snake case name [INFO] [stderr] --> src/server.rs:146:4 [INFO] [stderr] | [INFO] [stderr] 146 | fn Server(messages: Receiver) -> () { [INFO] [stderr] | ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `server` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: variable `BAN_LIMIT` should have a snake case name [INFO] [stderr] --> src/server.rs:149:9 [INFO] [stderr] | [INFO] [stderr] 149 | let BAN_LIMIT: Duration = Duration::from_secs_f32(10.0 * 60.0); [INFO] [stderr] | ^^^^^^^^^ help: convert the identifier to snake case: `ban_limit` [INFO] [stderr] [INFO] [stderr] warning: variable `RATE_LIMIT` should have a snake case name [INFO] [stderr] --> src/server.rs:150:9 [INFO] [stderr] | [INFO] [stderr] 150 | let RATE_LIMIT: Duration = Duration::from_secs_f32(1.0); [INFO] [stderr] | ^^^^^^^^^^ help: convert the identifier to snake case: `rate_limit` [INFO] [stderr] [INFO] [stderr] warning: variable `STRIKE_LIMIT` should have a snake case name [INFO] [stderr] --> src/server.rs:151:9 [INFO] [stderr] | [INFO] [stderr] 151 | let STRIKE_LIMIT: u32 = 10; [INFO] [stderr] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `strike_limit` [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/server.rs:213:25 [INFO] [stderr] | [INFO] [stderr] 213 | stream.as_ref().write(b"you are banned\n\r"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 213 | let _ = stream.as_ref().write(b"you are banned\n\r"); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/server.rs:231:29 [INFO] [stderr] | [INFO] [stderr] 231 | ... stream.as_ref().write(str.as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 231 | let _ = stream.as_ref().write(str.as_bytes()); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: `Server` (bin "term" test) generated 19 warnings (run `cargo fix --bin "term" -p Server --tests` to apply 4 suggestions) [INFO] [stderr] warning: `Server` (bin "rata" test) generated 9 warnings (run `cargo fix --bin "rata" -p Server --tests` to apply 6 suggestions) [INFO] [stderr] warning: `Server` (bin "server" test) generated 34 warnings (run `cargo fix --bin "server" -p Server --tests` to apply 12 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.21s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/build/Server/7bf960bcce754f96/out/Server-7bf960bcce754f96) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/rata.rs (/opt/rustwide/target/debug/build/Server/4f50fa9aa02f5d6e/out/rata-4f50fa9aa02f5d6e) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/server.rs (/opt/rustwide/target/debug/build/Server/f57927e5b30e6116/out/server-f57927e5b30e6116) [INFO] [stderr] Running unittests src/term.rs (/opt/rustwide/target/debug/build/Server/940a4f7d91cb8a87/out/term-940a4f7d91cb8a87) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests Server [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] warning: type `worker` should have an upper camel case name [INFO] [stderr] --> src/lib.rs:9:8 [INFO] [stderr] | [INFO] [stderr] 9 | struct worker { [INFO] [stderr] | ^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Worker` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: 1 warning emitted [INFO] [stderr] [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "ea5a57dce49508d149fac312e20abe1519faa54839e1162578d2e7d149597a07", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ea5a57dce49508d149fac312e20abe1519faa54839e1162578d2e7d149597a07", kill_on_drop: false }` [INFO] [stdout] ea5a57dce49508d149fac312e20abe1519faa54839e1162578d2e7d149597a07