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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
//! Default implementations for common Openraft traits.
//!
//! This module provides ready-to-use implementations of Openraft traits and types,
//! making it easy to get started without custom implementations.
//!
//! ## Key Types
//!
//! - [`Entry`] - Default log entry implementation
//! - [`LogId`] - Default log identifier
//! - [`Vote`] - Default vote implementation
//! - [`BasicNode`] - Simple node information with address
//! - [`EmptyNode`] - Minimal node representation (no metadata)
//! - [`OneshotResponder`] - Single-use response channel
//! - [`BoxedErrorSource`] - Boxed error wrapper for smaller error types
//!
//! ## Runtime
//!
//! - [`TokioRuntime`] - Tokio-based async runtime (feature: `tokio-rt`)
//!
//! ## Leader ID Modes
//!
//! - [`leader_id_std::LeaderId`] - Standard Raft: single leader per term
//! - [`leader_id_adv::LeaderId`] - Advanced: multiple leaders per term (reduces conflicts)
//!
//! Most applications can use these implementations directly without customization.
pub use BoxedErrorSource;
pub use TokioRuntime;
pub use crateEntry;
pub use crateBasicNode;
pub use crateEmptyNode;
pub use crateOneshotResponder;
pub use crateProgressResponder;
/// LeaderId implementation for advanced mode, allowing multiple leaders per term.
/// LeaderId implementation for standard Raft mode, enforcing single leader per term.
/// Default [`Batch`](`crate::batch::Batch`) implementation backed by `SmallVec<[T; 1]>`,
/// avoiding heap allocation for single-element batches.
pub use crateInlineBatch;
/// Default implementation of a raft log identity.
pub use crateLogId;
/// Default [`RaftVote`] implementation for both standard Raft mode and multi-leader-per-term mode.
///
/// The difference between the two modes is the implementation of [`RaftLeaderId`].
///
/// [`RaftVote`]: crate::vote::raft_vote::RaftVote
/// [`RaftLeaderId`]: crate::vote::RaftLeaderId
pub use crateVote;