pub struct TakeSeek<T> { /* private fields */ }
Expand description
Read adapter which limits the bytes read from an underlying reader, with seek support.
This struct is generally created by importing the TakeSeekExt
extension
and calling take_seek
on a reader.
Implementations§
source§impl<T> TakeSeek<T>
impl<T> TakeSeek<T>
sourcepub fn get_mut(&mut self) -> &mut T
pub fn get_mut(&mut self) -> &mut T
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
TakeSeek
.
sourcepub fn into_inner(self) -> T
pub fn into_inner(self) -> T
Consumes this wrapper, returning the wrapped value.
source§impl<T: Seek> TakeSeek<T>
impl<T: Seek> TakeSeek<T>
sourcepub fn set_limit(&mut self, limit: u64)
pub fn set_limit(&mut self, limit: u64)
Sets the number of bytes that can be read before this instance will
return EOF. This is the same as constructing a new TakeSeek
instance,
so the amount of bytes read and the previous limit value don’t matter
when calling this method.
§Panics
Panics if the inner stream returns an error from stream_position
.
Trait Implementations§
source§impl<T: Read> Read for TakeSeek<T>
impl<T: Read> Read for TakeSeek<T>
source§fn read(&mut self, buf: &mut [u8]) -> Result<usize>
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
Pull some bytes from this source into the specified buffer, returning
how many bytes were read. Read more
1.36.0 · source§fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
Like
read
, except that it reads into a slice of buffers. Read moresource§fn is_read_vectored(&self) -> bool
fn is_read_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector
)1.0.0 · source§fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
Reads all bytes until EOF in this source, placing them into
buf
. Read more1.0.0 · source§fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
Reads all bytes until EOF in this source, appending them to
buf
. Read more1.6.0 · source§fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
Reads the exact number of bytes required to fill
buf
. Read moresource§fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
read_buf
)Pull some bytes from this source into the specified buffer. Read more
source§fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
read_buf
)Reads the exact number of bytes required to fill
cursor
. Read more1.0.0 · source§fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
Creates a “by reference” adaptor for this instance of
Read
. Read moresource§impl<T: Seek> Seek for TakeSeek<T>
impl<T: Seek> Seek for TakeSeek<T>
source§fn seek(&mut self, pos: SeekFrom) -> Result<u64>
fn seek(&mut self, pos: SeekFrom) -> Result<u64>
Seek to an offset, in bytes, in a stream. Read more
source§fn stream_position(&mut self) -> Result<u64>
fn stream_position(&mut self) -> Result<u64>
Returns the current seek position from the start of the stream. Read more
1.55.0 · source§fn rewind(&mut self) -> Result<(), Error>
fn rewind(&mut self) -> Result<(), Error>
Rewind to the beginning of a stream. Read more
Auto Trait Implementations§
impl<T> Freeze for TakeSeek<T>where
T: Freeze,
impl<T> RefUnwindSafe for TakeSeek<T>where
T: RefUnwindSafe,
impl<T> Send for TakeSeek<T>where
T: Send,
impl<T> Sync for TakeSeek<T>where
T: Sync,
impl<T> Unpin for TakeSeek<T>where
T: Unpin,
impl<T> UnwindSafe for TakeSeek<T>where
T: UnwindSafe,
Blanket Implementations§
source§impl<R> BinReaderExt for R
impl<R> BinReaderExt for R
source§fn read_type<'a, T>(&mut self, endian: Endian) -> BinResult<T>
fn read_type<'a, T>(&mut self, endian: Endian) -> BinResult<T>
Read
T
from the reader with the given byte order. Read moresource§fn read_be<'a, T>(&mut self) -> BinResult<T>
fn read_be<'a, T>(&mut self) -> BinResult<T>
Read
T
from the reader assuming big-endian byte order. Read moresource§fn read_le<'a, T>(&mut self) -> BinResult<T>
fn read_le<'a, T>(&mut self) -> BinResult<T>
Read
T
from the reader assuming little-endian byte order. Read moresource§fn read_ne<'a, T>(&mut self) -> BinResult<T>
fn read_ne<'a, T>(&mut self) -> BinResult<T>
Read
T
from the reader assuming native-endian byte order. Read moresource§fn read_type_args<T>(
&mut self,
endian: Endian,
args: T::Args<'_>,
) -> BinResult<T>where
T: BinRead,
fn read_type_args<T>(
&mut self,
endian: Endian,
args: T::Args<'_>,
) -> BinResult<T>where
T: BinRead,
Read
T
from the reader with the given byte order and arguments. Read moresource§fn read_be_args<T>(&mut self, args: T::Args<'_>) -> BinResult<T>where
T: BinRead,
fn read_be_args<T>(&mut self, args: T::Args<'_>) -> BinResult<T>where
T: BinRead,
Read
T
from the reader, assuming big-endian byte order, using the
given arguments. Read moresource§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more