W3cubDocs

/Rust

Struct std::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]

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;

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

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

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

Consumes the Take, returning the wrapped reader.

Examples

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

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();

🔬 This is a nightly-only experimental API. (more_io_inner_methods #41519)

Gets a reference to the underlying reader.

Examples

#![feature(more_io_inner_methods)]

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

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();

🔬 This is a nightly-only experimental API. (more_io_inner_methods #41519)

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

#![feature(more_io_inner_methods)]

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

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();

Trait Implementations

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

Formats the value using the given formatter.

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

Pull some bytes from this source into the specified buffer, returning how many bytes were read. Read more

Read all bytes until EOF in this source, placing them into buf. Read more

Read all bytes until EOF in this source, placing them into buf. Read more

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

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

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

🔬 This is a nightly-only experimental API. (io #27802)the semantics of a partial read/write of where errors happen is currently unclear and may change

Transforms this Read instance to an Iterator over chars. Read more

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

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

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

Fills the internal buffer of this object, returning the buffer contents. Read more

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

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

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

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

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

© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/std/io/struct.Take.html