[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#779e19d8baa3e3625bd4fc5c85cbb2ad47b43155 for pr-147589-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdoublesevenshop%2FRaft_By_Rust" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-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-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/doublesevenshop/Raft_By_Rust on toolchain 779e19d8baa3e3625bd4fc5c85cbb2ad47b43155 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "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" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded tonic-build v0.13.1 [INFO] [stderr] Downloaded prost-build v0.13.5 [INFO] [stderr] Downloaded prost-types v0.13.5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] a6efccc242ab1521974e9f615122003a101cb0075c31280c276bfe28fd7c869a [INFO] running `Command { std: "docker" "start" "-a" "a6efccc242ab1521974e9f615122003a101cb0075c31280c276bfe28fd7c869a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a6efccc242ab1521974e9f615122003a101cb0075c31280c276bfe28fd7c869a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a6efccc242ab1521974e9f615122003a101cb0075c31280c276bfe28fd7c869a", kill_on_drop: false }` [INFO] [stdout] a6efccc242ab1521974e9f615122003a101cb0075c31280c276bfe28fd7c869a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d457f7b9888628457b95224b344a1caa2169e8a276be8d74acc01fd8031cae7e [INFO] running `Command { std: "docker" "start" "-a" "d457f7b9888628457b95224b344a1caa2169e8a276be8d74acc01fd8031cae7e", kill_on_drop: false }` [INFO] [stderr] Checking tracing v0.1.41 [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] Compiling anyhow v1.0.98 [INFO] [stderr] Compiling libc v0.2.172 [INFO] [stderr] Compiling bytes v1.10.1 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Compiling getrandom v0.3.3 [INFO] [stderr] Compiling log v0.4.27 [INFO] [stderr] Compiling bitflags v2.9.1 [INFO] [stderr] Compiling prettyplease v0.2.32 [INFO] [stderr] Compiling linux-raw-sys v0.9.4 [INFO] [stderr] Compiling regex-syntax v0.8.5 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling fixedbitset v0.4.2 [INFO] [stderr] Compiling tracing-core v0.1.33 [INFO] [stderr] Compiling petgraph v0.6.5 [INFO] [stderr] Compiling multimap v0.8.3 [INFO] [stderr] Checking sync_wrapper v1.0.2 [INFO] [stderr] Compiling overload v0.1.1 [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 axum-core v0.5.2 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Compiling prost-derive v0.13.5 [INFO] [stderr] Checking rand_core v0.9.3 [INFO] [stderr] Compiling pin-project-internal v1.1.10 [INFO] [stderr] Checking time v0.3.41 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Compiling rustix v1.0.7 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Checking tokio v1.45.0 [INFO] [stderr] Checking tracing-subscriber v0.3.19 [INFO] [stderr] Checking crossbeam-channel v0.5.15 [INFO] [stderr] Checking tempfile v3.20.0 [INFO] [stderr] Checking rand v0.9.1 [INFO] [stderr] Checking tower v0.4.13 [INFO] [stderr] Compiling regex-automata v0.4.9 [INFO] [stderr] Compiling prost v0.13.5 [INFO] [stderr] Checking pin-project v1.1.10 [INFO] [stderr] Compiling prost-types v0.13.5 [INFO] [stderr] Checking tracing-appender v0.2.3 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Compiling regex v1.11.1 [INFO] [stderr] Compiling prost-build v0.13.5 [INFO] [stderr] Compiling tonic-build v0.13.1 [INFO] [stderr] Checking tokio-util v0.7.15 [INFO] [stderr] Checking tokio-stream v0.1.17 [INFO] [stderr] Compiling KEEP_RUNNING v0.1.0 (/opt/rustwide/workdir) [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: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 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>>, // 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 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: `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: `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: `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 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: 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: 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: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: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::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: 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) -> 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: enum `State` is never used [INFO] [stdout] --> src/raft/consensus.rs:10:10 [INFO] [stdout] | [INFO] [stdout] 10 | pub enum State { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Consensus` is never constructed [INFO] [stdout] --> src/raft/consensus.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct Consensus { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items 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] 229 | fn update_peer_config_states(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 237 | async fn append_entries_to_peers(&mut self, heartbeat: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 262 | async fn append_one_entry_to_peer(&mut self, peer_id: u64, heartbeat: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 356 | async fn install_snapshot_to_peer(&mut self, peer_id: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 461 | async fn leader_advance_commit_index(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 530 | async fn follower_advance_commit_index(&mut self, leader_commit_index: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 574 | async fn apply_configuration_to_internal_state(&mut self, config_to_apply: config::Config, committed: bool) { // Renamed `config` to ... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 635 | async fn append_and_replicate_config_change(&mut self, target_new_servers_opt: Option>) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 674 | async fn append_and_replicate_final_config(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 684 | pub async fn shutdown(&mut self) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 700 | pub async fn handle_snapshot_timeout(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 770 | pub async fn handle_propose_rpc( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 821 | pub async fn handle_append_entries_rpc( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 930 | pub async fn handle_install_snapshot_rpc( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1033 | pub fn handle_get_leader_rpc( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1069 | pub fn handle_get_configuration_rpc( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1077 | pub async fn handle_set_configuration_rpc( [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] 1296 | pub async fn handle_request_vote_rpc( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1363 | async fn become_leader(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1394 | async fn step_down(&mut self, new_term: u64) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1448 | pub async fn replicate( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ELECTION_TIMEOUT_MAX_MILLIS` is never used [INFO] [stdout] --> src/raft/config.rs:9:11 [INFO] [stdout] | [INFO] [stdout] 9 | pub const ELECTION_TIMEOUT_MAX_MILLIS: u64 = 15000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ELECTION_TIMEOUT_MIN_MILLIS` is never used [INFO] [stdout] --> src/raft/config.rs:10:11 [INFO] [stdout] | [INFO] [stdout] 10 | pub const ELECTION_TIMEOUT_MIN_MILLIS: u64 = 10000; [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_SERVER_ID` is never used [INFO] [stdout] --> src/raft/config.rs:22:11 [INFO] [stdout] | [INFO] [stdout] 22 | pub const NONE_SERVER_ID: u64 = 0; [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: constant `SNAPSHOT_TRUNK_SIZE` is never used [INFO] [stdout] --> src/raft/config.rs:26:11 [INFO] [stdout] | [INFO] [stdout] 26 | pub const SNAPSHOT_TRUNK_SIZE: usize = 30; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ConfigState` is never constructed [INFO] [stdout] --> src/raft/config.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct ConfigState { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/raft/config.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 35 | impl ConfigState { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] 36 | pub fn new() -> ConfigState { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Config` is never constructed [INFO] [stdout] --> src/raft/config.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct Config { [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] 65 | pub fn from_data(data: &[u8]) -> Config { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn to_data(&self) -> Vec { [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] 105 | pub fn finalize_transition(&self) -> Config { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | pub fn start_transition(&self, target_new_servers: Vec) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 133 | pub fn get_node_state(&self, node_id: u64) -> ConfigState { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | pub fn is_joint(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 146 | pub fn is_stable(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 151 | pub fn is_empty(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 155 | pub fn all_servers_in_config(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 169 | pub fn all_ids_in_config(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Peer` is never constructed [INFO] [stdout] --> src/raft/peer.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct Peer { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/raft/peer.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 22 | impl Peer { [INFO] [stdout] | --------- associated function in this implementation [INFO] [stdout] 23 | pub fn new(server_id: u64, server_addr: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PeerManager` is never constructed [INFO] [stdout] --> src/raft/peer.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 38 | pub struct PeerManager { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items 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] 46 | pub fn add(&mut self, mut new_peers: Vec, last_log_index: u64) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn remove(&mut self, server_ids: Vec) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn peers_mut(&mut self) -> &mut Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn peers(&self) -> &Vec { [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] 78 | pub fn peer(&mut self, server_id: u64) -> Option<&mut Peer> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 83 | pub fn contains(&self, server_id: u64) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 90 | pub fn reset_vote(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 96 | pub fn quoram_match_index( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 148 | pub fn quorum_vote_granted( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Timer` is never constructed [INFO] [stdout] --> src/raft/timer.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct Timer { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `schedule`, `stop_internal`, `reset`, and `stop` 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] 124 | pub fn reset(&mut self, trigger_interval: Duration) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | pub async fn stop(&mut self) { // Made async to allow .await on JoinHandle [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `LogEntryData` is never used [INFO] [stdout] --> src/raft/log.rs:24:10 [INFO] [stdout] | [INFO] [stdout] 24 | pub type LogEntryData = (proto::EntryType, Vec); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Log` is never constructed [INFO] [stdout] --> src/raft/log.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 27 | pub struct Log { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items 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] 54 | pub fn append_data(&mut self, term: u64, entry_data_list: Vec) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | pub fn append_entries(&mut self, entries_to_append: Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | pub fn entries(&self) -> &Vec { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | pub fn start_index(&self) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | pub fn entry(&self, index: u64) -> Option<&proto::LogEntry> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | pub fn pack_entries(&self, next_index: u64) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | pub fn last_index(&self, last_included_index: u64) -> u64 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 180 | pub fn last_term(&self, last_included_term: u64) -> u64 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 198 | pub fn prev_log_term( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 237 | pub fn truncate_suffix(&mut self, last_index_kept: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 285 | pub fn truncate_prefix(&mut self, last_included_index_from_snapshot: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 321 | pub fn committed_entries_len(&self, commit_index: u64) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 332 | pub fn last_configuration(&self) -> Option { // 返回新的 config::Config [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 346 | pub fn gen_log_filepath(metadata_dir: &str) -> String { // &str 参数更通用 [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 351 | pub fn reload(&mut self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 392 | pub fn dump(&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: struct `Metadata` is never constructed [INFO] [stdout] --> src/raft/metadata.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct Metadata { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `PersistCommand` is never used [INFO] [stdout] --> src/raft/metadata.rs:22:6 [INFO] [stdout] | [INFO] [stdout] 22 | enum PersistCommand { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MetadataManager` is never constructed [INFO] [stdout] --> src/raft/metadata.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct MetadataManager { [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 items `new`, `persist_to_disk`, `update_current_term`, `update_voted_for`, `sync`, and `get` are never used [INFO] [stdout] --> src/raft/metadata.rs:76:12 [INFO] [stdout] | [INFO] [stdout] 75 | impl MetadataManager { [INFO] [stdout] | -------------------- associated items 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] 158 | pub async fn update_current_term(&self, current_term: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 173 | pub async fn update_voted_for(&self, voted_for: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 187 | pub async fn sync(&self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 193 | pub async fn get(&self) -> Metadata { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Snapshot` is never constructed [INFO] [stdout] --> src/raft/snapshot.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct Snapshot { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items 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] 73 | pub fn reload_metadata(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | fn parse_snapshot_filename(filename: &str, expected_extension: &str) -> Option<(u64, u64)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 129 | fn latest_file_with_pattern(&self, extension_suffix: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | pub fn latest_snapshot_filepath(&mut self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 172 | pub fn latest_metadata_filepath(&mut self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | pub fn gen_snapshot_filepath( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 186 | pub fn gen_snapshot_metadata_filepath( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 197 | pub fn gen_tmp_snapshot_filepath( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 207 | pub fn gen_tmp_snapshot_metadata_filepath( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rand_election_timeout` is never used [INFO] [stdout] --> src/raft/util.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn rand_election_timeout() -> Duration { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `StateMachine` is never used [INFO] [stdout] --> src/raft/state_machine.rs:12:11 [INFO] [stdout] | [INFO] [stdout] 12 | pub trait StateMachine: Debug + Send + 'static { [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: struct `Server` is never constructed [INFO] [stdout] --> src/raft/rpc.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct Server { [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: struct `Client` is never constructed [INFO] [stdout] --> src/raft/rpc.rs:201:12 [INFO] [stdout] | [INFO] [stdout] 201 | pub struct Client {} [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/raft/rpc.rs:204:18 [INFO] [stdout] | [INFO] [stdout] 203 | impl Client { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] 204 | pub async fn append_entries( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 227 | pub async fn request_vote( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 249 | pub async fn install_snapshot( [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: enum `State` is never used [INFO] [stdout] --> src/raft/consensus.rs:10:10 [INFO] [stdout] | [INFO] [stdout] 10 | pub enum State { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Consensus` is never constructed [INFO] [stdout] --> src/raft/consensus.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct Consensus { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items 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] 229 | fn update_peer_config_states(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 237 | async fn append_entries_to_peers(&mut self, heartbeat: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 262 | async fn append_one_entry_to_peer(&mut self, peer_id: u64, heartbeat: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 356 | async fn install_snapshot_to_peer(&mut self, peer_id: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 461 | async fn leader_advance_commit_index(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 530 | async fn follower_advance_commit_index(&mut self, leader_commit_index: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 574 | async fn apply_configuration_to_internal_state(&mut self, config_to_apply: config::Config, committed: bool) { // Renamed `config` to ... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 635 | async fn append_and_replicate_config_change(&mut self, target_new_servers_opt: Option>) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 674 | async fn append_and_replicate_final_config(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 684 | pub async fn shutdown(&mut self) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 700 | pub async fn handle_snapshot_timeout(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 770 | pub async fn handle_propose_rpc( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 821 | pub async fn handle_append_entries_rpc( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 930 | pub async fn handle_install_snapshot_rpc( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1033 | pub fn handle_get_leader_rpc( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1069 | pub fn handle_get_configuration_rpc( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1077 | pub async fn handle_set_configuration_rpc( [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] 1296 | pub async fn handle_request_vote_rpc( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1363 | async fn become_leader(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1394 | async fn step_down(&mut self, new_term: u64) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1448 | pub async fn replicate( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ELECTION_TIMEOUT_MAX_MILLIS` is never used [INFO] [stdout] --> src/raft/config.rs:9:11 [INFO] [stdout] | [INFO] [stdout] 9 | pub const ELECTION_TIMEOUT_MAX_MILLIS: u64 = 15000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ELECTION_TIMEOUT_MIN_MILLIS` is never used [INFO] [stdout] --> src/raft/config.rs:10:11 [INFO] [stdout] | [INFO] [stdout] 10 | pub const ELECTION_TIMEOUT_MIN_MILLIS: u64 = 10000; [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: constant `SNAPSHOT_TRUNK_SIZE` is never used [INFO] [stdout] --> src/raft/config.rs:26:11 [INFO] [stdout] | [INFO] [stdout] 26 | pub const SNAPSHOT_TRUNK_SIZE: usize = 30; [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: associated function `new` is never used [INFO] [stdout] --> src/raft/peer.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 22 | impl Peer { [INFO] [stdout] | --------- associated function in this implementation [INFO] [stdout] 23 | pub fn new(server_id: u64, server_addr: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/raft/peer.rs:55:12 [INFO] [stdout] | [INFO] [stdout] 41 | impl PeerManager { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn remove(&mut self, server_ids: Vec) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn peers_mut(&mut self) -> &mut Vec { [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] 78 | pub fn peer(&mut self, server_id: u64) -> Option<&mut Peer> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 83 | pub fn contains(&self, server_id: u64) -> bool { [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: struct `Snapshot` is never constructed [INFO] [stdout] --> src/raft/snapshot.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct Snapshot { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items 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] 73 | pub fn reload_metadata(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | fn parse_snapshot_filename(filename: &str, expected_extension: &str) -> Option<(u64, u64)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 129 | fn latest_file_with_pattern(&self, extension_suffix: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | pub fn latest_snapshot_filepath(&mut self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 172 | pub fn latest_metadata_filepath(&mut self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | pub fn gen_snapshot_filepath( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 186 | pub fn gen_snapshot_metadata_filepath( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 197 | pub fn gen_tmp_snapshot_filepath( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 207 | pub fn gen_tmp_snapshot_metadata_filepath( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rand_election_timeout` is never used [INFO] [stdout] --> src/raft/util.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn rand_election_timeout() -> Duration { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `StateMachine` is never used [INFO] [stdout] --> src/raft/state_machine.rs:12:11 [INFO] [stdout] | [INFO] [stdout] 12 | pub trait StateMachine: Debug + Send + 'static { [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: struct `Server` is never constructed [INFO] [stdout] --> src/raft/rpc.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct Server { [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: struct `Client` is never constructed [INFO] [stdout] --> src/raft/rpc.rs:201:12 [INFO] [stdout] | [INFO] [stdout] 201 | pub struct Client {} [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/raft/rpc.rs:204:18 [INFO] [stdout] | [INFO] [stdout] 203 | impl Client { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] 204 | pub async fn append_entries( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 227 | pub async fn request_vote( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 249 | pub async fn install_snapshot( [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 36.26s [INFO] running `Command { std: "docker" "inspect" "d457f7b9888628457b95224b344a1caa2169e8a276be8d74acc01fd8031cae7e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d457f7b9888628457b95224b344a1caa2169e8a276be8d74acc01fd8031cae7e", kill_on_drop: false }` [INFO] [stdout] d457f7b9888628457b95224b344a1caa2169e8a276be8d74acc01fd8031cae7e