[][src]Struct libp2p_secio::SecioMiddleware

pub struct SecioMiddleware<S> { /* fields omitted */ }

Wraps around an object that implements AsyncRead and AsyncWrite.

Implements Sink and Stream whose items are frames of data. Each frame is encoded individually, so you are encouraged to group data in few frames if possible.

Methods

impl<S> SecioMiddleware<S> where
    S: AsyncRead + AsyncWrite + Send + Unpin + 'static, 
[src]

pub fn handshake(
    socket: S,
    config: SecioConfig
) -> impl Future<Output = Result<(SecioMiddleware<S>, PublicKey, Vec<u8>), SecioError>>
[src]

Attempts to perform a handshake on the given socket.

On success, produces a SecioMiddleware that can then be used to encode/decode communications, plus the public key of the remote, plus the ephemeral public key.

Trait Implementations

impl<S> Sink<Vec<u8>> for SecioMiddleware<S> where
    S: AsyncRead + AsyncWrite + Unpin + Send + 'static, 
[src]

type Error = Error

The type of value produced by the sink when an error occurs.

impl<S> Stream for SecioMiddleware<S> where
    S: AsyncRead + AsyncWrite + Unpin + Send + 'static, 
[src]

type Item = Result<Vec<u8>, SecioError>

Values yielded by the stream.

Auto Trait Implementations

impl<S> !RefUnwindSafe for SecioMiddleware<S>

impl<S> Send for SecioMiddleware<S> where
    S: Send

impl<S> !Sync for SecioMiddleware<S>

impl<S> Unpin for SecioMiddleware<S>

impl<S> !UnwindSafe for SecioMiddleware<S>

Blanket Implementations

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

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

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

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

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

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T, Item> SinkExt<Item> for T where
    T: Sink<Item> + ?Sized
[src]

impl<T> StreamExt for T where
    T: Stream + ?Sized
[src]

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<S, T, E> TryStream for S where
    S: Stream<Item = Result<T, E>> + ?Sized
[src]

type Ok = T

The type of successful values yielded by this future

type Error = E

The type of failures yielded by this future

impl<S> TryStreamExt for S where
    S: TryStream + ?Sized
[src]

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