dig-epoch 0.1.0

DIG L2 epoch geometry, phase machine, manager, and checkpoint competition types
Documentation
//! # `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.

pub mod checkpoint_competition;
pub mod dfsp;
pub mod epoch_info;
pub mod epoch_phase;
pub mod epoch_summary;
pub mod events;
pub mod reward;
pub mod verification;

// -----------------------------------------------------------------------------
// STR-003 — flat re-exports of each submodule's public surface
// -----------------------------------------------------------------------------

pub use checkpoint_competition::{CheckpointCompetition, CompetitionStatus};
pub use dfsp::DfspCloseSnapshot;
pub use epoch_info::EpochInfo;
pub use epoch_phase::{EpochPhase, PhaseTransition};
pub use epoch_summary::EpochSummary;
pub use events::{EpochEvent, EpochStats};
pub use reward::RewardDistribution;
pub use verification::{EpochBlockLink, EpochCheckpointData, EpochCheckpointSignMaterial};