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};