[INFO] cloning repository https://github.com/doublesevenshop/Raft_By_Rust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/doublesevenshop/Raft_By_Rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdoublesevenshop%2FRaft_By_Rust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdoublesevenshop%2FRaft_By_Rust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 95f1ca8b7fe4a8fd87c0d6baf4a3412998942d1c [INFO] checking doublesevenshop/Raft_By_Rust against master#a33907a7a5381473eec8bcfa0c56e05a856a911c for pr-151539 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdoublesevenshop%2FRaft_By_Rust" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/doublesevenshop/Raft_By_Rust [INFO] removed 0 missing examples [INFO] finished tweaking git repo https://github.com/doublesevenshop/Raft_By_Rust [INFO] tweaked toml for git repo https://github.com/doublesevenshop/Raft_By_Rust written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/doublesevenshop/Raft_By_Rust on toolchain a33907a7a5381473eec8bcfa0c56e05a856a911c [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a33907a7a5381473eec8bcfa0c56e05a856a911c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/doublesevenshop/Raft_By_Rust already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a33907a7a5381473eec8bcfa0c56e05a856a911c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded tonic-build v0.13.1 [INFO] [stderr] Downloaded axum-core v0.5.2 [INFO] [stderr] Downloaded axum v0.8.4 [INFO] [stderr] Downloaded tonic v0.13.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+a33907a7a5381473eec8bcfa0c56e05a856a911c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 2087348b24119026a8ca9e9ac60cfd019a330dd8783d04f2808c3b6120e8b2f4 [INFO] running `Command { std: "docker" "start" "-a" "2087348b24119026a8ca9e9ac60cfd019a330dd8783d04f2808c3b6120e8b2f4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "2087348b24119026a8ca9e9ac60cfd019a330dd8783d04f2808c3b6120e8b2f4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2087348b24119026a8ca9e9ac60cfd019a330dd8783d04f2808c3b6120e8b2f4", kill_on_drop: false }` [INFO] [stdout] 2087348b24119026a8ca9e9ac60cfd019a330dd8783d04f2808c3b6120e8b2f4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+a33907a7a5381473eec8bcfa0c56e05a856a911c" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] c427377ad31c7ca182695f813b1bee40fd1037795905d9f7480e0d3b466d8ab3 [INFO] running `Command { std: "docker" "start" "-a" "c427377ad31c7ca182695f813b1bee40fd1037795905d9f7480e0d3b466d8ab3", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.101 [INFO] [stderr] Compiling libc v0.2.172 [INFO] [stderr] Checking smallvec v1.15.0 [INFO] [stderr] Checking tracing-core v0.1.33 [INFO] [stderr] Compiling rustix v1.0.7 [INFO] [stderr] Compiling anyhow v1.0.98 [INFO] [stderr] Checking hashbrown v0.15.3 [INFO] [stderr] Compiling getrandom v0.3.3 [INFO] [stderr] Compiling prettyplease v0.2.32 [INFO] [stderr] Compiling linux-raw-sys v0.9.4 [INFO] [stderr] Compiling bytes v1.10.1 [INFO] [stderr] Compiling regex-syntax v0.8.5 [INFO] [stderr] Compiling log v0.4.27 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling rustversion v1.0.20 [INFO] [stderr] Compiling zerocopy v0.8.25 [INFO] [stderr] Compiling heck v0.4.1 [INFO] [stderr] Compiling overload v0.1.1 [INFO] [stderr] Compiling nu-ansi-term v0.46.0 [INFO] [stderr] Compiling sharded-slab v0.1.7 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling thread_local v1.1.8 [INFO] [stderr] Compiling indexmap v2.9.0 [INFO] [stderr] Checking matchit v0.8.4 [INFO] [stderr] Checking time v0.3.41 [INFO] [stderr] Compiling serde_json v1.0.140 [INFO] [stderr] Compiling tracing-subscriber v0.3.19 [INFO] [stderr] Checking parking_lot_core v0.9.10 [INFO] [stderr] Checking socket2 v0.5.9 [INFO] [stderr] Checking mio v1.0.3 [INFO] [stderr] Checking signal-hook-registry v1.4.5 [INFO] [stderr] Checking rand_core v0.9.3 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking axum-core v0.5.2 [INFO] [stderr] Compiling regex-automata v0.4.9 [INFO] [stderr] Compiling petgraph v0.6.5 [INFO] [stderr] Checking tempfile v3.20.0 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Compiling regex v1.11.1 [INFO] [stderr] Checking rand v0.9.1 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling tracing-attributes v0.1.28 [INFO] [stderr] Compiling prost-derive v0.13.5 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling pin-project-internal v1.1.10 [INFO] [stderr] Compiling async-trait v0.1.88 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Checking tokio v1.45.0 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Checking pin-project v1.1.10 [INFO] [stderr] Checking tower v0.4.13 [INFO] [stderr] Compiling prost v0.13.5 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking tracing-appender v0.2.3 [INFO] [stderr] Compiling prost-types v0.13.5 [INFO] [stderr] Checking serde v1.0.219 [INFO] [stderr] Compiling prost-build v0.13.5 [INFO] [stderr] Compiling tonic-build v0.13.1 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Compiling KEEP_RUNNING v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Checking tokio-util v0.7.15 [INFO] [stderr] Checking tokio-stream v0.1.17 [INFO] [stderr] Checking h2 v0.4.10 [INFO] [stderr] Checking tower v0.5.2 [INFO] [stderr] Checking axum v0.8.4 [INFO] [stderr] Checking hyper v1.6.0 [INFO] [stderr] Checking hyper-util v0.1.11 [INFO] [stderr] Checking hyper-timeout v0.5.2 [INFO] [stderr] Checking tonic v0.13.1 [INFO] [stdout] warning: unused import: `Mutex as StdMutex` [INFO] [stdout] --> src/raft/consensus.rs:4:22 [INFO] [stdout] | [INFO] [stdout] 4 | use std::sync::{Arc, Mutex as StdMutex}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Instant as StdInstant` [INFO] [stdout] --> src/raft/consensus.rs:5:27 [INFO] [stdout] | [INFO] [stdout] 5 | use std::time::{Duration, Instant as StdInstant}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tonic::server` [INFO] [stdout] --> src/raft/config.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use tonic::server; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `peer` [INFO] [stdout] --> src/raft/config.rs:5:19 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::raft::{peer, proto}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Error` [INFO] [stdout] --> src/raft/config.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::io::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tonic::server` [INFO] [stdout] --> src/raft/peer.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use tonic::server; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ConfigState` [INFO] [stdout] --> src/raft/peer.rs:2:33 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::raft::config::{self, ConfigState}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Instant` [INFO] [stdout] --> src/raft/timer.rs:4:27 [INFO] [stdout] | [INFO] [stdout] 4 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Read` [INFO] [stdout] --> src/raft/log.rs:6:37 [INFO] [stdout] | [INFO] [stdout] 6 | use std::io::{BufReader, BufWriter, Read, Write}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::clone` [INFO] [stdout] --> src/raft/metadata.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::clone; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Write` [INFO] [stdout] --> src/raft/metadata.rs:5:21 [INFO] [stdout] | [INFO] [stdout] 5 | use std::io::{Read, Write}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Mutex` [INFO] [stdout] --> src/raft/metadata.rs:7:22 [INFO] [stdout] | [INFO] [stdout] 7 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sleep` [INFO] [stdout] --> src/raft/metadata.rs:10:19 [INFO] [stdout] | [INFO] [stdout] 10 | use tokio::time::{sleep, Duration, interval}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Rng` [INFO] [stdout] --> src/raft/util.rs:2:18 [INFO] [stdout] | [INFO] [stdout] 2 | use rand::{self, Rng}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Instant` [INFO] [stdout] --> src/raft/util.rs:3:27 [INFO] [stdout] | [INFO] [stdout] 3 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::raft::proto` [INFO] [stdout] --> src/raft/state_machine.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::raft::proto; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::any::Any` [INFO] [stdout] --> src/raft/state_machine.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::any::Any; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tonic::transport::Channel` [INFO] [stdout] --> src/raft/rpc.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use tonic::transport::Channel; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `timer` [INFO] [stdout] --> src/raft/rpc.rs:4:37 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::raft::{consensus, proto, timer}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration` and `Instant` [INFO] [stdout] --> src/raft/rpc.rs:7:17 [INFO] [stdout] | [INFO] [stdout] 7 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Mutex` [INFO] [stdout] --> src/raft/lib.rs:2:22 [INFO] [stdout] | [INFO] [stdout] 2 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration` and `Instant` [INFO] [stdout] --> src/raft/lib.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tracing_subscriber::fmt::writer::MakeWriterExt` [INFO] [stdout] --> src/raft/lib.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use tracing_subscriber::fmt::writer::MakeWriterExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Mutex as StdMutex` [INFO] [stdout] --> src/raft/consensus.rs:4:22 [INFO] [stdout] | [INFO] [stdout] 4 | use std::sync::{Arc, Mutex as StdMutex}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Instant as StdInstant` [INFO] [stdout] --> src/raft/consensus.rs:5:27 [INFO] [stdout] | [INFO] [stdout] 5 | use std::time::{Duration, Instant as StdInstant}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tonic::server` [INFO] [stdout] --> src/raft/config.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use tonic::server; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `peer` [INFO] [stdout] --> src/raft/config.rs:5:19 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::raft::{peer, proto}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Error` [INFO] [stdout] --> src/raft/config.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::io::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::raft::peer::Peer` [INFO] [stdout] --> src/raft/config.rs:186:9 [INFO] [stdout] | [INFO] [stdout] 186 | use crate::raft::peer::Peer; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tonic::server` [INFO] [stdout] --> src/raft/peer.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use tonic::server; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Instant` [INFO] [stdout] --> src/raft/timer.rs:4:27 [INFO] [stdout] | [INFO] [stdout] 4 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Read` [INFO] [stdout] --> src/raft/log.rs:6:37 [INFO] [stdout] | [INFO] [stdout] 6 | use std::io::{BufReader, BufWriter, Read, Write}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::clone` [INFO] [stdout] --> src/raft/metadata.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::clone; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Write` [INFO] [stdout] --> src/raft/metadata.rs:5:21 [INFO] [stdout] | [INFO] [stdout] 5 | use std::io::{Read, Write}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Mutex` [INFO] [stdout] --> src/raft/metadata.rs:7:22 [INFO] [stdout] | [INFO] [stdout] 7 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Rng` [INFO] [stdout] --> src/raft/util.rs:2:18 [INFO] [stdout] | [INFO] [stdout] 2 | use rand::{self, Rng}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Instant` [INFO] [stdout] --> src/raft/util.rs:3:27 [INFO] [stdout] | [INFO] [stdout] 3 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::raft::proto` [INFO] [stdout] --> src/raft/state_machine.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::raft::proto; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::any::Any` [INFO] [stdout] --> src/raft/state_machine.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::any::Any; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tonic::transport::Channel` [INFO] [stdout] --> src/raft/rpc.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use tonic::transport::Channel; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `timer` [INFO] [stdout] --> src/raft/rpc.rs:4:37 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::raft::{consensus, proto, timer}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration` and `Instant` [INFO] [stdout] --> src/raft/rpc.rs:7:17 [INFO] [stdout] | [INFO] [stdout] 7 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Mutex` [INFO] [stdout] --> src/raft/lib.rs:2:22 [INFO] [stdout] | [INFO] [stdout] 2 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration` and `Instant` [INFO] [stdout] --> src/raft/lib.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tracing_subscriber::fmt::writer::MakeWriterExt` [INFO] [stdout] --> src/raft/lib.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use tracing_subscriber::fmt::writer::MakeWriterExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `raft::proto::EntryType::from_i32`: Use the TryFrom implementation instead [INFO] [stdout] --> src/raft/consensus.rs:499:60 [INFO] [stdout] | [INFO] [stdout] 499 | let entry_type_val = proto::EntryType::from_i32(entry.entry_type).unwrap_or(proto::EntryType::Data); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `raft::proto::EntryType::from_i32`: Use the TryFrom implementation instead [INFO] [stdout] --> src/raft/consensus.rs:499:60 [INFO] [stdout] | [INFO] [stdout] 499 | let entry_type_val = proto::EntryType::from_i32(entry.entry_type).unwrap_or(proto::EntryType::Data); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `raft::proto::EntryType::from_i32`: Use the TryFrom implementation instead [INFO] [stdout] --> src/raft/consensus.rs:548:60 [INFO] [stdout] | [INFO] [stdout] 548 | let entry_type_val = proto::EntryType::from_i32(entry.entry_type).unwrap_or(proto::EntryType::Data); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `raft::proto::EntryType::from_i32`: Use the TryFrom implementation instead [INFO] [stdout] --> src/raft/consensus.rs:548:60 [INFO] [stdout] | [INFO] [stdout] 548 | let entry_type_val = proto::EntryType::from_i32(entry.entry_type).unwrap_or(proto::EntryType::Data); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `raft::proto::EntryType::from_i32`: Use the TryFrom implementation instead [INFO] [stdout] --> src/raft/consensus.rs:910:42 [INFO] [stdout] | [INFO] [stdout] 910 | if proto::EntryType::from_i32(entry_being_applied.entry_type) == Some(proto::EntryType::Configuration) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `raft::proto::EntryType::from_i32`: Use the TryFrom implementation instead [INFO] [stdout] --> src/raft/consensus.rs:910:42 [INFO] [stdout] | [INFO] [stdout] 910 | if proto::EntryType::from_i32(entry_being_applied.entry_type) == Some(proto::EntryType::Configuration) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `raft::proto::SnapshotDataType::from_i32`: Use the TryFrom implementation instead [INFO] [stdout] --> src/raft/consensus.rs:949:50 [INFO] [stdout] | [INFO] [stdout] 949 | let data_type = proto::SnapshotDataType::from_i32(request.snapshot_data_type).unwrap_or(proto::SnapshotDataType::Snapshot); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `raft::proto::SnapshotDataType::from_i32`: Use the TryFrom implementation instead [INFO] [stdout] --> src/raft/consensus.rs:949:50 [INFO] [stdout] | [INFO] [stdout] 949 | let data_type = proto::SnapshotDataType::from_i32(request.snapshot_data_type).unwrap_or(proto::SnapshotDataType::Snapshot); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Write` [INFO] [stdout] --> src/raft/log.rs:6:43 [INFO] [stdout] | [INFO] [stdout] 6 | use std::io::{BufReader, BufWriter, Read, Write}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Write` [INFO] [stdout] --> src/raft/log.rs:6:43 [INFO] [stdout] | [INFO] [stdout] 6 | use std::io::{BufReader, BufWriter, Read, Write}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/raft/config.rs:191:13 [INFO] [stdout] | [INFO] [stdout] 191 | let mut config = Config::new(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/raft/config.rs:233:13 [INFO] [stdout] | [INFO] [stdout] 233 | let mut current_config = Config::new_stable(vec![ [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tx` [INFO] [stdout] --> src/raft/timer.rs:111:21 [INFO] [stdout] | [INFO] [stdout] 111 | if let Some(tx) = self.stop_tx.take() { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_tx` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `handle` [INFO] [stdout] --> src/raft/timer.rs:116:25 [INFO] [stdout] | [INFO] [stdout] 116 | if let Some(handle) = self.handle.take() { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tx` [INFO] [stdout] --> src/raft/timer.rs:111:21 [INFO] [stdout] | [INFO] [stdout] 111 | if let Some(tx) = self.stop_tx.take() { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_tx` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `handle` [INFO] [stdout] --> src/raft/timer.rs:116:25 [INFO] [stdout] | [INFO] [stdout] 116 | if let Some(handle) = self.handle.take() { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `interval_micros` [INFO] [stdout] --> src/benchmarks/time_bench.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | interval_micros: u128, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interval_micros` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `jitters_ns` [INFO] [stdout] --> src/benchmarks/time_bench.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | jitters_ns: Arc>>, // Store jitter in nanoseconds [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_jitters_ns` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_jitter_callback` is never used [INFO] [stdout] --> src/benchmarks/time_bench.rs:12:4 [INFO] [stdout] | [INFO] [stdout] 12 | fn create_jitter_callback( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_async_timers` is never used [INFO] [stdout] --> src/benchmarks/time_bench.rs:69:18 [INFO] [stdout] | [INFO] [stdout] 69 | pub async fn run_async_timers( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: crate `KEEP_RUNNING` should have a snake case name [INFO] [stdout] | [INFO] [stdout] = help: convert the identifier to snake case: `keep_running` [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs` [INFO] [stdout] --> app/server1.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::fs; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::Path` [INFO] [stdout] --> app/server1.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::path::Path; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Read` and `Write` [INFO] [stdout] --> app/server1.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | use std::io::{Read, Write}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `snapshot` [INFO] [stdout] --> app/server1.rs:8:40 [INFO] [stdout] | [INFO] [stdout] 8 | use KEEP_RUNNING::raft::{self, config, snapshot}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rpc` [INFO] [stdout] --> app/server1.rs:9:44 [INFO] [stdout] | [INFO] [stdout] 9 | use KEEP_RUNNING::raft::{consensus, proto, rpc, state_machine}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Instant` [INFO] [stdout] --> app/server1.rs:13:29 [INFO] [stdout] | [INFO] [stdout] 13 | use tokio::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `interval_micros` [INFO] [stdout] --> src/benchmarks/time_bench.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | interval_micros: u128, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interval_micros` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `jitters_ns` [INFO] [stdout] --> src/benchmarks/time_bench.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | jitters_ns: Arc>>, // Store jitter in nanoseconds [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_jitters_ns` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_jitter_callback` is never used [INFO] [stdout] --> src/benchmarks/time_bench.rs:12:4 [INFO] [stdout] | [INFO] [stdout] 12 | fn create_jitter_callback( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_async_timers` is never used [INFO] [stdout] --> src/benchmarks/time_bench.rs:69:18 [INFO] [stdout] | [INFO] [stdout] 69 | pub async fn run_async_timers( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde_json::error` [INFO] [stdout] --> app/client.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use serde_json::error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Mutex as StdMutex` [INFO] [stdout] --> src/raft/consensus.rs:4:22 [INFO] [stdout] | [INFO] [stdout] 4 | use std::sync::{Arc, Mutex as StdMutex}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Instant as StdInstant` [INFO] [stdout] --> src/raft/consensus.rs:5:27 [INFO] [stdout] | [INFO] [stdout] 5 | use std::time::{Duration, Instant as StdInstant}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tonic::server` [INFO] [stdout] --> src/raft/config.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use tonic::server; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `peer` [INFO] [stdout] --> src/raft/config.rs:5:19 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::raft::{peer, proto}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Error` [INFO] [stdout] --> src/raft/config.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::io::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tonic::server` [INFO] [stdout] --> src/raft/peer.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use tonic::server; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ConfigState` [INFO] [stdout] --> src/raft/peer.rs:2:33 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::raft::config::{self, ConfigState}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Instant` [INFO] [stdout] --> src/raft/timer.rs:4:27 [INFO] [stdout] | [INFO] [stdout] 4 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Read` [INFO] [stdout] --> src/raft/log.rs:6:37 [INFO] [stdout] | [INFO] [stdout] 6 | use std::io::{BufReader, BufWriter, Read, Write}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::clone` [INFO] [stdout] --> src/raft/metadata.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::clone; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Write` [INFO] [stdout] --> src/raft/metadata.rs:5:21 [INFO] [stdout] | [INFO] [stdout] 5 | use std::io::{Read, Write}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Mutex` [INFO] [stdout] --> src/raft/metadata.rs:7:22 [INFO] [stdout] | [INFO] [stdout] 7 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sleep` [INFO] [stdout] --> src/raft/metadata.rs:10:19 [INFO] [stdout] | [INFO] [stdout] 10 | use tokio::time::{sleep, Duration, interval}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Rng` [INFO] [stdout] --> src/raft/util.rs:2:18 [INFO] [stdout] | [INFO] [stdout] 2 | use rand::{self, Rng}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Instant` [INFO] [stdout] --> src/raft/util.rs:3:27 [INFO] [stdout] | [INFO] [stdout] 3 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::raft::proto` [INFO] [stdout] --> src/raft/state_machine.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::raft::proto; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::any::Any` [INFO] [stdout] --> src/raft/state_machine.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::any::Any; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tonic::transport::Channel` [INFO] [stdout] --> src/raft/rpc.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use tonic::transport::Channel; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `timer` [INFO] [stdout] --> src/raft/rpc.rs:4:37 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::raft::{consensus, proto, timer}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration` and `Instant` [INFO] [stdout] --> src/raft/rpc.rs:7:17 [INFO] [stdout] | [INFO] [stdout] 7 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Mutex` [INFO] [stdout] --> src/raft/lib.rs:2:22 [INFO] [stdout] | [INFO] [stdout] 2 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration` and `Instant` [INFO] [stdout] --> src/raft/lib.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tracing_subscriber::fmt::writer::MakeWriterExt` [INFO] [stdout] --> src/raft/lib.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use tracing_subscriber::fmt::writer::MakeWriterExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `raft::metadata::*` [INFO] [stdout] --> src/main.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use raft::metadata::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `anyhow::Result` [INFO] [stdout] --> src/main.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use anyhow::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log as logging` [INFO] [stdout] --> src/main.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use log as logging; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration` and `sleep` [INFO] [stdout] --> src/main.rs:6:19 [INFO] [stdout] | [INFO] [stdout] 6 | use tokio::time::{sleep, Duration}; [INFO] [stdout] | ^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Mutex as StdMutex` [INFO] [stdout] --> src/raft/consensus.rs:4:22 [INFO] [stdout] | [INFO] [stdout] 4 | use std::sync::{Arc, Mutex as StdMutex}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Instant as StdInstant` [INFO] [stdout] --> src/raft/consensus.rs:5:27 [INFO] [stdout] | [INFO] [stdout] 5 | use std::time::{Duration, Instant as StdInstant}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tonic::server` [INFO] [stdout] --> src/raft/config.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use tonic::server; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `peer` [INFO] [stdout] --> src/raft/config.rs:5:19 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::raft::{peer, proto}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Error` [INFO] [stdout] --> src/raft/config.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::io::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::raft::peer::Peer` [INFO] [stdout] --> src/raft/config.rs:186:9 [INFO] [stdout] | [INFO] [stdout] 186 | use crate::raft::peer::Peer; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tonic::server` [INFO] [stdout] --> src/raft/peer.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use tonic::server; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Instant` [INFO] [stdout] --> src/raft/timer.rs:4:27 [INFO] [stdout] | [INFO] [stdout] 4 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Read` [INFO] [stdout] --> src/raft/log.rs:6:37 [INFO] [stdout] | [INFO] [stdout] 6 | use std::io::{BufReader, BufWriter, Read, Write}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::clone` [INFO] [stdout] --> src/raft/metadata.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::clone; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Write` [INFO] [stdout] --> src/raft/metadata.rs:5:21 [INFO] [stdout] | [INFO] [stdout] 5 | use std::io::{Read, Write}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Mutex` [INFO] [stdout] --> src/raft/metadata.rs:7:22 [INFO] [stdout] | [INFO] [stdout] 7 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Rng` [INFO] [stdout] --> src/raft/util.rs:2:18 [INFO] [stdout] | [INFO] [stdout] 2 | use rand::{self, Rng}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Instant` [INFO] [stdout] --> src/raft/util.rs:3:27 [INFO] [stdout] | [INFO] [stdout] 3 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::raft::proto` [INFO] [stdout] --> src/raft/state_machine.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::raft::proto; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::any::Any` [INFO] [stdout] --> src/raft/state_machine.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::any::Any; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tonic::transport::Channel` [INFO] [stdout] --> src/raft/rpc.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use tonic::transport::Channel; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `timer` [INFO] [stdout] --> src/raft/rpc.rs:4:37 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::raft::{consensus, proto, timer}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration` and `Instant` [INFO] [stdout] --> src/raft/rpc.rs:7:17 [INFO] [stdout] | [INFO] [stdout] 7 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Mutex` [INFO] [stdout] --> src/raft/lib.rs:2:22 [INFO] [stdout] | [INFO] [stdout] 2 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration` and `Instant` [INFO] [stdout] --> src/raft/lib.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tracing_subscriber::fmt::writer::MakeWriterExt` [INFO] [stdout] --> src/raft/lib.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use tracing_subscriber::fmt::writer::MakeWriterExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `raft::metadata::*` [INFO] [stdout] --> src/main.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use raft::metadata::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `anyhow::Result` [INFO] [stdout] --> src/main.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use anyhow::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log as logging` [INFO] [stdout] --> src/main.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use log as logging; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration` and `sleep` [INFO] [stdout] --> src/main.rs:6:19 [INFO] [stdout] | [INFO] [stdout] 6 | use tokio::time::{sleep, Duration}; [INFO] [stdout] | ^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> app/client.rs:87:9 [INFO] [stdout] | [INFO] [stdout] 87 | let mut rpc_client = rpc::Client {}; [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `raft::proto::EntryType::from_i32`: Use the TryFrom implementation instead [INFO] [stdout] --> src/raft/consensus.rs:499:60 [INFO] [stdout] | [INFO] [stdout] 499 | let entry_type_val = proto::EntryType::from_i32(entry.entry_type).unwrap_or(proto::EntryType::Data); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `raft::proto::EntryType::from_i32`: Use the TryFrom implementation instead [INFO] [stdout] --> src/raft/consensus.rs:499:60 [INFO] [stdout] | [INFO] [stdout] 499 | let entry_type_val = proto::EntryType::from_i32(entry.entry_type).unwrap_or(proto::EntryType::Data); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `raft::proto::EntryType::from_i32`: Use the TryFrom implementation instead [INFO] [stdout] --> src/raft/consensus.rs:548:60 [INFO] [stdout] | [INFO] [stdout] 548 | let entry_type_val = proto::EntryType::from_i32(entry.entry_type).unwrap_or(proto::EntryType::Data); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `raft::proto::EntryType::from_i32`: Use the TryFrom implementation instead [INFO] [stdout] --> src/raft/consensus.rs:910:42 [INFO] [stdout] | [INFO] [stdout] 910 | if proto::EntryType::from_i32(entry_being_applied.entry_type) == Some(proto::EntryType::Configuration) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `raft::proto::SnapshotDataType::from_i32`: Use the TryFrom implementation instead [INFO] [stdout] --> src/raft/consensus.rs:949:50 [INFO] [stdout] | [INFO] [stdout] 949 | let data_type = proto::SnapshotDataType::from_i32(request.snapshot_data_type).unwrap_or(proto::SnapshotDataType::Snapshot); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `raft::proto::EntryType::from_i32`: Use the TryFrom implementation instead [INFO] [stdout] --> src/raft/consensus.rs:548:60 [INFO] [stdout] | [INFO] [stdout] 548 | let entry_type_val = proto::EntryType::from_i32(entry.entry_type).unwrap_or(proto::EntryType::Data); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `raft::proto::EntryType::from_i32`: Use the TryFrom implementation instead [INFO] [stdout] --> src/raft/consensus.rs:910:42 [INFO] [stdout] | [INFO] [stdout] 910 | if proto::EntryType::from_i32(entry_being_applied.entry_type) == Some(proto::EntryType::Configuration) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `raft::proto::SnapshotDataType::from_i32`: Use the TryFrom implementation instead [INFO] [stdout] --> src/raft/consensus.rs:949:50 [INFO] [stdout] | [INFO] [stdout] 949 | let data_type = proto::SnapshotDataType::from_i32(request.snapshot_data_type).unwrap_or(proto::SnapshotDataType::Snapshot); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Write` [INFO] [stdout] --> src/raft/log.rs:6:43 [INFO] [stdout] | [INFO] [stdout] 6 | use std::io::{BufReader, BufWriter, Read, Write}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `interval_micros` [INFO] [stdout] --> src/benchmarks/time_bench.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | interval_micros: u128, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interval_micros` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `jitters_ns` [INFO] [stdout] --> src/benchmarks/time_bench.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | jitters_ns: Arc>>, // Store jitter in nanoseconds [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_jitters_ns` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Write` [INFO] [stdout] --> src/raft/log.rs:6:43 [INFO] [stdout] | [INFO] [stdout] 6 | use std::io::{BufReader, BufWriter, Read, Write}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `interval_micros` [INFO] [stdout] --> src/benchmarks/time_bench.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | interval_micros: u128, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interval_micros` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `jitters_ns` [INFO] [stdout] --> src/benchmarks/time_bench.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | jitters_ns: Arc>>, // Store jitter in nanoseconds [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_jitters_ns` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tx` [INFO] [stdout] --> src/raft/timer.rs:111:21 [INFO] [stdout] | [INFO] [stdout] 111 | if let Some(tx) = self.stop_tx.take() { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_tx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `handle` [INFO] [stdout] --> src/raft/timer.rs:116:25 [INFO] [stdout] | [INFO] [stdout] 116 | if let Some(handle) = self.handle.take() { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/raft/config.rs:191:13 [INFO] [stdout] | [INFO] [stdout] 191 | let mut config = Config::new(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/raft/config.rs:233:13 [INFO] [stdout] | [INFO] [stdout] 233 | let mut current_config = Config::new_stable(vec![ [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tx` [INFO] [stdout] --> src/raft/timer.rs:111:21 [INFO] [stdout] | [INFO] [stdout] 111 | if let Some(tx) = self.stop_tx.take() { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_tx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `handle` [INFO] [stdout] --> src/raft/timer.rs:116:25 [INFO] [stdout] | [INFO] [stdout] 116 | if let Some(handle) = self.handle.take() { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_noop_callback` is never used [INFO] [stdout] --> src/benchmarks/time_bench.rs:5:4 [INFO] [stdout] | [INFO] [stdout] 5 | fn create_noop_callback(counter: Arc) -> impl FnMut() -> () + Send + Clone + 'static { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_jitter_callback` is never used [INFO] [stdout] --> src/benchmarks/time_bench.rs:12:4 [INFO] [stdout] | [INFO] [stdout] 12 | fn create_jitter_callback( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_benchmarks` is never used [INFO] [stdout] --> src/benchmarks/time_bench.rs:101:14 [INFO] [stdout] | [INFO] [stdout] 101 | pub async fn run_benchmarks() { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_std_timers` is never used [INFO] [stdout] --> src/benchmarks/time_bench.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn run_std_timers( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_async_timers` is never used [INFO] [stdout] --> src/benchmarks/time_bench.rs:69:18 [INFO] [stdout] | [INFO] [stdout] 69 | pub async fn run_async_timers( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `handle_snapshot_timeout`, `handle_heartbeat_timeout`, `handle_election_timeout`, `request_vote_rpc`, and `become_leader` are never used [INFO] [stdout] --> src/raft/consensus.rs:48:18 [INFO] [stdout] | [INFO] [stdout] 47 | impl Consensus { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 48 | pub async fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 700 | pub async fn handle_snapshot_timeout(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1111 | pub async fn handle_heartbeat_timeout(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1149 | pub async fn handle_election_timeout(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1182 | async fn request_vote_rpc(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1363 | async fn become_leader(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ELECTION_TIMEOUT_MIN` is never used [INFO] [stdout] --> src/raft/config.rs:11:11 [INFO] [stdout] | [INFO] [stdout] 11 | pub const ELECTION_TIMEOUT_MIN: Duration = Duration::from_millis(ELECTION_TIMEOUT_MIN_MILLIS); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `HEARTBEAT_INTERVAL` is never used [INFO] [stdout] --> src/raft/config.rs:14:11 [INFO] [stdout] | [INFO] [stdout] 14 | pub const HEARTBEAT_INTERVAL: Duration = Duration::from_millis(3000); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SNAPSHOT_INTERVAL` is never used [INFO] [stdout] --> src/raft/config.rs:17:11 [INFO] [stdout] | [INFO] [stdout] 17 | pub const SNAPSHOT_INTERVAL: Duration = Duration::from_millis(30000); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SNAPSHOT_LOG_LENGTH_THRESHOLD` is never used [INFO] [stdout] --> src/raft/config.rs:20:11 [INFO] [stdout] | [INFO] [stdout] 20 | pub const SNAPSHOT_LOG_LENGTH_THRESHOLD: usize = 5; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NONE_DATA` is never used [INFO] [stdout] --> src/raft/config.rs:23:11 [INFO] [stdout] | [INFO] [stdout] 23 | pub const NONE_DATA: &'static str = "None"; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/raft/config.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 50 | impl Config { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 51 | pub fn new() -> Config { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn new_stable(initial_servers: Vec) -> Config { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn append_new_servers(&mut self, servers_to_add: &Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 82 | pub fn remove_new_servers(&mut self, removed_ids: &[u64]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 86 | pub fn append_old_servers(&mut self, peers_to_add: &[crate::raft::peer::Peer]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 97 | pub fn ser_new_servers(&mut self, servers: Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 100 | pub fn set_old_servers(&mut self, servers: Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `vote_granted` is never read [INFO] [stdout] --> src/raft/peer.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct Peer { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] ... [INFO] [stdout] 16 | pub vote_granted: bool, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Peer` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `len`, `server_ids`, `reset_vote`, and `quorum_vote_granted` are never used [INFO] [stdout] --> src/raft/peer.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 41 | impl PeerManager { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 42 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn len(&self) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn server_ids(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 90 | pub fn reset_vote(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 148 | pub fn quorum_vote_granted( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `schedule`, and `stop_internal` are never used [INFO] [stdout] --> src/raft/timer.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 18 | impl Timer { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 19 | pub fn new(name: &str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | pub fn schedule(&mut self, trigger_interval: Duration, callback: F) [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | fn stop_internal(&mut self, wait_for_join: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `entries`, `committed_entries_len`, and `reload` are never used [INFO] [stdout] --> src/raft/log.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 39 | impl Log { [INFO] [stdout] | -------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn new(start_index: u64, metadata_dir: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | pub fn entries(&self) -> &Vec { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 321 | pub fn committed_entries_len(&self, commit_index: u64) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 351 | pub fn reload(&mut self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `THREAD_CHECK_INTERVAL` is never used [INFO] [stdout] --> src/raft/timer_old.rs:7:7 [INFO] [stdout] | [INFO] [stdout] 7 | const THREAD_CHECK_INTERVAL: Duration = Duration::from_millis(10); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Timer` is never constructed [INFO] [stdout] --> src/raft/timer_old.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct Timer { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `schedule`, `reset`, and `stop` are never used [INFO] [stdout] --> src/raft/timer_old.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl Timer { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 26 | pub fn new(name: &str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn schedule(&mut self, trigger_interval: Duration, callback: F) [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn reset(&mut self, trigger_interval: Duration) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub fn stop(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/raft/metadata.rs:23:16 [INFO] [stdout] | [INFO] [stdout] 23 | UpdateTerm(u64), [INFO] [stdout] | ---------- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `PersistCommand` 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] 23 - UpdateTerm(u64), [INFO] [stdout] 23 + UpdateTerm(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/raft/metadata.rs:24:20 [INFO] [stdout] | [INFO] [stdout] 24 | UpdateVotedFor(u64), [INFO] [stdout] | -------------- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `PersistCommand` 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] 24 - UpdateVotedFor(u64), [INFO] [stdout] 24 + UpdateVotedFor(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new`, `gen_metadata_filepath`, and `load` are never used [INFO] [stdout] --> src/raft/metadata.rs:37:12 [INFO] [stdout] | [INFO] [stdout] 36 | impl Metadata { [INFO] [stdout] | ------------- associated functions in this implementation [INFO] [stdout] 37 | pub fn new(dir: String) -> Metadata { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | pub fn gen_metadata_filepath(dir: &str) -> PathBuf { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | pub fn load(dir: &str) -> Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `persist_to_disk` are never used [INFO] [stdout] --> src/raft/metadata.rs:76:12 [INFO] [stdout] | [INFO] [stdout] 75 | impl MetadataManager { [INFO] [stdout] | -------------------- associated functions in this implementation [INFO] [stdout] 76 | pub fn new(initial_metadata: Metadata, flush_interval: Duration) -> Arc { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 149 | async fn persist_to_disk(metadata_to_persist: &Metadata) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `take_snapshot_metadata` are never used [INFO] [stdout] --> src/raft/snapshot.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 27 | impl Snapshot { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 28 | pub fn new(snapshot_dir: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | pub fn take_snapshot_metadata( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `take_snapshot` is never used [INFO] [stdout] --> src/raft/state_machine.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub trait StateMachine: Debug + Send + 'static { [INFO] [stdout] | ------------ method in this trait [INFO] [stdout] ... [INFO] [stdout] 18 | fn take_snapshot(&mut self, snapshot_filepath: &str); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/raft/state_machine.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 30 | impl SimpleStateMachine { [INFO] [stdout] | ----------------------- associated function in this implementation [INFO] [stdout] 31 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `start_server` is never used [INFO] [stdout] --> src/raft/rpc.rs:17:14 [INFO] [stdout] | [INFO] [stdout] 17 | pub async fn start_server( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `request_vote`, `propose`, `get_leader`, `get_configuration`, and `set_configuration` are never used [INFO] [stdout] --> src/raft/rpc.rs:227:18 [INFO] [stdout] | [INFO] [stdout] 203 | impl Client { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 227 | pub async fn request_vote( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 271 | pub async fn propose( [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 282 | pub async fn get_leader( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 294 | pub async fn get_configuration( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 305 | pub async fn set_configuration( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `start` is never used [INFO] [stdout] --> src/raft/lib.rs:9:14 [INFO] [stdout] | [INFO] [stdout] 9 | pub async fn start ( [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `stop` is never used [INFO] [stdout] --> src/raft/lib.rs:47:14 [INFO] [stdout] | [INFO] [stdout] 47 | pub async fn stop( [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_noop_callback` is never used [INFO] [stdout] --> src/benchmarks/time_bench.rs:5:4 [INFO] [stdout] | [INFO] [stdout] 5 | fn create_noop_callback(counter: Arc) -> impl FnMut() -> () + Send + Clone + 'static { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_jitter_callback` is never used [INFO] [stdout] --> src/benchmarks/time_bench.rs:12:4 [INFO] [stdout] | [INFO] [stdout] 12 | fn create_jitter_callback( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_benchmarks` is never used [INFO] [stdout] --> src/benchmarks/time_bench.rs:101:14 [INFO] [stdout] | [INFO] [stdout] 101 | pub async fn run_benchmarks() { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_std_timers` is never used [INFO] [stdout] --> src/benchmarks/time_bench.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn run_std_timers( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_async_timers` is never used [INFO] [stdout] --> src/benchmarks/time_bench.rs:69:18 [INFO] [stdout] | [INFO] [stdout] 69 | pub async fn run_async_timers( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `handle_snapshot_timeout`, `handle_heartbeat_timeout`, `handle_election_timeout`, `request_vote_rpc`, and `become_leader` are never used [INFO] [stdout] --> src/raft/consensus.rs:48:18 [INFO] [stdout] | [INFO] [stdout] 47 | impl Consensus { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 48 | pub async fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 700 | pub async fn handle_snapshot_timeout(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1111 | pub async fn handle_heartbeat_timeout(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1149 | pub async fn handle_election_timeout(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1182 | async fn request_vote_rpc(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1363 | async fn become_leader(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ELECTION_TIMEOUT_MIN` is never used [INFO] [stdout] --> src/raft/config.rs:11:11 [INFO] [stdout] | [INFO] [stdout] 11 | pub const ELECTION_TIMEOUT_MIN: Duration = Duration::from_millis(ELECTION_TIMEOUT_MIN_MILLIS); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `HEARTBEAT_INTERVAL` is never used [INFO] [stdout] --> src/raft/config.rs:14:11 [INFO] [stdout] | [INFO] [stdout] 14 | pub const HEARTBEAT_INTERVAL: Duration = Duration::from_millis(3000); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SNAPSHOT_INTERVAL` is never used [INFO] [stdout] --> src/raft/config.rs:17:11 [INFO] [stdout] | [INFO] [stdout] 17 | pub const SNAPSHOT_INTERVAL: Duration = Duration::from_millis(30000); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SNAPSHOT_LOG_LENGTH_THRESHOLD` is never used [INFO] [stdout] --> src/raft/config.rs:20:11 [INFO] [stdout] | [INFO] [stdout] 20 | pub const SNAPSHOT_LOG_LENGTH_THRESHOLD: usize = 5; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NONE_DATA` is never used [INFO] [stdout] --> src/raft/config.rs:23:11 [INFO] [stdout] | [INFO] [stdout] 23 | pub const NONE_DATA: &'static str = "None"; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `ser_new_servers` and `set_old_servers` are never used [INFO] [stdout] --> src/raft/config.rs:97:12 [INFO] [stdout] | [INFO] [stdout] 50 | impl Config { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 97 | pub fn ser_new_servers(&mut self, servers: Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 100 | pub fn set_old_servers(&mut self, servers: Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `vote_granted` is never read [INFO] [stdout] --> src/raft/peer.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct Peer { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] ... [INFO] [stdout] 16 | pub vote_granted: bool, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Peer` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `len`, `server_ids`, `reset_vote`, and `quorum_vote_granted` are never used [INFO] [stdout] --> src/raft/peer.rs:71:12 [INFO] [stdout] | [INFO] [stdout] 41 | impl PeerManager { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn len(&self) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn server_ids(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 90 | pub fn reset_vote(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 148 | pub fn quorum_vote_granted( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `committed_entries_len` is never used [INFO] [stdout] --> src/raft/log.rs:321:12 [INFO] [stdout] | [INFO] [stdout] 39 | impl Log { [INFO] [stdout] | -------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 321 | pub fn committed_entries_len(&self, commit_index: u64) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `stop` is never used [INFO] [stdout] --> src/raft/timer_old.rs:92:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl Timer { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 92 | pub fn stop(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `take_snapshot_metadata` are never used [INFO] [stdout] --> src/raft/snapshot.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 27 | impl Snapshot { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 28 | pub fn new(snapshot_dir: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | pub fn take_snapshot_metadata( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `take_snapshot` is never used [INFO] [stdout] --> src/raft/state_machine.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub trait StateMachine: Debug + Send + 'static { [INFO] [stdout] | ------------ method in this trait [INFO] [stdout] ... [INFO] [stdout] 18 | fn take_snapshot(&mut self, snapshot_filepath: &str); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/raft/state_machine.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 30 | impl SimpleStateMachine { [INFO] [stdout] | ----------------------- associated function in this implementation [INFO] [stdout] 31 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `start_server` is never used [INFO] [stdout] --> src/raft/rpc.rs:17:14 [INFO] [stdout] | [INFO] [stdout] 17 | pub async fn start_server( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `request_vote`, `propose`, `get_leader`, `get_configuration`, and `set_configuration` are never used [INFO] [stdout] --> src/raft/rpc.rs:227:18 [INFO] [stdout] | [INFO] [stdout] 203 | impl Client { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 227 | pub async fn request_vote( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 271 | pub async fn propose( [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 282 | pub async fn get_leader( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 294 | pub async fn get_configuration( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 305 | pub async fn set_configuration( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `start` is never used [INFO] [stdout] --> src/raft/lib.rs:9:14 [INFO] [stdout] | [INFO] [stdout] 9 | pub async fn start ( [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `stop` is never used [INFO] [stdout] --> src/raft/lib.rs:47:14 [INFO] [stdout] | [INFO] [stdout] 47 | pub async fn stop( [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 46.68s [INFO] running `Command { std: "docker" "inspect" "c427377ad31c7ca182695f813b1bee40fd1037795905d9f7480e0d3b466d8ab3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c427377ad31c7ca182695f813b1bee40fd1037795905d9f7480e0d3b466d8ab3", kill_on_drop: false }` [INFO] [stdout] c427377ad31c7ca182695f813b1bee40fd1037795905d9f7480e0d3b466d8ab3