Skip to main content

hypercall/snapshot/
mod.rs

1//! Snapshot service for atomic state + offset persistence.
2//!
3//! This module provides:
4//! - Generic traits for snapshotting any stateful service
5//! - Synchronization state tracking for readiness gating
6//! - Portfolio-specific DB implementations
7//! - Order cache snapshot implementations
8//! - Instruments snapshot implementations
9//!
10//! # Architecture
11//!
12//! ```text
13//! snapshot/
14//! ├── error.rs          # SnapshotError
15//! ├── sync.rs           # SyncState, SyncStatus
16//! ├── traits.rs         # Generic Snapshotable, SnapshotWriter, SnapshotLoader
17//! ├── portfolio/        # Portfolio-specific DB implementations
18//! │   └── db.rs         # DbPortfolioSnapshotWriter, DbPortfolioSnapshotLoader
19//! └── instruments/      # Instruments snapshot DB implementations
20//!     └── db.rs         # DbInstrumentsSnapshotWriter, DbInstrumentsSnapshotLoader
21//! ```
22
23pub mod error;
24pub mod instruments;
25pub mod portfolio;
26pub mod sync;
27pub mod traits;
28
29// Re-export commonly used items
30pub use error::SnapshotError;
31pub use sync::{SyncState, SyncStatus};
32pub use traits::{
33    bootstrap_from_snapshot, OffsetStore, SnapshotLoader, SnapshotState, SnapshotWriter,
34    Snapshotable,
35};
36
37// Re-export portfolio implementations
38pub use portfolio::{
39    DbPortfolioSnapshotLoader, DbPortfolioSnapshotWriter, PortfolioSnapshotTask, SnapshotTaskConfig,
40};
41
42// Re-export instruments implementations
43pub use instruments::{
44    DbInstrumentsSnapshotLoader, DbInstrumentsSnapshotWriter, InstrumentsSnapshotTask,
45};