[INFO] cloning repository https://github.com/kevinlmadison/kv-store-redis [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kevinlmadison/kv-store-redis" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkevinlmadison%2Fkv-store-redis", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkevinlmadison%2Fkv-store-redis'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] d4f630620ccb0bce3b8a51109b9d4c0b7590d288 [INFO] checking kevinlmadison/kv-store-redis against master#e08b80c0fb7667bdcd040761891701e576c42ec8 for pr-129021 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkevinlmadison%2Fkv-store-redis" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/kevinlmadison/kv-store-redis on toolchain e08b80c0fb7667bdcd040761891701e576c42ec8 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e08b80c0fb7667bdcd040761891701e576c42ec8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/kevinlmadison/kv-store-redis [INFO] finished tweaking git repo https://github.com/kevinlmadison/kv-store-redis [INFO] tweaked toml for git repo https://github.com/kevinlmadison/kv-store-redis written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/kevinlmadison/kv-store-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" "+e08b80c0fb7667bdcd040761891701e576c42ec8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [ERROR] error running command: no output for 300 seconds [ERROR] this task or one of its parent failed! [ERROR] no output for 300 seconds [ERROR] note: run with `RUST_BACKTRACE=1` to display a backtrace. [INFO] checking kevinlmadison/kv-store-redis against try#f781a78d815e6a304bf6061b8a8fa69d7ce8dfd5 for pr-129021 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkevinlmadison%2Fkv-store-redis" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/kevinlmadison/kv-store-redis on toolchain f781a78d815e6a304bf6061b8a8fa69d7ce8dfd5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f781a78d815e6a304bf6061b8a8fa69d7ce8dfd5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/kevinlmadison/kv-store-redis [INFO] finished tweaking git repo https://github.com/kevinlmadison/kv-store-redis [INFO] tweaked toml for git repo https://github.com/kevinlmadison/kv-store-redis written to /workspace/builds/worker-5-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/kevinlmadison/kv-store-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" "+f781a78d815e6a304bf6061b8a8fa69d7ce8dfd5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [ERROR] error running command: no output for 300 seconds [INFO] checking kevinlmadison/kv-store-redis against try#f781a78d815e6a304bf6061b8a8fa69d7ce8dfd5 for pr-129021 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkevinlmadison%2Fkv-store-redis" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/kevinlmadison/kv-store-redis on toolchain f781a78d815e6a304bf6061b8a8fa69d7ce8dfd5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f781a78d815e6a304bf6061b8a8fa69d7ce8dfd5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/kevinlmadison/kv-store-redis [INFO] finished tweaking git repo https://github.com/kevinlmadison/kv-store-redis [INFO] tweaked toml for git repo https://github.com/kevinlmadison/kv-store-redis written to /workspace/builds/worker-5-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/kevinlmadison/kv-store-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" "+f781a78d815e6a304bf6061b8a8fa69d7ce8dfd5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded clap_derive v4.4.0 [INFO] [stderr] Downloaded clap_builder v4.4.0 [INFO] [stderr] Downloaded clap v4.4.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+f781a78d815e6a304bf6061b8a8fa69d7ce8dfd5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 0c4965f0a47d81181c6c1cb9ddf90cedb0842ec28537ce9abe9be6412dc67a45 [INFO] running `Command { std: "docker" "start" "-a" "0c4965f0a47d81181c6c1cb9ddf90cedb0842ec28537ce9abe9be6412dc67a45", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "0c4965f0a47d81181c6c1cb9ddf90cedb0842ec28537ce9abe9be6412dc67a45", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0c4965f0a47d81181c6c1cb9ddf90cedb0842ec28537ce9abe9be6412dc67a45", kill_on_drop: false }` [INFO] [stdout] 0c4965f0a47d81181c6c1cb9ddf90cedb0842ec28537ce9abe9be6412dc67a45 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+f781a78d815e6a304bf6061b8a8fa69d7ce8dfd5" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d9e3e1b371dc4b892ef956b7354678f387697dc4943ff18a765fd458f21915c7 [INFO] running `Command { std: "docker" "start" "-a" "d9e3e1b371dc4b892ef956b7354678f387697dc4943ff18a765fd458f21915c7", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.79 [INFO] [stderr] Compiling libc v0.2.153 [INFO] [stderr] Checking utf8parse v0.2.1 [INFO] [stderr] Compiling parking_lot_core v0.9.9 [INFO] [stderr] Checking scopeguard v1.2.0 [INFO] [stderr] Checking colorchoice v1.0.0 [INFO] [stderr] Checking anstyle v1.0.6 [INFO] [stderr] Checking smallvec v1.13.1 [INFO] [stderr] Checking anstyle-query v1.0.2 [INFO] [stderr] Checking clap_lex v0.5.0 [INFO] [stderr] Compiling thiserror v1.0.58 [INFO] [stderr] Compiling anyhow v1.0.81 [INFO] [stderr] Compiling lock_api v0.4.11 [INFO] [stderr] Checking strsim v0.10.0 [INFO] [stderr] Checking either v1.10.0 [INFO] [stderr] Checking once_cell v1.19.0 [INFO] [stderr] Checking bytes v1.5.0 [INFO] [stderr] Checking anstyle-parse v0.2.3 [INFO] [stderr] Checking anstream v0.5.0 [INFO] [stderr] Checking itertools v0.12.1 [INFO] [stderr] Checking clap_builder v4.4.0 [INFO] [stderr] Compiling quote v1.0.35 [INFO] [stderr] Checking socket2 v0.5.6 [INFO] [stderr] Checking mio v0.8.11 [INFO] [stderr] Checking signal-hook-registry v1.4.1 [INFO] [stderr] Checking num_cpus v1.16.0 [INFO] [stderr] Compiling syn v2.0.52 [INFO] [stderr] Checking parking_lot v0.12.1 [INFO] [stderr] Compiling tokio-macros v2.2.0 [INFO] [stderr] Compiling clap_derive v4.4.0 [INFO] [stderr] Compiling thiserror-impl v1.0.58 [INFO] [stderr] Checking tokio v1.36.0 [INFO] [stderr] Checking clap v4.4.0 [INFO] [stderr] Checking redis-starter-rust v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] error[E0425]: cannot find value `host` in this scope [INFO] [stdout] --> src/main.rs:59:23 [INFO] [stdout] | [INFO] [stdout] 59 | let _ = handshake(host, port, &args.port).await.unwrap(); [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `port` in this scope [INFO] [stdout] --> src/main.rs:59:29 [INFO] [stdout] | [INFO] [stdout] 59 | let _ = handshake(host, port, &args.port).await.unwrap(); [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `host` in this scope [INFO] [stdout] --> src/main.rs:59:23 [INFO] [stdout] | [INFO] [stdout] 59 | let _ = handshake(host, port, &args.port).await.unwrap(); [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `port` in this scope [INFO] [stdout] --> src/main.rs:59:29 [INFO] [stdout] | [INFO] [stdout] 59 | let _ = handshake(host, port, &args.port).await.unwrap(); [INFO] [stdout] | ^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Result` and `bail` [INFO] [stdout] --> src/main.rs:1:14 [INFO] [stdout] | [INFO] [stdout] 1 | use anyhow::{bail, Context, Result}; [INFO] [stdout] | ^^^^ ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Result` and `bail` [INFO] [stdout] --> src/main.rs:1:14 [INFO] [stdout] | [INFO] [stdout] 1 | use anyhow::{bail, Context, Result}; [INFO] [stdout] | ^^^^ ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/main.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/main.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AsyncReadExt`, `AsyncWriteExt`, `TcpListener`, and `TcpStream` [INFO] [stdout] --> src/main.rs:8:10 [INFO] [stdout] | [INFO] [stdout] 8 | io::{AsyncReadExt, AsyncWriteExt}, [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] 9 | net::{TcpListener, TcpStream}, [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `thread` and `time` [INFO] [stdout] --> src/main.rs:12:11 [INFO] [stdout] | [INFO] [stdout] 12 | use std::{thread, time}; [INFO] [stdout] | ^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AsyncReadExt`, `AsyncWriteExt`, `TcpListener`, and `TcpStream` [INFO] [stdout] --> src/main.rs:8:10 [INFO] [stdout] | [INFO] [stdout] 8 | io::{AsyncReadExt, AsyncWriteExt}, [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] 9 | net::{TcpListener, TcpStream}, [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Context` [INFO] [stdout] --> src/command.rs:2:20 [INFO] [stdout] | [INFO] [stdout] 2 | use anyhow::{bail, Context, Result}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `thread` and `time` [INFO] [stdout] --> src/main.rs:12:11 [INFO] [stdout] | [INFO] [stdout] 12 | use std::{thread, time}; [INFO] [stdout] | ^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Context`, `Result`, and `bail` [INFO] [stdout] --> src/flags.rs:1:14 [INFO] [stdout] | [INFO] [stdout] 1 | use anyhow::{bail, Context, Result}; [INFO] [stdout] | ^^^^ ^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Context` [INFO] [stdout] --> src/command.rs:2:20 [INFO] [stdout] | [INFO] [stdout] 2 | use anyhow::{bail, Context, Result}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `itertools::Itertools` [INFO] [stdout] --> src/flags.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use itertools::Itertools; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Context`, `Result`, and `bail` [INFO] [stdout] --> src/flags.rs:1:14 [INFO] [stdout] | [INFO] [stdout] 1 | use anyhow::{bail, Context, Result}; [INFO] [stdout] | ^^^^ ^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/info.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `itertools::Itertools` [INFO] [stdout] --> src/flags.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use itertools::Itertools; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::info::*` [INFO] [stdout] --> src/replication.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::info::*; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/response.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/info.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::num::ParseIntError` [INFO] [stdout] --> src/response.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::num::ParseIntError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::info::*` [INFO] [stdout] --> src/replication.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::info::*; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::flags::*` [INFO] [stdout] --> src/server.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::flags::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/response.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `itertools::Itertools` [INFO] [stdout] --> src/server.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use itertools::Itertools; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::num::ParseIntError` [INFO] [stdout] --> src/response.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::num::ParseIntError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `command::*` [INFO] [stdout] --> src/main.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | use command::*; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::flags::*` [INFO] [stdout] --> src/server.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::flags::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `frame::*` [INFO] [stdout] --> src/main.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | use frame::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `itertools::Itertools` [INFO] [stdout] --> src/server.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use itertools::Itertools; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `response::*` [INFO] [stdout] --> src/main.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | use response::*; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `command::*` [INFO] [stdout] --> src/main.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | use command::*; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `frame::*` [INFO] [stdout] --> src/main.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | use frame::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `response::*` [INFO] [stdout] --> src/main.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | use response::*; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/server.rs:161:48 [INFO] [stdout] | [INFO] [stdout] 161 | let _ = replicate(frame_c, &server_info).await; [INFO] [stdout] | --------- ^^^^^^^^^^^^ expected `&Arc>>`, found `&Arc>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this function are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected reference `&Arc>>` [INFO] [stdout] found reference `&Arc>` [INFO] [stdout] note: function defined here [INFO] [stdout] --> src/replication.rs:13:14 [INFO] [stdout] | [INFO] [stdout] 13 | pub async fn replicate(frame: Frame, streams: &StreamVec) { [INFO] [stdout] | ^^^^^^^^^ ------------------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/server.rs:161:48 [INFO] [stdout] | [INFO] [stdout] 161 | let _ = replicate(frame_c, &server_info).await; [INFO] [stdout] | --------- ^^^^^^^^^^^^ expected `&Arc>>`, found `&Arc>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this function are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected reference `&Arc>>` [INFO] [stdout] found reference `&Arc>` [INFO] [stdout] note: function defined here [INFO] [stdout] --> src/replication.rs:13:14 [INFO] [stdout] | [INFO] [stdout] 13 | pub async fn replicate(frame: Frame, streams: &StreamVec) { [INFO] [stdout] | ^^^^^^^^^ ------------------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/response.rs:37:28 [INFO] [stdout] | [INFO] [stdout] 37 | let Some(val) = db.get(key) else { [INFO] [stdout] | --- ^^^- help: try using a conversion method: `.to_string()` [INFO] [stdout] | | | [INFO] [stdout] | | expected `String`, found `&String` [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/server.rs:54:12 [INFO] [stdout] | [INFO] [stdout] 54 | pub fn get(self, key: String) -> Result { [INFO] [stdout] | ^^^ ----------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/response.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | let Some(val) = db.get(key) else { [INFO] [stdout] | ^^^^^^^^^ ----------- this expression has type `Result` [INFO] [stdout] | | [INFO] [stdout] | expected `Result`, found `Option<_>` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Result` [INFO] [stdout] found enum `Option<_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/response.rs:37:28 [INFO] [stdout] | [INFO] [stdout] 37 | let Some(val) = db.get(key) else { [INFO] [stdout] | --- ^^^- help: try using a conversion method: `.to_string()` [INFO] [stdout] | | | [INFO] [stdout] | | expected `String`, found `&String` [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/server.rs:54:12 [INFO] [stdout] | [INFO] [stdout] 54 | pub fn get(self, key: String) -> Result { [INFO] [stdout] | ^^^ ----------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/response.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | let Some(val) = db.get(key) else { [INFO] [stdout] | ^^^^^^^^^ ----------- this expression has type `Result` [INFO] [stdout] | | [INFO] [stdout] | expected `Result`, found `Option<_>` [INFO] [stdout] | [INFO] [stdout] = note: expected enum `Result` [INFO] [stdout] found enum `Option<_>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/response.rs:66:23 [INFO] [stdout] | [INFO] [stdout] 66 | let set_val = DbEntry::new(val); [INFO] [stdout] | ^^^^^^^^^^^^----- argument #2 of type `Option` is missing [INFO] [stdout] | [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> src/server.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn new(s: String, ex: Option) -> Self { [INFO] [stdout] | ^^^ --------- -------------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 66 | let set_val = DbEntry::new(val, /* Option */); [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0061]: this function takes 2 arguments but 1 argument was supplied [INFO] [stdout] --> src/response.rs:66:23 [INFO] [stdout] | [INFO] [stdout] 66 | let set_val = DbEntry::new(val); [INFO] [stdout] | ^^^^^^^^^^^^----- argument #2 of type `Option` is missing [INFO] [stdout] | [INFO] [stdout] note: associated function defined here [INFO] [stdout] --> src/server.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn new(s: String, ex: Option) -> Self { [INFO] [stdout] | ^^^ --------- -------------------- [INFO] [stdout] help: provide the argument [INFO] [stdout] | [INFO] [stdout] 66 | let set_val = DbEntry::new(val, /* Option */); [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no function or associated item named `new_with_expiry` found for struct `server::DbEntry` in the current scope [INFO] [stdout] --> src/response.rs:77:32 [INFO] [stdout] | [INFO] [stdout] 77 | let set_val = DbEntry::new_with_expiry(val, Duration::from_millis(dur)); [INFO] [stdout] | ^^^^^^^^^^^^^^^ function or associated item not found in `DbEntry` [INFO] [stdout] | [INFO] [stdout] ::: src/server.rs:19:1 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct DbEntry { [INFO] [stdout] | ------------------ function or associated item `new_with_expiry` not found for this struct [INFO] [stdout] | [INFO] [stdout] note: if you're trying to build a new `server::DbEntry`, consider using `server::DbEntry::new` which returns `server::DbEntry` [INFO] [stdout] --> src/server.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn new(s: String, ex: Option) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: no function or associated item named `new_with_expiry` found for struct `server::DbEntry` in the current scope [INFO] [stdout] --> src/response.rs:77:32 [INFO] [stdout] | [INFO] [stdout] 77 | let set_val = DbEntry::new_with_expiry(val, Duration::from_millis(dur)); [INFO] [stdout] | ^^^^^^^^^^^^^^^ function or associated item not found in `DbEntry` [INFO] [stdout] | [INFO] [stdout] ::: src/server.rs:19:1 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct DbEntry { [INFO] [stdout] | ------------------ function or associated item `new_with_expiry` not found for this struct [INFO] [stdout] | [INFO] [stdout] note: if you're trying to build a new `server::DbEntry`, consider using `server::DbEntry::new` which returns `server::DbEntry` [INFO] [stdout] --> src/server.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn new(s: String, ex: Option) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/response.rs:103:37 [INFO] [stdout] | [INFO] [stdout] 103 | info_db.insert(key.clone(), val); [INFO] [stdout] | ------ ^^^ expected `DbEntry`, found `String` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/server.rs:49:12 [INFO] [stdout] | [INFO] [stdout] 49 | pub fn insert(mut self, key: String, val: DbEntry) -> Result<()> { [INFO] [stdout] | ^^^^^^ ------------ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/response.rs:103:37 [INFO] [stdout] | [INFO] [stdout] 103 | info_db.insert(key.clone(), val); [INFO] [stdout] | ------ ^^^ expected `DbEntry`, found `String` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/server.rs:49:12 [INFO] [stdout] | [INFO] [stdout] 49 | pub fn insert(mut self, key: String, val: DbEntry) -> Result<()> { [INFO] [stdout] | ^^^^^^ ------------ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/response.rs:128:39 [INFO] [stdout] | [INFO] [stdout] 128 | let rv_id: &str = info_db.get("master_replid").unwrap(); [INFO] [stdout] | --- ^^^^^^^^^^^^^^^- help: try using a conversion method: `.to_string()` [INFO] [stdout] | | | [INFO] [stdout] | | expected `String`, found `&str` [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/server.rs:54:12 [INFO] [stdout] | [INFO] [stdout] 54 | pub fn get(self, key: String) -> Result { [INFO] [stdout] | ^^^ ----------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/response.rs:128:39 [INFO] [stdout] | [INFO] [stdout] 128 | let rv_id: &str = info_db.get("master_replid").unwrap(); [INFO] [stdout] | --- ^^^^^^^^^^^^^^^- help: try using a conversion method: `.to_string()` [INFO] [stdout] | | | [INFO] [stdout] | | expected `String`, found `&str` [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/server.rs:54:12 [INFO] [stdout] | [INFO] [stdout] 54 | pub fn get(self, key: String) -> Result { [INFO] [stdout] | ^^^ ----------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/response.rs:128:27 [INFO] [stdout] | [INFO] [stdout] 128 | let rv_id: &str = info_db.get("master_replid").unwrap(); [INFO] [stdout] | ---- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `&str`, found `DbEntry` [INFO] [stdout] | | [INFO] [stdout] | expected due to this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/response.rs:128:27 [INFO] [stdout] | [INFO] [stdout] 128 | let rv_id: &str = info_db.get("master_replid").unwrap(); [INFO] [stdout] | ---- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `&str`, found `DbEntry` [INFO] [stdout] | | [INFO] [stdout] | expected due to this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/response.rs:129:43 [INFO] [stdout] | [INFO] [stdout] 129 | let rv_offset: &str = info_db.get("master_repl_offset").unwrap(); [INFO] [stdout] | --- ^^^^^^^^^^^^^^^^^^^^- help: try using a conversion method: `.to_string()` [INFO] [stdout] | | | [INFO] [stdout] | | expected `String`, found `&str` [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/server.rs:54:12 [INFO] [stdout] | [INFO] [stdout] 54 | pub fn get(self, key: String) -> Result { [INFO] [stdout] | ^^^ ----------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/response.rs:129:43 [INFO] [stdout] | [INFO] [stdout] 129 | let rv_offset: &str = info_db.get("master_repl_offset").unwrap(); [INFO] [stdout] | --- ^^^^^^^^^^^^^^^^^^^^- help: try using a conversion method: `.to_string()` [INFO] [stdout] | | | [INFO] [stdout] | | expected `String`, found `&str` [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> src/server.rs:54:12 [INFO] [stdout] | [INFO] [stdout] 54 | pub fn get(self, key: String) -> Result { [INFO] [stdout] | ^^^ ----------- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/response.rs:129:31 [INFO] [stdout] | [INFO] [stdout] 129 | let rv_offset: &str = info_db.get("master_repl_offset").unwrap(); [INFO] [stdout] | ---- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `&str`, found `DbEntry` [INFO] [stdout] | | [INFO] [stdout] | expected due to this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/response.rs:129:31 [INFO] [stdout] | [INFO] [stdout] 129 | let rv_offset: &str = info_db.get("master_repl_offset").unwrap(); [INFO] [stdout] | ---- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `&str`, found `DbEntry` [INFO] [stdout] | | [INFO] [stdout] | expected due to this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/info.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 55 | let mut info_db = info_db.lock().unwrap(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/info.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 55 | let mut info_db = info_db.lock().unwrap(); [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] error[E0507]: cannot move out of dereference of `std::sync::MutexGuard<'_, server::Database>` [INFO] [stdout] --> src/info.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | info_db.insert(k.to_owned(), db_entry); [INFO] [stdout] | ^^^^^^^ move occurs because value has type `server::Database`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 59 | info_db.clone().insert(k.to_owned(), db_entry); [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of dereference of `std::sync::MutexGuard<'_, server::Database>` [INFO] [stdout] --> src/info.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | info_db.insert(k.to_owned(), db_entry); [INFO] [stdout] | ^^^^^^^ move occurs because value has type `server::Database`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 59 | info_db.clone().insert(k.to_owned(), db_entry); [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of dereference of `std::sync::MutexGuard<'_, server::Database>` [INFO] [stdout] --> src/info.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | info_db.insert("master_host".to_owned(), db_entry); [INFO] [stdout] | ^^^^^^^ move occurs because value has type `server::Database`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 69 | info_db.clone().insert("master_host".to_owned(), db_entry); [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of dereference of `std::sync::MutexGuard<'_, server::Database>` [INFO] [stdout] --> src/info.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | info_db.insert("master_host".to_owned(), db_entry); [INFO] [stdout] | ^^^^^^^ move occurs because value has type `server::Database`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 69 | info_db.clone().insert("master_host".to_owned(), db_entry); [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of dereference of `std::sync::MutexGuard<'_, server::Database>` [INFO] [stdout] --> src/info.rs:73:9 [INFO] [stdout] | [INFO] [stdout] 73 | info_db.insert("master_port".to_owned(), db_entry); [INFO] [stdout] | ^^^^^^^ move occurs because value has type `server::Database`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 73 | info_db.clone().insert("master_port".to_owned(), db_entry); [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of dereference of `std::sync::MutexGuard<'_, server::Database>` [INFO] [stdout] --> src/info.rs:73:9 [INFO] [stdout] | [INFO] [stdout] 73 | info_db.insert("master_port".to_owned(), db_entry); [INFO] [stdout] | ^^^^^^^ move occurs because value has type `server::Database`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 73 | info_db.clone().insert("master_port".to_owned(), db_entry); [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of dereference of `std::sync::MutexGuard<'_, server::Database>` [INFO] [stdout] --> src/info.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 77 | info_db.insert("tcp_port".to_owned(), db_entry); [INFO] [stdout] | ^^^^^^^ move occurs because value has type `server::Database`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 77 | info_db.clone().insert("tcp_port".to_owned(), db_entry); [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of dereference of `std::sync::MutexGuard<'_, server::Database>` [INFO] [stdout] --> src/info.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 77 | info_db.insert("tcp_port".to_owned(), db_entry); [INFO] [stdout] | ^^^^^^^ move occurs because value has type `server::Database`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 77 | info_db.clone().insert("tcp_port".to_owned(), db_entry); [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of dereference of `std::sync::MutexGuard<'_, server::Database>` [INFO] [stdout] --> src/info.rs:126:42 [INFO] [stdout] | [INFO] [stdout] 126 | k.to_owned() + ":" + info_db.get(k.to_owned()).unwrap().value().as_str() + "\n" [INFO] [stdout] | ^^^^^^^ move occurs because value has type `server::Database`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 126 | k.to_owned() + ":" + info_db.clone().get(k.to_owned()).unwrap().value().as_str() + "\n" [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of dereference of `std::sync::MutexGuard<'_, server::Database>` [INFO] [stdout] --> src/info.rs:126:42 [INFO] [stdout] | [INFO] [stdout] 126 | k.to_owned() + ":" + info_db.get(k.to_owned()).unwrap().value().as_str() + "\n" [INFO] [stdout] | ^^^^^^^ move occurs because value has type `server::Database`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 126 | k.to_owned() + ":" + info_db.clone().get(k.to_owned()).unwrap().value().as_str() + "\n" [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of dereference of `std::sync::MutexGuard<'_, server::Database>` [INFO] [stdout] --> src/info.rs:149:42 [INFO] [stdout] | [INFO] [stdout] 149 | k.to_owned() + ":" + info_db.get(k.to_owned()).unwrap().value().as_str() + "\n" [INFO] [stdout] | ^^^^^^^ move occurs because value has type `server::Database`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 149 | k.to_owned() + ":" + info_db.clone().get(k.to_owned()).unwrap().value().as_str() + "\n" [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of dereference of `std::sync::MutexGuard<'_, server::Database>` [INFO] [stdout] --> src/info.rs:149:42 [INFO] [stdout] | [INFO] [stdout] 149 | k.to_owned() + ":" + info_db.get(k.to_owned()).unwrap().value().as_str() + "\n" [INFO] [stdout] | ^^^^^^^ move occurs because value has type `server::Database`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 149 | k.to_owned() + ":" + info_db.clone().get(k.to_owned()).unwrap().value().as_str() + "\n" [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of dereference of `std::sync::MutexGuard<'_, server::Database>` [INFO] [stdout] --> src/info.rs:164:22 [INFO] [stdout] | [INFO] [stdout] 164 | let rv = info_db.get_all().unwrap(); [INFO] [stdout] | ^^^^^^^ --------- value moved due to this method call [INFO] [stdout] | | [INFO] [stdout] | move occurs because value has type `server::Database`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] note: `server::Database::get_all` takes ownership of the receiver `self`, which moves value [INFO] [stdout] --> src/server.rs:62:20 [INFO] [stdout] | [INFO] [stdout] 62 | pub fn get_all(self) -> Result> { [INFO] [stdout] | ^^^^ [INFO] [stdout] help: you can `clone` the value and consume it, but this might not be your desired behavior [INFO] [stdout] | [INFO] [stdout] 164 | let rv = ::clone(&info_db).get_all().unwrap(); [INFO] [stdout] | ++++++++++++++++++++++++++++++++++++ + [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 164 | let rv = info_db.clone().get_all().unwrap(); [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0507]: cannot move out of dereference of `std::sync::MutexGuard<'_, server::Database>` [INFO] [stdout] --> src/info.rs:164:22 [INFO] [stdout] | [INFO] [stdout] 164 | let rv = info_db.get_all().unwrap(); [INFO] [stdout] | ^^^^^^^ --------- value moved due to this method call [INFO] [stdout] | | [INFO] [stdout] | move occurs because value has type `server::Database`, which does not implement the `Copy` trait [INFO] [stdout] | [INFO] [stdout] note: `server::Database::get_all` takes ownership of the receiver `self`, which moves value [INFO] [stdout] --> src/server.rs:62:20 [INFO] [stdout] | [INFO] [stdout] 62 | pub fn get_all(self) -> Result> { [INFO] [stdout] | ^^^^ [INFO] [stdout] help: you can `clone` the value and consume it, but this might not be your desired behavior [INFO] [stdout] | [INFO] [stdout] 164 | let rv = ::clone(&info_db).get_all().unwrap(); [INFO] [stdout] | ++++++++++++++++++++++++++++++++++++ + [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 164 | let rv = info_db.clone().get_all().unwrap(); [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 19 previous errors; 17 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0061, E0308, E0425, E0507, E0599. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0061`. [INFO] [stdout] [INFO] [stdout] error: aborting due to 19 previous errors; 17 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0061, E0308, E0425, E0507, E0599. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0061`. [INFO] [stdout] [INFO] [stderr] error: could not compile `redis-starter-rust` (bin "redis-starter-rust" test) due to 20 previous errors; 17 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: could not compile `redis-starter-rust` (bin "redis-starter-rust") due to 20 previous errors; 17 warnings emitted [INFO] running `Command { std: "docker" "inspect" "d9e3e1b371dc4b892ef956b7354678f387697dc4943ff18a765fd458f21915c7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d9e3e1b371dc4b892ef956b7354678f387697dc4943ff18a765fd458f21915c7", kill_on_drop: false }` [INFO] [stdout] d9e3e1b371dc4b892ef956b7354678f387697dc4943ff18a765fd458f21915c7