pub enum Input<Ctx: Context> {
SendStatusUpdate,
Status(Status<Ctx>),
StartedHeight(Ctx::Height, HeightStartType),
Decided(Ctx::Height),
ValueRequest(InboundRequestId, PeerId, ValueRequest<Ctx>),
ValueResponse(OutboundRequestId, PeerId, Option<ValueResponse<Ctx>>),
GotDecidedValues(InboundRequestId, RangeInclusive<Ctx::Height>, Vec<RawDecidedValue<Ctx>>),
SyncRequestTimedOut(OutboundRequestId, PeerId, Request<Ctx>),
InvalidValue(PeerId, Ctx::Height),
ValueProcessingError(PeerId, Ctx::Height),
}Variants§
SendStatusUpdate
Periodical event triggering the broadcast of a status update
Status(Status<Ctx>)
A status update has been received from a peer
StartedHeight(Ctx::Height, HeightStartType)
Consensus just started a new height. The boolean indicates whether this was a restart or a new start.
Decided(Ctx::Height)
Consensus just decided on a new value
ValueRequest(InboundRequestId, PeerId, ValueRequest<Ctx>)
A ValueSync request has been received from a peer
ValueResponse(OutboundRequestId, PeerId, Option<ValueResponse<Ctx>>)
A (possibly empty or invalid) ValueSync response has been received
GotDecidedValues(InboundRequestId, RangeInclusive<Ctx::Height>, Vec<RawDecidedValue<Ctx>>)
Got a response from the application to our GetDecidedValues request
SyncRequestTimedOut(OutboundRequestId, PeerId, Request<Ctx>)
A request for a value timed out
InvalidValue(PeerId, Ctx::Height)
We received an invalid value (either certificate or value)
ValueProcessingError(PeerId, Ctx::Height)
An error occurred while processing a value
Trait Implementations§
Auto Trait Implementations§
impl<Ctx> Freeze for Input<Ctx>where
Status<Ctx>: Freeze,
<Ctx as Context>::Height: Freeze,
ValueRequest<Ctx>: Freeze,
Option<ValueResponse<Ctx>>: Freeze,
RangeInclusive<<Ctx as Context>::Height>: Freeze,
Vec<RawDecidedValue<Ctx>>: Freeze,
Request<Ctx>: Freeze,
impl<Ctx> RefUnwindSafe for Input<Ctx>where
Status<Ctx>: RefUnwindSafe,
<Ctx as Context>::Height: RefUnwindSafe,
ValueRequest<Ctx>: RefUnwindSafe,
Option<ValueResponse<Ctx>>: RefUnwindSafe,
RangeInclusive<<Ctx as Context>::Height>: RefUnwindSafe,
Vec<RawDecidedValue<Ctx>>: RefUnwindSafe,
Request<Ctx>: RefUnwindSafe,
impl<Ctx> Send for Input<Ctx>where
Status<Ctx>: Send,
<Ctx as Context>::Height: Send,
ValueRequest<Ctx>: Send,
Option<ValueResponse<Ctx>>: Send,
RangeInclusive<<Ctx as Context>::Height>: Send,
Vec<RawDecidedValue<Ctx>>: Send,
Request<Ctx>: Send,
impl<Ctx> Sync for Input<Ctx>where
Status<Ctx>: Sync,
<Ctx as Context>::Height: Sync,
ValueRequest<Ctx>: Sync,
Option<ValueResponse<Ctx>>: Sync,
RangeInclusive<<Ctx as Context>::Height>: Sync,
Vec<RawDecidedValue<Ctx>>: Sync,
Request<Ctx>: Sync,
impl<Ctx> Unpin for Input<Ctx>where
Status<Ctx>: Unpin,
<Ctx as Context>::Height: Unpin,
ValueRequest<Ctx>: Unpin,
Option<ValueResponse<Ctx>>: Unpin,
RangeInclusive<<Ctx as Context>::Height>: Unpin,
Vec<RawDecidedValue<Ctx>>: Unpin,
Request<Ctx>: Unpin,
impl<Ctx> UnsafeUnpin for Input<Ctx>where
Status<Ctx>: UnsafeUnpin,
<Ctx as Context>::Height: UnsafeUnpin,
ValueRequest<Ctx>: UnsafeUnpin,
Option<ValueResponse<Ctx>>: UnsafeUnpin,
RangeInclusive<<Ctx as Context>::Height>: UnsafeUnpin,
Vec<RawDecidedValue<Ctx>>: UnsafeUnpin,
Request<Ctx>: UnsafeUnpin,
impl<Ctx> UnwindSafe for Input<Ctx>where
Status<Ctx>: UnwindSafe,
<Ctx as Context>::Height: UnwindSafe,
ValueRequest<Ctx>: UnwindSafe,
Option<ValueResponse<Ctx>>: UnwindSafe,
RangeInclusive<<Ctx as Context>::Height>: UnwindSafe,
Vec<RawDecidedValue<Ctx>>: UnwindSafe,
Request<Ctx>: UnwindSafe,
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> 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