pub struct ReplayResume<S: KernelState> {
pub events: Box<dyn EventStore>,
pub reducer: Box<dyn Reducer<S>>,
}Expand description
Replay-based resume: enforces Replay + Inject Decision semantics.
Fields§
§events: Box<dyn EventStore>Event store (source of truth).
reducer: Box<dyn Reducer<S>>Reducer to apply events.
Implementations§
Source§impl<S: KernelState + PartialEq> ReplayResume<S>
impl<S: KernelState + PartialEq> ReplayResume<S>
Sourcepub fn resume(
&self,
run_id: &RunId,
decision: ResumeDecision,
initial_state: S,
) -> Result<ResumeResult<S>, KernelError>
pub fn resume( &self, run_id: &RunId, decision: ResumeDecision, initial_state: S, ) -> Result<ResumeResult<S>, KernelError>
Resumes execution by replaying from the event log and injecting the decision.
This ensures no reliance on active memory - the state is reconstructed purely from the event log plus the injected decision.
Sourcepub fn verify_idempotent(
&self,
run_id: &RunId,
decision: ResumeDecision,
initial_state: S,
) -> Result<bool, KernelError>
pub fn verify_idempotent( &self, run_id: &RunId, decision: ResumeDecision, initial_state: S, ) -> Result<bool, KernelError>
Verifies that resuming N times yields identical results (idempotent).
Auto Trait Implementations§
impl<S> Freeze for ReplayResume<S>
impl<S> !RefUnwindSafe for ReplayResume<S>
impl<S> Send for ReplayResume<S>
impl<S> Sync for ReplayResume<S>
impl<S> Unpin for ReplayResume<S>
impl<S> UnsafeUnpin for ReplayResume<S>
impl<S> !UnwindSafe for ReplayResume<S>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more