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
62
//! # `types` — data-type definitions grouped by concern
//!
//! **Introduced by:** `STR-002` — Module hierarchy (SPEC §13).
//!
//! This module is the **single subdirectory** that STR-002 carves out of
//! the otherwise-flat dig-epoch tree. Its purpose is to separate the data
//! shapes the crate manipulates (structs / enums) from the free functions
//! that operate on them (which live at the crate root in `arithmetic.rs`,
//! `phase.rs`, `rewards.rs`, `verification.rs`, `dfsp.rs`, and `manager.rs`).
//!
//! ## Submodules
//!
//! Each submodule corresponds to a single data-type family and has exactly
//! one future-owner requirement family:
//!
//! | Submodule | Future owners |
//! |--------------------------------------------------|---------------------------------------------------|
//! | [`crate::types::epoch_phase`] | TYP-001 — `EpochPhase`, `PhaseTransition` |
//! | [`crate::types::epoch_info`] | TYP-002 — `EpochInfo` |
//! | [`crate::types::epoch_summary`] | TYP-003 — `EpochSummary` |
//! | [`crate::types::dfsp`] | TYP-004 — DFSP types (SPEC §3.14) |
//! | [`crate::types::events`] | TYP-005 — `EpochEvent`, `EpochStats` |
//! | [`crate::types::checkpoint_competition`] | CKP-001 — `CheckpointCompetition`, status enum |
//! | [`crate::types::reward`] | REW-004 — `RewardDistribution` |
//! | [`crate::types::verification`] | TYP-006 — `EpochBlockLink`, `EpochCheckpointData` |
//!
//! ## Re-export policy
//!
//! STR-002 only declares `pub mod <submodule>;` entries; the real
//! `pub use` re-exports (so consumers can write `dig_epoch::EpochPhase`)
//! land in [`STR-003`](../../docs/requirements/domains/crate_structure/specs/STR-003.md).
//! STR-002's integration test uses the fully-qualified path
//! `dig_epoch::types::<submodule>::STR_002_MODULE_PRESENT`, which is
//! exactly what STR-002 guarantees.
//!
//! ## Spec reference
//!
//! [`SPEC.md` §13](../../docs/resources/SPEC.md) — canonical module list.
//! [`STR-002.md`](../../docs/requirements/domains/crate_structure/specs/STR-002.md)
//! — per-submodule responsibility table.
// -----------------------------------------------------------------------------
// STR-003 — flat re-exports of each submodule's public surface
// -----------------------------------------------------------------------------
pub use ;
pub use DfspCloseSnapshot;
pub use EpochInfo;
pub use ;
pub use EpochSummary;
pub use ;
pub use RewardDistribution;
pub use ;