Struct futures::io::Take[][src]

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

Reader for the take method.

Implementations

impl<R> Take<R> where
    R: AsyncRead
[src]

pub fn limit(&self) -> u64[src]

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.

Examples

use futures::io::{AsyncReadExt, Cursor};

let reader = Cursor::new(&b"12345678"[..]);
let mut buffer = [0; 2];

let mut take = reader.take(4);
let n = take.read(&mut buffer).await?;

assert_eq!(take.limit(), 2);

pub fn set_limit(&mut self, limit: u64)[src]

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.

Examples

use futures::io::{AsyncReadExt, Cursor};

let reader = Cursor::new(&b"12345678"[..]);
let mut buffer = [0; 4];

let mut take = reader.take(4);
let n = take.read(&mut buffer).await?;

assert_eq!(n, 4);
assert_eq!(take.limit(), 0);

take.set_limit(10);
let n = take.read(&mut buffer).await?;
assert_eq!(n, 4);

pub fn get_ref(&self) -> &R[src]

Acquires a reference to the underlying sink or stream that this combinator is pulling from.

pub fn get_mut(&mut self) -> &mut R[src]

Acquires a mutable reference to the underlying sink or stream that this combinator is pulling from.

Note that care must be taken to avoid tampering with the state of the sink or stream which may otherwise confuse this combinator.

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

Notable traits for Pin<P>

impl<P> Future for Pin<P> where
    P: Unpin + DerefMut,
    <P as Deref>::Target: Future
type Output = <<P as Deref>::Target as Future>::Output;
[src]

Acquires a pinned mutable reference to the underlying sink or stream that this combinator is pulling from.

Note that care must be taken to avoid tampering with the state of the sink or stream which may otherwise confuse this combinator.

pub fn into_inner(self) -> R[src]

Consumes this combinator, returning the underlying sink or stream.

Note that this may discard intermediate state of this combinator, so care should be taken to avoid losing resources when this is called.

Trait Implementations

impl<R> AsyncBufRead for Take<R> where
    R: AsyncBufRead
[src]

pub fn poll_fill_buf(
    self: Pin<&mut Take<R>>,
    cx: &mut Context<'_>
) -> Poll<Result<&[u8], Error>>
[src]

Attempt to return the contents of the internal buffer, filling it with more data from the inner reader if it is empty. Read more

pub fn consume(self: Pin<&mut Take<R>>, amt: usize)[src]

Tells this buffer that amt bytes have been consumed from the buffer, so they should no longer be returned in calls to poll_read. Read more

impl<R> AsyncRead for Take<R> where
    R: AsyncRead
[src]

pub fn poll_read(
    self: Pin<&mut Take<R>>,
    cx: &mut Context<'_>,
    buf: &mut [u8]
) -> Poll<Result<usize, Error>>
[src]

Attempt to read from the AsyncRead into buf. Read more

pub unsafe fn initializer(&self) -> Initializer[src]

Determines if this AsyncReader can work with buffers of uninitialized memory. Read more

fn poll_read_vectored(
    self: Pin<&mut Self>,
    cx: &mut Context<'_>,
    bufs: &mut [IoSliceMut<'_>]
) -> Poll<Result<usize, Error>>
[src]

Attempt to read from the AsyncRead into bufs using vectored IO operations. Read more

impl<R> Debug for Take<R> where
    R: Debug
[src]

pub fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>[src]

Formats the value using the given formatter. Read more

impl<'__pin, R> Unpin for Take<R> where
    __Origin<'__pin, R>: Unpin
[src]

Auto Trait Implementations

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> UnwindSafe for Take<R> where
    R: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<R> AsyncBufReadExt for R where
    R: AsyncBufRead + ?Sized
[src]

fn fill_buf(&mut self) -> FillBuf<'_, Self>

Notable traits for FillBuf<'a, R>

impl<'a, R> Future for FillBuf<'a, R> where
    R: AsyncBufRead + Unpin + ?Sized
type Output = Result<&'a [u8], Error>;
where
    Self: Unpin
[src]

Creates a future which will wait for a non-empty buffer to be available from this I/O object or EOF to be reached. Read more

fn consume_unpin(&mut self, amt: usize) where
    Self: Unpin
[src]

A convenience for calling AsyncBufRead::consume on Unpin IO types. Read more

fn read_until(
    &'a mut self,
    byte: u8,
    buf: &'a mut Vec<u8, Global>
) -> ReadUntil<'a, Self>

Notable traits for ReadUntil<'_, R>

impl<'_, R> Future for ReadUntil<'_, R> where
    R: AsyncBufRead + Unpin + ?Sized
type Output = Result<usize, Error>;
where
    Self: Unpin
[src]

Creates a future which will read all the bytes associated with this I/O object into buf until the delimiter byte or EOF is reached. This method is the async equivalent to BufRead::read_until. Read more

fn read_line(&'a mut self, buf: &'a mut String) -> ReadLine<'a, Self>

Notable traits for ReadLine<'_, R>

impl<'_, R> Future for ReadLine<'_, R> where
    R: AsyncBufRead + Unpin + ?Sized
type Output = Result<usize, Error>;
where
    Self: Unpin
[src]

Creates a future which will read all the bytes associated with this I/O object into buf until a newline (the 0xA byte) or EOF is reached, This method is the async equivalent to BufRead::read_line. Read more

fn lines(self) -> Lines<Self>[src]

Returns a stream over the lines of this reader. This method is the async equivalent to BufRead::lines. Read more

impl<R> AsyncReadExt for R where
    R: AsyncRead + ?Sized
[src]

fn chain<R>(self, next: R) -> Chain<Self, R> where
    R: AsyncRead
[src]

Creates an adaptor which will chain this stream with another. Read more

fn read(&'a mut self, buf: &'a mut [u8]) -> Read<'a, Self>

Notable traits for Read<'_, R>

impl<'_, R> Future for Read<'_, R> where
    R: AsyncRead + Unpin + ?Sized
type Output = Result<usize, Error>;
where
    Self: Unpin
[src]

Tries to read some bytes directly into the given buf in asynchronous manner, returning a future type. Read more

fn read_vectored(
    &'a mut self,
    bufs: &'a mut [IoSliceMut<'a>]
) -> ReadVectored<'a, Self>

Notable traits for ReadVectored<'_, R>

impl<'_, R> Future for ReadVectored<'_, R> where
    R: AsyncRead + Unpin + ?Sized
type Output = Result<usize, Error>;
where
    Self: Unpin
[src]

Creates a future which will read from the AsyncRead into bufs using vectored IO operations. Read more

fn read_exact(&'a mut self, buf: &'a mut [u8]) -> ReadExact<'a, Self>

Notable traits for ReadExact<'_, R>

impl<'_, R> Future for ReadExact<'_, R> where
    R: AsyncRead + Unpin + ?Sized
type Output = Result<(), Error>;
where
    Self: Unpin
[src]

Creates a future which will read exactly enough bytes to fill buf, returning an error if end of file (EOF) is hit sooner. Read more

fn read_to_end(
    &'a mut self,
    buf: &'a mut Vec<u8, Global>
) -> ReadToEnd<'a, Self>

Notable traits for ReadToEnd<'_, A>

impl<'_, A> Future for ReadToEnd<'_, A> where
    A: AsyncRead + Unpin + ?Sized
type Output = Result<usize, Error>;
where
    Self: Unpin
[src]

Creates a future which will read all the bytes from this AsyncRead. Read more

fn read_to_string(&'a mut self, buf: &'a mut String) -> ReadToString<'a, Self>

Notable traits for ReadToString<'_, A>

impl<'_, A> Future for ReadToString<'_, A> where
    A: AsyncRead + Unpin + ?Sized
type Output = Result<usize, Error>;
where
    Self: Unpin
[src]

Creates a future which will read all the bytes from this AsyncRead. Read more

fn split(self) -> (ReadHalf<Self>, WriteHalf<Self>) where
    Self: AsyncWrite
[src]

Helper method for splitting this read/write object into two halves. Read more

fn take(self, limit: u64) -> Take<Self>[src]

Creates an AsyncRead adapter which will read at most limit bytes from the underlying reader. Read more

fn compat(self) -> Compat<Self>

Notable traits for Compat<W>

impl<W> Write for Compat<W> where
    W: AsyncWrite + Unpin
impl<R> Read for Compat<R> where
    R: AsyncRead + Unpin
where
    Self: Unpin
[src]

Wraps an AsyncRead in a compatibility wrapper that allows it to be used as a futures 0.1 / tokio-io 0.1 AsyncRead. If the wrapped type implements AsyncWrite as well, the result will also implement the futures 0.1 / tokio 0.1 AsyncWrite trait. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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

Performs the conversion.