pub struct Mailbox<S, V>where
S: Scheme<V::Commitment>,
V: Variant,
V::ApplicationBlock: ReshareBlock,
<V::ApplicationBlock as ReshareBlock>::Signer: Signer<PublicKey = S::PublicKey>,{ /* private fields */ }Expand description
Mailbox for a running DKG probe actor.
Implementations§
Source§impl<S, V> Mailbox<S, V>where
S: Scheme<V::Commitment>,
V: Variant,
V::ApplicationBlock: ReshareBlock,
<V::ApplicationBlock as ReshareBlock>::Signer: Signer<PublicKey = S::PublicKey>,
impl<S, V> Mailbox<S, V>where
S: Scheme<V::Commitment>,
V: Variant,
V::ApplicationBlock: ReshareBlock,
<V::ApplicationBlock as ReshareBlock>::Signer: Signer<PublicKey = S::PublicKey>,
Sourcepub fn subscribe(
&self,
) -> Receiver<Artifact<S, <V as MarshalVariant>::Commitment, <<V as MarshalVariant>::ApplicationBlock as ReshareBlock>::Variant, <<V as MarshalVariant>::ApplicationBlock as ReshareBlock>::Directory>> ⓘ
pub fn subscribe( &self, ) -> Receiver<Artifact<S, <V as MarshalVariant>::Commitment, <<V as MarshalVariant>::ApplicationBlock as ReshareBlock>::Variant, <<V as MarshalVariant>::ApplicationBlock as ReshareBlock>::Directory>> ⓘ
Subscribe to the probe artifact.
The first live subscriber causes discovery to solicit the configured bootstrap committee. Dropping the returned receiver cancels the subscription. If discovery has already resolved, late subscribers receive the cached artifact immediately.
Sourcepub fn attach(&self, marshal: MarshalMailbox<S, V>)
pub fn attach(&self, marshal: MarshalMailbox<S, V>)
Attach marshal so the actor can serve peers’ boundary requests.
If discovery has pending subscribers, the actor waits until they are resolved or dropped before entering serving. A source node can attach marshal without ever subscribing, causing it to serve boundaries without issuing discovery requests.
Trait Implementations§
Source§impl<S, V> Clone for Mailbox<S, V>where
S: Scheme<V::Commitment> + Clone,
V: Variant + Clone,
V::ApplicationBlock: ReshareBlock,
<V::ApplicationBlock as ReshareBlock>::Signer: Signer<PublicKey = S::PublicKey>,
impl<S, V> Clone for Mailbox<S, V>where
S: Scheme<V::Commitment> + Clone,
V: Variant + Clone,
V::ApplicationBlock: ReshareBlock,
<V::ApplicationBlock as ReshareBlock>::Signer: Signer<PublicKey = S::PublicKey>,
Auto Trait Implementations§
impl<S, V> !RefUnwindSafe for Mailbox<S, V>
impl<S, V> !UnwindSafe for Mailbox<S, V>
impl<S, V> Freeze for Mailbox<S, V>where
<<V as Variant>::ApplicationBlock as ReshareBlock>::Signer: Sized,
<V as Variant>::ApplicationBlock: Sized,
Sender<Message<S, V>>: Freeze,
impl<S, V> Send for Mailbox<S, V>where
<<V as Variant>::ApplicationBlock as ReshareBlock>::Signer: Sized,
<V as Variant>::ApplicationBlock: Sized,
Sender<Message<S, V>>: Send,
impl<S, V> Sync for Mailbox<S, V>where
<<V as Variant>::ApplicationBlock as ReshareBlock>::Signer: Sized,
<V as Variant>::ApplicationBlock: Sized,
Sender<Message<S, V>>: Sync,
impl<S, V> Unpin for Mailbox<S, V>where
<<V as Variant>::ApplicationBlock as ReshareBlock>::Signer: Sized,
<V as Variant>::ApplicationBlock: Sized,
Sender<Message<S, V>>: Unpin,
impl<S, V> UnsafeUnpin for Mailbox<S, V>where
<<V as Variant>::ApplicationBlock as ReshareBlock>::Signer: Sized,
<V as Variant>::ApplicationBlock: Sized,
Sender<Message<S, V>>: UnsafeUnpin,
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