[INFO] cloning repository https://github.com/shadrach-tayo/redis-rust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/shadrach-tayo/redis-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshadrach-tayo%2Fredis-rust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshadrach-tayo%2Fredis-rust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] ac800c3a3596ec6f1bddffe90d0ca37c1603ade9 [INFO] linting shadrach-tayo/redis-rust against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshadrach-tayo%2Fredis-rust" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/shadrach-tayo/redis-rust [INFO] finished tweaking git repo https://github.com/shadrach-tayo/redis-rust [INFO] tweaked toml for git repo https://github.com/shadrach-tayo/redis-rust written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/shadrach-tayo/redis-rust on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/shadrach-tayo/redis-rust 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" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 25171232dcc5a10a3d1ffb178495eced9f183d15bcf7ec6fb6f3f75d570b052f [INFO] running `Command { std: "docker" "start" "-a" "25171232dcc5a10a3d1ffb178495eced9f183d15bcf7ec6fb6f3f75d570b052f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "25171232dcc5a10a3d1ffb178495eced9f183d15bcf7ec6fb6f3f75d570b052f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "25171232dcc5a10a3d1ffb178495eced9f183d15bcf7ec6fb6f3f75d570b052f", kill_on_drop: false }` [INFO] [stdout] 25171232dcc5a10a3d1ffb178495eced9f183d15bcf7ec6fb6f3f75d570b052f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] afc98e6c7952bf11eaf4d7076b284c26b23ce712642db7eaf9ee491db7f389da [INFO] running `Command { std: "docker" "start" "-a" "afc98e6c7952bf11eaf4d7076b284c26b23ce712642db7eaf9ee491db7f389da", kill_on_drop: false }` [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Compiling syn v2.0.74 [INFO] [stderr] Compiling syn v1.0.67 [INFO] [stderr] Checking parking_lot_core v0.9.5 [INFO] [stderr] Checking mio v0.8.5 [INFO] [stderr] Checking socket2 v0.4.7 [INFO] [stderr] Checking num_cpus v1.13.0 [INFO] [stderr] Checking signal-hook-registry v1.2.2 [INFO] [stderr] Checking parking_lot v0.12.1 [INFO] [stderr] Compiling zerocopy-derive v0.7.35 [INFO] [stderr] Compiling futures-macro v0.3.30 [INFO] [stderr] Compiling redis-derive v0.1.0 (/opt/rustwide/workdir/redis-derive) [INFO] [stderr] Compiling tokio-macros v1.8.2 [INFO] [stderr] Compiling thiserror-impl v1.0.32 [INFO] [stderr] Checking futures-util v0.3.30 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Checking tokio v1.23.0 [INFO] [stderr] Checking thiserror v1.0.32 [INFO] [stderr] Checking ppv-lite86 v0.2.20 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking futures-executor v0.3.30 [INFO] [stderr] Checking futures v0.3.30 [INFO] [stderr] Checking redis-starter-rust v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: useless conversion to the same type: `command::RespReaderError` [INFO] [stdout] --> src/command/echo.rs:26:29 [INFO] [stdout] | [INFO] [stdout] 26 | Err(err) => Err(err.into()), [INFO] [stdout] | ^^^^^^^^^^ help: consider removing `.into()`: `err` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `bytes::Bytes` [INFO] [stdout] --> src/command/echo.rs:47:28 [INFO] [stdout] | [INFO] [stdout] 47 | resp.push_bulk(Bytes::from(msg)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: consider removing `Bytes::from()`: `msg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `command::RespReaderError` [INFO] [stdout] --> src/command/ping.rs:26:29 [INFO] [stdout] | [INFO] [stdout] 26 | Err(err) => Err(err.into()), [INFO] [stdout] | ^^^^^^^^^^ help: consider removing `.into()`: `err` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `bytes::Bytes` [INFO] [stdout] --> src/command/ping.rs:47:28 [INFO] [stdout] | [INFO] [stdout] 47 | resp.push_bulk(Bytes::from(msg)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: consider removing `Bytes::from()`: `msg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `command::RespReaderError` [INFO] [stdout] --> src/command/echo.rs:26:29 [INFO] [stdout] | [INFO] [stdout] 26 | Err(err) => Err(err.into()), [INFO] [stdout] | ^^^^^^^^^^ help: consider removing `.into()`: `err` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/command/set.rs:40:54 [INFO] [stdout] | [INFO] [stdout] 40 | let duration = reader.next_int().map(|dur| Duration::from_millis(dur))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Duration::from_millis` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/command/set.rs:46:54 [INFO] [stdout] | [INFO] [stdout] 46 | let duration = reader.next_int().map(|dur| Duration::from_secs(dur))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Duration::from_secs` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `bytes::Bytes` [INFO] [stdout] --> src/command/echo.rs:47:28 [INFO] [stdout] | [INFO] [stdout] 47 | resp.push_bulk(Bytes::from(msg)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: consider removing `Bytes::from()`: `msg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `field_id` after checking its variant with `is_ok` [INFO] [stdout] --> src/command/stream/xadd.rs:41:30 [INFO] [stdout] | [INFO] [stdout] 40 | if field_id.is_ok() { [INFO] [stdout] | ------------------- help: try: `if let Ok() = field_id` [INFO] [stdout] 41 | pairs.insert(field_id.unwrap(), reader.next_string()?); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/command/stream/xadd.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 78 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 78 - return true; [INFO] [stdout] 78 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/command/stream/xadd.rs:68:9 [INFO] [stdout] | [INFO] [stdout] 68 | / if ids.len() == 2 { [INFO] [stdout] 69 | | if ids[1] == "0" { [INFO] [stdout] 70 | | return ids[0] != "0"; [INFO] [stdout] 71 | | } [INFO] [stdout] 72 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 68 ~ if ids.len() == 2 [INFO] [stdout] 69 ~ && ids[1] == "0" { [INFO] [stdout] 70 | return ids[0] != "0"; [INFO] [stdout] 71 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: found `.or(Some(…)).unwrap()` [INFO] [stdout] --> src/command/stream/xadd.rs:101:14 [INFO] [stdout] | [INFO] [stdout] 101 | .or(Some(now)) [INFO] [stdout] | ______________^ [INFO] [stdout] 102 | | .unwrap(); [INFO] [stdout] | |_____________________^ help: try: `unwrap_or(now)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_then_unwrap [INFO] [stdout] = note: `#[warn(clippy::or_then_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `ids.get(0)` [INFO] [stdout] --> src/command/stream/xadd.rs:98:24 [INFO] [stdout] | [INFO] [stdout] 98 | let millisec = ids [INFO] [stdout] | ________________________^ [INFO] [stdout] 99 | | .get(0) [INFO] [stdout] | |___________________^ help: try: `ids.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] = note: `#[warn(clippy::get_first)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: found `.or(Some(…)).unwrap()` [INFO] [stdout] --> src/command/stream/xadd.rs:113:14 [INFO] [stdout] | [INFO] [stdout] 113 | .or(Some(next_sequence_id)) [INFO] [stdout] | ______________^ [INFO] [stdout] 114 | | .unwrap(); [INFO] [stdout] | |_____________________^ help: try: `unwrap_or(next_sequence_id)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_then_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `time_match` after checking its variant with `is_some` [INFO] [stdout] --> src/command/stream/xadd.rs:163:21 [INFO] [stdout] | [INFO] [stdout] 161 | if time_match.is_some() { [INFO] [stdout] | ----------------------- help: try: `if let Some() = time_match` [INFO] [stdout] 162 | println!("Match found: {:?}", time_match); [INFO] [stdout] 163 | time_match.unwrap() + 1 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `ids.get(0)` [INFO] [stdout] --> src/command/stream/xrange.rs:20:20 [INFO] [stdout] | [INFO] [stdout] 20 | let millisec = ids.get(0).map(|t| t.parse().unwrap()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^ help: try: `ids.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `command::RespReaderError` [INFO] [stdout] --> src/command/ping.rs:26:29 [INFO] [stdout] | [INFO] [stdout] 26 | Err(err) => Err(err.into()), [INFO] [stdout] | ^^^^^^^^^^ help: consider removing `.into()`: `err` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: found `.or(Some(…)).unwrap()` [INFO] [stdout] --> src/command/stream/xrange.rs:22:62 [INFO] [stdout] | [INFO] [stdout] 22 | let sequence_id = ids.get(1).map(|t| t.parse().unwrap()).or(Some(0)).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or(0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_then_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `bytes::Bytes` [INFO] [stdout] --> src/command/ping.rs:47:28 [INFO] [stdout] | [INFO] [stdout] 47 | resp.push_bulk(Bytes::from(msg)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: consider removing `Bytes::from()`: `msg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `command::RespReaderError` [INFO] [stdout] --> src/command/stream/xrange.rs:60:36 [INFO] [stdout] | [INFO] [stdout] 60 | Err(err) => return Err(err.into()), [INFO] [stdout] | ^^^^^^^^^^ help: consider removing `.into()`: `err` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/command/set.rs:40:54 [INFO] [stdout] | [INFO] [stdout] 40 | let duration = reader.next_int().map(|dur| Duration::from_millis(dur))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Duration::from_millis` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/command/set.rs:46:54 [INFO] [stdout] | [INFO] [stdout] 46 | let duration = reader.next_int().map(|dur| Duration::from_secs(dur))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Duration::from_secs` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `ids.get(0)` [INFO] [stdout] --> src/command/stream/xread.rs:26:20 [INFO] [stdout] | [INFO] [stdout] 26 | let millisec = ids.get(0).map(|t| t.parse().unwrap()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^ help: try: `ids.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: found `.or(Some(…)).unwrap()` [INFO] [stdout] --> src/command/stream/xread.rs:28:62 [INFO] [stdout] | [INFO] [stdout] 28 | let sequence_id = ids.get(1).map(|t| t.parse().unwrap()).or(Some(0)).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or(0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_then_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `field_id` after checking its variant with `is_ok` [INFO] [stdout] --> src/command/stream/xadd.rs:41:30 [INFO] [stdout] | [INFO] [stdout] 40 | if field_id.is_ok() { [INFO] [stdout] | ------------------- help: try: `if let Ok() = field_id` [INFO] [stdout] 41 | pairs.insert(field_id.unwrap(), reader.next_string()?); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/command/stream/xadd.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 78 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 78 - return true; [INFO] [stdout] 78 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/command/stream/xadd.rs:68:9 [INFO] [stdout] | [INFO] [stdout] 68 | / if ids.len() == 2 { [INFO] [stdout] 69 | | if ids[1] == "0" { [INFO] [stdout] 70 | | return ids[0] != "0"; [INFO] [stdout] 71 | | } [INFO] [stdout] 72 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 68 ~ if ids.len() == 2 [INFO] [stdout] 69 ~ && ids[1] == "0" { [INFO] [stdout] 70 | return ids[0] != "0"; [INFO] [stdout] 71 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `streams` after checking its variant with `is_none` [INFO] [stdout] --> src/command/stream/xread.rs:115:35 [INFO] [stdout] | [INFO] [stdout] 112 | if streams.is_none() { [INFO] [stdout] | -------------------- help: try: `if let Some() = streams` [INFO] [stdout] ... [INFO] [stdout] 115 | let streams = streams.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: found `.or(Some(…)).unwrap()` [INFO] [stdout] --> src/command/stream/xadd.rs:101:14 [INFO] [stdout] | [INFO] [stdout] 101 | .or(Some(now)) [INFO] [stdout] | ______________^ [INFO] [stdout] 102 | | .unwrap(); [INFO] [stdout] | |_____________________^ help: try: `unwrap_or(now)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_then_unwrap [INFO] [stdout] = note: `#[warn(clippy::or_then_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `ids.get(0)` [INFO] [stdout] --> src/command/stream/xadd.rs:98:24 [INFO] [stdout] | [INFO] [stdout] 98 | let millisec = ids [INFO] [stdout] | ________________________^ [INFO] [stdout] 99 | | .get(0) [INFO] [stdout] | |___________________^ help: try: `ids.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] = note: `#[warn(clippy::get_first)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `stream.created_at_filter` after checking its variant with `is_some` [INFO] [stdout] --> src/command/stream/xread.rs:123:36 [INFO] [stdout] | [INFO] [stdout] 122 | ... if stream.created_at_filter.is_some() { [INFO] [stdout] | ------------------------------------- help: try: `if let Some() = stream.created_at_filter` [INFO] [stdout] 123 | ... if stream.created_at_filter.unwrap() < entry._created_at { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: found `.or(Some(…)).unwrap()` [INFO] [stdout] --> src/command/stream/xadd.rs:113:14 [INFO] [stdout] | [INFO] [stdout] 113 | .or(Some(next_sequence_id)) [INFO] [stdout] | ______________^ [INFO] [stdout] 114 | | .unwrap(); [INFO] [stdout] | |_____________________^ help: try: `unwrap_or(next_sequence_id)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_then_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/command/stream/xread.rs:136:24 [INFO] [stdout] | [INFO] [stdout] 136 | if results.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `results.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `time_match` after checking its variant with `is_some` [INFO] [stdout] --> src/command/stream/xadd.rs:163:21 [INFO] [stdout] | [INFO] [stdout] 161 | if time_match.is_some() { [INFO] [stdout] | ----------------------- help: try: `if let Some() = time_match` [INFO] [stdout] 162 | println!("Match found: {:?}", time_match); [INFO] [stdout] 163 | time_match.unwrap() + 1 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/command/stream/xread.rs:162:23 [INFO] [stdout] | [INFO] [stdout] 162 | while streams.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `streams.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/command/stream/xread.rs:175:12 [INFO] [stdout] | [INFO] [stdout] 175 | if xreads.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!xreads.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `ids.get(0)` [INFO] [stdout] --> src/command/stream/xrange.rs:20:20 [INFO] [stdout] | [INFO] [stdout] 20 | let millisec = ids.get(0).map(|t| t.parse().unwrap()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^ help: try: `ids.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: found `.or(Some(…)).unwrap()` [INFO] [stdout] --> src/command/stream/xrange.rs:22:62 [INFO] [stdout] | [INFO] [stdout] 22 | let sequence_id = ids.get(1).map(|t| t.parse().unwrap()).or(Some(0)).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or(0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_then_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `command::RespReaderError` [INFO] [stdout] --> src/command/stream/xrange.rs:60:36 [INFO] [stdout] | [INFO] [stdout] 60 | Err(err) => return Err(err.into()), [INFO] [stdout] | ^^^^^^^^^^ help: consider removing `.into()`: `err` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/command/wait.rs:147:32 [INFO] [stdout] | [INFO] [stdout] 147 | ... if !command.is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `command.is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter_mut()` and will not consume the `Vec` [INFO] [stdout] --> src/command/wait.rs:88:58 [INFO] [stdout] | [INFO] [stdout] 88 | for (idx, connection) in replica_connections.into_iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter_mut` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] = note: `#[warn(clippy::into_iter_on_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter_mut()` and will not consume the `Vec` [INFO] [stdout] --> src/command/wait.rs:125:62 [INFO] [stdout] | [INFO] [stdout] 125 | for (idx, connection) in replica_connections.into_iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter_mut` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `ids.get(0)` [INFO] [stdout] --> src/command/stream/xread.rs:26:20 [INFO] [stdout] | [INFO] [stdout] 26 | let millisec = ids.get(0).map(|t| t.parse().unwrap()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^ help: try: `ids.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: found `.or(Some(…)).unwrap()` [INFO] [stdout] --> src/command/stream/xread.rs:28:62 [INFO] [stdout] | [INFO] [stdout] 28 | let sequence_id = ids.get(1).map(|t| t.parse().unwrap()).or(Some(0)).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or(0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_then_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/command/wait.rs:203:9 [INFO] [stdout] | [INFO] [stdout] 197 | / let resp = RESP::Array(vec![ [INFO] [stdout] 198 | | RESP::Bulk("WAIT".into()), [INFO] [stdout] 199 | | RESP::Bulk(Bytes::from(value.no_of_replicas.to_string())), [INFO] [stdout] 200 | | RESP::Bulk(Bytes::from(value.timeout.to_string())), [INFO] [stdout] 201 | | ]); [INFO] [stdout] | |___________- unnecessary `let` binding [INFO] [stdout] 202 | [INFO] [stdout] 203 | resp [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 197 ~ [INFO] [stdout] 198 | [INFO] [stdout] 199 ~ RESP::Array(vec![ [INFO] [stdout] 200 + RESP::Bulk("WAIT".into()), [INFO] [stdout] 201 + RESP::Bulk(Bytes::from(value.no_of_replicas.to_string())), [INFO] [stdout] 202 + RESP::Bulk(Bytes::from(value.timeout.to_string())), [INFO] [stdout] 203 + ]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `streams` after checking its variant with `is_none` [INFO] [stdout] --> src/command/stream/xread.rs:115:35 [INFO] [stdout] | [INFO] [stdout] 112 | if streams.is_none() { [INFO] [stdout] | -------------------- help: try: `if let Some() = streams` [INFO] [stdout] ... [INFO] [stdout] 115 | let streams = streams.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `stream.created_at_filter` after checking its variant with `is_some` [INFO] [stdout] --> src/command/stream/xread.rs:123:36 [INFO] [stdout] | [INFO] [stdout] 122 | ... if stream.created_at_filter.is_some() { [INFO] [stdout] | ------------------------------------- help: try: `if let Some() = stream.created_at_filter` [INFO] [stdout] 123 | ... if stream.created_at_filter.unwrap() < entry._created_at { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/command/stream/xread.rs:136:24 [INFO] [stdout] | [INFO] [stdout] 136 | if results.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `results.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/command/stream/xread.rs:162:23 [INFO] [stdout] | [INFO] [stdout] 162 | while streams.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `streams.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/command/stream/xread.rs:175:12 [INFO] [stdout] | [INFO] [stdout] 175 | if xreads.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!xreads.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/command/mod.rs:126:35 [INFO] [stdout] | [INFO] [stdout] 126 | Set(cmd) => cmd.apply(&db, dst).await, [INFO] [stdout] | ^^^ help: change this to: `db` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/command/mod.rs:127:36 [INFO] [stdout] | [INFO] [stdout] 127 | Incr(cmd) => cmd.apply(&db, dst).await, [INFO] [stdout] | ^^^ help: change this to: `db` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/command/mod.rs:128:35 [INFO] [stdout] | [INFO] [stdout] 128 | Get(cmd) => cmd.apply(&db, dst).await, [INFO] [stdout] | ^^^ help: change this to: `db` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/command/mod.rs:129:36 [INFO] [stdout] | [INFO] [stdout] 129 | Keys(cmd) => cmd.apply(&db, dst).await, [INFO] [stdout] | ^^^ help: change this to: `db` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/command/mod.rs:130:36 [INFO] [stdout] | [INFO] [stdout] 130 | Type(cmd) => cmd.apply(&db, dst).await, [INFO] [stdout] | ^^^ help: change this to: `db` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/command/mod.rs:131:36 [INFO] [stdout] | [INFO] [stdout] 131 | Info(cmd) => cmd.apply(&db, config).await, [INFO] [stdout] | ^^^ help: change this to: `db` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/command/mod.rs:133:37 [INFO] [stdout] | [INFO] [stdout] 133 | PSync(cmd) => cmd.apply(&db, dst).await, [INFO] [stdout] | ^^^ help: change this to: `db` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/command/mod.rs:135:36 [INFO] [stdout] | [INFO] [stdout] 135 | XAdd(cmd) => cmd.apply(&db).await, [INFO] [stdout] | ^^^ help: change this to: `db` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/command/mod.rs:136:38 [INFO] [stdout] | [INFO] [stdout] 136 | XRange(cmd) => cmd.apply(&db).await, [INFO] [stdout] | ^^^ help: change this to: `db` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/command/mod.rs:137:37 [INFO] [stdout] | [INFO] [stdout] 137 | XRead(cmd) => cmd.apply(&db).await, [INFO] [stdout] | ^^^ help: change this to: `db` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/command/wait.rs:147:32 [INFO] [stdout] | [INFO] [stdout] 147 | ... if !command.is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `command.is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter_mut()` and will not consume the `Vec` [INFO] [stdout] --> src/command/wait.rs:88:58 [INFO] [stdout] | [INFO] [stdout] 88 | for (idx, connection) in replica_connections.into_iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter_mut` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] = note: `#[warn(clippy::into_iter_on_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/command/mod.rs:169:9 [INFO] [stdout] | [INFO] [stdout] 169 | / match self { [INFO] [stdout] 170 | | Command::Set(_) => true, [INFO] [stdout] 171 | | _ => false, [INFO] [stdout] 172 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 169 - match self { [INFO] [stdout] 170 - Command::Set(_) => true, [INFO] [stdout] 171 - _ => false, [INFO] [stdout] 172 - } [INFO] [stdout] 169 + matches!(self, Command::Set(_)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/command/mod.rs:176:9 [INFO] [stdout] | [INFO] [stdout] 176 | / match self { [INFO] [stdout] 177 | | Command::Set(_) => true, [INFO] [stdout] 178 | | _ => false, [INFO] [stdout] 179 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 176 - match self { [INFO] [stdout] 177 - Command::Set(_) => true, [INFO] [stdout] 178 - _ => false, [INFO] [stdout] 179 - } [INFO] [stdout] 176 + matches!(self, Command::Set(_)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter_mut()` and will not consume the `Vec` [INFO] [stdout] --> src/command/wait.rs:125:62 [INFO] [stdout] | [INFO] [stdout] 125 | for (idx, connection) in replica_connections.into_iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter_mut` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `next` can be confused for the standard trait method `std::iter::Iterator::next` [INFO] [stdout] --> src/command/mod.rs:206:5 [INFO] [stdout] | [INFO] [stdout] 206 | / pub fn next(&mut self) -> Result { [INFO] [stdout] 207 | | self.inner.next().ok_or(RespReaderError::EndOfStream) [INFO] [stdout] 208 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::iter::Iterator` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] = note: `#[warn(clippy::should_implement_trait)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/command/mod.rs:221:17 [INFO] [stdout] | [INFO] [stdout] 221 | / return Err( [INFO] [stdout] 222 | | format!("Expected `RESP::Simple` or `RESP::Bulk but got {:?}", other).into(), [INFO] [stdout] 223 | | ) [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 221 ~ Err( [INFO] [stdout] 222 + format!("Expected `RESP::Simple` or `RESP::Bulk but got {:?}", other).into(), [INFO] [stdout] 223 + ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/command/mod.rs:237:17 [INFO] [stdout] | [INFO] [stdout] 237 | / return Err( [INFO] [stdout] 238 | | format!("Expected `RESP::Simple` or `RESP::Bulk but got {:?}", other).into(), [INFO] [stdout] 239 | | ) [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 237 ~ Err( [INFO] [stdout] 238 + format!("Expected `RESP::Simple` or `RESP::Bulk but got {:?}", other).into(), [INFO] [stdout] 239 + ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/command/mod.rs:254:17 [INFO] [stdout] | [INFO] [stdout] 254 | / return Err( [INFO] [stdout] 255 | | format!("Expected `RESP::Simple` or `RESP::Bulk but got {:?}", other).into(), [INFO] [stdout] 256 | | ) [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 254 ~ Err( [INFO] [stdout] 255 + format!("Expected `RESP::Simple` or `RESP::Bulk but got {:?}", other).into(), [INFO] [stdout] 256 + ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/command/wait.rs:203:9 [INFO] [stdout] | [INFO] [stdout] 197 | / let resp = RESP::Array(vec![ [INFO] [stdout] 198 | | RESP::Bulk("WAIT".into()), [INFO] [stdout] 199 | | RESP::Bulk(Bytes::from(value.no_of_replicas.to_string())), [INFO] [stdout] 200 | | RESP::Bulk(Bytes::from(value.timeout.to_string())), [INFO] [stdout] 201 | | ]); [INFO] [stdout] | |___________- unnecessary `let` binding [INFO] [stdout] 202 | [INFO] [stdout] 203 | resp [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 197 ~ [INFO] [stdout] 198 | [INFO] [stdout] 199 ~ RESP::Array(vec![ [INFO] [stdout] 200 + RESP::Bulk("WAIT".into()), [INFO] [stdout] 201 + RESP::Bulk(Bytes::from(value.no_of_replicas.to_string())), [INFO] [stdout] 202 + RESP::Bulk(Bytes::from(value.timeout.to_string())), [INFO] [stdout] 203 + ]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/config.rs:28:11 [INFO] [stdout] | [INFO] [stdout] 28 | while next_arg != None { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: use `Option::is_some()` instead: `next_arg.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] = note: `#[warn(clippy::partialeq_to_none)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/config.rs:30:29 [INFO] [stdout] | [INFO] [stdout] 30 | Some(s) if s == "--port".to_string() => match args.next().unwrap().parse() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `"--port"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] = note: `#[warn(clippy::cmp_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/config.rs:36:29 [INFO] [stdout] | [INFO] [stdout] 36 | Some(s) if s == "--replicaof".to_string() => match args.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `"--replicaof"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/config.rs:43:29 [INFO] [stdout] | [INFO] [stdout] 43 | Some(s) if s == "--dir".to_string() => match args.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `"--dir"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/config.rs:49:29 [INFO] [stdout] | [INFO] [stdout] 49 | Some(s) if s == "--dbfilename".to_string() => match args.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `"--dbfilename"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty doc comment [INFO] [stdout] --> src/connection.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | /// [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider removing or filling it [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_docs [INFO] [stdout] = note: `#[warn(clippy::empty_docs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/command/mod.rs:126:35 [INFO] [stdout] | [INFO] [stdout] 126 | Set(cmd) => cmd.apply(&db, dst).await, [INFO] [stdout] | ^^^ help: change this to: `db` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/command/mod.rs:127:36 [INFO] [stdout] | [INFO] [stdout] 127 | Incr(cmd) => cmd.apply(&db, dst).await, [INFO] [stdout] | ^^^ help: change this to: `db` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/command/mod.rs:128:35 [INFO] [stdout] | [INFO] [stdout] 128 | Get(cmd) => cmd.apply(&db, dst).await, [INFO] [stdout] | ^^^ help: change this to: `db` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/command/mod.rs:129:36 [INFO] [stdout] | [INFO] [stdout] 129 | Keys(cmd) => cmd.apply(&db, dst).await, [INFO] [stdout] | ^^^ help: change this to: `db` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/command/mod.rs:130:36 [INFO] [stdout] | [INFO] [stdout] 130 | Type(cmd) => cmd.apply(&db, dst).await, [INFO] [stdout] | ^^^ help: change this to: `db` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/command/mod.rs:131:36 [INFO] [stdout] | [INFO] [stdout] 131 | Info(cmd) => cmd.apply(&db, config).await, [INFO] [stdout] | ^^^ help: change this to: `db` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/connection.rs:126:17 [INFO] [stdout] | [INFO] [stdout] 126 | return Ok(Some((resp, len))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 126 - return Ok(Some((resp, len))); [INFO] [stdout] 126 + Ok(Some((resp, len))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/connection.rs:130:25 [INFO] [stdout] | [INFO] [stdout] 130 | Err(err) => return Err(err.into()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 130 - Err(err) => return Err(err.into()), [INFO] [stdout] 130 + Err(err) => Err(err.into()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/command/mod.rs:133:37 [INFO] [stdout] | [INFO] [stdout] 133 | PSync(cmd) => cmd.apply(&db, dst).await, [INFO] [stdout] | ^^^ help: change this to: `db` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/command/mod.rs:135:36 [INFO] [stdout] | [INFO] [stdout] 135 | XAdd(cmd) => cmd.apply(&db).await, [INFO] [stdout] | ^^^ help: change this to: `db` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/connection.rs:124:37 [INFO] [stdout] | [INFO] [stdout] 124 | self.buffer.advance(len as usize); [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `len` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/command/mod.rs:136:38 [INFO] [stdout] | [INFO] [stdout] 136 | XRange(cmd) => cmd.apply(&db).await, [INFO] [stdout] | ^^^ help: change this to: `db` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/command/mod.rs:137:37 [INFO] [stdout] | [INFO] [stdout] 137 | XRead(cmd) => cmd.apply(&db).await, [INFO] [stdout] | ^^^ help: change this to: `db` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/command/mod.rs:169:9 [INFO] [stdout] | [INFO] [stdout] 169 | / match self { [INFO] [stdout] 170 | | Command::Set(_) => true, [INFO] [stdout] 171 | | _ => false, [INFO] [stdout] 172 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 169 - match self { [INFO] [stdout] 170 - Command::Set(_) => true, [INFO] [stdout] 171 - _ => false, [INFO] [stdout] 172 - } [INFO] [stdout] 169 + matches!(self, Command::Set(_)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/command/mod.rs:176:9 [INFO] [stdout] | [INFO] [stdout] 176 | / match self { [INFO] [stdout] 177 | | Command::Set(_) => true, [INFO] [stdout] 178 | | _ => false, [INFO] [stdout] 179 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 176 - match self { [INFO] [stdout] 177 - Command::Set(_) => true, [INFO] [stdout] 178 - _ => false, [INFO] [stdout] 179 - } [INFO] [stdout] 176 + matches!(self, Command::Set(_)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `next` can be confused for the standard trait method `std::iter::Iterator::next` [INFO] [stdout] --> src/command/mod.rs:206:5 [INFO] [stdout] | [INFO] [stdout] 206 | / pub fn next(&mut self) -> Result { [INFO] [stdout] 207 | | self.inner.next().ok_or(RespReaderError::EndOfStream) [INFO] [stdout] 208 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::iter::Iterator` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] = note: `#[warn(clippy::should_implement_trait)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/command/mod.rs:221:17 [INFO] [stdout] | [INFO] [stdout] 221 | / return Err( [INFO] [stdout] 222 | | format!("Expected `RESP::Simple` or `RESP::Bulk but got {:?}", other).into(), [INFO] [stdout] 223 | | ) [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 221 ~ Err( [INFO] [stdout] 222 + format!("Expected `RESP::Simple` or `RESP::Bulk but got {:?}", other).into(), [INFO] [stdout] 223 + ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/command/mod.rs:237:17 [INFO] [stdout] | [INFO] [stdout] 237 | / return Err( [INFO] [stdout] 238 | | format!("Expected `RESP::Simple` or `RESP::Bulk but got {:?}", other).into(), [INFO] [stdout] 239 | | ) [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 237 ~ Err( [INFO] [stdout] 238 + format!("Expected `RESP::Simple` or `RESP::Bulk but got {:?}", other).into(), [INFO] [stdout] 239 + ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/command/mod.rs:254:17 [INFO] [stdout] | [INFO] [stdout] 254 | / return Err( [INFO] [stdout] 255 | | format!("Expected `RESP::Simple` or `RESP::Bulk but got {:?}", other).into(), [INFO] [stdout] 256 | | ) [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 254 ~ Err( [INFO] [stdout] 255 + format!("Expected `RESP::Simple` or `RESP::Bulk but got {:?}", other).into(), [INFO] [stdout] 256 + ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/config.rs:28:11 [INFO] [stdout] | [INFO] [stdout] 28 | while next_arg != None { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: use `Option::is_some()` instead: `next_arg.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] = note: `#[warn(clippy::partialeq_to_none)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/config.rs:30:29 [INFO] [stdout] | [INFO] [stdout] 30 | Some(s) if s == "--port".to_string() => match args.next().unwrap().parse() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `"--port"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] = note: `#[warn(clippy::cmp_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/config.rs:36:29 [INFO] [stdout] | [INFO] [stdout] 36 | Some(s) if s == "--replicaof".to_string() => match args.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `"--replicaof"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/connection.rs:198:38 [INFO] [stdout] | [INFO] [stdout] 198 | self.write_frame(&frame).await?; [INFO] [stdout] | ^^^^^^ help: change this to: `frame` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/config.rs:43:29 [INFO] [stdout] | [INFO] [stdout] 43 | Some(s) if s == "--dir".to_string() => match args.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `"--dir"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/config.rs:49:29 [INFO] [stdout] | [INFO] [stdout] 49 | Some(s) if s == "--dbfilename".to_string() => match args.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `"--dbfilename"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `DbGuard` [INFO] [stdout] --> src/db.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | / pub fn new() -> DbGuard { [INFO] [stdout] 50 | | DbGuard { db: Db::new() } [INFO] [stdout] 51 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 47 + impl Default for DbGuard { [INFO] [stdout] 48 + fn default() -> Self { [INFO] [stdout] 49 + Self::new() [INFO] [stdout] 50 + } [INFO] [stdout] 51 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty doc comment [INFO] [stdout] --> src/connection.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | /// [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider removing or filling it [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_docs [INFO] [stdout] = note: `#[warn(clippy::empty_docs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Db` [INFO] [stdout] --> src/db.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 66 | / pub fn new() -> Db { [INFO] [stdout] 67 | | let shared = Arc::new(SharedDb::new()); [INFO] [stdout] ... | [INFO] [stdout] 72 | | Db { inner: shared } [INFO] [stdout] 73 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 64 + impl Default for Db { [INFO] [stdout] 65 + fn default() -> Self { [INFO] [stdout] 66 + Self::new() [INFO] [stdout] 67 + } [INFO] [stdout] 68 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this block may be rewritten with the `?` operator [INFO] [stdout] --> src/db.rs:93:9 [INFO] [stdout] | [INFO] [stdout] 93 | / if entry.is_none() { [INFO] [stdout] 94 | | return None; [INFO] [stdout] 95 | | } [INFO] [stdout] | |_________^ help: replace it with: `entry?;` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/connection.rs:126:17 [INFO] [stdout] | [INFO] [stdout] 126 | return Ok(Some((resp, len))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 126 - return Ok(Some((resp, len))); [INFO] [stdout] 126 + Ok(Some((resp, len))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/connection.rs:130:25 [INFO] [stdout] | [INFO] [stdout] 130 | Err(err) => return Err(err.into()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 130 - Err(err) => return Err(err.into()), [INFO] [stdout] 130 + Err(err) => Err(err.into()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/connection.rs:124:37 [INFO] [stdout] | [INFO] [stdout] 124 | self.buffer.advance(len as usize); [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `len` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u64` which implements the `Copy` trait [INFO] [stdout] --> src/db.rs:152:27 [INFO] [stdout] | [INFO] [stdout] 152 | let repl_offset = state.repl_offset.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `state.repl_offset` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `SharedDb` [INFO] [stdout] --> src/db.rs:161:5 [INFO] [stdout] | [INFO] [stdout] 161 | / pub fn new() -> SharedDb { [INFO] [stdout] 162 | | SharedDb { [INFO] [stdout] 163 | | state: Mutex::new(State { [INFO] [stdout] 164 | | entries: HashMap::new(), [INFO] [stdout] ... | [INFO] [stdout] 170 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 160 + impl Default for SharedDb { [INFO] [stdout] 161 + fn default() -> Self { [INFO] [stdout] 162 + Self::new() [INFO] [stdout] 163 + } [INFO] [stdout] 164 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `expiry` after checking its variant with `is_none` [INFO] [stdout] --> src/rdb/dbfile.rs:47:47 [INFO] [stdout] | [INFO] [stdout] 36 | if expiry.is_none() { [INFO] [stdout] | ------------------- help: try: `if let Some() = expiry` [INFO] [stdout] ... [INFO] [stdout] 47 | let expires_at = if elasped > expiry.unwrap() as u128 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `expiry` after checking its variant with `is_none` [INFO] [stdout] --> src/rdb/dbfile.rs:48:65 [INFO] [stdout] | [INFO] [stdout] 36 | if expiry.is_none() { [INFO] [stdout] | ------------------- help: try: `if let Some() = expiry` [INFO] [stdout] ... [INFO] [stdout] 48 | let diff = Duration::from_millis((elasped - expiry.unwrap() as u128) as u64); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `expiry` after checking its variant with `is_none` [INFO] [stdout] --> src/rdb/dbfile.rs:53:54 [INFO] [stdout] | [INFO] [stdout] 36 | if expiry.is_none() { [INFO] [stdout] | ------------------- help: try: `if let Some() = expiry` [INFO] [stdout] ... [INFO] [stdout] 53 | let diff = Duration::from_millis(expiry.unwrap() - elasped as u64); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `contains()` instead of `iter().any()` is more efficient [INFO] [stdout] --> src/rdb/filter.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | self.databases.iter().any(|&x| x == db) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.databases.contains(&db)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_contains [INFO] [stdout] = note: `#[warn(clippy::manual_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `contains()` instead of `iter().any()` is more efficient [INFO] [stdout] --> src/rdb/filter.rs:53:13 [INFO] [stdout] | [INFO] [stdout] 53 | self.types.iter().any(|x| *x == encoding_type) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.types.contains(&encoding_type)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/connection.rs:198:38 [INFO] [stdout] | [INFO] [stdout] 198 | self.write_frame(&frame).await?; [INFO] [stdout] | ^^^^^^ help: change this to: `frame` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `DbGuard` [INFO] [stdout] --> src/db.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | / pub fn new() -> DbGuard { [INFO] [stdout] 50 | | DbGuard { db: Db::new() } [INFO] [stdout] 51 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 47 + impl Default for DbGuard { [INFO] [stdout] 48 + fn default() -> Self { [INFO] [stdout] 49 + Self::new() [INFO] [stdout] 50 + } [INFO] [stdout] 51 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Db` [INFO] [stdout] --> src/db.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 66 | / pub fn new() -> Db { [INFO] [stdout] 67 | | let shared = Arc::new(SharedDb::new()); [INFO] [stdout] ... | [INFO] [stdout] 72 | | Db { inner: shared } [INFO] [stdout] 73 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 64 + impl Default for Db { [INFO] [stdout] 65 + fn default() -> Self { [INFO] [stdout] 66 + Self::new() [INFO] [stdout] 67 + } [INFO] [stdout] 68 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this block may be rewritten with the `?` operator [INFO] [stdout] --> src/db.rs:93:9 [INFO] [stdout] | [INFO] [stdout] 93 | / if entry.is_none() { [INFO] [stdout] 94 | | return None; [INFO] [stdout] 95 | | } [INFO] [stdout] | |_________^ help: replace it with: `entry?;` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u64` which implements the `Copy` trait [INFO] [stdout] --> src/db.rs:152:27 [INFO] [stdout] | [INFO] [stdout] 152 | let repl_offset = state.repl_offset.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `state.repl_offset` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `SharedDb` [INFO] [stdout] --> src/db.rs:161:5 [INFO] [stdout] | [INFO] [stdout] 161 | / pub fn new() -> SharedDb { [INFO] [stdout] 162 | | SharedDb { [INFO] [stdout] 163 | | state: Mutex::new(State { [INFO] [stdout] 164 | | entries: HashMap::new(), [INFO] [stdout] ... | [INFO] [stdout] 170 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 160 + impl Default for SharedDb { [INFO] [stdout] 161 + fn default() -> Self { [INFO] [stdout] 162 + Self::new() [INFO] [stdout] 163 + } [INFO] [stdout] 164 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/rdb/parser.rs:221:9 [INFO] [stdout] | [INFO] [stdout] 221 | let skip_bytes; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `skip_bytes` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 221 ~ [INFO] [stdout] 222 ~ let skip_bytes = if is_encoded { [INFO] [stdout] 223 ~ match len { [INFO] [stdout] 224 | encoding::INT8 => 1, [INFO] [stdout] ... [INFO] [stdout] 234 | } [INFO] [stdout] 235 ~ } [INFO] [stdout] 236 | } else { [INFO] [stdout] 237 ~ len [INFO] [stdout] 238 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `expiry` after checking its variant with `is_none` [INFO] [stdout] --> src/rdb/dbfile.rs:47:47 [INFO] [stdout] | [INFO] [stdout] 36 | if expiry.is_none() { [INFO] [stdout] | ------------------- help: try: `if let Some() = expiry` [INFO] [stdout] ... [INFO] [stdout] 47 | let expires_at = if elasped > expiry.unwrap() as u128 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `expiry` after checking its variant with `is_none` [INFO] [stdout] --> src/rdb/dbfile.rs:48:65 [INFO] [stdout] | [INFO] [stdout] 36 | if expiry.is_none() { [INFO] [stdout] | ------------------- help: try: `if let Some() = expiry` [INFO] [stdout] ... [INFO] [stdout] 48 | let diff = Duration::from_millis((elasped - expiry.unwrap() as u128) as u64); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `expiry` after checking its variant with `is_none` [INFO] [stdout] --> src/rdb/dbfile.rs:53:54 [INFO] [stdout] | [INFO] [stdout] 36 | if expiry.is_none() { [INFO] [stdout] | ------------------- help: try: `if let Some() = expiry` [INFO] [stdout] ... [INFO] [stdout] 53 | let diff = Duration::from_millis(expiry.unwrap() - elasped as u64); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `contains()` instead of `iter().any()` is more efficient [INFO] [stdout] --> src/rdb/filter.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | self.databases.iter().any(|&x| x == db) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.databases.contains(&db)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_contains [INFO] [stdout] = note: `#[warn(clippy::manual_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `contains()` instead of `iter().any()` is more efficient [INFO] [stdout] --> src/rdb/filter.rs:53:13 [INFO] [stdout] | [INFO] [stdout] 53 | self.types.iter().any(|x| *x == encoding_type) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.types.contains(&encoding_type)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/rdb/parser.rs:221:9 [INFO] [stdout] | [INFO] [stdout] 221 | let skip_bytes; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `skip_bytes` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 221 ~ [INFO] [stdout] 222 ~ let skip_bytes = if is_encoded { [INFO] [stdout] 223 ~ match len { [INFO] [stdout] 224 | encoding::INT8 => 1, [INFO] [stdout] ... [INFO] [stdout] 234 | } [INFO] [stdout] 235 ~ } [INFO] [stdout] 236 | } else { [INFO] [stdout] 237 ~ len [INFO] [stdout] 238 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `config.dir` after checking its variant with `is_some` [INFO] [stdout] --> src/server.rs:128:23 [INFO] [stdout] | [INFO] [stdout] 126 | let rdb = if config.dir.is_some() && config.dbfilename.is_some() { [INFO] [stdout] | -------------------- the check is happening here [INFO] [stdout] 127 | let path = [INFO] [stdout] 128 | Path::new(config.dir.unwrap().as_str()).join(config.dbfilename.unwrap().as_str()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `config.dbfilename` after checking its variant with `is_some` [INFO] [stdout] --> src/server.rs:128:58 [INFO] [stdout] | [INFO] [stdout] 126 | let rdb = if config.dir.is_some() && config.dbfilename.is_some() { [INFO] [stdout] | --------------------------- the check is happening here [INFO] [stdout] 127 | let path = [INFO] [stdout] 128 | Path::new(config.dir.unwrap().as_str()).join(config.dbfilename.unwrap().as_str()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/server.rs:163:9 [INFO] [stdout] | [INFO] [stdout] 163 | let _ = server.listen_to_master(connection.unwrap()).await?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 163 - let _ = server.listen_to_master(connection.unwrap()).await?; [INFO] [stdout] 163 + server.listen_to_master(connection.unwrap()).await?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `config.dir` after checking its variant with `is_some` [INFO] [stdout] --> src/server.rs:128:23 [INFO] [stdout] | [INFO] [stdout] 126 | let rdb = if config.dir.is_some() && config.dbfilename.is_some() { [INFO] [stdout] | -------------------- the check is happening here [INFO] [stdout] 127 | let path = [INFO] [stdout] 128 | Path::new(config.dir.unwrap().as_str()).join(config.dbfilename.unwrap().as_str()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `config.dbfilename` after checking its variant with `is_some` [INFO] [stdout] --> src/server.rs:128:58 [INFO] [stdout] | [INFO] [stdout] 126 | let rdb = if config.dir.is_some() && config.dbfilename.is_some() { [INFO] [stdout] | --------------------------- the check is happening here [INFO] [stdout] 127 | let path = [INFO] [stdout] 128 | Path::new(config.dir.unwrap().as_str()).join(config.dbfilename.unwrap().as_str()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/server.rs:163:9 [INFO] [stdout] | [INFO] [stdout] 163 | let _ = server.listen_to_master(connection.unwrap()).await?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 163 - let _ = server.listen_to_master(connection.unwrap()).await?; [INFO] [stdout] 163 + server.listen_to_master(connection.unwrap()).await?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter_mut()` and will not consume the `Vec` [INFO] [stdout] --> src/server.rs:392:63 [INFO] [stdout] | [INFO] [stdout] 392 | ... for (idx, connection) in replicas.into_iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter_mut` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter_mut()` and will not consume the `Vec` [INFO] [stdout] --> src/server.rs:392:63 [INFO] [stdout] | [INFO] [stdout] 392 | ... for (idx, connection) in replicas.into_iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter_mut` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 15.44s [INFO] running `Command { std: "docker" "inspect" "afc98e6c7952bf11eaf4d7076b284c26b23ce712642db7eaf9ee491db7f389da", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "afc98e6c7952bf11eaf4d7076b284c26b23ce712642db7eaf9ee491db7f389da", kill_on_drop: false }` [INFO] [stdout] afc98e6c7952bf11eaf4d7076b284c26b23ce712642db7eaf9ee491db7f389da