pub struct FramedRead<IO, Codec> { /* private fields */ }

Implementations§

source§

impl<IO, Codec> FramedRead<IO, Codec>

source

pub fn new(io: IO, decoder: Codec) -> Self

source

pub fn with_capacity(io: IO, codec: Codec, capacity: usize) -> Self

source

pub fn get_ref(&self) -> &IO

Returns a reference to the underlying I/O stream wrapped by FramedRead.

Note that care should be taken to not tamper with the underlying stream of data coming in as it may corrupt the stream of frames otherwise being worked with.

source

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

Returns a mutable reference to the underlying I/O stream wrapped by FramedRead.

Note that care should be taken to not tamper with the underlying stream of data coming in as it may corrupt the stream of frames otherwise being worked with.

source

pub fn into_inner(self) -> IO

Consumes the FramedRead, returning its underlying I/O stream.

Note that care should be taken to not tamper with the underlying stream of data coming in as it may corrupt the stream of frames otherwise being worked with.

source

pub fn decoder(&self) -> &Codec

Returns a reference to the underlying decoder.

source

pub fn decoder_mut(&mut self) -> &mut Codec

Returns a mutable reference to the underlying decoder.

source

pub fn map_decoder<CodecNew, F>(self, map: F) -> FramedRead<IO, CodecNew>where F: FnOnce(Codec) -> CodecNew,

Maps the decoder D to C, preserving the read buffer wrapped by Framed.

source

pub fn read_buffer(&self) -> &BytesMut

Returns a reference to the read buffer.

source

pub fn read_buffer_mut(&mut self) -> &mut BytesMut

Returns a mutable reference to the read buffer.

source

pub async fn next_with<C: Decoder>( &mut self, codec: &mut C ) -> Option<Result<C::Item, C::Error>>where IO: AsyncReadRent,

Equivalent to Stream::next but with custom codec.

Trait Implementations§

source§

impl<IO: AsyncReadRent, Codec> AsyncReadRent for FramedRead<IO, Codec>

§

type ReadFuture<'a, T> = <FramedInner<IO, Codec, ReadState> as AsyncReadRent>::ReadFuture<'a, T> where T: IoBufMut + 'a, IO: 'a, Codec: 'a

The future of read Result<size, buffer>
§

type ReadvFuture<'a, T> = <FramedInner<IO, Codec, ReadState> as AsyncReadRent>::ReadvFuture<'a, T> where T: IoVecBufMut + 'a, IO: 'a, Codec: 'a

The future of readv Result<size, buffer>
source§

fn read<T: IoBufMut>(&mut self, buf: T) -> Self::ReadFuture<'_, T>

Same as read(2)
source§

fn readv<T: IoVecBufMut>(&mut self, buf: T) -> Self::ReadvFuture<'_, T>

Same as readv(2)
source§

impl<T, D> Debug for FramedRead<T, D>where T: Debug, D: Debug,

source§

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

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

impl<Codec: Decoder, IO: AsyncReadRent, AnyCodec> NextWithCodec<Codec> for FramedRead<IO, AnyCodec>

§

type Item = Result<<Codec as Decoder>::Item, <Codec as Decoder>::Error>

§

type NextFuture<'a> = impl Future<Output = Option<<FramedRead<IO, AnyCodec> as NextWithCodec<Codec>>::Item>> + 'a where Self: 'a, Codec: 'a

source§

fn next_with<'a>(&'a mut self, codec: &'a mut Codec) -> Self::NextFuture<'_>

source§

impl<IO, Codec> Stream for FramedRead<IO, Codec>where IO: AsyncReadRent, Codec: Decoder,

§

type Item = <FramedInner<IO, Codec, ReadState> as Stream>::Item

Values yielded by the stream.
§

type NextFuture<'a> = <FramedInner<IO, Codec, ReadState> as Stream>::NextFuture<'a> where Self: 'a

Future representing the next value of the stream.
source§

fn next(&mut self) -> Self::NextFuture<'_>

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.
source§

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

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

Auto Trait Implementations§

§

impl<IO, Codec> RefUnwindSafe for FramedRead<IO, Codec>where Codec: RefUnwindSafe, IO: RefUnwindSafe,

§

impl<IO, Codec> Send for FramedRead<IO, Codec>where Codec: Send, IO: Send,

§

impl<IO, Codec> Sync for FramedRead<IO, Codec>where Codec: Sync, IO: Sync,

§

impl<IO, Codec> Unpin for FramedRead<IO, Codec>where Codec: Unpin, IO: Unpin,

§

impl<IO, Codec> UnwindSafe for FramedRead<IO, Codec>where Codec: UnwindSafe, IO: 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<A> AsyncReadRentExt for Awhere A: AsyncReadRent + ?Sized,

§

type ReadExactFuture<'a, T: IoBufMut + 'a> = impl Future<Output = (Result<usize, Error>, T)> + 'a where A: 'a

The future of Result<size, buffer>
source§

fn read_exact<T>( &mut self, buf: T ) -> <A as AsyncReadRentExt>::ReadExactFuture<'_, T>where T: 'static + IoBufMut,

Read until buf capacity is fulfilled
§

type ReadVectoredExactFuture<'a, T: IoVecBufMut + 'a> = impl Future<Output = (Result<usize, Error>, T)> + 'a where A: 'a

The future of Result<size, buffer>
source§

fn read_vectored_exact<T>( &mut self, buf: T ) -> <A as AsyncReadRentExt>::ReadVectoredExactFuture<'_, T>where T: 'static + IoVecBufMut,

Readv until buf capacity is fulfilled
§

type ReadU8Future<'a> = impl Future<Output = Result<u8, Error>> + 'a where A: 'a

Read number result
source§

fn read_u8(&mut self) -> <A as AsyncReadRentExt>::ReadU8Future<'_>

Read number in async way
§

type ReadU16Future<'a> = impl Future<Output = Result<u16, Error>> + 'a where A: 'a

Read number result
source§

fn read_u16(&mut self) -> <A as AsyncReadRentExt>::ReadU16Future<'_>

Read number in async way
§

type ReadU32Future<'a> = impl Future<Output = Result<u32, Error>> + 'a where A: 'a

Read number result
source§

fn read_u32(&mut self) -> <A as AsyncReadRentExt>::ReadU32Future<'_>

Read number in async way
§

type ReadU64Future<'a> = impl Future<Output = Result<u64, Error>> + 'a where A: 'a

Read number result
source§

fn read_u64(&mut self) -> <A as AsyncReadRentExt>::ReadU64Future<'_>

Read number in async way
§

type ReadU128Future<'a> = impl Future<Output = Result<u16, Error>> + 'a where A: 'a

Read number result
source§

fn read_u128(&mut self) -> <A as AsyncReadRentExt>::ReadU128Future<'_>

Read number in async way
§

type ReadI8Future<'a> = impl Future<Output = Result<i8, Error>> + 'a where A: 'a

Read number result
source§

fn read_i8(&mut self) -> <A as AsyncReadRentExt>::ReadI8Future<'_>

Read number in async way
§

type ReadI16Future<'a> = impl Future<Output = Result<i16, Error>> + 'a where A: 'a

Read number result
source§

fn read_i16(&mut self) -> <A as AsyncReadRentExt>::ReadI16Future<'_>

Read number in async way
§

type ReadI32Future<'a> = impl Future<Output = Result<i32, Error>> + 'a where A: 'a

Read number result
source§

fn read_i32(&mut self) -> <A as AsyncReadRentExt>::ReadI32Future<'_>

Read number in async way
§

type ReadI64Future<'a> = impl Future<Output = Result<i64, Error>> + 'a where A: 'a

Read number result
source§

fn read_i64(&mut self) -> <A as AsyncReadRentExt>::ReadI64Future<'_>

Read number in async way
§

type ReadI128Future<'a> = impl Future<Output = Result<i128, Error>> + 'a where A: 'a

Read number result
source§

fn read_i128(&mut self) -> <A as AsyncReadRentExt>::ReadI128Future<'_>

Read number in async way
§

type ReadF32Future<'a> = impl Future<Output = Result<f32, Error>> + 'a where A: 'a

Read number result
source§

fn read_f32(&mut self) -> <A as AsyncReadRentExt>::ReadF32Future<'_>

Read number in async way
§

type ReadF64Future<'a> = impl Future<Output = Result<f64, Error>> + 'a where A: 'a

Read number result
source§

fn read_f64(&mut self) -> <A as AsyncReadRentExt>::ReadF64Future<'_>

Read number in async way
§

type ReadU8LEFuture<'a> = impl Future<Output = Result<u8, Error>> + 'a where A: 'a

Read number result
source§

fn read_u8_le(&mut self) -> <A as AsyncReadRentExt>::ReadU8LEFuture<'_>

Read number in async way
§

type ReadU16LEFuture<'a> = impl Future<Output = Result<u16, Error>> + 'a where A: 'a

Read number result
source§

fn read_u16_le(&mut self) -> <A as AsyncReadRentExt>::ReadU16LEFuture<'_>

Read number in async way
§

type ReadU32LEFuture<'a> = impl Future<Output = Result<u32, Error>> + 'a where A: 'a

Read number result
source§

fn read_u32_le(&mut self) -> <A as AsyncReadRentExt>::ReadU32LEFuture<'_>

Read number in async way
§

type ReadU64LEFuture<'a> = impl Future<Output = Result<u64, Error>> + 'a where A: 'a

Read number result
source§

fn read_u64_le(&mut self) -> <A as AsyncReadRentExt>::ReadU64LEFuture<'_>

Read number in async way
§

type ReadU128LEFuture<'a> = impl Future<Output = Result<u16, Error>> + 'a where A: 'a

Read number result
source§

fn read_u128_le(&mut self) -> <A as AsyncReadRentExt>::ReadU128LEFuture<'_>

Read number in async way
§

type ReadI8LEFuture<'a> = impl Future<Output = Result<i8, Error>> + 'a where A: 'a

Read number result
source§

fn read_i8_le(&mut self) -> <A as AsyncReadRentExt>::ReadI8LEFuture<'_>

Read number in async way
§

type ReadI16LEFuture<'a> = impl Future<Output = Result<i16, Error>> + 'a where A: 'a

Read number result
source§

fn read_i16_le(&mut self) -> <A as AsyncReadRentExt>::ReadI16LEFuture<'_>

Read number in async way
§

type ReadI32LEFuture<'a> = impl Future<Output = Result<i32, Error>> + 'a where A: 'a

Read number result
source§

fn read_i32_le(&mut self) -> <A as AsyncReadRentExt>::ReadI32LEFuture<'_>

Read number in async way
§

type ReadI64LEFuture<'a> = impl Future<Output = Result<i64, Error>> + 'a where A: 'a

Read number result
source§

fn read_i64_le(&mut self) -> <A as AsyncReadRentExt>::ReadI64LEFuture<'_>

Read number in async way
§

type ReadI128LEFuture<'a> = impl Future<Output = Result<i128, Error>> + 'a where A: 'a

Read number result
source§

fn read_i128_le(&mut self) -> <A as AsyncReadRentExt>::ReadI128LEFuture<'_>

Read number in async way
§

type ReadF32LEFuture<'a> = impl Future<Output = Result<f32, Error>> + 'a where A: 'a

Read number result
source§

fn read_f32_le(&mut self) -> <A as AsyncReadRentExt>::ReadF32LEFuture<'_>

Read number in async way
§

type ReadF64LEFuture<'a> = impl Future<Output = Result<f64, Error>> + 'a where A: 'a

Read number result
source§

fn read_f64_le(&mut self) -> <A as AsyncReadRentExt>::ReadF64LEFuture<'_>

Read number in async way
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> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> StreamExt for Twhere T: Stream,

source§

fn map<T, F>(self, f: F) -> Map<Self, F>where F: FnMut(Self::Item) -> T, Self: Sized,

Maps a stream to a stream of its items.
source§

fn then<Fut, F>(self, f: F) -> Then<Self, F>where F: FnMut(Self::Item) -> Fut, Fut: Future, Self: Sized,

Computes from this stream’s items new items of a different type using an asynchronous closure.
source§

fn for_each<Fut, F>(self, f: F) -> impl Future<Output = ()>where F: FnMut(Self::Item) -> Fut, Fut: Future<Output = ()>, Self: Sized,

Runs this stream to completion, executing the provided asynchronous closure for each element on the stream.
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.
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more