pub enum SyncLoopStatus {
Offline,
CheckingStorage,
Publishing,
Synchronized(SyncLoopSuccess),
Conflict {
success: SyncLoopSuccess,
branch: PendingBranch,
},
Blocked {
success: SyncLoopSuccess,
writes: Vec<PendingWrite>,
},
Failed {
error: String,
},
}Expand description
A sync-loop status the host renders. The loop reports provider reachability,
publication, and one terminal status. Conflict
and Blocked are successful storage cycles with unresolved
durable writes; Synchronized has none, while
Failed means the cycle itself failed. The in-progress marker
is the variant itself, so there is no separate “syncing” flag.
A whole-cycle failure is Failed; an otherwise-successful cycle carries its
SyncLoopSuccess in Synchronized, Conflict, or Blocked. Warnings ride in
SyncLoopSuccess::alerts.
A subscription immediately exposes the current value. Intermediate values may
be coalesced when the producer changes state faster than a receiver observes
it. A Synchronized value’s SyncLoopSuccess::row_changes therefore remains a
refresh hint, not a complete change stream.
Variants§
Offline
No provider operation has succeeded for the current connection.
CheckingStorage
The loop is checking whether storage is reachable.
Publishing
Storage is reachable and the cycle may publish local state.
Synchronized(SyncLoopSuccess)
The cycle completed. Warnings, if any, ride in the success’s alerts;
the observed device activity and applied row changes are on it too.
Conflict
The cycle reached storage, but the Serial branch was based on an older global head and require explicit discard or replacement.
Blocked
The cycle reached storage, but one or more writes cannot publish until their named prerequisite is supplied or repaired.
Failed
The cycle failed as a whole — no outcome to report, only the fault.
Trait Implementations§
Source§impl Clone for SyncLoopStatus
impl Clone for SyncLoopStatus
Source§fn clone(&self) -> SyncLoopStatus
fn clone(&self) -> SyncLoopStatus
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for SyncLoopStatus
impl RefUnwindSafe for SyncLoopStatus
impl Send for SyncLoopStatus
impl Sync for SyncLoopStatus
impl Unpin for SyncLoopStatus
impl UnsafeUnpin for SyncLoopStatus
impl UnwindSafe for SyncLoopStatus
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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>
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>
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