[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#ff647322379c48947c196639599067665ff9eb88 for pr-151539-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdoublesevenshop%2FRaft_By_Rust" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-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-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/doublesevenshop/Raft_By_Rust on toolchain ff647322379c48947c196639599067665ff9eb88
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ff647322379c48947c196639599067665ff9eb88" "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" "+ff647322379c48947c196639599067665ff9eb88" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 9398f32c6900664f3b34fb5b382132bc981c1d22533dded5b34315973e423e22
[INFO] running `Command { std: "docker" "start" "9398f32c6900664f3b34fb5b382132bc981c1d22533dded5b34315973e423e22", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "9398f32c6900664f3b34fb5b382132bc981c1d22533dded5b34315973e423e22" "/opt/rustwide/cargo-home/bin/cargo" "+ff647322379c48947c196639599067665ff9eb88" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9398f32c6900664f3b34fb5b382132bc981c1d22533dded5b34315973e423e22", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "9398f32c6900664f3b34fb5b382132bc981c1d22533dded5b34315973e423e22" "/opt/rustwide/cargo-home/bin/cargo" "+ff647322379c48947c196639599067665ff9eb88" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]     Checking hashbrown v0.15.3
[INFO] [stderr]    Compiling libc v0.2.172
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]     Checking mio v1.0.3
[INFO] [stderr]     Checking socket2 v0.5.9
[INFO] [stderr]    Compiling log v0.4.27
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]    Compiling prettyplease v0.2.32
[INFO] [stderr]    Compiling tracing-core v0.1.33
[INFO] [stderr]    Compiling overload v0.1.1
[INFO] [stderr]     Checking serde v1.0.219
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling thread_local v1.1.8
[INFO] [stderr]    Compiling smallvec v1.15.0
[INFO] [stderr]    Compiling nu-ansi-term v0.46.0
[INFO] [stderr]     Checking deranged v0.4.0
[INFO] [stderr]     Checking axum-core v0.5.2
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking time-core v0.1.4
[INFO] [stderr]     Checking rustix v1.0.7
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling async-trait v0.1.88
[INFO] [stderr]     Checking tower v0.4.13
[INFO] [stderr]     Checking indexmap v2.9.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.19
[INFO] [stderr]     Checking tokio v1.45.0
[INFO] [stderr]     Checking time v0.3.41
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling tempfile v3.20.0
[INFO] [stderr]    Compiling petgraph v0.6.5
[INFO] [stderr]    Compiling prost-derive v0.13.5
[INFO] [stderr]     Checking tracing-appender v0.2.3
[INFO] [stderr]     Checking serde_json v1.0.140
[INFO] [stderr]    Compiling prost v0.13.5
[INFO] [stderr]    Compiling prost-types v0.13.5
[INFO] [stderr]     Checking tokio-util v0.7.15
[INFO] [stderr]     Checking tokio-stream v0.1.17
[INFO] [stderr]    Compiling prost-build v0.13.5
[INFO] [stderr]     Checking h2 v0.4.10
[INFO] [stderr]     Checking tower v0.5.2
[INFO] [stderr]    Compiling tonic-build v0.13.1
[INFO] [stderr]     Checking axum v0.8.4
[INFO] [stderr]    Compiling KEEP_RUNNING v0.1.0 (/opt/rustwide/workdir)
[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: `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: `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: use of deprecated associated function `raft::proto::EntryType::from_i32`: Use the TryFrom<i32> 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<i32> 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<i32> 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<i32> 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<i32> 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<i32> 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<i32> 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<i32> 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: 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: 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: `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<Mutex<Vec<i64>>>, // 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 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 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 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: `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: 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<Mutex<Vec<i64>>>, // 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: `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: 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: `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: 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<i32> 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<i32> 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<i32> 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<i32> 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<i32> 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<i32> 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<i32> 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<i32> 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<Mutex<Vec<i64>>>, // 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<Mutex<Vec<i64>>>, // 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: 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: 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<AtomicUsize>) -> 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<proto::ServerInfo>) -> Config {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn append_new_servers(&mut self, servers_to_add: &Vec<proto::ServerInfo>) {
[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<proto::ServerInfo>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn set_old_servers(&mut self, servers: Vec<proto::ServerInfo>) {
[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<u64> {
[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<F>(&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<proto::LogEntry> {
[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<F>(&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<Self> {
[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<Self> {
[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<AtomicUsize>) -> 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<proto::ServerInfo>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn set_old_servers(&mut self, servers: Vec<proto::ServerInfo>) {
[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<u64> {
[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 31.60s
[INFO] running `Command { std: "docker" "inspect" "9398f32c6900664f3b34fb5b382132bc981c1d22533dded5b34315973e423e22", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9398f32c6900664f3b34fb5b382132bc981c1d22533dded5b34315973e423e22", kill_on_drop: false }`
[INFO] [stdout] 9398f32c6900664f3b34fb5b382132bc981c1d22533dded5b34315973e423e22
