Struct Take

#[must_use = "streams do nothing unless you `.await` or poll them"]
pub struct Take<R> { /* private fields */ }

Stream for the take method.

Implementations

impl<R: AsyncRead> Take<R>

fn limit(&self) -> u64

Returns the remaining number of bytes that can be read before this instance will return EOF.

Note

This instance may reach EOF after reading fewer bytes than indicated by this method if the underlying AsyncRead instance reaches EOF.

fn set_limit(&mut self, limit: u64)

Sets the number of bytes that can be read before this instance will return EOF. This is the same as constructing a new Take instance, so the amount of bytes read and the previous limit value don't matter when calling this method.

fn get_ref(&self) -> &R

Gets a reference to the underlying reader.

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

Gets a mutable reference to the underlying reader.

Care should be taken to avoid modifying the internal I/O state of the underlying reader as doing so may corrupt the internal limit of this Take.

fn get_pin_mut(self: Pin<&mut Self>) -> Pin<&mut R>

Gets a pinned mutable reference to the underlying reader.

Care should be taken to avoid modifying the internal I/O state of the underlying reader as doing so may corrupt the internal limit of this Take.

fn into_inner(self) -> R

Consumes the Take, returning the wrapped reader.

Trait Implementations

impl<'__pin, R> Unpin for Take<R> where PinnedFieldsOf<__Origin<'__pin, R>>: Unpin,

impl<R: AsyncBufRead> AsyncBufRead for Take<R>

fn poll_fill_buf(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Result<&[u8]>>
fn consume(self: Pin<&mut Self>, amt: usize)

impl<R: AsyncRead> AsyncRead for Take<R>

fn poll_read(self: Pin<&mut Self>, cx: &mut Context<'_>, buf: &mut ReadBuf<'_>) -> Poll<Result<(), Error>>

impl<R: Debug> Debug for Take<R>

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

Auto Trait Implementations

impl<R> Freeze for Take<R> where R: Freeze,

impl<R> RefUnwindSafe for Take<R> where R: RefUnwindSafe,

impl<R> Send for Take<R> where R: Send,

impl<R> Sync for Take<R> where R: Sync,

impl<R> UnsafeUnpin for Take<R> where R: UnsafeUnpin,

impl<R> UnwindSafe for Take<R> where R: UnwindSafe,

Blanket Implementations

impl<R> AsyncBufReadExt for Take<R> where R: AsyncBufRead + ?Sized,

impl<R> AsyncReadExt for Take<R> where R: AsyncRead + ?Sized,

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

fn type_id(&self) -> TypeId

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

fn borrow(&self) -> &T

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

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

impl<T> From<T> for Take<R>

fn from(t: T) -> T

Returns the argument unchanged.

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

fn into(self) -> U

Calls U::from(self).

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

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

type Error = never;
fn try_from(value: U) -> Result<T, never>

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

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