pub struct TransmogReader<R, T, F> { /* private fields */ }
Expand description

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

To use, provide a reader that implements [AsyncRead], and then use [Stream] to access the deserialized values.

Note that the sender must prefix each serialized item with its size encoded using ordered-varint.

Implementations§

source§

impl<R, T, F> TransmogReader<R, T, F>

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 TransmogReader, returning the underlying reader.

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

source§

impl<R, T, F> TransmogReader<R, T, F>

source

pub fn new(reader: R, format: F) -> Self

Returns a new instance that reads format-encoded data for reader.

source

pub fn default_for(format: F) -> Selfwhere R: Default,

Returns a new instance that reads format-encoded data for R::default().

Trait Implementations§

source§

impl<R: Debug, T: Debug, F: Debug> Debug for TransmogReader<R, T, F>

source§

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

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

impl<R, T, F> Stream for TransmogReader<R, T, F>where R: AsyncRead + Unpin, F: OwnedDeserializer<T>,

§

type Item = Result<T, <F as Format<'static, T>>::Error>

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
§

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

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

impl<R, T, F> Unpin for TransmogReader<R, T, F>where R: Unpin,

Auto Trait Implementations§

§

impl<R, T, F> RefUnwindSafe for TransmogReader<R, T, F>where F: RefUnwindSafe, R: RefUnwindSafe, T: RefUnwindSafe,

§

impl<R, T, F> Send for TransmogReader<R, T, F>where F: Send, R: Send, T: Send,

§

impl<R, T, F> Sync for TransmogReader<R, T, F>where F: Sync, R: Sync, T: Sync,

§

impl<R, T, F> UnwindSafe for TransmogReader<R, T, F>where F: UnwindSafe, R: UnwindSafe, T: UnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere 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 Twhere 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 Twhere 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.
§

impl<S, T, E> TryStream for Swhere 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
§

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