Skip to main content

hypercall_recovery/
quiesce.rs

1use crate::lifecycle::RecoveryPhase;
2use serde::Serialize;
3
4/// Sources that can mutate engine-owned restart state.
5#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize)]
6pub enum MutationSource {
7    UserCommand,
8    RfqExecution,
9    Deposit,
10    LiquidationBonus,
11    MarginMode,
12    AgentAuth,
13    NonceCheck,
14    TierUpdate,
15    HypercoreEquity,
16    MarketAction,
17    TradingMode,
18    Expiry,
19    PriceIngestion,
20    IvIngestion,
21}
22
23/// Control action for an engine quiesce barrier.
24#[derive(Debug, Clone, Copy, PartialEq, Eq)]
25pub enum QuiesceAction {
26    Quiesce,
27    Resume,
28}
29
30/// Report returned after the engine crosses a quiesce or resume barrier.
31#[derive(Debug, Clone, Serialize)]
32pub struct QuiesceReport {
33    pub phase: RecoveryPhase,
34    pub quiesced: bool,
35    pub last_command_id: i64,
36    pub last_l2_seq: i64,
37    pub snapshot_persisted: bool,
38    pub paused_sources: Vec<MutationSource>,
39}