Struct phron_finality::sync::data::VersionWrapper
source · pub struct VersionWrapper<B, J, N>where
N: GossipNetwork<VersionedNetworkData<B, J>>,
J: Justification,
B: Block<UnverifiedHeader = <<J as Justification>::Header as Header>::Unverified>,{
inner: N,
_phantom: PhantomData<(B, J)>,
}
Expand description
Wrap around a network to avoid thinking about versioning.
Fields§
§inner: N
§_phantom: PhantomData<(B, J)>
Implementations§
source§impl<B, J, N> VersionWrapper<B, J, N>where
N: GossipNetwork<VersionedNetworkData<B, J>>,
J: Justification,
B: Block<UnverifiedHeader = <<J as Justification>::Header as Header>::Unverified>,
impl<B, J, N> VersionWrapper<B, J, N>where
N: GossipNetwork<VersionedNetworkData<B, J>>,
J: Justification,
B: Block<UnverifiedHeader = <<J as Justification>::Header as Header>::Unverified>,
Trait Implementations§
source§impl<B, J, N> Network<NetworkData<B, J>> for VersionWrapper<B, J, N>where
N: GossipNetwork<VersionedNetworkData<B, J>>,
J: Justification,
B: Block<UnverifiedHeader = <<J as Justification>::Header as Header>::Unverified>,
impl<B, J, N> Network<NetworkData<B, J>> for VersionWrapper<B, J, N>where
N: GossipNetwork<VersionedNetworkData<B, J>>,
J: Justification,
B: Block<UnverifiedHeader = <<J as Justification>::Header as Header>::Unverified>,
source§fn next<'life0, 'async_trait>(
&'life0 mut self
) -> Pin<Box<dyn Future<Output = Result<(NetworkData<B, J>, 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<(NetworkData<B, J>, Self::PeerId), Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
type Error = <N as Network<VersionedNetworkData<B, J>>>::Error
type PeerId = <N as Network<VersionedNetworkData<B, J>>>::PeerId
source§fn send_to(
&mut self,
data: NetworkData<B, J>,
peer_id: Self::PeerId
) -> Result<(), Self::Error>
fn send_to( &mut self, data: NetworkData<B, J>, 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: NetworkData<B, J>,
peer_ids: HashSet<Self::PeerId>
) -> Result<(), Self::Error>
fn send_to_random( &mut self, data: NetworkData<B, J>, 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: NetworkData<B, J>) -> Result<(), Self::Error>
fn broadcast(&mut self, data: NetworkData<B, J>) -> 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.
Auto Trait Implementations§
impl<B, J, N> RefUnwindSafe for VersionWrapper<B, J, N>
impl<B, J, N> Send for VersionWrapper<B, J, N>
impl<B, J, N> Sync for VersionWrapper<B, J, N>where
N: Sync,
impl<B, J, N> Unpin for VersionWrapper<B, J, N>
impl<B, J, N> UnwindSafe for VersionWrapper<B, J, N>
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
.