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.