pub struct CellConflict {
pub component: String,
pub occurrence: usize,
pub identity: String,
pub kind: ConflictKind,
pub chosen: ItemValue,
pub ours: ItemValue,
pub theirs: ItemValue,
}Expand description
A surfaced 3-way conflict: the same keyed item was updated to different text
on both sides at the SAME lawful lifecycle level. The merge applies a
deterministic policy (ours-wins, see ConflictPolicy) and records the
conflict here so callers never silently lose the losing side.
Lifecycle joins (a strike vs. a stale un-strike) are not conflicts — they
resolve deterministically to the struck side (Live < Struck) and are
excluded from this list. Only genuine same-level content disagreements count.
Fields§
§component: StringComponent name (queue, exchange, …) the conflict occurred in.
occurrence: usize0-based occurrence index of that component.
identity: StringReorder-stable item identity (component:occurrence:item-id).
kind: ConflictKindThe kind of divergence (currently always ConflictKind::Content; a
lifecycle join is never recorded as a conflict).
chosen: ItemValueThe value chosen by the merge policy (kept in merged_text).
ours: ItemValueours side’s value (the agent / committed-snapshot side).
theirs: ItemValuetheirs side’s value (the live editor / disk side).
Trait Implementations§
Source§impl Clone for CellConflict
impl Clone for CellConflict
Source§impl Debug for CellConflict
impl Debug for CellConflict
impl Eq for CellConflict
Source§impl PartialEq for CellConflict
impl PartialEq for CellConflict
impl StructuralPartialEq for CellConflict
Auto Trait Implementations§
impl Forget for CellConflict
impl Freeze for CellConflict
impl RefUnwindSafe for CellConflict
impl Send for CellConflict
impl Sync for CellConflict
impl Unpin for CellConflict
impl UnsafeUnpin for CellConflict
impl UnwindSafe for CellConflict
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,
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§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
key and return true if they are equal.