1.0.0[][src]Struct boolean_enums::lstd::io::Take

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.

Methods

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

fn main() -> io::Result<()> {
    let f = File::open("foo.txt")?;

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

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

pub fn set_limit(&mut self, limit: u64)
1.27.0
[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 std::io;
use std::io::prelude::*;
use std::fs::File;

fn main() -> io::Result<()> {
    let f = File::open("foo.txt")?;

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

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

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

Consumes the Take, returning the wrapped reader.

Examples

use std::io;
use std::io::prelude::*;
use std::fs::File;

fn main() -> io::Result<()> {
    let mut file = File::open("foo.txt")?;

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

    let file = handle.into_inner();
    Ok(())
}

Important traits for &'a mut W
pub fn get_ref(&self) -> &T
1.20.0
[src]

Gets a reference to the underlying reader.

Examples

use std::io;
use std::io::prelude::*;
use std::fs::File;

fn main() -> io::Result<()> {
    let mut file = File::open("foo.txt")?;

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

    let file = handle.get_ref();
    Ok(())
}

Important traits for &'a mut W
pub fn get_mut(&mut self) -> &mut T
1.20.0
[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 std::io;
use std::io::prelude::*;
use std::fs::File;

fn main() -> io::Result<()> {
    let mut file = File::open("foo.txt")?;

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

    let file = handle.get_mut();
    Ok(())
}

Trait Implementations

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

fn read_until(&mut self, byte: u8, buf: &mut Vec<u8>) -> Result<usize, Error>
[src]

Read all bytes into buf until the delimiter byte or EOF is reached. Read more

fn read_line(&mut self, buf: &mut String) -> Result<usize, Error>
[src]

Read all bytes until a newline (the 0xA byte) is reached, and append them to the provided buffer. Read more

Important traits for Split<B>
fn split(self, byte: u8) -> Split<Self>
[src]

Returns an iterator over the contents of this reader split on the byte byte. Read more

Important traits for Lines<B>
fn lines(self) -> Lines<Self>
[src]

Returns an iterator over the lines of this reader. Read more

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

fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
[src]

Read all bytes until EOF in this source, appending them to buf. Read more

fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
1.6.0
[src]

Read the exact number of bytes required to fill buf. Read more

Important traits for &'a mut W
fn by_ref(&mut self) -> &mut Self
[src]

Creates a "by reference" adaptor for this instance of Read. Read more

Important traits for Bytes<R>
fn bytes(self) -> Bytes<Self>
[src]

Transforms this Read instance to an [Iterator] over its bytes. Read more

Important traits for Chain<T, U>
fn chain<R>(self, next: R) -> Chain<Self, R> where
    R: Read
[src]

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

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

Creates an adaptor which will read at most limit bytes from it. Read more

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

Auto Trait Implementations

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

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

Blanket Implementations

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

impl<T> From for T
[src]

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

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

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

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

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

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

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

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