pub enum StateMachineEvent {
EnteredLive {
workload_id: u32,
},
EnteredSuspect {
workload_id: u32,
},
Evicted {
workload_id: u32,
reason: &'static str,
},
PublishLeaseRevocation {
workload_id: u32,
standby_providers: Vec<String>,
},
AttemptRespawn {
workload_id: u32,
attempt: u8,
},
Failed {
workload_id: u32,
reason: String,
},
}Expand description
Side-effects the state machine asks the controller to perform.
The state machine never does I/O — it returns events and the
caller (typically ProviderService::run’s fourth concurrent
loop) translates them into Nostr publishes / backend respawns.
Variants§
EnteredLive
EnteredSuspect
Evicted
PublishLeaseRevocation
The local state has left Live. The controller should
publish a LeaseRevocation Nostr event addressed to the
listed standby providers so exactly one of them can promote.
AttemptRespawn
Controller should attempt a local respawn (None + OnFailure).
The result is fed back via notify_respawn_failed.
Failed
Trait Implementations§
Source§impl Clone for StateMachineEvent
impl Clone for StateMachineEvent
Source§fn clone(&self) -> StateMachineEvent
fn clone(&self) -> StateMachineEvent
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for StateMachineEvent
impl Debug for StateMachineEvent
Source§impl PartialEq for StateMachineEvent
impl PartialEq for StateMachineEvent
Source§fn eq(&self, other: &StateMachineEvent) -> bool
fn eq(&self, other: &StateMachineEvent) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Eq for StateMachineEvent
impl StructuralPartialEq for StateMachineEvent
Auto Trait Implementations§
impl Freeze for StateMachineEvent
impl RefUnwindSafe for StateMachineEvent
impl Send for StateMachineEvent
impl Sync for StateMachineEvent
impl Unpin for StateMachineEvent
impl UnsafeUnpin for StateMachineEvent
impl UnwindSafe for StateMachineEvent
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more