pub struct SyncCycleResult {
pub changesets_applied: u64,
pub held_positions: Vec<HeldStorePosition>,
pub device_activity: Vec<DeviceActivity>,
pub sync_time: String,
pub local_blob_cleanup_pending: bool,
pub row_changes: Vec<RowChange>,
pub resume_drain_promptly: bool,
pub rotation_pending: Option<RotationPending>,
}Expand description
Result of a single sync cycle.
Fields§
§changesets_applied: u64Number of remote changesets that were applied.
held_positions: Vec<HeldStorePosition>Changesets whose present cloud object failed validation or apply. The position is held at the bad seq for that device. Carries per-changeset detail (device, seq, reason) so a host can say which changesets are stalled, not only how many.
device_activity: Vec<DeviceActivity>Per-device activity of the other devices seen in the sync storage — device id, its member’s author key, latest seq, and RFC 3339 last-sync time — so a host can render which devices synced and when.
sync_time: StringRFC 3339 timestamp of when this cycle completed.
local_blob_cleanup_pending: boolBlobs needed before apply failed to download; their changesets and positions remain pending. Post-commit local blob cleanup still has durable filesystem work pending. Its corresponding rows and positions are already durable.
row_changes: Vec<RowChange>Row changes from applied changesets, for the host to map to domain events.
resume_drain_promptly: boolThe outbox drain broke this cycle to publish a just-completed make_remote (coven flipped a root’s gate the moment its last blob landed), so the loop should run the next cycle promptly to drain + publish the rest instead of waiting the idle interval.
rotation_pending: Option<RotationPending>Set when an exact local rotation operation or a committed peer rotation still blocks sealing. While set, this cycle sealed no changeset, blob, tombstone, or snapshot. The state identifies whether the blocker is a candidate, a local committed removal, a peer commit, or both.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for SyncCycleResult
impl !RefUnwindSafe for SyncCycleResult
impl Send for SyncCycleResult
impl Sync for SyncCycleResult
impl Unpin for SyncCycleResult
impl UnsafeUnpin for SyncCycleResult
impl !UnwindSafe for SyncCycleResult
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> 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