[−][src]Struct libp2p_secio::SecioMiddleware
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, [src]
S: AsyncRead + AsyncWrite + Send,
pub fn handshake(
socket: S,
config: SecioConfig
) -> impl Future<Item = (SecioMiddleware<S>, PublicKey, Vec<u8>), Error = SecioError>[src]
socket: S,
config: SecioConfig
) -> impl Future<Item = (SecioMiddleware<S>, PublicKey, Vec<u8>), Error = SecioError>
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 for SecioMiddleware<S> where
S: AsyncRead + AsyncWrite, [src]
S: AsyncRead + AsyncWrite,
type SinkItem = BytesMut
The type of value that the sink accepts.
type SinkError = Error
The type of value produced by the sink when an error occurs.
fn start_send(
&mut self,
item: Self::SinkItem
) -> StartSend<Self::SinkItem, Self::SinkError>[src]
&mut self,
item: Self::SinkItem
) -> StartSend<Self::SinkItem, Self::SinkError>
fn poll_complete(&mut self) -> Poll<(), Self::SinkError>[src]
fn close(&mut self) -> Poll<(), Self::SinkError>[src]
fn wait(self) -> Wait<Self>[src]
fn with<U, F, Fut>(self, f: F) -> With<Self, U, F, Fut> where
F: FnMut(U) -> Fut,
Fut: IntoFuture<Item = Self::SinkItem>,
<Fut as IntoFuture>::Error: From<Self::SinkError>, [src]
F: FnMut(U) -> Fut,
Fut: IntoFuture<Item = Self::SinkItem>,
<Fut as IntoFuture>::Error: From<Self::SinkError>,
fn with_flat_map<U, F, St>(self, f: F) -> WithFlatMap<Self, U, F, St> where
F: FnMut(U) -> St,
St: Stream<Item = Self::SinkItem, Error = Self::SinkError>, [src]
F: FnMut(U) -> St,
St: Stream<Item = Self::SinkItem, Error = Self::SinkError>,
fn sink_map_err<F, E>(self, f: F) -> SinkMapErr<Self, F> where
F: FnOnce(Self::SinkError) -> E, [src]
F: FnOnce(Self::SinkError) -> E,
fn sink_from_err<E>(self) -> SinkFromErr<Self, E> where
E: From<Self::SinkError>, [src]
E: From<Self::SinkError>,
fn buffer(self, amt: usize) -> Buffer<Self>[src]
fn fanout<S>(self, other: S) -> Fanout<Self, S> where
S: Sink<SinkItem = Self::SinkItem, SinkError = Self::SinkError>,
Self::SinkItem: Clone, [src]
S: Sink<SinkItem = Self::SinkItem, SinkError = Self::SinkError>,
Self::SinkItem: Clone,
fn flush(self) -> Flush<Self>[src]
fn send(self, item: Self::SinkItem) -> Send<Self>[src]
fn send_all<S>(self, stream: S) -> SendAll<Self, S> where
S: Stream<Item = Self::SinkItem>,
Self::SinkError: From<<S as Stream>::Error>, [src]
S: Stream<Item = Self::SinkItem>,
Self::SinkError: From<<S as Stream>::Error>,
impl<S> Stream for SecioMiddleware<S> where
S: AsyncRead + AsyncWrite, [src]
S: AsyncRead + AsyncWrite,
type Item = Vec<u8>
The type of item this stream will yield on success.
type Error = SecioError
The type of error this stream may generate.
fn poll(&mut self) -> Poll<Option<Self::Item>, Self::Error>[src]
fn wait(self) -> Wait<Self>[src]
fn into_future(self) -> StreamFuture<Self>[src]
fn map<U, F>(self, f: F) -> Map<Self, F> where
F: FnMut(Self::Item) -> U, [src]
F: FnMut(Self::Item) -> U,
fn map_err<U, F>(self, f: F) -> MapErr<Self, F> where
F: FnMut(Self::Error) -> U, [src]
F: FnMut(Self::Error) -> U,
fn filter<F>(self, f: F) -> Filter<Self, F> where
F: FnMut(&Self::Item) -> bool, [src]
F: FnMut(&Self::Item) -> bool,
fn filter_map<F, B>(self, f: F) -> FilterMap<Self, F> where
F: FnMut(Self::Item) -> Option<B>, [src]
F: FnMut(Self::Item) -> Option<B>,
fn then<F, U>(self, f: F) -> Then<Self, F, U> where
F: FnMut(Result<Self::Item, Self::Error>) -> U,
U: IntoFuture, [src]
F: FnMut(Result<Self::Item, Self::Error>) -> U,
U: IntoFuture,
fn and_then<F, U>(self, f: F) -> AndThen<Self, F, U> where
F: FnMut(Self::Item) -> U,
U: IntoFuture<Error = Self::Error>, [src]
F: FnMut(Self::Item) -> U,
U: IntoFuture<Error = Self::Error>,
fn or_else<F, U>(self, f: F) -> OrElse<Self, F, U> where
F: FnMut(Self::Error) -> U,
U: IntoFuture<Item = Self::Item>, [src]
F: FnMut(Self::Error) -> U,
U: IntoFuture<Item = Self::Item>,
fn collect(self) -> Collect<Self>[src]
fn concat2(self) -> Concat2<Self> where
Self::Item: Extend<<Self::Item as IntoIterator>::Item>,
Self::Item: IntoIterator,
Self::Item: Default, [src]
Self::Item: Extend<<Self::Item as IntoIterator>::Item>,
Self::Item: IntoIterator,
Self::Item: Default,
fn concat(self) -> Concat<Self> where
Self::Item: Extend<<Self::Item as IntoIterator>::Item>,
Self::Item: IntoIterator, [src]
Self::Item: Extend<<Self::Item as IntoIterator>::Item>,
Self::Item: IntoIterator,
fn fold<F, T, Fut>(self, init: T, f: F) -> Fold<Self, F, Fut, T> where
F: FnMut(T, Self::Item) -> Fut,
Fut: IntoFuture<Item = T>,
Self::Error: From<<Fut as IntoFuture>::Error>, [src]
F: FnMut(T, Self::Item) -> Fut,
Fut: IntoFuture<Item = T>,
Self::Error: From<<Fut as IntoFuture>::Error>,
fn flatten(self) -> Flatten<Self> where
Self::Item: Stream,
<Self::Item as Stream>::Error: From<Self::Error>, [src]
Self::Item: Stream,
<Self::Item as Stream>::Error: From<Self::Error>,
fn skip_while<P, R>(self, pred: P) -> SkipWhile<Self, P, R> where
P: FnMut(&Self::Item) -> R,
R: IntoFuture<Item = bool, Error = Self::Error>, [src]
P: FnMut(&Self::Item) -> R,
R: IntoFuture<Item = bool, Error = Self::Error>,
fn take_while<P, R>(self, pred: P) -> TakeWhile<Self, P, R> where
P: FnMut(&Self::Item) -> R,
R: IntoFuture<Item = bool, Error = Self::Error>, [src]
P: FnMut(&Self::Item) -> R,
R: IntoFuture<Item = bool, Error = Self::Error>,
fn for_each<F, U>(self, f: F) -> ForEach<Self, F, U> where
F: FnMut(Self::Item) -> U,
U: IntoFuture<Item = (), Error = Self::Error>, [src]
F: FnMut(Self::Item) -> U,
U: IntoFuture<Item = (), Error = Self::Error>,
fn from_err<E>(self) -> FromErr<Self, E> where
E: From<Self::Error>, [src]
E: From<Self::Error>,
fn take(self, amt: u64) -> Take<Self>[src]
fn skip(self, amt: u64) -> Skip<Self>[src]
fn fuse(self) -> Fuse<Self>[src]
fn by_ref(&mut self) -> &mut Self[src]
fn catch_unwind(self) -> CatchUnwind<Self> where
Self: UnwindSafe, [src]
Self: UnwindSafe,
fn buffered(self, amt: usize) -> Buffered<Self> where
Self::Item: IntoFuture,
<Self::Item as IntoFuture>::Error == Self::Error, [src]
Self::Item: IntoFuture,
<Self::Item as IntoFuture>::Error == Self::Error,
fn buffer_unordered(self, amt: usize) -> BufferUnordered<Self> where
Self::Item: IntoFuture,
<Self::Item as IntoFuture>::Error == Self::Error, [src]
Self::Item: IntoFuture,
<Self::Item as IntoFuture>::Error == Self::Error,
fn merge<S>(self, other: S) -> Merge<Self, S> where
S: Stream<Error = Self::Error>, [src]
S: Stream<Error = Self::Error>,
fn zip<S>(self, other: S) -> Zip<Self, S> where
S: Stream<Error = Self::Error>, [src]
S: Stream<Error = Self::Error>,
fn chain<S>(self, other: S) -> Chain<Self, S> where
S: Stream<Item = Self::Item, Error = Self::Error>, [src]
S: Stream<Item = Self::Item, Error = Self::Error>,
fn peekable(self) -> Peekable<Self>[src]
fn chunks(self, capacity: usize) -> Chunks<Self>[src]
fn select<S>(self, other: S) -> Select<Self, S> where
S: Stream<Item = Self::Item, Error = Self::Error>, [src]
S: Stream<Item = Self::Item, Error = Self::Error>,
fn forward<S>(self, sink: S) -> Forward<Self, S> where
S: Sink<SinkItem = Self::Item>,
Self::Error: From<<S as Sink>::SinkError>, [src]
S: Sink<SinkItem = Self::Item>,
Self::Error: From<<S as Sink>::SinkError>,
fn split(self) -> (SplitSink<Self>, SplitStream<Self>) where
Self: Sink, [src]
Self: Sink,
fn inspect<F>(self, f: F) -> Inspect<Self, F> where
F: FnMut(&Self::Item), [src]
F: FnMut(&Self::Item),
fn inspect_err<F>(self, f: F) -> InspectErr<Self, F> where
F: FnMut(&Self::Error), [src]
F: FnMut(&Self::Error),
Auto Trait Implementations
impl<S> !RefUnwindSafe for SecioMiddleware<S>
impl<S> Send for SecioMiddleware<S> where
S: Send,
S: Send,
impl<S> !Sync for SecioMiddleware<S>
impl<S> Unpin for SecioMiddleware<S> where
S: Unpin,
S: Unpin,
impl<S> !UnwindSafe for SecioMiddleware<S>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,