pub struct SyncReport {
pub copied_to_a: Vec<RecordKey>,
pub copied_to_b: Vec<RecordKey>,
pub fast_forwarded_to_a: Vec<RecordKey>,
pub fast_forwarded_to_b: Vec<RecordKey>,
pub merged: Vec<RecordKey>,
pub conflicts: Vec<SyncConflict>,
pub unconverged: Vec<RecordKey>,
}Expand description
What a sync run did.
Fields§
§copied_to_a: Vec<RecordKey>Keys copied into store A (were only in B). Includes tombstones.
copied_to_b: Vec<RecordKey>Keys copied into store B (were only in A). Includes tombstones.
fast_forwarded_to_a: Vec<RecordKey>Keys where A was behind B’s revision chain and was overwritten with B’s record. Includes tombstones.
fast_forwarded_to_b: Vec<RecordKey>Keys where B was behind A’s revision chain and was overwritten with A’s record. Includes tombstones.
merged: Vec<RecordKey>Keys whose divergence was reconciled and written to both stores: an auto-merged live record, or two diverged tombstones converged on the winner.
conflicts: Vec<SyncConflict>Divergences needing manual resolution.
unconverged: Vec<RecordKey>Keys whose write still lost a race on the final pass, when sync gave up
after [MAX_SYNC_PASSES]. Empty on every run that reached a clean pass,
so a non-empty list means the stores may still disagree on these keys,
even when conflicts is empty (gonzalo#290). Re-run sync once the
writers settle.
Implementations§
Source§impl SyncReport
impl SyncReport
Sourcepub fn converged(&self) -> bool
pub fn converged(&self) -> bool
Whether sync reached a pass in which no write lost a race. false means
the pass limit was exhausted and the stores may still disagree on
unconverged; it says nothing about conflicts,
which are a settled outcome a caller resolves.
Trait Implementations§
Source§impl Clone for SyncReport
impl Clone for SyncReport
Source§fn clone(&self) -> SyncReport
fn clone(&self) -> SyncReport
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more