[INFO] cloning repository https://github.com/lolletsoc/codecrafters_redis [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/lolletsoc/codecrafters_redis" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flolletsoc%2Fcodecrafters_redis", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flolletsoc%2Fcodecrafters_redis'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 7b18d9f8ec466ef8735ae016e76e6c348d5d7ce9 [INFO] checking lolletsoc/codecrafters_redis/7b18d9f8ec466ef8735ae016e76e6c348d5d7ce9 against master#90384941aae4ea38de00e4702b50757e9b882a19 for pr-138340 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flolletsoc%2Fcodecrafters_redis" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/lolletsoc/codecrafters_redis on toolchain 90384941aae4ea38de00e4702b50757e9b882a19 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+90384941aae4ea38de00e4702b50757e9b882a19" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/lolletsoc/codecrafters_redis [INFO] finished tweaking git repo https://github.com/lolletsoc/codecrafters_redis [INFO] tweaked toml for git repo https://github.com/lolletsoc/codecrafters_redis written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/lolletsoc/codecrafters_redis 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" "+90384941aae4ea38de00e4702b50757e9b882a19" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded no_std_io v0.6.0 [INFO] [stderr] Downloaded deku_derive v0.17.0 [INFO] [stderr] Downloaded deku v0.17.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:1680c8fbd8dfb46fcd6d22e546df16ab0e007457dc29fcd9e987cdd5077fd1af" "/opt/rustwide/cargo-home/bin/cargo" "+90384941aae4ea38de00e4702b50757e9b882a19" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 741eeb5a3f693d2a4d15423324e891f2b99acb6368af9c96b4022fbaddae70d6 [INFO] running `Command { std: "docker" "start" "-a" "741eeb5a3f693d2a4d15423324e891f2b99acb6368af9c96b4022fbaddae70d6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "741eeb5a3f693d2a4d15423324e891f2b99acb6368af9c96b4022fbaddae70d6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "741eeb5a3f693d2a4d15423324e891f2b99acb6368af9c96b4022fbaddae70d6", kill_on_drop: false }` [INFO] [stdout] 741eeb5a3f693d2a4d15423324e891f2b99acb6368af9c96b4022fbaddae70d6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:1680c8fbd8dfb46fcd6d22e546df16ab0e007457dc29fcd9e987cdd5077fd1af" "/opt/rustwide/cargo-home/bin/cargo" "+90384941aae4ea38de00e4702b50757e9b882a19" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 0f0e6aeec3daaf855e9c449f1bbc811998ae4b8c13a36a96b0df35e61888248c [INFO] running `Command { std: "docker" "start" "-a" "0f0e6aeec3daaf855e9c449f1bbc811998ae4b8c13a36a96b0df35e61888248c", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.86 [INFO] [stderr] Compiling libc v0.2.155 [INFO] [stderr] Compiling autocfg v1.3.0 [INFO] [stderr] Compiling equivalent v1.0.1 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Compiling ident_case v1.0.1 [INFO] [stderr] Compiling fnv v1.0.7 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling radium v0.7.0 [INFO] [stderr] Compiling toml_datetime v0.6.8 [INFO] [stderr] Compiling winnow v0.6.18 [INFO] [stderr] Checking anstyle-parse v0.2.5 [INFO] [stderr] Checking colorchoice v1.0.2 [INFO] [stderr] Compiling rustversion v1.0.17 [INFO] [stderr] Checking anstyle-query v1.1.1 [INFO] [stderr] Compiling crossbeam-utils v0.8.20 [INFO] [stderr] Checking tap v1.0.1 [INFO] [stderr] Checking anstyle v1.0.8 [INFO] [stderr] Checking memchr v2.7.4 [INFO] [stderr] Checking funty v2.0.0 [INFO] [stderr] Checking wyz v0.5.1 [INFO] [stderr] Checking clap_lex v0.7.2 [INFO] [stderr] Compiling thiserror v1.0.61 [INFO] [stderr] Compiling anyhow v1.0.86 [INFO] [stderr] Checking anstream v0.6.15 [INFO] [stderr] Checking once_cell v1.19.0 [INFO] [stderr] Checking pin-project-lite v0.2.14 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Checking bytes v1.6.0 [INFO] [stderr] Checking base64 v0.22.1 [INFO] [stderr] Checking clap_builder v4.5.15 [INFO] [stderr] Checking bitvec v1.0.1 [INFO] [stderr] Checking no_std_io v0.6.0 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Compiling indexmap v2.5.0 [INFO] [stderr] Compiling syn v2.0.69 [INFO] [stderr] Checking parking_lot_core v0.9.10 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking mio v0.8.11 [INFO] [stderr] Checking num_cpus v1.16.0 [INFO] [stderr] Checking socket2 v0.5.7 [INFO] [stderr] Checking signal-hook-registry v1.4.2 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking dashmap v6.0.1 [INFO] [stderr] Compiling toml_edit v0.22.20 [INFO] [stderr] Compiling proc-macro-crate v3.2.0 [INFO] [stderr] Compiling darling_core v0.20.10 [INFO] [stderr] Compiling zerocopy-derive v0.7.35 [INFO] [stderr] Compiling tokio-macros v2.3.0 [INFO] [stderr] Compiling thiserror-impl v1.0.61 [INFO] [stderr] Compiling clap_derive v4.5.13 [INFO] [stderr] Checking tokio v1.38.0 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Compiling darling_macro v0.20.10 [INFO] [stderr] Compiling darling v0.20.10 [INFO] [stderr] Compiling deku_derive v0.17.0 [INFO] [stderr] Checking rand_core v0.9.0-alpha.2 [INFO] [stderr] Checking ppv-lite86 v0.2.20 [INFO] [stderr] Checking clap v4.5.16 [INFO] [stderr] Checking rand_chacha v0.9.0-alpha.2 [INFO] [stderr] Checking rand v0.9.0-alpha.2 [INFO] [stderr] Checking deku v0.17.0 [INFO] [stderr] Checking redis-starter-rust v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `Sub` [INFO] [stdout] --> src/lib/rdb.rs:5:21 [INFO] [stdout] | [INFO] [stdout] 5 | use std::ops::{Add, Sub}; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::rdb::read_rdb_from_bytes` [INFO] [stdout] --> src/lib/replication.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::rdb::read_rdb_from_bytes; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `dashmap::DashMap` [INFO] [stdout] --> src/lib/replication.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use dashmap::DashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::SystemTime` [INFO] [stdout] --> src/lib/replication.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::time::SystemTime; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BufStream` [INFO] [stdout] --> src/lib/replication.rs:11:31 [INFO] [stdout] | [INFO] [stdout] 11 | use tokio::io::{AsyncReadExt, BufStream}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::sync::Mutex` [INFO] [stdout] --> src/lib/replication.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use tokio::sync::Mutex; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Sub` [INFO] [stdout] --> src/lib/rdb.rs:5:21 [INFO] [stdout] | [INFO] [stdout] 5 | use std::ops::{Add, Sub}; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::rdb::read_rdb_from_bytes` [INFO] [stdout] --> src/lib/replication.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::rdb::read_rdb_from_bytes; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `dashmap::DashMap` [INFO] [stdout] --> src/lib/replication.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use dashmap::DashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::SystemTime` [INFO] [stdout] --> src/lib/replication.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::time::SystemTime; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BufStream` [INFO] [stdout] --> src/lib/replication.rs:11:31 [INFO] [stdout] | [INFO] [stdout] 11 | use tokio::io::{AsyncReadExt, BufStream}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::sync::Mutex` [INFO] [stdout] --> src/lib/replication.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use tokio::sync::Mutex; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `num_replicas` [INFO] [stdout] --> src/lib/processing.rs:33:23 [INFO] [stdout] | [INFO] [stdout] 33 | Command::Wait(num_replicas, timeout) => { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_replicas` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `timeout` [INFO] [stdout] --> src/lib/processing.rs:33:37 [INFO] [stdout] | [INFO] [stdout] 33 | Command::Wait(num_replicas, timeout) => { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timeout` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lib/processing.rs:266:9 [INFO] [stdout] | [INFO] [stdout] 266 | let mut ack = String::new(); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `num_replicas` [INFO] [stdout] --> src/lib/processing.rs:33:23 [INFO] [stdout] | [INFO] [stdout] 33 | Command::Wait(num_replicas, timeout) => { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_replicas` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `timeout` [INFO] [stdout] --> src/lib/processing.rs:33:37 [INFO] [stdout] | [INFO] [stdout] 33 | Command::Wait(num_replicas, timeout) => { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timeout` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lib/processing.rs:266:9 [INFO] [stdout] | [INFO] [stdout] 266 | let mut ack = String::new(); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `header` and `metadata` are never read [INFO] [stdout] --> src/lib/rdb.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 11 | struct RDB { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] 12 | header: Header, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 13 | metadata: Metadata, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RDB` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `rd_version` is never read [INFO] [stdout] --> src/lib/rdb.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 19 | struct Header { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 20 | #[deku(bytes = "4")] [INFO] [stdout] 21 | rd_version: [u8; 4], [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Header` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `start`, `rd_version`, and `values` are never read [INFO] [stdout] --> src/lib/rdb.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 25 | struct Metadata { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 26 | #[deku(until = "|v: &u8| *v == 0xFA")] [INFO] [stdout] 27 | start: Vec, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | rd_version: [u8; 4], [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | values: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Metadata` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `start`, `index`, `resize_db_flag`, `hash_table_size`, and `hash_table_size_with_expiry` are never read [INFO] [stdout] --> src/lib/rdb.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 37 | struct Database { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 38 | #[deku(until = "|v: &u8| *v == 0xFE")] [INFO] [stdout] 39 | start: Vec, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 40 | [INFO] [stdout] 41 | index: u8, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 42 | [INFO] [stdout] 43 | resize_db_flag: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | hash_table_size: EncodedInteger, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | hash_table_size_with_expiry: EncodedInteger, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Database` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `expiring_or_type_flag` is never read [INFO] [stdout] --> src/lib/rdb.rs:58:5 [INFO] [stdout] | [INFO] [stdout] 57 | struct KeyValuePair { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] 58 | expiring_or_type_flag: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `KeyValuePair` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `length` is never read [INFO] [stdout] --> src/lib/rdb.rs:76:5 [INFO] [stdout] | [INFO] [stdout] 74 | struct EncodedInteger { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] 75 | #[deku(reader = "EncodedLength::read_length(deku::reader)")] [INFO] [stdout] 76 | length: u8, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `EncodedInteger` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `length` is never read [INFO] [stdout] --> src/lib/rdb.rs:85:5 [INFO] [stdout] | [INFO] [stdout] 83 | struct EncodedString { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] 84 | #[deku(bytes = "1")] [INFO] [stdout] 85 | length: u8, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `EncodedString` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/lib/processing.rs:221:36 [INFO] [stdout] | [INFO] [stdout] 221 | for command in rx.recv().await { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(for_loops_over_fallibles)]` on by default [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 221 - for command in rx.recv().await { [INFO] [stdout] 221 + while let Some(command) = rx.recv().await { [INFO] [stdout] | [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 221 - for command in rx.recv().await { [INFO] [stdout] 221 + if let Some(command) = rx.recv().await { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `header` and `metadata` are never read [INFO] [stdout] --> src/lib/rdb.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 11 | struct RDB { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] 12 | header: Header, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 13 | metadata: Metadata, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RDB` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `rd_version` is never read [INFO] [stdout] --> src/lib/rdb.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 19 | struct Header { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 20 | #[deku(bytes = "4")] [INFO] [stdout] 21 | rd_version: [u8; 4], [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Header` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `start`, `rd_version`, and `values` are never read [INFO] [stdout] --> src/lib/rdb.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 25 | struct Metadata { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 26 | #[deku(until = "|v: &u8| *v == 0xFA")] [INFO] [stdout] 27 | start: Vec, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | rd_version: [u8; 4], [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | values: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Metadata` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `start`, `index`, `resize_db_flag`, `hash_table_size`, and `hash_table_size_with_expiry` are never read [INFO] [stdout] --> src/lib/rdb.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 37 | struct Database { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 38 | #[deku(until = "|v: &u8| *v == 0xFE")] [INFO] [stdout] 39 | start: Vec, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 40 | [INFO] [stdout] 41 | index: u8, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 42 | [INFO] [stdout] 43 | resize_db_flag: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | hash_table_size: EncodedInteger, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | hash_table_size_with_expiry: EncodedInteger, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Database` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `expiring_or_type_flag` is never read [INFO] [stdout] --> src/lib/rdb.rs:58:5 [INFO] [stdout] | [INFO] [stdout] 57 | struct KeyValuePair { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] 58 | expiring_or_type_flag: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `KeyValuePair` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `length` is never read [INFO] [stdout] --> src/lib/rdb.rs:76:5 [INFO] [stdout] | [INFO] [stdout] 74 | struct EncodedInteger { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] 75 | #[deku(reader = "EncodedLength::read_length(deku::reader)")] [INFO] [stdout] 76 | length: u8, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `EncodedInteger` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `length` is never read [INFO] [stdout] --> src/lib/rdb.rs:85:5 [INFO] [stdout] | [INFO] [stdout] 83 | struct EncodedString { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] 84 | #[deku(bytes = "1")] [INFO] [stdout] 85 | length: u8, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `EncodedString` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AtomicIsize` and `AtomicU64` [INFO] [stdout] --> src/main.rs:7:25 [INFO] [stdout] | [INFO] [stdout] 7 | use std::sync::atomic::{AtomicIsize, AtomicU64, AtomicUsize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/lib/processing.rs:221:36 [INFO] [stdout] | [INFO] [stdout] 221 | for command in rx.recv().await { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(for_loops_over_fallibles)]` on by default [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 221 - for command in rx.recv().await { [INFO] [stdout] 221 + while let Some(command) = rx.recv().await { [INFO] [stdout] | [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 221 - for command in rx.recv().await { [INFO] [stdout] 221 + if let Some(command) = rx.recv().await { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AtomicIsize` and `AtomicU64` [INFO] [stdout] --> src/main.rs:7:25 [INFO] [stdout] | [INFO] [stdout] 7 | use std::sync::atomic::{AtomicIsize, AtomicU64, AtomicUsize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 28.50s [INFO] running `Command { std: "docker" "inspect" "0f0e6aeec3daaf855e9c449f1bbc811998ae4b8c13a36a96b0df35e61888248c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0f0e6aeec3daaf855e9c449f1bbc811998ae4b8c13a36a96b0df35e61888248c", kill_on_drop: false }` [INFO] [stdout] 0f0e6aeec3daaf855e9c449f1bbc811998ae4b8c13a36a96b0df35e61888248c