pub enum MergeError {
Show 21 variants
MillisecondsOutOfRange(u64),
TimestampExhausted,
GenerationExhausted,
GenerationParity(u64),
GenerationNotSeen {
row: RowId,
generation: u64,
},
GenerationAhead {
row: RowId,
},
MissingWrite(WriteId),
DuplicateWrite(WriteId),
DuplicateTimestamp(WriteId, WriteId),
CausalTimestamp(WriteId),
CausalClosure(WriteId),
TimestampDevice(WriteId),
MissingChange(RowId),
ParentGeneration(u64),
ReferenceAudience(RowId),
DuplicateRow(RowId),
GenerationGap(u64),
GenerationTimestamp(u64),
DeletedRowHasCells,
CellBeforeIncarnation(String),
InvalidLostValue(LostKey),
}Expand description
Invalid input to the pure merge; no partially changed state is returned.
Variants§
MillisecondsOutOfRange(u64)
Milliseconds do not fit in the timestamp’s 48 bits.
TimestampExhausted
The final millisecond and counter have both been used.
GenerationExhausted
Advancing a generation would exceed its representation.
GenerationParity(u64)
An insert was not made at an even generation, or an edit/delete at an odd one.
GenerationNotSeen
No write the author had read moved this row to the specified generation.
Fields
GenerationAhead
Causality has not brought the receiving row to this generation.
MissingWrite(WriteId)
A required write is missing from the applied set.
DuplicateWrite(WriteId)
A write occurs twice in the input or has already been applied.
DuplicateTimestamp(WriteId, WriteId)
Two different writes have equal timestamps.
CausalTimestamp(WriteId)
A timestamp is not larger than that of a write its author had read.
CausalClosure(WriteId)
A write’s recorded past omits a predecessor of a write it had read:
its read_through is below that of its device’s last landed write.
TimestampDevice(WriteId)
The timestamp’s device is different from the write’s device.
MissingChange(RowId)
A write’s row changes do not include the row passed to apply.
ParentGeneration(u64)
A parent generation must name an existing incarnation, an odd generation.
ReferenceAudience(RowId)
A reference reaches an audience some readers of the child cannot read.
DuplicateRow(RowId)
The removal view listed a row more than once.
GenerationGap(u64)
Stored generations must be contiguous from one through the current one.
GenerationTimestamp(u64)
Each generation must be stamped after the preceding generation.
DeletedRowHasCells
A deleted row cannot retain winning cells.
CellBeforeIncarnation(String)
A cell’s setter cannot precede the start of its incarnation.
InvalidLostValue(LostKey)
A lost record has an invalid incarnation or canonical replacer.
Trait Implementations§
Source§impl Clone for MergeError
impl Clone for MergeError
Source§fn clone(&self) -> MergeError
fn clone(&self) -> MergeError
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for MergeError
impl Debug for MergeError
Source§impl Display for MergeError
impl Display for MergeError
Source§impl Error for MergeError
impl Error for MergeError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
Source§impl PartialEq for MergeError
impl PartialEq for MergeError
impl Eq for MergeError
impl StructuralPartialEq for MergeError
Auto Trait Implementations§
impl Freeze for MergeError
impl RefUnwindSafe for MergeError
impl Send for MergeError
impl Sync for MergeError
impl Unpin for MergeError
impl UnsafeUnpin for MergeError
impl UnwindSafe for MergeError
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§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