[][src]Enum web3::EitherTransport

pub enum EitherTransport<A, B> {
    Left(A),
    Right(B),
}

A wrapper over two possible transports.

This type can be used to write semi-generic code without the hassle of making all functions generic.

See the examples folder for an example how to use it.

Variants

Left(A)

First possible transport.

Right(B)

Second possible transport.

Trait Implementations

impl<A, B, ABatch, BBatch> BatchTransport for EitherTransport<A, B> where
    A: BatchTransport<Batch = ABatch>,
    B: BatchTransport<Batch = BBatch>,
    A::Out: 'static,
    B::Out: 'static,
    ABatch: Future<Item = Vec<Result<Value, Error>>, Error = Error> + 'static,
    BBatch: Future<Item = Vec<Result<Value, Error>>, Error = Error> + 'static, 
[src]

type Batch = Box<dyn Future<Item = Vec<Result<Value, Error>>, Error = Error>>

The type of future this transport returns when a call is made.

impl<A: Clone, B: Clone> Clone for EitherTransport<A, B>[src]

impl<A: Debug, B: Debug> Debug for EitherTransport<A, B>[src]

impl<A, B, AStream, BStream> DuplexTransport for EitherTransport<A, B> where
    A: DuplexTransport<NotificationStream = AStream>,
    B: DuplexTransport<NotificationStream = BStream>,
    A::Out: 'static,
    B::Out: 'static,
    AStream: Stream<Item = Value, Error = Error> + 'static,
    BStream: Stream<Item = Value, Error = Error> + 'static, 
[src]

type NotificationStream = Box<dyn Stream<Item = Value, Error = Error>>

The type of stream this transport returns

impl<A, B, AOut, BOut> Transport for EitherTransport<A, B> where
    A: Transport<Out = AOut>,
    B: Transport<Out = BOut>,
    AOut: Future<Item = Value, Error = Error> + 'static,
    BOut: Future<Item = Value, Error = Error> + 'static, 
[src]

type Out = Box<dyn Future<Item = Value, Error = Error>>

The type of future this transport returns when a call is made.

Auto Trait Implementations

impl<A, B> RefUnwindSafe for EitherTransport<A, B> where
    A: RefUnwindSafe,
    B: RefUnwindSafe

impl<A, B> Send for EitherTransport<A, B> where
    A: Send,
    B: Send

impl<A, B> Sync for EitherTransport<A, B> where
    A: Sync,
    B: Sync

impl<A, B> Unpin for EitherTransport<A, B> where
    A: Unpin,
    B: Unpin

impl<A, B> UnwindSafe for EitherTransport<A, B> where
    A: UnwindSafe,
    B: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<X, T> BatchTransport for X where
    T: BatchTransport + ?Sized,
    X: Deref<Target = T> + Debug + Clone
[src]

type Batch = <T as BatchTransport>::Batch

The type of future this transport returns when a call is made.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<X, T> DuplexTransport for X where
    T: DuplexTransport + ?Sized,
    X: Deref<Target = T> + Debug + Clone
[src]

type NotificationStream = <T as DuplexTransport>::NotificationStream

The type of stream this transport returns

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<X, T> Transport for X where
    T: Transport + ?Sized,
    X: Deref<Target = T> + Debug + Clone
[src]

type Out = <T as Transport>::Out

The type of future this transport returns when a call is made.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Typeable for T where
    T: Any

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,