Take in std::io - Rust (original) (raw)
Struct Take
1.0.0 · Source
pub struct Take<T> { /* private fields */ }
Expand description
Reader adapter 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.
1.0.0 · Source
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(())
}
1.27.0 · Source
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(())
}
1.15.0 · Source
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(())
}
1.20.0 · Source
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(())
}
1.20.0 · Source
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 thisTake
.
§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(())
}
Returns the contents of the internal buffer, filling it with more data from the inner reader if it is empty. 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
🔬This is a nightly-only experimental API. (buf_read_has_data_left
#86423)
Checks if the underlying Read
has any data left to be read. Read more
Reads all bytes into buf
until the delimiter byte
or EOF is reached. Read more
Skips all bytes until the delimiter byte
or EOF is reached. Read more
Reads all bytes until a newline (the 0xA
byte) is reached, and append them to the provided String
buffer. Read more
Returns an iterator over the contents of this reader split on the bytebyte
. Read more
Returns an iterator over the lines of this reader. Read more
Pull some bytes from this source into the specified buffer, returning how many bytes were read. Read more
🔬This is a nightly-only experimental API. (read_buf
#78485)
Pull some bytes from this source into the specified buffer. Read more
Like read
, except that it reads into a slice of buffers. Read more
🔬This is a nightly-only experimental API. (can_vector
#69941)
Determines if this Read
er has an efficient read_vectored
implementation. Read more
Reads all bytes until EOF in this source, placing them into buf
. Read more
Reads all bytes until EOF in this source, appending them to buf
. Read more
Reads the exact number of bytes required to fill buf
. Read more
🔬This is a nightly-only experimental API. (read_buf
#78485)
Reads the exact number of bytes required to fill cursor
. 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
Creates an adapter which will chain this stream with another. Read more
Creates an adapter which will read at most limit
bytes from it. Read more