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
use io;
use add_async_trait;
use crateOptionalSend;
use crateOptionalSync;
use crateRaftTypeConfig;
use crateSnapshotOf;
/// A trait defining the interface for a Raft state machine snapshot subsystem.
///
/// This interface is accessed read-only from a snapshot-building task.
///
/// Typically, the snapshot implementation as such will be hidden behind a reference type like
/// `Arc<T>` or `Box<T>` and this interface implemented on the reference type. It can be
/// co-implemented with [`RaftStateMachine`] interface on the same cloneable object if the
/// underlying state machine is anyway synchronized.
///
/// [`RaftStateMachine`]: crate::storage::RaftStateMachine