pub struct Conflict {
pub branch: String,
pub branch_created_seq: u64,
pub coll: String,
pub id: String,
pub base: Option<Value>,
pub ours: Option<Value>,
pub theirs: Option<Value>,
pub kind: ConflictKind,
}Expand description
One document that two lines of history disagree about.
Fields§
§branch: StringWhich branch this disagreement is WITH, and which generation of that
name — see branch::branch_key.
A conflict without it is not identified. Two branches can make the same
claim about the same document for entirely different reasons, and a
human who resolved one has decided nothing at all about the other. The
key that settles a conflict is therefore
(branch, branch_created_seq, coll, id), never (coll, id):
base orders/42 = 1 branch X = 7
main = 8 branch Y = 7Resolving X must leave Y unresolved. Keyed only by document, X’s decision would silently authorise Y’s merge because the two happen to agree about the value — which is a human decision about one line of history being applied to another without anyone being asked.
branch_created_seq: u64§coll: String§id: String§base: Option<Value>The common ancestor: the destination as of the branch’s base_seq.
ours: Option<Value>The destination, now.
theirs: Option<Value>The branch.
kind: ConflictKindTrait Implementations§
Source§impl<'de> Deserialize<'de> for Conflict
impl<'de> Deserialize<'de> for Conflict
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<Conflict, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Conflict, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Serialize for Conflict
impl Serialize for Conflict
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl StructuralPartialEq for Conflict
Auto Trait Implementations§
impl Freeze for Conflict
impl RefUnwindSafe for Conflict
impl Send for Conflict
impl Sync for Conflict
impl Unpin for Conflict
impl UnsafeUnpin for Conflict
impl UnwindSafe for Conflict
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> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§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