pub enum SharedClassification {
ResolvedDelete,
ResolvedIdentical,
ConflictModifyDelete,
ConflictMissingContent,
ConflictAddAddDifferent,
ConflictMissingBase,
NeedsDiff3,
}Expand description
Pre-diff3 classification of a shared path.
This is the pure decision tree extracted from [resolve_shared_path]. It
determines the merge outcome category without performing any I/O, allocation,
or subprocess calls. The Kani proof harnesses verify algebraic properties
(commutativity, idempotence, conflict monotonicity) directly on this function.
Variants§
ResolvedDelete
All workspaces deleted the same path → resolved delete.
ResolvedIdentical
All non-delete variants have identical content → resolved upsert.
ConflictModifyDelete
Mix of delete and non-delete changes → conflict.
ConflictMissingContent
A non-delete entry has no content → conflict.
ConflictAddAddDifferent
All adds, different content, no base → conflict.
ConflictMissingBase
Different content, no base, not all adds → conflict.
NeedsDiff3
Different content with base available → needs diff3.
Implementations§
Sourcepub const fn is_definite(self) -> bool
pub const fn is_definite(self) -> bool
Whether this classification produces a definite outcome (not NeedsDiff3).
Sourcepub const fn is_conflict(self) -> bool
pub const fn is_conflict(self) -> bool
Whether this classification is a conflict.
Trait Implementations§
Source§fn clone(&self) -> SharedClassification
fn clone(&self) -> SharedClassification
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
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§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.