Struct async_std::io::Take[][src]

pub struct Take<T> { /* fields omitted */ }

Reader adaptor which limits the bytes read from an underlying reader.

This struct is generally created by calling take on a reader. Please see the documentation of take for more details.

Implementations

impl<T> Take<T>[src]

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

Returns the 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 Read instance reaches EOF.

Examples

use async_std::prelude::*;
use async_std::fs::File;

let f = File::open("foo.txt").await?;

// read at most five bytes
let handle = f.take(5);

println!("limit: {}", handle.limit());

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 async_std::prelude::*;
use async_std::fs::File;

let f = File::open("foo.txt").await?;

// read at most five bytes
let mut handle = f.take(5);
handle.set_limit(10);

assert_eq!(handle.limit(), 10);

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

Consumes the Take, returning the wrapped reader.

Examples

use async_std::prelude::*;
use async_std::fs::File;

let file = File::open("foo.txt").await?;

let mut buffer = [0; 5];
let mut handle = file.take(5);
handle.read(&mut buffer).await?;

let file = handle.into_inner();

pub fn get_ref(&self) -> &T

Notable traits for &'_ mut F

impl<'_, F> Future for &'_ mut F where
    F: Unpin + Future + ?Sized
type Output = <F as Future>::Output;
[src]

Gets a reference to the underlying reader.

Examples

use async_std::prelude::*;
use async_std::fs::File;

let file = File::open("foo.txt").await?;

let mut buffer = [0; 5];
let mut handle = file.take(5);
handle.read(&mut buffer).await?;

let file = handle.get_ref();

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

Notable traits for &'_ mut F

impl<'_, F> Future for &'_ mut F where
    F: Unpin + Future + ?Sized
type Output = <F as Future>::Output;
[src]

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.

Examples

use async_std::prelude::*;
use async_std::fs::File;

let file = File::open("foo.txt").await?;

let mut buffer = [0; 5];
let mut handle = file.take(5);
handle.read(&mut buffer).await?;

let file = handle.get_mut();

Trait Implementations

impl<T: BufRead> AsyncBufRead for Take<T>[src]

impl<T: Read> AsyncRead for Take<T>[src]

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

Attempt to read from the AsyncRead into buf.

impl<T: Debug> Debug for Take<T>[src]

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

Auto Trait Implementations

impl<T> RefUnwindSafe for Take<T> where
    T: RefUnwindSafe

impl<T> Send for Take<T> where
    T: Send

impl<T> Sync for Take<T> where
    T: Sync

impl<T> UnwindSafe for Take<T> where
    T: UnwindSafe

Blanket Implementations

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

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

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

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

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

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

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

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.

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.