1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
//! Election and voting types.
//!
//! This module defines types for Raft leader election, voting, and term management.
//!
//! ## Key Types
//!
//! - [`Vote`] - A vote for a leader candidate, including term and node ID
//! - [`RaftTerm`] - Raft term number for tracking leadership epochs
//! - [`RaftLeaderId`] - Identifier for a leader (term + node ID)
//! - [`RaftCommittedLeaderId`] - Leader ID that has been committed
//!
//! ## Overview
//!
//! Voting is central to Raft's leader election mechanism:
//! - Each node maintains its current vote
//! - Votes include term and candidate node ID
//! - A candidate must receive votes from a quorum to become leader
//!
//! ## Leader ID Modes
//!
//! Openraft supports two leader ID modes:
//! - [`leader_id_std`] - Standard Raft: one leader per term
//! - [`leader_id_adv`] - Advanced mode: multiple leaders per term (reduces election conflicts)
//!
//! See the [leader ID documentation](crate::docs::data::leader_id) for details.
pub
pub
pub
pub
pub
pub
pub
pub use RaftCommittedLeaderId;
pub use RaftLeaderId;
pub use RaftLeaderIdExt;
pub use RaftTerm;
pub use RaftVote;
pub use leader_id_adv;
pub use LeaderIdCompare;
pub use leader_id_std;
pub use Vote;