Struct phron_finality::network::gossip::service::ServiceInterface
source · struct ServiceInterface<D: Data, P: Clone + Debug + Eq + Hash + Send + 'static> {
messages_from_service: UnboundedReceiver<(D, P)>,
messages_for_service: UnboundedSender<Command<D, P>>,
}
Fields§
§messages_from_service: UnboundedReceiver<(D, P)>
§messages_for_service: UnboundedSender<Command<D, P>>
Trait Implementations§
source§impl<D: Data, P: Clone + Debug + Eq + Hash + Send + 'static> Network<D> for ServiceInterface<D, P>
impl<D: Data, P: Clone + Debug + Eq + Hash + Send + 'static> Network<D> for ServiceInterface<D, P>
type Error = Error
type PeerId = P
source§fn send_to(&mut self, data: D, peer_id: Self::PeerId) -> Result<(), Self::Error>
fn send_to(&mut self, data: D, peer_id: Self::PeerId) -> Result<(), Self::Error>
Attempt to send data to a peer. Might silently fail if we are not connected to them.
source§fn send_to_random(
&mut self,
data: D,
peer_ids: HashSet<Self::PeerId>
) -> Result<(), Self::Error>
fn send_to_random( &mut self, data: D, peer_ids: HashSet<Self::PeerId> ) -> Result<(), Self::Error>
Send data to a random peer, preferably from a list. It should send the data to a randomly
chosen peer from the provided list, but if it cannot (e.g. because it’s not connected) it
will send to a random available peer. No guarantees any peer gets it even if no errors are
returned, retry appropriately.
source§fn broadcast(&mut self, data: D) -> Result<(), Self::Error>
fn broadcast(&mut self, data: D) -> Result<(), Self::Error>
Broadcast data to all directly connected peers. Network-wide broadcasts have to be
implemented on top of this abstraction. Note that there might be no currently connected
peers, so there are no guarantees any single call sends anything even if no errors are
returned, retry appropriately.
source§fn next<'life0, 'async_trait>(
&'life0 mut self
) -> Pin<Box<dyn Future<Output = Result<(D, Self::PeerId), Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn next<'life0, 'async_trait>(
&'life0 mut self
) -> Pin<Box<dyn Future<Output = Result<(D, Self::PeerId), Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Receive some data from the network, including information about who sent it.
This method’s implementation must be cancellation safe.
Auto Trait Implementations§
impl<D, P> !RefUnwindSafe for ServiceInterface<D, P>
impl<D, P> Send for ServiceInterface<D, P>
impl<D, P> Sync for ServiceInterface<D, P>
impl<D, P> Unpin for ServiceInterface<D, P>
impl<D, P> !UnwindSafe for ServiceInterface<D, P>
Blanket Implementations§
§impl<T> AnySync for T
impl<T> AnySync for T
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<T> CheckedConversion for T
impl<T> CheckedConversion for T
§fn checked_from<T>(t: T) -> Option<Self>where
Self: TryFrom<T>,
fn checked_from<T>(t: T) -> Option<Self>where
Self: TryFrom<T>,
§fn checked_into<T>(self) -> Option<T>where
Self: TryInto<T>,
fn checked_into<T>(self) -> Option<T>where
Self: TryInto<T>,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<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§impl<T> IsType<T> for T
impl<T> IsType<T> for T
§impl<T, Outer> IsWrappedBy<Outer> for T
impl<T, Outer> IsWrappedBy<Outer> for T
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
Consume self to return an equivalent value of
T
. Read more§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
The counterpart to
unchecked_from
.§impl<T, S> UniqueSaturatedInto<T> for S
impl<T, S> UniqueSaturatedInto<T> for S
§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
Consume self to return an equivalent value of
T
.