pub enum Floor<S: Scheme, D: Digest> {
Genesis(D),
Finalized(Finalization<S, D>),
}Expand description
The certified root from which a Simplex instance starts.
The floor must be durable and must never move backwards across restarts: the voter prunes its durable vote journal relative to the floor, so restarting with an earlier floor can re-enter views whose vote records were already discarded (risking equivocation). Derive the floor from application state that is persisted before the engine starts.
Variants§
Genesis(D)
Start from the epoch genesis payload at view 0.
Finalized(Finalization<S, D>)
Start from an already-finalized proposal.
Trait Implementations§
Auto Trait Implementations§
impl<S, D> Freeze for Floor<S, D>
impl<S, D> RefUnwindSafe for Floor<S, D>
impl<S, D> Send for Floor<S, D>where
Finalization<S, D>: Send,
impl<S, D> Sync for Floor<S, D>where
Finalization<S, D>: Sync,
impl<S, D> Unpin for Floor<S, D>
impl<S, D> UnsafeUnpin for Floor<S, D>
impl<S, D> UnwindSafe for Floor<S, D>
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
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<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
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