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
//! The deterministic core of [Fusee](https://github.com/bitsinfra/fusee).
//!
//! Nothing in this crate performs I/O, reads a clock, spawns a thread or
//! takes a lock. Each piece is a state machine driven by its host:
//!
//! - [`record`]: journal records and their encodings.
//! - [`segment`]: the log segment format, the in-memory [`segment::LogWriter`]
//! and the recovery scanner that tells torn tails from lost records.
//! - [`run`]: the per-run [`run::RunMachine`] that assigns journal positions,
//! replays recorded results in journal order and detects nondeterminism.
//! - [`shard`]: [`shard::ShardCore`], the state derived from a shard's log:
//! runs, timers, signals, and outputs held until their records are durable.
//! - [`wheel`]: the hierarchical timing wheel.
//! - [`store`]: run store and checkpoint formats.
//! - [`table`]: the compact table of every run a shard knows.
//! - [`vsr`]: the replication protocol as a pure state machine.
//! - [`frame`]: the framed binary protocol shared by replication and server
//! mode.
//!
//! Because the core is pure, the same code runs in production and inside the
//! deterministic simulator (`fusee-sim`), where disks tear writes and networks
//! drop messages under a seeded scheduler.
pub use ;