[INFO] cloning repository https://github.com/bytel0rd/oba [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/bytel0rd/oba" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbytel0rd%2Foba", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbytel0rd%2Foba'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 03082e5babc1402b6b7c251a17dd46d6aba60f03 [INFO] checking bytel0rd/oba against master#1f12b9b0fdbe735968ac002792a720f0ba4faca6 for crater-rollup-uwu [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbytel0rd%2Foba" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/bytel0rd/oba on toolchain 1f12b9b0fdbe735968ac002792a720f0ba4faca6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/bytel0rd/oba [INFO] finished tweaking git repo https://github.com/bytel0rd/oba [INFO] tweaked toml for git repo https://github.com/bytel0rd/oba written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/bytel0rd/oba 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" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"` [INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest [INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest [INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded anyhow v1.0.83 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 18f880f46551a49528f9aced1d32cb1aca200133c96ee8ab6d2c4001103326da [INFO] running `Command { std: "docker" "start" "-a" "18f880f46551a49528f9aced1d32cb1aca200133c96ee8ab6d2c4001103326da", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "18f880f46551a49528f9aced1d32cb1aca200133c96ee8ab6d2c4001103326da", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "18f880f46551a49528f9aced1d32cb1aca200133c96ee8ab6d2c4001103326da", kill_on_drop: false }` [INFO] [stdout] 18f880f46551a49528f9aced1d32cb1aca200133c96ee8ab6d2c4001103326da [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 4b60fff9c0577f329123e65b1ba27e87ad0274cc82f8eb8871f668c5a642cba3 [INFO] running `Command { std: "docker" "start" "-a" "4b60fff9c0577f329123e65b1ba27e87ad0274cc82f8eb8871f668c5a642cba3", kill_on_drop: false }` [INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"` [INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest [INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest [INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions [INFO] [stderr] Compiling proc-macro2 v1.0.81 [INFO] [stderr] Compiling unicode-ident v1.0.12 [INFO] [stderr] Compiling libc v0.2.154 [INFO] [stderr] Compiling autocfg v1.3.0 [INFO] [stderr] Compiling serde v1.0.201 [INFO] [stderr] Compiling rustversion v1.0.15 [INFO] [stderr] Compiling anyhow v1.0.83 [INFO] [stderr] Compiling thiserror v1.0.60 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Checking smallvec v1.13.2 [INFO] [stderr] Compiling heck v0.4.1 [INFO] [stderr] Checking scopeguard v1.2.0 [INFO] [stderr] Checking iana-time-zone v0.1.60 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Checking tracing-core v0.1.32 [INFO] [stderr] Checking pin-project-lite v0.2.14 [INFO] [stderr] Checking lazy_static v1.4.0 [INFO] [stderr] Compiling serde_json v1.0.117 [INFO] [stderr] Checking overload v0.1.1 [INFO] [stderr] Checking log v0.4.21 [INFO] [stderr] Checking nu-ansi-term v0.46.0 [INFO] [stderr] Checking sharded-slab v0.1.7 [INFO] [stderr] Checking thread_local v1.1.8 [INFO] [stderr] Checking itoa v1.0.11 [INFO] [stderr] Checking ryu v1.0.18 [INFO] [stderr] Checking xxhash-rust v0.8.10 [INFO] [stderr] Checking ppv-lite86 v0.2.17 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Checking tracing-subscriber v0.3.18 [INFO] [stderr] Compiling syn v2.0.60 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking socket2 v0.5.6 [INFO] [stderr] Checking num_cpus v1.16.0 [INFO] [stderr] Checking mio v0.8.11 [INFO] [stderr] Checking signal-hook-registry v1.4.2 [INFO] [stderr] Checking uuid v1.8.0 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking parking_lot v0.12.2 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Compiling serde_derive v1.0.201 [INFO] [stderr] Compiling strum_macros v0.26.2 [INFO] [stderr] Compiling thiserror-impl v1.0.60 [INFO] [stderr] Compiling tokio-macros v2.2.0 [INFO] [stderr] Compiling tracing-attributes v0.1.27 [INFO] [stderr] Checking tracing v0.1.40 [INFO] [stderr] Checking strum v0.26.2 [INFO] [stderr] Checking bytes v1.6.0 [INFO] [stderr] Checking chrono v0.4.38 [INFO] [stderr] Checking bincode v1.3.3 [INFO] [stderr] Checking tokio v1.37.0 [INFO] [stderr] Checking oba_network v0.1.0 (/opt/rustwide/workdir/network) [INFO] [stdout] warning: unused import: `Read` [INFO] [stdout] --> network/src/encoding.rs:1:23 [INFO] [stdout] | [INFO] [stdout] 1 | use std::io::{Cursor, Read}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Bytes` [INFO] [stdout] --> network/src/encoding.rs:4:21 [INFO] [stdout] | [INFO] [stdout] 4 | use bytes::{BufMut, Bytes, BytesMut}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> network/src/commons.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Read` [INFO] [stdout] --> network/src/encoding.rs:1:23 [INFO] [stdout] | [INFO] [stdout] 1 | use std::io::{Cursor, Read}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Bytes` [INFO] [stdout] --> network/src/encoding.rs:4:21 [INFO] [stdout] | [INFO] [stdout] 4 | use bytes::{BufMut, Bytes, BytesMut}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> network/src/commons.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> network/src/encoding.rs:73:13 [INFO] [stdout] | [INFO] [stdout] 73 | let mut delimiter = buf.get(cursor_start..cursor_end); [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> network/src/encoding.rs:167:17 [INFO] [stdout] | [INFO] [stdout] 167 | let (_, mut data_part) = buf.split_at_mut(cursor_end); [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> network/src/encoding.rs:73:13 [INFO] [stdout] | [INFO] [stdout] 73 | let mut delimiter = buf.get(cursor_start..cursor_end); [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> network/src/encoding.rs:167:17 [INFO] [stdout] | [INFO] [stdout] 167 | let (_, mut data_part) = buf.split_at_mut(cursor_end); [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> network/src/encoding.rs:227:13 [INFO] [stdout] | [INFO] [stdout] 227 | let mut delimiter = b"!CZ~"; [INFO] [stdout] | ----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> network/src/encoding.rs:228:13 [INFO] [stdout] | [INFO] [stdout] 228 | let mut delimiter_length = delimiter.len(); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> network/src/encoding.rs:327:13 [INFO] [stdout] | [INFO] [stdout] 327 | let mut buf = raw_byte.as_mut_slice(); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> network/src/encoding.rs:343:13 [INFO] [stdout] | [INFO] [stdout] 343 | let mut buf = raw_byte.as_mut_slice(); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> network/src/encoding.rs:359:13 [INFO] [stdout] | [INFO] [stdout] 359 | let mut buf = raw_byte.as_mut_slice(); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> network/src/encoding.rs:370:13 [INFO] [stdout] | [INFO] [stdout] 370 | let mut buf = &mut byte_stream; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> network/src/encoding.rs:386:13 [INFO] [stdout] | [INFO] [stdout] 386 | let mut byte_stream = byte_stream.as_mut_slice(); [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result` [INFO] [stdout] --> network/src/encoding.rs:426:13 [INFO] [stdout] | [INFO] [stdout] 426 | let result = encoding.read_from_stream(byte_stream); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result` [INFO] [stdout] --> network/src/encoding.rs:440:13 [INFO] [stdout] | [INFO] [stdout] 440 | let result = encoding.read_from_stream(byte_stream); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 5 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> network/src/encoding.rs:267:9 [INFO] [stdout] | [INFO] [stdout] 267 | delimiter.read_to_string(&mut version_str); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 267 | let _ = delimiter.read_to_string(&mut version_str); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> network/src/encoding.rs:296:57 [INFO] [stdout] | [INFO] [stdout] 296 | let data_length = u32::from_be_bytes(data_length.clone().try_into().unwrap()); [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `[u8]` does not implement `Clone`, so calling `clone` on `&[u8]` copies the reference, which does not do anything and can be removed [INFO] [stdout] = note: `#[warn(noop_method_call)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 16 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking server v0.1.0 (/opt/rustwide/workdir/server) [INFO] [stderr] Checking client v0.1.0 (/opt/rustwide/workdir/client) [INFO] [stdout] warning: unused import: `bytes::BufMut` [INFO] [stdout] --> client/src/main.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use bytes::BufMut; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AsyncReadExt`, `AsyncRead`, and `AsyncWriteExt` [INFO] [stdout] --> client/src/main.rs:6:17 [INFO] [stdout] | [INFO] [stdout] 6 | use tokio::io::{AsyncRead, AsyncReadExt, AsyncWriteExt}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ObaClientError` [INFO] [stdout] --> client/src/main.rs:9:32 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::client::{ObaClient, ObaClientError}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::BTreeMap` [INFO] [stdout] --> client/src/client.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::BTreeMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> client/src/client.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::string::FromUtf8Error` [INFO] [stdout] --> client/src/client.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::string::FromUtf8Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> client/src/client.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> client/src/client.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::sync` [INFO] [stdout] --> client/src/client.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use tokio::sync; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `RwLock` and `broadcast` [INFO] [stdout] --> client/src/client.rs:12:19 [INFO] [stdout] | [INFO] [stdout] 12 | use tokio::sync::{broadcast, RwLock}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bytes::BufMut` [INFO] [stdout] --> client/src/main.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use bytes::BufMut; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `error` and `info` [INFO] [stdout] --> client/src/client.rs:13:22 [INFO] [stdout] | [INFO] [stdout] 13 | use tracing::{debug, error, info, trace}; [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `uuid::Uuid` [INFO] [stdout] --> client/src/client.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use uuid::Uuid; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AsyncReadExt`, `AsyncRead`, and `AsyncWriteExt` [INFO] [stdout] --> client/src/main.rs:6:17 [INFO] [stdout] | [INFO] [stdout] 6 | use tokio::io::{AsyncRead, AsyncReadExt, AsyncWriteExt}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ObaClientError` [INFO] [stdout] --> client/src/main.rs:9:32 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::client::{ObaClient, ObaClientError}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::BTreeMap` [INFO] [stdout] --> client/src/client.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::BTreeMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> client/src/client.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::string::FromUtf8Error` [INFO] [stdout] --> client/src/client.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::string::FromUtf8Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> client/src/client.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> client/src/client.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::sync` [INFO] [stdout] --> client/src/client.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use tokio::sync; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `RwLock` and `broadcast` [INFO] [stdout] --> client/src/client.rs:12:19 [INFO] [stdout] | [INFO] [stdout] 12 | use tokio::sync::{broadcast, RwLock}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `error` and `info` [INFO] [stdout] --> client/src/client.rs:13:22 [INFO] [stdout] | [INFO] [stdout] 13 | use tracing::{debug, error, info, trace}; [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `uuid::Uuid` [INFO] [stdout] --> client/src/client.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use uuid::Uuid; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AsyncRead`, `AsyncWriteExt`, `Interest`, and `Ready` [INFO] [stdout] --> server/src/main.rs:5:17 [INFO] [stdout] | [INFO] [stdout] 5 | use tokio::io::{AsyncRead, AsyncReadExt, AsyncWriteExt, Interest, Ready}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> server/src/main.rs:11:29 [INFO] [stdout] | [INFO] [stdout] 11 | use oba_network::encoding::{self, Encoding, EncodingState}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> server/src/streams.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AsyncRead`, `AsyncWriteExt`, `Interest`, and `Ready` [INFO] [stdout] --> server/src/main.rs:5:17 [INFO] [stdout] | [INFO] [stdout] 5 | use tokio::io::{AsyncRead, AsyncReadExt, AsyncWriteExt, Interest, Ready}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Mutex` [INFO] [stdout] --> server/src/streams.rs:3:22 [INFO] [stdout] | [INFO] [stdout] 3 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bytes::BytesMut` [INFO] [stdout] --> server/src/streams.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use bytes::BytesMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> server/src/main.rs:11:29 [INFO] [stdout] | [INFO] [stdout] 11 | use oba_network::encoding::{self, Encoding, EncodingState}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> server/src/streams.rs:6:13 [INFO] [stdout] | [INFO] [stdout] 6 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::io::WriteHalf` [INFO] [stdout] --> server/src/streams.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use tokio::io::WriteHalf; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> server/src/streams.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::net::TcpStream` [INFO] [stdout] --> server/src/streams.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use tokio::net::TcpStream; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Mutex` [INFO] [stdout] --> server/src/streams.rs:3:22 [INFO] [stdout] | [INFO] [stdout] 3 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bytes::BytesMut` [INFO] [stdout] --> server/src/streams.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use bytes::BytesMut; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> server/src/streams.rs:6:13 [INFO] [stdout] | [INFO] [stdout] 6 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::io::WriteHalf` [INFO] [stdout] --> server/src/streams.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use tokio::io::WriteHalf; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::net::TcpStream` [INFO] [stdout] --> server/src/streams.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use tokio::net::TcpStream; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `timeout_in_mills_secs` [INFO] [stdout] --> client/src/client.rs:46:67 [INFO] [stdout] | [INFO] [stdout] 46 | pub async fn append_to_stream(&self, key: &str, value: &[u8], timeout_in_mills_secs: Option) -> Result<(), ObaClientError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timeout_in_mills_secs` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `timeout_in_mills_secs` [INFO] [stdout] --> client/src/client.rs:46:67 [INFO] [stdout] | [INFO] [stdout] 46 | pub async fn append_to_stream(&self, key: &str, value: &[u8], timeout_in_mills_secs: Option) -> Result<(), ObaClientError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timeout_in_mills_secs` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `right` [INFO] [stdout] --> server/src/main.rs:72:24 [INFO] [stdout] | [INFO] [stdout] 72 | let (left, right) = read_buffer.split_at(bytes_read_length); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_right` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `right` [INFO] [stdout] --> server/src/main.rs:72:24 [INFO] [stdout] | [INFO] [stdout] 72 | let (left, right) = read_buffer.split_at(bytes_read_length); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_right` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `right` [INFO] [stdout] --> client/src/client.rs:149:28 [INFO] [stdout] | [INFO] [stdout] 149 | let (left, right) = read_buffer.split_at(bytes_read_length); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_right` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `right` [INFO] [stdout] --> client/src/client.rs:149:28 [INFO] [stdout] | [INFO] [stdout] 149 | let (left, right) = read_buffer.split_at(bytes_read_length); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_right` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> client/src/client.rs:169:47 [INFO] [stdout] | [INFO] [stdout] 169 | ... .map_err(|e| ObaClientError::ClientError("Unable to deserialize server response".to_string()))?; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> client/src/client.rs:169:47 [INFO] [stdout] | [INFO] [stdout] 169 | ... .map_err(|e| ObaClientError::ClientError("Unable to deserialize server response".to_string()))?; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> client/src/client.rs:134:13 [INFO] [stdout] | [INFO] [stdout] 134 | let mut socket = ObaClient::open_tcp_stream(host_url).await?; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> client/src/client.rs:134:13 [INFO] [stdout] | [INFO] [stdout] 134 | let mut socket = ObaClient::open_tcp_stream(host_url).await?; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `right` [INFO] [stdout] --> client/src/client.rs:80:28 [INFO] [stdout] | [INFO] [stdout] 80 | let (left, right) = read_buffer.split_at(bytes_read_length); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_right` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `right` [INFO] [stdout] --> client/src/client.rs:80:28 [INFO] [stdout] | [INFO] [stdout] 80 | let (left, right) = read_buffer.split_at(bytes_read_length); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_right` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> client/src/client.rs:101:47 [INFO] [stdout] | [INFO] [stdout] 101 | ... .map_err(|e| ObaClientError::ClientError("Unable to deserialize streamed response".to_string()))?; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> client/src/client.rs:101:47 [INFO] [stdout] | [INFO] [stdout] 101 | ... .map_err(|e| ObaClientError::ClientError("Unable to deserialize streamed response".to_string()))?; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> client/src/client.rs:59:13 [INFO] [stdout] | [INFO] [stdout] 59 | let mut socket = ObaClient::open_tcp_stream(self.host_url.as_str()).await?; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> client/src/client.rs:59:13 [INFO] [stdout] | [INFO] [stdout] 59 | let mut socket = ObaClient::open_tcp_stream(self.host_url.as_str()).await?; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> client/src/client.rs:26:17 [INFO] [stdout] | [INFO] [stdout] 26 | SocketError(String), [INFO] [stdout] | ----------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ObaClientError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 26 | SocketError(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> client/src/client.rs:27:17 [INFO] [stdout] | [INFO] [stdout] 27 | ServerError(String), [INFO] [stdout] | ----------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ObaClientError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 27 | ServerError(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> client/src/client.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | ClientError(String), [INFO] [stdout] | ----------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ObaClientError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 28 | ClientError(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> client/src/client.rs:30:21 [INFO] [stdout] | [INFO] [stdout] 30 | ThirdPartyError(String), [INFO] [stdout] | --------------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ObaClientError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 30 | ThirdPartyError(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> client/src/client.rs:26:17 [INFO] [stdout] | [INFO] [stdout] 26 | SocketError(String), [INFO] [stdout] | ----------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ObaClientError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 26 | SocketError(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> client/src/client.rs:27:17 [INFO] [stdout] | [INFO] [stdout] 27 | ServerError(String), [INFO] [stdout] | ----------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ObaClientError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 27 | ServerError(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> client/src/client.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | ClientError(String), [INFO] [stdout] | ----------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ObaClientError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 28 | ClientError(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> client/src/client.rs:30:21 [INFO] [stdout] | [INFO] [stdout] 30 | ThirdPartyError(String), [INFO] [stdout] | --------------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ObaClientError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 30 | ThirdPartyError(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> client/src/client.rs:137:9 [INFO] [stdout] | [INFO] [stdout] 137 | / socket_write.write_all(message.to_stream()?.as_ref()).await [INFO] [stdout] 138 | | .map_err(|e| ObaClientError::SocketError(e.to_string())); [INFO] [stdout] | |____________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 137 | let _ = socket_write.write_all(message.to_stream()?.as_ref()).await [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> client/src/client.rs:137:9 [INFO] [stdout] | [INFO] [stdout] 137 | / socket_write.write_all(message.to_stream()?.as_ref()).await [INFO] [stdout] 138 | | .map_err(|e| ObaClientError::SocketError(e.to_string())); [INFO] [stdout] | |____________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 137 | let _ = socket_write.write_all(message.to_stream()?.as_ref()).await [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> server/src/main.rs:58:49 [INFO] [stdout] | [INFO] [stdout] 58 | async fn read_socket(stream_db: AtomicStreamDB, mut socket: TcpStream) -> anyhow::Result<()> { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> server/src/main.rs:60:27 [INFO] [stdout] | [INFO] [stdout] 60 | let (mut socket_read, mut socket_write) = tokio::io::split(socket); [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> server/src/main.rs:58:49 [INFO] [stdout] | [INFO] [stdout] 58 | async fn read_socket(stream_db: AtomicStreamDB, mut socket: TcpStream) -> anyhow::Result<()> { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> server/src/main.rs:60:27 [INFO] [stdout] | [INFO] [stdout] 60 | let (mut socket_read, mut socket_write) = tokio::io::split(socket); [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 24 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 24 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `socket_address` [INFO] [stdout] --> server/src/main.rs:48:22 [INFO] [stdout] | [INFO] [stdout] 48 | let (socket, socket_address) = listener.accept().await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_socket_address` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `socket_address` [INFO] [stdout] --> server/src/main.rs:48:22 [INFO] [stdout] | [INFO] [stdout] 48 | let (socket, socket_address) = listener.accept().await.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_socket_address` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `UnableToAcquireWriteLock`, `MissingWriter`, and `UnableToCleanSocket` are never constructed [INFO] [stdout] --> server/src/streams.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 42 | pub enum StreamError { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] 43 | UnableToAcquireWriteLock, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 44 | MissingWriter, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 45 | FailedToWriteToSocket, [INFO] [stdout] 46 | UnableToCleanSocket, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `StreamError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `delete_stream` and `has_stream` are never used [INFO] [stdout] --> server/src/streams.rs:188:18 [INFO] [stdout] | [INFO] [stdout] 68 | impl StreamDB { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 188 | pub async fn delete_stream(&mut self, key: &str) -> Result<(), StreamError> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 202 | pub async fn has_stream(&self, key: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `SocketError` is never used [INFO] [stdout] --> server/src/helpers.rs:43:10 [INFO] [stdout] | [INFO] [stdout] 43 | pub enum SocketError { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SocketError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `UnableToAcquireWriteLock`, `MissingWriter`, and `UnableToCleanSocket` are never constructed [INFO] [stdout] --> server/src/streams.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 42 | pub enum StreamError { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] 43 | UnableToAcquireWriteLock, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 44 | MissingWriter, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 45 | FailedToWriteToSocket, [INFO] [stdout] 46 | UnableToCleanSocket, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `StreamError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `delete_stream` and `has_stream` are never used [INFO] [stdout] --> server/src/streams.rs:188:18 [INFO] [stdout] | [INFO] [stdout] 68 | impl StreamDB { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 188 | pub async fn delete_stream(&mut self, key: &str) -> Result<(), StreamError> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 202 | pub async fn has_stream(&self, key: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `SocketError` is never used [INFO] [stdout] --> server/src/helpers.rs:43:10 [INFO] [stdout] | [INFO] [stdout] 43 | pub enum SocketError { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SocketError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> server/src/main.rs:102:29 [INFO] [stdout] | [INFO] [stdout] 102 | / ... tokio::spawn(async move { [INFO] [stdout] 103 | | ... trace!("processing message id={:?}", &message.id); [INFO] [stdout] 104 | | ... if let Err(err) = process(stream_db, &message, writer).await { [INFO] [stdout] 105 | | ... error!("processing message request req={:?} err={:?}", &message.id, err); [INFO] [stdout] 106 | | ... } [INFO] [stdout] 107 | | ... }).await; [INFO] [stdout] | |______________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 102 | let _ = tokio::spawn(async move { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> server/src/main.rs:102:29 [INFO] [stdout] | [INFO] [stdout] 102 | / ... tokio::spawn(async move { [INFO] [stdout] 103 | | ... trace!("processing message id={:?}", &message.id); [INFO] [stdout] 104 | | ... if let Err(err) = process(stream_db, &message, writer).await { [INFO] [stdout] 105 | | ... error!("processing message request req={:?} err={:?}", &message.id, err); [INFO] [stdout] 106 | | ... } [INFO] [stdout] 107 | | ... }).await; [INFO] [stdout] | |______________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 102 | let _ = tokio::spawn(async move { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 16 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 16 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.83s [INFO] running `Command { std: "docker" "inspect" "4b60fff9c0577f329123e65b1ba27e87ad0274cc82f8eb8871f668c5a642cba3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4b60fff9c0577f329123e65b1ba27e87ad0274cc82f8eb8871f668c5a642cba3", kill_on_drop: false }` [INFO] [stdout] 4b60fff9c0577f329123e65b1ba27e87ad0274cc82f8eb8871f668c5a642cba3