pub struct Engine<E, S, X, D, C, H, B, P, T>where
E: BufferPooler + Rng + Spawner + Metrics + Clock,
S: Provider<Scope = Epoch>,
S::Scheme: CertificateScheme<PublicKey = P>,
X: Blocker,
D: PeerProvider<PublicKey = P>,
C: CodingScheme,
H: Hasher,
B: CertifiableBlock,
P: PublicKey,
T: Strategy,{ /* private fields */ }Expand description
A network layer for broadcasting and receiving CodedBlocks as Shards.
When enough Shards are present in the mailbox, the Engine may facilitate
reconstruction of the original CodedBlock and notify any subscribers waiting for it.
Implementations§
Source§impl<E, S, X, D, C, H, B, P, T> Engine<E, S, X, D, C, H, B, P, T>where
E: BufferPooler + Rng + Spawner + Metrics + Clock,
S: Provider<Scope = Epoch>,
S::Scheme: CertificateScheme<PublicKey = P>,
X: Blocker<PublicKey = P>,
D: PeerProvider<PublicKey = P>,
C: CodingScheme,
H: Hasher,
B: CertifiableBlock,
P: PublicKey,
T: Strategy,
impl<E, S, X, D, C, H, B, P, T> Engine<E, S, X, D, C, H, B, P, T>where
E: BufferPooler + Rng + Spawner + Metrics + Clock,
S: Provider<Scope = Epoch>,
S::Scheme: CertificateScheme<PublicKey = P>,
X: Blocker<PublicKey = P>,
D: PeerProvider<PublicKey = P>,
C: CodingScheme,
H: Hasher,
B: CertifiableBlock,
P: PublicKey,
T: Strategy,
Auto Trait Implementations§
impl<E, S, X, D, C, H, B, P, T> Freeze for Engine<E, S, X, D, C, H, B, P, T>
impl<E, S, X, D, C, H, B, P, T> !RefUnwindSafe for Engine<E, S, X, D, C, H, B, P, T>
impl<E, S, X, D, C, H, B, P, T> Send for Engine<E, S, X, D, C, H, B, P, T>
impl<E, S, X, D, C, H, B, P, T> Sync for Engine<E, S, X, D, C, H, B, P, T>
impl<E, S, X, D, C, H, B, P, T> Unpin for Engine<E, S, X, D, C, H, B, P, T>
impl<E, S, X, D, C, H, B, P, T> UnsafeUnpin for Engine<E, S, X, D, C, H, B, P, T>where
<S as Provider>::Scheme: Sized,
S: UnsafeUnpin,
X: UnsafeUnpin,
<B as Read>::Cfg: UnsafeUnpin,
T: UnsafeUnpin,
D: UnsafeUnpin,
E: UnsafeUnpin,
impl<E, S, X, D, C, H, B, P, T> !UnwindSafe for Engine<E, S, X, D, C, H, B, P, T>
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