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
//! Log entry types and traits.
//!
//! This module defines types for Raft log entries that carry application data and membership
//! changes.
//!
//! ## Key Types
//!
//! - [`Entry`] - Default log entry implementation containing log ID and payload
//! - [`EntryPayload`] - Payload types: application data, membership config, or blank
//! - [`RaftEntry`] - Trait that log entries must implement
//! - [`RaftPayload`] - Trait for entry payload types
//!
//! ## Overview
//!
//! Each log entry contains:
//! - **Log ID**: `(term, node_id, index)` uniquely identifying the entry
//! - **Payload**: Either application data, membership change, or blank (noop)
//!
//! ## Entry Types
//!
//! - **Application entries**: Carry user data (`D` in [`RaftTypeConfig`])
//! - **Membership entries**: Record cluster configuration changes
//! - **Blank entries**: No-op entries appended by new leaders
//!
//! Applications typically use the default [`Entry`] type, or implement [`RaftEntry`] for custom
//! behavior.
use crateRaftTypeConfig;
pub
pub use Entry;
pub use EntryPayload;
pub use RaftEntry;
pub use RaftPayload;