[INFO] fetching crate websocket-stream 0.0.5... [INFO] linting websocket-stream-0.0.5 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate websocket-stream 0.0.5 into /workspace/builds/worker-3-tc1/source [INFO] started tweaking crates.io crate websocket-stream 0.0.5 [INFO] finished tweaking crates.io crate websocket-stream 0.0.5 [INFO] tweaked toml for crates.io crate websocket-stream 0.0.5 written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate websocket-stream 0.0.5 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] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 4 packages to latest compatible versions [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] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] dcb4a0e7e6455631ed7479b9fec42243712e28feab52ee22e6e729fa9cfd5b1b [INFO] running `Command { std: "docker" "start" "-a" "dcb4a0e7e6455631ed7479b9fec42243712e28feab52ee22e6e729fa9cfd5b1b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "dcb4a0e7e6455631ed7479b9fec42243712e28feab52ee22e6e729fa9cfd5b1b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "dcb4a0e7e6455631ed7479b9fec42243712e28feab52ee22e6e729fa9cfd5b1b", kill_on_drop: false }` [INFO] [stdout] dcb4a0e7e6455631ed7479b9fec42243712e28feab52ee22e6e729fa9cfd5b1b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] 4b9b65631e32741ceedf5f389b2a9c783231b900a52dd9991c4c8e26c472c4fe [INFO] running `Command { std: "docker" "start" "-a" "4b9b65631e32741ceedf5f389b2a9c783231b900a52dd9991c4c8e26c472c4fe", kill_on_drop: false }` [INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024` [INFO] [stderr] Checking websocket-stream v0.0.5 (/opt/rustwide/workdir) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:130:21 [INFO] [stdout] | [INFO] [stdout] 130 | stream: stream, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `stream` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:149:25 [INFO] [stdout] | [INFO] [stdout] 149 | stream: stream, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `stream` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:130:21 [INFO] [stdout] | [INFO] [stdout] 130 | stream: stream, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `stream` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:149:25 [INFO] [stdout] | [INFO] [stdout] 149 | stream: stream, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `stream` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:226:13 [INFO] [stdout] | [INFO] [stdout] 226 | / return match errno { [INFO] [stdout] 227 | | libc::EACCES => Err(SetFdError::EACCES), [INFO] [stdout] 228 | | libc::EAGAIN => Err(SetFdError::EAGAIN), [INFO] [stdout] 229 | | libc::EBADF => Err(SetFdError::EBADF), [INFO] [stdout] ... | [INFO] [stdout] 237 | | _ => panic!("Unexpected errno: {}", errno) [INFO] [stdout] 238 | | }; [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] 226 ~ match errno { [INFO] [stdout] 227 + libc::EACCES => Err(SetFdError::EACCES), [INFO] [stdout] 228 + libc::EAGAIN => Err(SetFdError::EAGAIN), [INFO] [stdout] 229 + libc::EBADF => Err(SetFdError::EBADF), [INFO] [stdout] 230 + libc::EDEADLK => Err(SetFdError::EDEADLK), [INFO] [stdout] 231 + libc::EFAULT => Err(SetFdError::EFAULT), [INFO] [stdout] 232 + libc::EINTR => Err(SetFdError::EINTR), [INFO] [stdout] 233 + libc::EINVAL => Err(SetFdError::EINVAL), [INFO] [stdout] 234 + libc::EMFILE => Err(SetFdError::EMFILE), [INFO] [stdout] 235 + libc::ENOLCK => Err(SetFdError::ENOLCK), [INFO] [stdout] 236 + libc::EPERM => Err(SetFdError::EPERM), [INFO] [stdout] 237 + _ => panic!("Unexpected errno: {}", errno) [INFO] [stdout] 238 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:257:13 [INFO] [stdout] | [INFO] [stdout] 257 | / return match errno { [INFO] [stdout] 258 | | libc::EACCES => Err(SetFdError::EACCES), [INFO] [stdout] 259 | | libc::EAGAIN => Err(SetFdError::EAGAIN), [INFO] [stdout] 260 | | libc::EBADF => Err(SetFdError::EBADF), [INFO] [stdout] ... | [INFO] [stdout] 268 | | _ => panic!("Unexpected errno: {}", errno) [INFO] [stdout] 269 | | }; [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] 257 ~ match errno { [INFO] [stdout] 258 + libc::EACCES => Err(SetFdError::EACCES), [INFO] [stdout] 259 + libc::EAGAIN => Err(SetFdError::EAGAIN), [INFO] [stdout] 260 + libc::EBADF => Err(SetFdError::EBADF), [INFO] [stdout] 261 + libc::EDEADLK => Err(SetFdError::EDEADLK), [INFO] [stdout] 262 + libc::EFAULT => Err(SetFdError::EFAULT), [INFO] [stdout] 263 + libc::EINTR => Err(SetFdError::EINTR), [INFO] [stdout] 264 + libc::EINVAL => Err(SetFdError::EINVAL), [INFO] [stdout] 265 + libc::EMFILE => Err(SetFdError::EMFILE), [INFO] [stdout] 266 + libc::ENOLCK => Err(SetFdError::ENOLCK), [INFO] [stdout] 267 + libc::EPERM => Err(SetFdError::EPERM), [INFO] [stdout] 268 + _ => panic!("Unexpected errno: {}", errno) [INFO] [stdout] 269 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:294:16 [INFO] [stdout] | [INFO] [stdout] 294 | if !result.is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `result.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 boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:308:16 [INFO] [stdout] | [INFO] [stdout] 308 | if !result.is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `result.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] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:330:20 [INFO] [stdout] | [INFO] [stdout] 330 | if !result.is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `result.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] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:365:16 [INFO] [stdout] | [INFO] [stdout] 365 | if !result.is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `result.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] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:393:16 [INFO] [stdout] | [INFO] [stdout] 393 | if !result.is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `result.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] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `result` after checking its variant with `is_ok` [INFO] [stdout] --> src/lib.rs:295:28 [INFO] [stdout] | [INFO] [stdout] 294 | if !result.is_ok() { [INFO] [stdout] | -------------- the check is happening here [INFO] [stdout] 295 | return Err(result.unwrap_err()); [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] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `result` after checking its variant with `is_ok` [INFO] [stdout] --> src/lib.rs:309:28 [INFO] [stdout] | [INFO] [stdout] 308 | if !result.is_ok() { [INFO] [stdout] | -------------- the check is happening here [INFO] [stdout] 309 | return Err(result.unwrap_err()); [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_err` on `result` after checking its variant with `is_ok` [INFO] [stdout] --> src/lib.rs:331:31 [INFO] [stdout] | [INFO] [stdout] 330 | if !result.is_ok() { [INFO] [stdout] | -------------- the check is happening here [INFO] [stdout] 331 | let err = result.unwrap_err(); [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_err` on `result` after checking its variant with `is_ok` [INFO] [stdout] --> src/lib.rs:366:27 [INFO] [stdout] | [INFO] [stdout] 365 | if !result.is_ok() { [INFO] [stdout] | -------------- the check is happening here [INFO] [stdout] 366 | let err = result.unwrap_err(); [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_err` on `result` after checking its variant with `is_ok` [INFO] [stdout] --> src/lib.rs:394:27 [INFO] [stdout] | [INFO] [stdout] 393 | if !result.is_ok() { [INFO] [stdout] | -------------- the check is happening here [INFO] [stdout] 394 | let err = result.unwrap_err(); [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: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/lib.rs:332:21 [INFO] [stdout] | [INFO] [stdout] 332 | / match err { [INFO] [stdout] 333 | | ReadError::EAGAIN => { [INFO] [stdout] 334 | | // Update bytes remaining [INFO] [stdout] 335 | | self.buffer.remaining = (self.msg.payload_len - [INFO] [stdout] ... | [INFO] [stdout] 338 | | _ => { } [INFO] [stdout] 339 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 332 ~ if let ReadError::EAGAIN = err { [INFO] [stdout] 333 + // Update bytes remaining [INFO] [stdout] 334 + self.buffer.remaining = (self.msg.payload_len - [INFO] [stdout] 335 + self.buffer.buf.len() as u64) as usize; [INFO] [stdout] 336 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/lib.rs:367:17 [INFO] [stdout] | [INFO] [stdout] 367 | / match err { [INFO] [stdout] 368 | | ReadError::EAGAIN => { [INFO] [stdout] 369 | | // Update bytes remaining [INFO] [stdout] 370 | | self.buffer.remaining = 4 - self.buffer.buf.len(); [INFO] [stdout] 371 | | } [INFO] [stdout] 372 | | _ => { } [INFO] [stdout] 373 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 367 ~ if let ReadError::EAGAIN = err { [INFO] [stdout] 368 + // Update bytes remaining [INFO] [stdout] 369 + self.buffer.remaining = 4 - self.buffer.buf.len(); [INFO] [stdout] 370 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/lib.rs:395:17 [INFO] [stdout] | [INFO] [stdout] 395 | / match err { [INFO] [stdout] 396 | | ReadError::EAGAIN => { [INFO] [stdout] 397 | | // Update bytes remaining [INFO] [stdout] 398 | | self.buffer.remaining = (self.msg.payload_len - [INFO] [stdout] ... | [INFO] [stdout] 401 | | _ => { } [INFO] [stdout] 402 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 395 ~ if let ReadError::EAGAIN = err { [INFO] [stdout] 396 + // Update bytes remaining [INFO] [stdout] 397 + self.buffer.remaining = (self.msg.payload_len - [INFO] [stdout] 398 + self.buffer.buf.len() as u64) as usize; [INFO] [stdout] 399 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/lib.rs:435:24 [INFO] [stdout] | [INFO] [stdout] 435 | let valid_op = match op_code { [INFO] [stdout] | ________________________^ [INFO] [stdout] 436 | | OP_CONTINUATION => true, [INFO] [stdout] 437 | | OP_TEXT => true, [INFO] [stdout] 438 | | OP_BINARY => true, [INFO] [stdout] ... | [INFO] [stdout] 442 | | _ => false [INFO] [stdout] 443 | | }; [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] 435 - let valid_op = match op_code { [INFO] [stdout] 436 - OP_CONTINUATION => true, [INFO] [stdout] 437 - OP_TEXT => true, [INFO] [stdout] 438 - OP_BINARY => true, [INFO] [stdout] 439 - OP_CLOSE => true, [INFO] [stdout] 440 - OP_PING => true, [INFO] [stdout] 441 - OP_PONG => true, [INFO] [stdout] 442 - _ => false [INFO] [stdout] 443 - }; [INFO] [stdout] 435 + let valid_op = matches!(op_code, OP_CONTINUATION | OP_TEXT | OP_BINARY | OP_CLOSE | OP_PING | OP_PONG); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lib.rs:476:21 [INFO] [stdout] | [INFO] [stdout] 476 | len = len | (self.buffer.buf[1] as u16); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `len |= (self.buffer.buf[1] as u16)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lib.rs:480:21 [INFO] [stdout] | [INFO] [stdout] 480 | len = len | ((self.buffer.buf[1] as u64) << 48); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `len |= ((self.buffer.buf[1] as u64) << 48)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lib.rs:481:21 [INFO] [stdout] | [INFO] [stdout] 481 | len = len | ((self.buffer.buf[2] as u64) << 40); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `len |= ((self.buffer.buf[2] as u64) << 40)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lib.rs:482:21 [INFO] [stdout] | [INFO] [stdout] 482 | len = len | ((self.buffer.buf[3] as u64) << 32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `len |= ((self.buffer.buf[3] as u64) << 32)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lib.rs:483:21 [INFO] [stdout] | [INFO] [stdout] 483 | len = len | ((self.buffer.buf[4] as u64) << 24); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `len |= ((self.buffer.buf[4] as u64) << 24)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lib.rs:484:21 [INFO] [stdout] | [INFO] [stdout] 484 | len = len | ((self.buffer.buf[5] as u64) << 16); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `len |= ((self.buffer.buf[5] as u64) << 16)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lib.rs:485:21 [INFO] [stdout] | [INFO] [stdout] 485 | len = len | ((self.buffer.buf[6] as u64) << 8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `len |= ((self.buffer.buf[6] as u64) << 8)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lib.rs:486:21 [INFO] [stdout] | [INFO] [stdout] 486 | len = len | (self.buffer.buf[7] as u64); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `len |= (self.buffer.buf[7] as u64)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`isize` -> `isize`) [INFO] [stdout] --> src/lib.rs:557:21 [INFO] [stdout] | [INFO] [stdout] 557 | for x in 0..num_read as isize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `num_read` [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: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/lib.rs:569:50 [INFO] [stdout] | [INFO] [stdout] 569 | pub fn write(&mut self, op: OpCode, payload: &mut Vec) -> WriteResult { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 569 - pub fn write(&mut self, op: OpCode, payload: &mut Vec) -> WriteResult { [INFO] [stdout] 569 + pub fn write(&mut self, op: OpCode, payload: &mut [u8]) -> WriteResult { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lib.rs:630:36 [INFO] [stdout] | [INFO] [stdout] 630 | fn write_bytes(&mut self, buf: &Vec) -> SysWriteResult { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 630 - fn write_bytes(&mut self, buf: &Vec) -> SysWriteResult { [INFO] [stdout] 630 + fn write_bytes(&mut self, buf: &[u8]) -> SysWriteResult { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:226:13 [INFO] [stdout] | [INFO] [stdout] 226 | / return match errno { [INFO] [stdout] 227 | | libc::EACCES => Err(SetFdError::EACCES), [INFO] [stdout] 228 | | libc::EAGAIN => Err(SetFdError::EAGAIN), [INFO] [stdout] 229 | | libc::EBADF => Err(SetFdError::EBADF), [INFO] [stdout] ... | [INFO] [stdout] 237 | | _ => panic!("Unexpected errno: {}", errno) [INFO] [stdout] 238 | | }; [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] 226 ~ match errno { [INFO] [stdout] 227 + libc::EACCES => Err(SetFdError::EACCES), [INFO] [stdout] 228 + libc::EAGAIN => Err(SetFdError::EAGAIN), [INFO] [stdout] 229 + libc::EBADF => Err(SetFdError::EBADF), [INFO] [stdout] 230 + libc::EDEADLK => Err(SetFdError::EDEADLK), [INFO] [stdout] 231 + libc::EFAULT => Err(SetFdError::EFAULT), [INFO] [stdout] 232 + libc::EINTR => Err(SetFdError::EINTR), [INFO] [stdout] 233 + libc::EINVAL => Err(SetFdError::EINVAL), [INFO] [stdout] 234 + libc::EMFILE => Err(SetFdError::EMFILE), [INFO] [stdout] 235 + libc::ENOLCK => Err(SetFdError::ENOLCK), [INFO] [stdout] 236 + libc::EPERM => Err(SetFdError::EPERM), [INFO] [stdout] 237 + _ => panic!("Unexpected errno: {}", errno) [INFO] [stdout] 238 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:257:13 [INFO] [stdout] | [INFO] [stdout] 257 | / return match errno { [INFO] [stdout] 258 | | libc::EACCES => Err(SetFdError::EACCES), [INFO] [stdout] 259 | | libc::EAGAIN => Err(SetFdError::EAGAIN), [INFO] [stdout] 260 | | libc::EBADF => Err(SetFdError::EBADF), [INFO] [stdout] ... | [INFO] [stdout] 268 | | _ => panic!("Unexpected errno: {}", errno) [INFO] [stdout] 269 | | }; [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] 257 ~ match errno { [INFO] [stdout] 258 + libc::EACCES => Err(SetFdError::EACCES), [INFO] [stdout] 259 + libc::EAGAIN => Err(SetFdError::EAGAIN), [INFO] [stdout] 260 + libc::EBADF => Err(SetFdError::EBADF), [INFO] [stdout] 261 + libc::EDEADLK => Err(SetFdError::EDEADLK), [INFO] [stdout] 262 + libc::EFAULT => Err(SetFdError::EFAULT), [INFO] [stdout] 263 + libc::EINTR => Err(SetFdError::EINTR), [INFO] [stdout] 264 + libc::EINVAL => Err(SetFdError::EINVAL), [INFO] [stdout] 265 + libc::EMFILE => Err(SetFdError::EMFILE), [INFO] [stdout] 266 + libc::ENOLCK => Err(SetFdError::ENOLCK), [INFO] [stdout] 267 + libc::EPERM => Err(SetFdError::EPERM), [INFO] [stdout] 268 + _ => panic!("Unexpected errno: {}", errno) [INFO] [stdout] 269 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:294:16 [INFO] [stdout] | [INFO] [stdout] 294 | if !result.is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `result.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 boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:308:16 [INFO] [stdout] | [INFO] [stdout] 308 | if !result.is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `result.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] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:330:20 [INFO] [stdout] | [INFO] [stdout] 330 | if !result.is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `result.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] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:365:16 [INFO] [stdout] | [INFO] [stdout] 365 | if !result.is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `result.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] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:393:16 [INFO] [stdout] | [INFO] [stdout] 393 | if !result.is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `result.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] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `result` after checking its variant with `is_ok` [INFO] [stdout] --> src/lib.rs:295:28 [INFO] [stdout] | [INFO] [stdout] 294 | if !result.is_ok() { [INFO] [stdout] | -------------- the check is happening here [INFO] [stdout] 295 | return Err(result.unwrap_err()); [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] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `result` after checking its variant with `is_ok` [INFO] [stdout] --> src/lib.rs:309:28 [INFO] [stdout] | [INFO] [stdout] 308 | if !result.is_ok() { [INFO] [stdout] | -------------- the check is happening here [INFO] [stdout] 309 | return Err(result.unwrap_err()); [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_err` on `result` after checking its variant with `is_ok` [INFO] [stdout] --> src/lib.rs:331:31 [INFO] [stdout] | [INFO] [stdout] 330 | if !result.is_ok() { [INFO] [stdout] | -------------- the check is happening here [INFO] [stdout] 331 | let err = result.unwrap_err(); [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_err` on `result` after checking its variant with `is_ok` [INFO] [stdout] --> src/lib.rs:366:27 [INFO] [stdout] | [INFO] [stdout] 365 | if !result.is_ok() { [INFO] [stdout] | -------------- the check is happening here [INFO] [stdout] 366 | let err = result.unwrap_err(); [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_err` on `result` after checking its variant with `is_ok` [INFO] [stdout] --> src/lib.rs:394:27 [INFO] [stdout] | [INFO] [stdout] 393 | if !result.is_ok() { [INFO] [stdout] | -------------- the check is happening here [INFO] [stdout] 394 | let err = result.unwrap_err(); [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: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/lib.rs:332:21 [INFO] [stdout] | [INFO] [stdout] 332 | / match err { [INFO] [stdout] 333 | | ReadError::EAGAIN => { [INFO] [stdout] 334 | | // Update bytes remaining [INFO] [stdout] 335 | | self.buffer.remaining = (self.msg.payload_len - [INFO] [stdout] ... | [INFO] [stdout] 338 | | _ => { } [INFO] [stdout] 339 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 332 ~ if let ReadError::EAGAIN = err { [INFO] [stdout] 333 + // Update bytes remaining [INFO] [stdout] 334 + self.buffer.remaining = (self.msg.payload_len - [INFO] [stdout] 335 + self.buffer.buf.len() as u64) as usize; [INFO] [stdout] 336 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/lib.rs:367:17 [INFO] [stdout] | [INFO] [stdout] 367 | / match err { [INFO] [stdout] 368 | | ReadError::EAGAIN => { [INFO] [stdout] 369 | | // Update bytes remaining [INFO] [stdout] 370 | | self.buffer.remaining = 4 - self.buffer.buf.len(); [INFO] [stdout] 371 | | } [INFO] [stdout] 372 | | _ => { } [INFO] [stdout] 373 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 367 ~ if let ReadError::EAGAIN = err { [INFO] [stdout] 368 + // Update bytes remaining [INFO] [stdout] 369 + self.buffer.remaining = 4 - self.buffer.buf.len(); [INFO] [stdout] 370 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/lib.rs:395:17 [INFO] [stdout] | [INFO] [stdout] 395 | / match err { [INFO] [stdout] 396 | | ReadError::EAGAIN => { [INFO] [stdout] 397 | | // Update bytes remaining [INFO] [stdout] 398 | | self.buffer.remaining = (self.msg.payload_len - [INFO] [stdout] ... | [INFO] [stdout] 401 | | _ => { } [INFO] [stdout] 402 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 395 ~ if let ReadError::EAGAIN = err { [INFO] [stdout] 396 + // Update bytes remaining [INFO] [stdout] 397 + self.buffer.remaining = (self.msg.payload_len - [INFO] [stdout] 398 + self.buffer.buf.len() as u64) as usize; [INFO] [stdout] 399 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/lib.rs:435:24 [INFO] [stdout] | [INFO] [stdout] 435 | let valid_op = match op_code { [INFO] [stdout] | ________________________^ [INFO] [stdout] 436 | | OP_CONTINUATION => true, [INFO] [stdout] 437 | | OP_TEXT => true, [INFO] [stdout] 438 | | OP_BINARY => true, [INFO] [stdout] ... | [INFO] [stdout] 442 | | _ => false [INFO] [stdout] 443 | | }; [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] 435 - let valid_op = match op_code { [INFO] [stdout] 436 - OP_CONTINUATION => true, [INFO] [stdout] 437 - OP_TEXT => true, [INFO] [stdout] 438 - OP_BINARY => true, [INFO] [stdout] 439 - OP_CLOSE => true, [INFO] [stdout] 440 - OP_PING => true, [INFO] [stdout] 441 - OP_PONG => true, [INFO] [stdout] 442 - _ => false [INFO] [stdout] 443 - }; [INFO] [stdout] 435 + let valid_op = matches!(op_code, OP_CONTINUATION | OP_TEXT | OP_BINARY | OP_CLOSE | OP_PING | OP_PONG); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lib.rs:476:21 [INFO] [stdout] | [INFO] [stdout] 476 | len = len | (self.buffer.buf[1] as u16); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `len |= (self.buffer.buf[1] as u16)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lib.rs:480:21 [INFO] [stdout] | [INFO] [stdout] 480 | len = len | ((self.buffer.buf[1] as u64) << 48); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `len |= ((self.buffer.buf[1] as u64) << 48)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lib.rs:481:21 [INFO] [stdout] | [INFO] [stdout] 481 | len = len | ((self.buffer.buf[2] as u64) << 40); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `len |= ((self.buffer.buf[2] as u64) << 40)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lib.rs:482:21 [INFO] [stdout] | [INFO] [stdout] 482 | len = len | ((self.buffer.buf[3] as u64) << 32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `len |= ((self.buffer.buf[3] as u64) << 32)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lib.rs:483:21 [INFO] [stdout] | [INFO] [stdout] 483 | len = len | ((self.buffer.buf[4] as u64) << 24); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `len |= ((self.buffer.buf[4] as u64) << 24)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lib.rs:484:21 [INFO] [stdout] | [INFO] [stdout] 484 | len = len | ((self.buffer.buf[5] as u64) << 16); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `len |= ((self.buffer.buf[5] as u64) << 16)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lib.rs:485:21 [INFO] [stdout] | [INFO] [stdout] 485 | len = len | ((self.buffer.buf[6] as u64) << 8); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `len |= ((self.buffer.buf[6] as u64) << 8)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lib.rs:486:21 [INFO] [stdout] | [INFO] [stdout] 486 | len = len | (self.buffer.buf[7] as u64); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `len |= (self.buffer.buf[7] as u64)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`isize` -> `isize`) [INFO] [stdout] --> src/lib.rs:557:21 [INFO] [stdout] | [INFO] [stdout] 557 | for x in 0..num_read as isize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `num_read` [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: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/lib.rs:569:50 [INFO] [stdout] | [INFO] [stdout] 569 | pub fn write(&mut self, op: OpCode, payload: &mut Vec) -> WriteResult { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 569 - pub fn write(&mut self, op: OpCode, payload: &mut Vec) -> WriteResult { [INFO] [stdout] 569 + pub fn write(&mut self, op: OpCode, payload: &mut [u8]) -> WriteResult { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/lib.rs:630:36 [INFO] [stdout] | [INFO] [stdout] 630 | fn write_bytes(&mut self, buf: &Vec) -> SysWriteResult { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 630 - fn write_bytes(&mut self, buf: &Vec) -> SysWriteResult { [INFO] [stdout] 630 + fn write_bytes(&mut self, buf: &[u8]) -> SysWriteResult { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.34s [INFO] running `Command { std: "docker" "inspect" "4b9b65631e32741ceedf5f389b2a9c783231b900a52dd9991c4c8e26c472c4fe", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4b9b65631e32741ceedf5f389b2a9c783231b900a52dd9991c4c8e26c472c4fe", kill_on_drop: false }` [INFO] [stdout] 4b9b65631e32741ceedf5f389b2a9c783231b900a52dd9991c4c8e26c472c4fe