pub struct PoolRespawn {
promoted_label: String,
refilled_label: Option<String>,
phase: Phase,
}Expand description
Pool-respawn saga: fires once per promote, waits for the matching refill, then completes.
Fields§
§promoted_label: StringLabel of the window that was promoted (Step 1’s input). Held
for log correlation only — the saga doesn’t validate the
new pool label against this one. Kept on the struct so future
failure-mode logging (timeout / explicit fail) can include
“which promote did this saga belong to?” without rethreading.
LSD-2 — also surfaces in --diag sagas via input_snapshot.
refilled_label: Option<String>New pool label observed in Event::PoolWindowAdded (Step 2’s
output). None until refill is observed.
phase: PhaseImplementations§
Trait Implementations§
Source§impl Saga for PoolRespawn
impl Saga for PoolRespawn
Source§fn input_snapshot(&self) -> Value
fn input_snapshot(&self) -> Value
LSD-2 — record the promote’s source label for --diag sagas.
refilled_label is None at start (only known after Step 2’s
echo lands) so we don’t include it; the durable log captures
the inputs the saga was constructed with, not its evolving
state — that lives in step rows.
fn name(&self) -> &'static str
fn start(&mut self, _ctx: &SagaCtx) -> SagaAction
fn on_event(&mut self, event: &Event, ctx: &SagaCtx) -> SagaAction
Source§fn timeout(&self) -> Duration
fn timeout(&self) -> Duration
IssueCmd+wait cycles. Coordinator arms a timer when the saga
registers; if the saga is still in_flight when timeout()
elapses, it is force-failed (SagaFailed { reason: "saga timeout" }) and removed from the registry. Read moreAuto Trait Implementations§
impl Freeze for PoolRespawn
impl RefUnwindSafe for PoolRespawn
impl Send for PoolRespawn
impl Sync for PoolRespawn
impl Unpin for PoolRespawn
impl UnsafeUnpin for PoolRespawn
impl UnwindSafe for PoolRespawn
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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.