Struct binrw::io::TakeSeek

source ·
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>

source

pub fn get_ref(&self) -> &T

Gets a reference to the underlying reader.

source

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.

source

pub fn into_inner(self) -> T

Consumes this wrapper, returning the wrapped value.

source

pub fn limit(&self) -> u64

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.

source§

impl<T: Seek> TakeSeek<T>

source

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.

Trait Implementations§

source§

impl<T: Debug> Debug for TakeSeek<T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<T: Read> Read for TakeSeek<T>

source§

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>

Like read, except that it reads into a slice of buffers. Read more
source§

fn is_read_vectored(&self) -> bool

🔬This is a nightly-only experimental API. (can_vector)
Determines if this Reader has an efficient read_vectored implementation. Read more
1.0.0 · source§

fn read_to_end(&mut self, buf: &mut Vec<u8, Global>) -> Result<usize, Error>

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

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

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

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

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

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>

🔬This is a nightly-only experimental API. (read_buf)
Read the exact number of bytes required to fill cursor. Read more
1.0.0 · source§

fn by_ref(&mut self) -> &mut Selfwhere Self: Sized,

Creates a “by reference” adaptor for this instance of Read. Read more
1.0.0 · source§

fn bytes(self) -> Bytes<Self> where Self: Sized,

Transforms this Read instance to an Iterator over its bytes. Read more
1.0.0 · source§

fn chain<R>(self, next: R) -> Chain<Self, R> where R: Read, Self: Sized,

Creates an adapter which will chain this stream with another. Read more
1.0.0 · source§

fn take(self, limit: u64) -> Take<Self> where Self: Sized,

Creates an adapter which will read at most limit bytes from it. Read more
source§

impl<T: Seek> Seek for TakeSeek<T>

source§

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>

Returns the current seek position from the start of the stream. Read more
1.55.0 · source§

fn rewind(&mut self) -> Result<(), Error>

Rewind to the beginning of a stream. Read more
source§

fn stream_len(&mut self) -> Result<u64, Error>

🔬This is a nightly-only experimental API. (seek_stream_len)
Returns the length of this stream (in bytes). Read more

Auto Trait Implementations§

§

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<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<R> BinReaderExt for Rwhere R: Read + Seek,

source§

fn read_type<'a, T>(&mut self, endian: Endian) -> BinResult<T>where T: BinRead, T::Args<'a>: Required + Clone,

Read T from the reader with the given byte order. Read more
source§

fn read_be<'a, T>(&mut self) -> BinResult<T>where T: BinRead, T::Args<'a>: Required + Clone,

Read T from the reader assuming big-endian byte order. Read more
source§

fn read_le<'a, T>(&mut self) -> BinResult<T>where T: BinRead, T::Args<'a>: Required + Clone,

Read T from the reader assuming little-endian byte order. Read more
source§

fn read_ne<'a, T>(&mut self) -> BinResult<T>where T: BinRead, T::Args<'a>: Required + Clone,

Read T from the reader assuming native-endian byte order. Read more
source§

fn read_type_args<'a, T>( &mut self, endian: Endian, args: T::Args<'a> ) -> BinResult<T>where T: BinRead, T::Args<'a>: Clone,

Read T from the reader with the given byte order and arguments. Read more
source§

fn read_be_args<'a, T>(&mut self, args: T::Args<'a>) -> BinResult<T>where T: BinRead, T::Args<'a>: Clone,

Read T from the reader, assuming big-endian byte order, using the given arguments. Read more
source§

fn read_le_args<'a, T>(&mut self, args: T::Args<'a>) -> BinResult<T>where T: BinRead, T::Args<'a>: Clone,

Read T from the reader, assuming little-endian byte order, using the given arguments. Read more
source§

fn read_ne_args<'a, T>(&mut self, args: T::Args<'a>) -> BinResult<T>where T: BinRead, T::Args<'a>: Clone,

Read T from the reader, assuming native-endian byte order, using the given arguments. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> TakeSeekExt for Twhere T: Read + Seek,

source§

fn take_seek(self, limit: u64) -> TakeSeek<T>

Creates an adapter which will read at most limit bytes from the wrapped stream.
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.