pub struct AsyncBincodeReader<R, T>(/* private fields */);
Expand description

A wrapper around an asynchronous reader that produces an asynchronous stream of bincode-decoded values.

To use, provide a reader that implements futures_io::AsyncRead, and then use futures_core::Stream to access the deserialized values.

Note that the sender must prefix each serialized item with its size as reported by bincode::serialized_size encoded as a four-byte network-endian encoded. Use the marker trait AsyncDestination to add it automatically when using AsyncBincodeWriter.

Implementations§

source§

impl<R, T> AsyncBincodeReader<R, T>

source

pub fn get_ref(&self) -> &R

Gets a reference to the underlying reader.

It is inadvisable to directly read from the underlying reader.

source

pub fn get_mut(&mut self) -> &mut R

Gets a mutable reference to the underlying reader.

It is inadvisable to directly read from the underlying reader.

source

pub fn buffer(&self) -> &[u8]

Returns a reference to the internally buffered data.

This will not attempt to fill the buffer if it is empty.

source

pub fn into_inner(self) -> R

Unwraps this AsyncBincodeReader, returning the underlying reader.

Note that any leftover data in the internal buffer is lost.

Trait Implementations§

source§

impl<R: Debug, T: Debug> Debug for AsyncBincodeReader<R, T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<R, T> Default for AsyncBincodeReader<R, T>
where R: Default,

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<R, T> From<R> for AsyncBincodeReader<R, T>

source§

fn from(reader: R) -> Self

Converts to this type from the input type.
source§

impl<R, T> Stream for AsyncBincodeReader<R, T>
where for<'a> T: Deserialize<'a>, R: AsyncRead + Unpin,

§

type Item = Result<T, Box<ErrorKind>>

Values yielded by the stream.
source§

fn poll_next( self: Pin<&mut Self>, cx: &mut Context<'_> ) -> Poll<Option<Self::Item>>

Attempt to pull out the next value of this stream, registering the current task for wakeup if the value is not yet available, and returning None if the stream is exhausted. Read more
source§

fn size_hint(&self) -> (usize, Option<usize>)

Returns the bounds on the remaining length of the stream. Read more
source§

impl<R, T> Unpin for AsyncBincodeReader<R, T>
where R: Unpin,

Auto Trait Implementations§

§

impl<R, T> RefUnwindSafe for AsyncBincodeReader<R, T>

§

impl<R, T> Send for AsyncBincodeReader<R, T>
where R: Send, T: Send,

§

impl<R, T> Sync for AsyncBincodeReader<R, T>
where R: Sync, T: Sync,

§

impl<R, T> UnwindSafe for AsyncBincodeReader<R, T>
where R: UnwindSafe, T: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<!> for T

source§

fn from(t: !) -> T

Converts to this type from the input type.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<S, T, E> TryStream for S
where S: Stream<Item = Result<T, E>> + ?Sized,

§

type Ok = T

The type of successful values yielded by this future
§

type Error = E

The type of failures yielded by this future
source§

fn try_poll_next( self: Pin<&mut S>, cx: &mut Context<'_> ) -> Poll<Option<Result<<S as TryStream>::Ok, <S as TryStream>::Error>>>

Poll this TryStream as if it were a Stream. Read more