From b277ab357f050d0061b22b5de86becd831040547 Mon Sep 17 00:00:00 2001 From: jetie <1405758738@qq.com> Date: Sun, 14 Jun 2026 18:44:36 +0800 Subject: [PATCH] fix(raft): fix all clippy warnings Remove unused imports, fix unused variables, replace Default::default() field assignment with struct initializer, and use idiomatic patterns for length checks and vec! usage. --- src/cluster/discovery.rs | 2 +- src/raft/node.rs | 8 ++++---- src/raft/raftrs_store.rs | 36 ++++++++++++++++++++---------------- 3 files changed, 25 insertions(+), 21 deletions(-) diff --git a/src/cluster/discovery.rs b/src/cluster/discovery.rs index 8fc08a6..2bda4ec 100644 --- a/src/cluster/discovery.rs +++ b/src/cluster/discovery.rs @@ -496,7 +496,7 @@ mod tests { let token_file = dir.path().join("discovery.json"); // Pre-register two peers in the token file - let entries = vec![ + let entries = [ TokenEntry { node_id: 1, addr: "127.0.0.1:2380".to_string(), diff --git a/src/raft/node.rs b/src/raft/node.rs index 72573fd..2b7ca0e 100644 --- a/src/raft/node.rs +++ b/src/raft/node.rs @@ -6,7 +6,7 @@ use std::time::{Duration, Instant}; use crossbeam_channel::{self as cc, Receiver as CcReceiver}; use prost011::Message as ProstMessage; -use raft::eraftpb::{ConfChange, ConfChangeType, Entry, EntryType, Message}; +use raft::eraftpb::{ConfChange, Entry, EntryType, Message}; use raft::storage::Storage; use raft::{RawNode, StateRole}; use tokio::sync::{Notify, mpsc, oneshot}; @@ -244,7 +244,7 @@ fn raft_event_loop( let mut request_id_counter: u64 = 0; let mut was_leader = false; let tick_interval = Duration::from_millis(TICK_MS); - let mut bootstrapped = false; + let mut _bootstrapped = false; // Initialize from persisted snapshot index to avoid creating a redundant // snapshot immediately after restart. let mut last_snapshot_applied: u64 = node.store().snapshot_last_index(); @@ -267,7 +267,7 @@ fn raft_event_loop( if let Err(e) = node.campaign() { tracing::error!(error = %e, "campaign failed during bootstrap"); } - bootstrapped = true; + _bootstrapped = true; } // Track the next tick time using Instant for accurate time-based ticking @@ -429,7 +429,7 @@ fn raft_event_loop( // Step 1: Send outgoing messages from Leader BEFORE persisting. // According to raft-rs best practices, Leader should send messages in parallel with persistence. // Only Leader has messages in take_messages(); Follower messages come from take_persisted_messages(). - let mut messages = ready.take_messages(); + let messages = ready.take_messages(); if !messages.is_empty() { tracing::info!( messages_count = messages.len(), diff --git a/src/raft/raftrs_store.rs b/src/raft/raftrs_store.rs index 7ce019f..98f1641 100644 --- a/src/raft/raftrs_store.rs +++ b/src/raft/raftrs_store.rs @@ -351,7 +351,7 @@ impl Storage for RaftRsStore { low: u64, high: u64, max_size: impl Into>, - context: GetEntriesContext, + _context: GetEntriesContext, ) -> RaftResult> { let max_size = max_size.into(); let first = self.first_index()?; @@ -504,18 +504,19 @@ mod tests { let mut opts = rocksdb::Options::default(); opts.create_if_missing(true); opts.create_missing_column_families(true); - let db = rocksdb::DB::open_cf(&opts, dir.path(), &["default", "raft_log", "raft_state"]) - .unwrap(); + let db = + rocksdb::DB::open_cf(&opts, dir.path(), ["default", "raft_log", "raft_state"]).unwrap(); let store = RaftRsStore::new(Arc::new(db)); (dir, store) } fn make_entry(index: u64, term: u64, data: &[u8]) -> Entry { - let mut e = Entry::default(); - e.index = index; - e.term = term; - e.data = data.to_vec().into(); - e + Entry { + index, + term, + data: data.to_vec(), + ..Default::default() + } } #[test] @@ -588,10 +589,11 @@ mod tests { #[test] fn test_save_and_load_hard_state() { let (_dir, store) = open_store(); - let mut hs = HardState::default(); - hs.term = 5; - hs.vote = 2; - hs.commit = 10; + let hs = HardState { + term: 5, + vote: 2, + commit: 10, + }; store.save_hard_state(&hs).unwrap(); let state = store.initial_state().unwrap(); @@ -652,7 +654,7 @@ mod tests { let fetched = store .entries(1, 4, Some(15), GetEntriesContext::empty(false)) .unwrap(); - assert!(fetched.len() >= 1); + assert!(!fetched.is_empty()); assert!(fetched.len() <= 3); } @@ -733,9 +735,11 @@ mod tests { store.append_entries(&entries).unwrap(); let data = b"leader snapshot".to_vec(); - let mut meta = raft::eraftpb::SnapshotMetadata::default(); - meta.index = 5; - meta.term = 2; + let mut meta = raft::eraftpb::SnapshotMetadata { + index: 5, + term: 2, + ..Default::default() + }; let mut cs = ConfState::default(); cs.set_voters(vec![1, 2, 3]); meta.set_conf_state(cs);