pub struct Take<T> { /* private fields */ }Expand description
Implementations
impl<T> Take<T>
source
impl<T> Take<T>
sourcepub fn limit(&self) -> u64
source
pub fn limit(&self) -> u64
sourceReturns 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(())
}Runpub fn set_limit(&mut self, limit: u64)
1.27.0 · source
pub fn set_limit(&mut self, limit: u64)
1.27.0 · sourceSets 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(())
}Runpub fn into_inner(self) -> T
1.15.0 · source
pub fn into_inner(self) -> T
1.15.0 · sourceConsumes 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(())
}Runpub fn get_ref(&self) -> &T
1.20.0 · source
pub fn get_ref(&self) -> &T
1.20.0 · sourceGets 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(())
}Runpub fn get_mut(&mut self) -> &mut T
1.20.0 · source
pub fn get_mut(&mut self) -> &mut T
1.20.0 · sourceGets 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(())
}RunTrait Implementations
impl<T: BufRead> BufRead for Take<T>
source
impl<T: BufRead> BufRead for Take<T>
sourcefn fill_buf(&mut self) -> Result<&[u8]>
source
fn fill_buf(&mut self) -> Result<&[u8]>
sourceReturns the contents of the internal buffer, filling it with more data from the inner reader if it is empty. Read more
fn consume(&mut self, amt: usize)
source
fn consume(&mut self, amt: usize)
sourceTells this buffer that amt bytes have been consumed from the buffer,
so they should no longer be returned in calls to read. Read more
fn has_data_left(&mut self) -> Result<bool>
source
fn has_data_left(&mut self) -> Result<bool>
sourceCheck if the underlying Read has any data left to be read. Read more
fn read_until(&mut self, byte: u8, buf: &mut Vec<u8>) -> Result<usize>
source
fn read_until(&mut self, byte: u8, buf: &mut Vec<u8>) -> Result<usize>
sourceRead all bytes into buf until the delimiter byte or EOF is reached. Read more
fn read_line(&mut self, buf: &mut String) -> Result<usize>
source
fn read_line(&mut self, buf: &mut String) -> Result<usize>
sourceRead all bytes until a newline (the 0xA byte) is reached, and append
them to the provided buffer. You do not need to clear the buffer before
appending. Read more
impl<T: Read> Read for Take<T>
source
impl<T: Read> Read for Take<T>
sourcefn read(&mut self, buf: &mut [u8]) -> Result<usize>
source
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
sourcePull some bytes from this source into the specified buffer, returning how many bytes were read. Read more
fn read_buf(&mut self, buf: &mut ReadBuf<'_>) -> Result<()>
source
fn read_buf(&mut self, buf: &mut ReadBuf<'_>) -> Result<()>
sourcePull some bytes from this source into the specified buffer. Read more
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize>
1.36.0 · source
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize>
1.36.0 · sourceLike read, except that it reads into a slice of buffers. Read more
fn is_read_vectored(&self) -> bool
source
fn is_read_vectored(&self) -> bool
sourceDetermines if this Reader has an efficient read_vectored
implementation. Read more
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize>
source
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize>
sourceRead all bytes until EOF in this source, placing them into buf. Read more
fn read_to_string(&mut self, buf: &mut String) -> Result<usize>
source
fn read_to_string(&mut self, buf: &mut String) -> Result<usize>
sourceRead all bytes until EOF in this source, appending them to buf. Read more
fn read_exact(&mut self, buf: &mut [u8]) -> Result<()>
1.6.0 · source
fn read_exact(&mut self, buf: &mut [u8]) -> Result<()>
1.6.0 · sourceRead the exact number of bytes required to fill buf. Read more
fn read_buf_exact(&mut self, buf: &mut ReadBuf<'_>) -> Result<()>
source
fn read_buf_exact(&mut self, buf: &mut ReadBuf<'_>) -> Result<()>
sourceRead the exact number of bytes required to fill buf. Read more
fn by_ref(&mut self) -> &mut Self where
Self: Sized,
source
fn by_ref(&mut self) -> &mut Self where
Self: Sized,
sourceCreates a “by reference” adaptor for this instance of Read. Read more
fn bytes(self) -> Bytes<Self>ⓘNotable traits for Bytes<R>impl<R: Read> Iterator for Bytes<R> type Item = Result<u8>; where
Self: Sized,
source
fn bytes(self) -> Bytes<Self>ⓘNotable traits for Bytes<R>impl<R: Read> Iterator for Bytes<R> type Item = Result<u8>; where
Self: Sized,
sourceAuto 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> Unpin for Take<T> where
T: Unpin,
impl<T> UnwindSafe for Take<T> where
T: UnwindSafe,
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
source
impl<T> BorrowMut<T> for T where
T: ?Sized,
sourcefn borrow_mut(&mut self) -> &mut T
const: unstable · source
fn borrow_mut(&mut self) -> &mut T
const: unstable · sourceMutably borrows from an owned value. Read more