pub struct Stateful<E, A, S, V, R>where
E: Rng + Spawner + Metrics + Clock + Storage,
A: Application<E>,
S: Scheme,
V: Variant<ApplicationBlock = A::Block>,{ /* private fields */ }Expand description
Stateful application that manages the pending-tip DAG of merkleized
batches on behalf of an Application, implementing the consensus
application and verifying traits.
Implementations§
Source§impl<E, A, S, V, R> Stateful<E, A, S, V, R>where
E: Rng + Spawner + Metrics + Clock + Storage,
A: Application<E>,
A::Databases: StateSyncSet<E, R, <<A as Application<E>>::Block as Digestible>::Digest>,
S: Scheme,
V: Variant<ApplicationBlock = A::Block>,
R: AttachableResolverSet<A::Databases>,
Mailbox<S, V>: BlockProvider<Block = A::Block>,
impl<E, A, S, V, R> Stateful<E, A, S, V, R>where
E: Rng + Spawner + Metrics + Clock + Storage,
A: Application<E>,
A::Databases: StateSyncSet<E, R, <<A as Application<E>>::Block as Digestible>::Digest>,
S: Scheme,
V: Variant<ApplicationBlock = A::Block>,
R: AttachableResolverSet<A::Databases>,
Mailbox<S, V>: BlockProvider<Block = A::Block>,
Auto Trait Implementations§
impl<E, A, S, V, R> !Freeze for Stateful<E, A, S, V, R>
impl<E, A, S, V, R> !RefUnwindSafe for Stateful<E, A, S, V, R>
impl<E, A, S, V, R> Send for Stateful<E, A, S, V, R>where
R: Send,
impl<E, A, S, V, R> Sync for Stateful<E, A, S, V, R>where
A: Sync,
<A as Application<E>>::InputProvider: Sync,
<<A as Application<E>>::Databases as DatabaseSet<E>>::Config: Sync,
R: Sync,
impl<E, A, S, V, R> Unpin for Stateful<E, A, S, V, R>where
A: Unpin,
<A as Application<E>>::InputProvider: Unpin,
<<A as Application<E>>::Databases as DatabaseSet<E>>::Config: Unpin,
R: Unpin,
E: Unpin,
<S as Scheme>::Certificate: Unpin,
<V as Variant>::Commitment: Unpin,
<E as Storage>::Blob: Unpin,
impl<E, A, S, V, R> UnsafeUnpin for Stateful<E, A, S, V, R>where
A: UnsafeUnpin,
<A as Application<E>>::InputProvider: UnsafeUnpin,
<<A as Application<E>>::Databases as DatabaseSet<E>>::Config: UnsafeUnpin,
R: UnsafeUnpin,
E: UnsafeUnpin,
<S as Scheme>::Certificate: UnsafeUnpin,
<V as Variant>::Commitment: UnsafeUnpin,
<E as Storage>::Blob: UnsafeUnpin,
impl<E, A, S, V, R> !UnwindSafe for Stateful<E, A, S, V, R>
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
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>
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