[INFO] cloning repository https://github.com/zimnyjakub/terrible-redis
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/zimnyjakub/terrible-redis" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzimnyjakub%2Fterrible-redis", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzimnyjakub%2Fterrible-redis'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 3c08a9acd47fbf3fb939e00c79b3f3fe574319b6
[INFO] checking zimnyjakub/terrible-redis against master#cb06d12710575a0d7ff71d6fe108f3bcff4f9195 for pr-128425-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzimnyjakub%2Fterrible-redis" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/zimnyjakub/terrible-redis on toolchain cb06d12710575a0d7ff71d6fe108f3bcff4f9195
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cb06d12710575a0d7ff71d6fe108f3bcff4f9195" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/zimnyjakub/terrible-redis
[INFO] finished tweaking git repo https://github.com/zimnyjakub/terrible-redis
[INFO] tweaked toml for git repo https://github.com/zimnyjakub/terrible-redis written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/zimnyjakub/terrible-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" "+cb06d12710575a0d7ff71d6fe108f3bcff4f9195" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded crc64 v2.0.0
[INFO] [stderr]   Downloaded redis v0.28.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+cb06d12710575a0d7ff71d6fe108f3bcff4f9195" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f643efe53af99514f34256f972748dac4add143dcd6b408b5c2e918cc1a72222
[INFO] running `Command { std: "docker" "start" "-a" "f643efe53af99514f34256f972748dac4add143dcd6b408b5c2e918cc1a72222", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f643efe53af99514f34256f972748dac4add143dcd6b408b5c2e918cc1a72222", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f643efe53af99514f34256f972748dac4add143dcd6b408b5c2e918cc1a72222", kill_on_drop: false }`
[INFO] [stdout] f643efe53af99514f34256f972748dac4add143dcd6b408b5c2e918cc1a72222
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+cb06d12710575a0d7ff71d6fe108f3bcff4f9195" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 19634ca7cb5e19d998215fce491f1e31c9de43a33ae610efc9abb04b00cbd2d0
[INFO] running `Command { std: "docker" "start" "-a" "19634ca7cb5e19d998215fce491f1e31c9de43a33ae610efc9abb04b00cbd2d0", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.86
[INFO] [stderr]    Compiling unicode-ident v1.0.12
[INFO] [stderr]     Checking stable_deref_trait v1.2.0
[INFO] [stderr]    Compiling autocfg v1.3.0
[INFO] [stderr]    Compiling libc v0.2.155
[INFO] [stderr]     Checking smallvec v1.13.2
[INFO] [stderr]     Checking litemap v0.7.4
[INFO] [stderr]     Checking writeable v0.5.5
[INFO] [stderr]     Checking icu_locid_transform_data v1.5.0
[INFO] [stderr]     Checking icu_properties_data v1.5.0
[INFO] [stderr]     Checking utf16_iter v1.0.5
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]     Checking utf8parse v0.2.2
[INFO] [stderr]     Checking utf8_iter v1.0.4
[INFO] [stderr]     Checking icu_normalizer_data v1.5.0
[INFO] [stderr]     Checking write16 v1.0.0
[INFO] [stderr]     Checking anstyle-parse v0.2.6
[INFO] [stderr]     Checking colorchoice v1.0.3
[INFO] [stderr]     Checking anstyle v1.0.10
[INFO] [stderr]     Checking bytes v1.6.0
[INFO] [stderr]     Checking is_terminal_polyfill v1.70.1
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking anstyle-query v1.1.2
[INFO] [stderr]     Checking cfg-if v1.0.0
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling thiserror v1.0.61
[INFO] [stderr]     Checking anstream v0.6.18
[INFO] [stderr]     Checking strsim v0.11.1
[INFO] [stderr]     Checking clap_lex v0.7.4
[INFO] [stderr]    Compiling anyhow v1.0.86
[INFO] [stderr]     Checking percent-encoding v2.3.1
[INFO] [stderr]     Checking clap_builder v4.5.27
[INFO] [stderr]     Checking socket2 v0.5.7
[INFO] [stderr]     Checking form_urlencoded v1.2.1
[INFO] [stderr]     Checking signal-hook-registry v1.4.2
[INFO] [stderr]    Compiling quote v1.0.36
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking mio v0.8.11
[INFO] [stderr]     Checking num_cpus v1.16.0
[INFO] [stderr]    Compiling syn v2.0.69
[INFO] [stderr]     Checking memchr v2.7.4
[INFO] [stderr]     Checking pin-project-lite v0.2.14
[INFO] [stderr]     Checking arc-swap v1.7.1
[INFO] [stderr]     Checking itoa v1.0.14
[INFO] [stderr]     Checking crc64 v2.0.0
[INFO] [stderr]     Checking sha1_smol v1.0.1
[INFO] [stderr]     Checking ryu v1.0.18
[INFO] [stderr]     Checking combine v4.6.7
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]    Compiling synstructure v0.13.1
[INFO] [stderr]    Compiling zerofrom-derive v0.1.5
[INFO] [stderr]    Compiling yoke-derive v0.7.5
[INFO] [stderr]    Compiling zerovec-derive v0.10.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling icu_provider_macros v1.5.0
[INFO] [stderr]    Compiling clap_derive v4.5.28
[INFO] [stderr]    Compiling tokio-macros v2.3.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.61
[INFO] [stderr]     Checking tokio v1.38.0
[INFO] [stderr]     Checking zerofrom v0.1.5
[INFO] [stderr]     Checking yoke v0.7.5
[INFO] [stderr]     Checking zerovec v0.10.4
[INFO] [stderr]     Checking clap v4.5.28
[INFO] [stderr]     Checking tinystr v0.7.6
[INFO] [stderr]     Checking icu_collections v1.5.0
[INFO] [stderr]     Checking icu_locid v1.5.0
[INFO] [stderr]     Checking icu_provider v1.5.0
[INFO] [stderr]     Checking icu_locid_transform v1.5.0
[INFO] [stderr]     Checking icu_properties v1.5.1
[INFO] [stderr]     Checking redis-starter-rust v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: value assigned to `content` is never read
[INFO] [stdout]   --> src/rdb.rs:84:17
[INFO] [stdout]    |
[INFO] [stdout] 84 |         let mut content = Vec::new();
[INFO] [stdout]    |                 ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `RdbError` is more private than the item `RedisDatabase::read_contents`
[INFO] [stdout]   --> src/rdb.rs:96:5
[INFO] [stdout]    |
[INFO] [stdout] 96 |     pub fn read_contents(&mut self, data: Vec<u8>) -> Result<Vec<(RdbDataType, String)>, RdbError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `RedisDatabase::read_contents` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `RdbError` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/rdb.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | enum RdbError {
[INFO] [stdout]    | ^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TerribleRedis` is never constructed
[INFO] [stdout]   --> src/main.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | struct TerribleRedis {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `run` are never used
[INFO] [stdout]   --> src/main.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | impl TerribleRedis {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 64 |     pub fn new(parser: RESP) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub async fn run(&self) {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get` is never used
[INFO] [stdout]   --> src/memory.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait Get {
[INFO] [stdout]    |           --- method in this trait
[INFO] [stdout] 12 |     async fn get(&self, key: &str) -> Option<String>;
[INFO] [stdout]    |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAGIC` is never used
[INFO] [stdout]  --> src/rdb.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const MAGIC: &[u8] = b"REDIS0011";
[INFO] [stdout]   |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `METADATA_SUBSECTION_START` is never used
[INFO] [stdout]  --> src/rdb.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const METADATA_SUBSECTION_START: &[u8] = &[0xFA];
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `METADATA_REDIS_VER` is never used
[INFO] [stdout]  --> src/rdb.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const METADATA_REDIS_VER: &[u8] = b"redis-ver";
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DATA_SUBSECTION_START` is never used
[INFO] [stdout]   --> src/rdb.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const DATA_SUBSECTION_START: &[u8] = &[0xFE];
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FILE_END` is never used
[INFO] [stdout]   --> src/rdb.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const FILE_END: &[u8] = &[0xFF];
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAB` is never used
[INFO] [stdout]   --> src/rdb.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const TAB: &[u8] = &[0x09];
[INFO] [stdout]    |       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ACK` is never used
[INFO] [stdout]   --> src/rdb.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const ACK: &[u8] = &[0x06];
[INFO] [stdout]    |       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DB_START` is never used
[INFO] [stdout]   --> src/rdb.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const DB_START: &[u8] = &[0xFE];
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RESIZEDB` is never used
[INFO] [stdout]   --> src/rdb.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const RESIZEDB: &[u8] = &[0xFB];
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DB_ENTRY_EXPIRE_MILLISECONDS` is never used
[INFO] [stdout]   --> src/rdb.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const DB_ENTRY_EXPIRE_MILLISECONDS: &[u8] = &[0xFC];
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DB_ENTRY_EXPIRE_SECONDS` is never used
[INFO] [stdout]   --> src/rdb.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const DB_ENTRY_EXPIRE_SECONDS: &[u8] = &[0xFD];
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FILE_END_INDICATOR` is never used
[INFO] [stdout]   --> src/rdb.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const FILE_END_INDICATOR: &[u8] = &[0xFF];
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TYPE_STRING` is never used
[INFO] [stdout]   --> src/rdb.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const TYPE_STRING: &[u8] = &[0x00];
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/rdb.rs:27:19
[INFO] [stdout]    |
[INFO] [stdout] 27 |     InvalidFormat(String),
[INFO] [stdout]    |     ------------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RdbError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 27 -     InvalidFormat(String),
[INFO] [stdout] 27 +     InvalidFormat(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/rdb.rs:28:23
[INFO] [stdout]    |
[INFO] [stdout] 28 |     NotImplementedYet(u8),
[INFO] [stdout]    |     ----------------- ^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RdbError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 28 -     NotImplementedYet(u8),
[INFO] [stdout] 28 +     NotImplementedYet(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `InvalidHeader` is never constructed
[INFO] [stdout]   --> src/rdb.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | enum RdbError {
[INFO] [stdout]    |      -------- variant in this enum
[INFO] [stdout] 26 |     InvalidHeader,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RdbError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `create`, `is_header_valid`, `close_data_calculate_checksum`, `save_to_disk`, and `store_string` are never used
[INFO] [stdout]    --> src/rdb.rs:63:12
[INFO] [stdout]     |
[INFO] [stdout] 54  | impl RedisDatabase {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 63  |     pub fn create(redis_version: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     fn is_header_valid(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn close_data_calculate_checksum(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn save_to_disk(&self) -> std::io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn store_string(&mut self, key: &str, value: &str) -> std::io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RESP` is never constructed
[INFO] [stdout]  --> src/resp.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct RESP {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Command`, `Ping`, `Echo`, `Set`, `Get`, and `Config` are never constructed
[INFO] [stdout]   --> src/resp.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub enum RESPCommand {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] 15 |     Command(String),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 16 |     Ping,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 17 |     Echo(String),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 18 |     Set(String, String, Option<String>, Option<String>),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 19 |     Get(String),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 20 |     Config(String, String)
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RESPCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/resp.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl RESP {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 24 |     pub fn new(storage: InMemoryStore, config: InMemoryStore) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub async fn pop(&mut self) -> String {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     fn resp_bulk_string(&self, value: &str) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     fn resp_array(&self, args: Vec<&str>) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     fn resp_ok(&self) -> String {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 94 |     fn resp_null(&self) -> String {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 98 |     pub fn parse_input(&mut self, input: String) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking icu_normalizer v1.5.0
[INFO] [stderr]     Checking idna_adapter v1.2.0
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]     Checking redis v0.28.1
[INFO] [stdout] warning: value assigned to `content` is never read
[INFO] [stdout]   --> src/rdb.rs:84:17
[INFO] [stdout]    |
[INFO] [stdout] 84 |         let mut content = Vec::new();
[INFO] [stdout]    |                 ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `RdbError` is more private than the item `RedisDatabase::read_contents`
[INFO] [stdout]   --> src/rdb.rs:96:5
[INFO] [stdout]    |
[INFO] [stdout] 96 |     pub fn read_contents(&mut self, data: Vec<u8>) -> Result<Vec<(RdbDataType, String)>, RdbError> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `RedisDatabase::read_contents` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `RdbError` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/rdb.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | enum RdbError {
[INFO] [stdout]    | ^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TerribleRedis` is never constructed
[INFO] [stdout]   --> src/main.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | struct TerribleRedis {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `run` are never used
[INFO] [stdout]   --> src/main.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | impl TerribleRedis {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 64 |     pub fn new(parser: RESP) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub async fn run(&self) {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get` is never used
[INFO] [stdout]   --> src/memory.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait Get {
[INFO] [stdout]    |           --- method in this trait
[INFO] [stdout] 12 |     async fn get(&self, key: &str) -> Option<String>;
[INFO] [stdout]    |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DATA_SUBSECTION_START` is never used
[INFO] [stdout]   --> src/rdb.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const DATA_SUBSECTION_START: &[u8] = &[0xFE];
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DB_ENTRY_EXPIRE_MILLISECONDS` is never used
[INFO] [stdout]   --> src/rdb.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const DB_ENTRY_EXPIRE_MILLISECONDS: &[u8] = &[0xFC];
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DB_ENTRY_EXPIRE_SECONDS` is never used
[INFO] [stdout]   --> src/rdb.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const DB_ENTRY_EXPIRE_SECONDS: &[u8] = &[0xFD];
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FILE_END_INDICATOR` is never used
[INFO] [stdout]   --> src/rdb.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const FILE_END_INDICATOR: &[u8] = &[0xFF];
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TYPE_STRING` is never used
[INFO] [stdout]   --> src/rdb.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const TYPE_STRING: &[u8] = &[0x00];
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/rdb.rs:27:19
[INFO] [stdout]    |
[INFO] [stdout] 27 |     InvalidFormat(String),
[INFO] [stdout]    |     ------------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RdbError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 27 -     InvalidFormat(String),
[INFO] [stdout] 27 +     InvalidFormat(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/rdb.rs:28:23
[INFO] [stdout]    |
[INFO] [stdout] 28 |     NotImplementedYet(u8),
[INFO] [stdout]    |     ----------------- ^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RdbError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 28 -     NotImplementedYet(u8),
[INFO] [stdout] 28 +     NotImplementedYet(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `InvalidHeader` is never constructed
[INFO] [stdout]   --> src/rdb.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | enum RdbError {
[INFO] [stdout]    |      -------- variant in this enum
[INFO] [stdout] 26 |     InvalidHeader,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RdbError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `save_to_disk` and `store_string` are never used
[INFO] [stdout]    --> src/rdb.rs:154:12
[INFO] [stdout]     |
[INFO] [stdout] 54  | impl RedisDatabase {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn save_to_disk(&self) -> std::io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn store_string(&mut self, key: &str, value: &str) -> std::io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RESP` is never constructed
[INFO] [stdout]  --> src/resp.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct RESP {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Command`, `Ping`, `Echo`, `Set`, `Get`, and `Config` are never constructed
[INFO] [stdout]   --> src/resp.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub enum RESPCommand {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] 15 |     Command(String),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 16 |     Ping,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 17 |     Echo(String),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 18 |     Set(String, String, Option<String>, Option<String>),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 19 |     Get(String),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 20 |     Config(String, String)
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RESPCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/resp.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl RESP {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 24 |     pub fn new(storage: InMemoryStore, config: InMemoryStore) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub async fn pop(&mut self) -> String {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     fn resp_bulk_string(&self, value: &str) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     fn resp_array(&self, args: Vec<&str>) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     fn resp_ok(&self) -> String {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 94 |     fn resp_null(&self) -> String {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 98 |     pub fn parse_input(&mut self, input: String) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 43.92s
[INFO] running `Command { std: "docker" "inspect" "19634ca7cb5e19d998215fce491f1e31c9de43a33ae610efc9abb04b00cbd2d0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "19634ca7cb5e19d998215fce491f1e31c9de43a33ae610efc9abb04b00cbd2d0", kill_on_drop: false }`
[INFO] [stdout] 19634ca7cb5e19d998215fce491f1e31c9de43a33ae610efc9abb04b00cbd2d0
