pub enum RebuildOutcome {
Rebuilt,
AlreadyInitialized,
InProgressElsewhere,
}Expand description
What a rebuild run actually did, which is not always what was asked for.
InProgressElsewhere is the one to handle: a forced rebuild is exclusive,
because every fence mints a generation superseding whatever is in flight,
so concurrent forced rebuilds cannot all win and the losers rebuilt
nothing. A caller that needs a baseline containing rows it has just
written must either act on this outcome or serialise its rebuilds; it
cannot get that guarantee by retrying, which is what made an earlier
unbounded retry a livelock.
Variants§
Trait Implementations§
Source§impl Clone for RebuildOutcome
impl Clone for RebuildOutcome
impl Copy for RebuildOutcome
Source§impl Debug for RebuildOutcome
impl Debug for RebuildOutcome
impl Eq for RebuildOutcome
Source§impl PartialEq for RebuildOutcome
impl PartialEq for RebuildOutcome
impl StructuralPartialEq for RebuildOutcome
Auto Trait Implementations§
impl Freeze for RebuildOutcome
impl RefUnwindSafe for RebuildOutcome
impl Send for RebuildOutcome
impl Sync for RebuildOutcome
impl Unpin for RebuildOutcome
impl UnsafeUnpin for RebuildOutcome
impl UnwindSafe for RebuildOutcome
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.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> ⓘ
Converts
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> ⓘ
Converts
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