PackageFileReader

Struct PackageFileReader 

Source
pub struct PackageFileReader<R: Read + Seek> { /* private fields */ }
Expand description

A handle for reading a file in a package.

Implementations§

Source§

impl<R: Read + Seek> PackageFileReader<R>

Source

pub fn try_clone_with<NewR: Read + Seek>( &mut self, reader: NewR, ) -> Result<PackageFileReader<NewR>>

A fast copy of this package file reader. The caller must ensure that the new reader points to the same blob of data as the current one and has exact same seek boundaries. If not, this will result in incorrect yet safe data read.

This function immediately tries to seek to the same position, so it may error out if seek fails.

This method takes self as mutable reference because it needs to read the current seek position and it requires mutability.

Trait Implementations§

Source§

impl<R: Debug + Read + Seek> Debug for PackageFileReader<R>

Source§

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

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

impl<R: Read + Seek> Read for PackageFileReader<R>

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
Source§

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

Reads the exact number of bytes required to fill buf. 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>) -> Result<usize, Error>

Reads 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>

Reads all bytes until EOF in this source, appending them to 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)
Reads the exact number of bytes required to fill cursor. Read more
1.0.0 · Source§

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

Creates a “by reference” adapter 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<R: Read + Seek> Seek for PackageFileReader<R>

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
1.80.0 · Source§

fn seek_relative(&mut self, offset: i64) -> Result<(), Error>

Seeks relative to the current position. Read more

Auto Trait Implementations§

§

impl<R> Freeze for PackageFileReader<R>
where R: Freeze,

§

impl<R> RefUnwindSafe for PackageFileReader<R>
where R: RefUnwindSafe,

§

impl<R> Send for PackageFileReader<R>
where R: Send,

§

impl<R> Sync for PackageFileReader<R>
where R: Sync,

§

impl<R> Unpin for PackageFileReader<R>
where R: Unpin,

§

impl<R> UnwindSafe for PackageFileReader<R>
where R: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where 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 T
where 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<R> ReadBytesExt for R
where R: Read + ?Sized,

Source§

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

Reads an unsigned 8 bit integer from the underlying reader. Read more
Source§

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

Reads a signed 8 bit integer from the underlying reader. Read more
Source§

fn read_u16<T>(&mut self) -> Result<u16, Error>
where T: ByteOrder,

Reads an unsigned 16 bit integer from the underlying reader. Read more
Source§

fn read_i16<T>(&mut self) -> Result<i16, Error>
where T: ByteOrder,

Reads a signed 16 bit integer from the underlying reader. Read more
Source§

fn read_u24<T>(&mut self) -> Result<u32, Error>
where T: ByteOrder,

Reads an unsigned 24 bit integer from the underlying reader. Read more
Source§

fn read_i24<T>(&mut self) -> Result<i32, Error>
where T: ByteOrder,

Reads a signed 24 bit integer from the underlying reader. Read more
Source§

fn read_u32<T>(&mut self) -> Result<u32, Error>
where T: ByteOrder,

Reads an unsigned 32 bit integer from the underlying reader. Read more
Source§

fn read_i32<T>(&mut self) -> Result<i32, Error>
where T: ByteOrder,

Reads a signed 32 bit integer from the underlying reader. Read more
Source§

fn read_u48<T>(&mut self) -> Result<u64, Error>
where T: ByteOrder,

Reads an unsigned 48 bit integer from the underlying reader. Read more
Source§

fn read_i48<T>(&mut self) -> Result<i64, Error>
where T: ByteOrder,

Reads a signed 48 bit integer from the underlying reader. Read more
Source§

fn read_u64<T>(&mut self) -> Result<u64, Error>
where T: ByteOrder,

Reads an unsigned 64 bit integer from the underlying reader. Read more
Source§

fn read_i64<T>(&mut self) -> Result<i64, Error>
where T: ByteOrder,

Reads a signed 64 bit integer from the underlying reader. Read more
Source§

fn read_u128<T>(&mut self) -> Result<u128, Error>
where T: ByteOrder,

Reads an unsigned 128 bit integer from the underlying reader. Read more
Source§

fn read_i128<T>(&mut self) -> Result<i128, Error>
where T: ByteOrder,

Reads a signed 128 bit integer from the underlying reader. Read more
Source§

fn read_uint<T>(&mut self, nbytes: usize) -> Result<u64, Error>
where T: ByteOrder,

Reads an unsigned n-bytes integer from the underlying reader. Read more
Source§

fn read_int<T>(&mut self, nbytes: usize) -> Result<i64, Error>
where T: ByteOrder,

Reads a signed n-bytes integer from the underlying reader. Read more
Source§

fn read_uint128<T>(&mut self, nbytes: usize) -> Result<u128, Error>
where T: ByteOrder,

Reads an unsigned n-bytes integer from the underlying reader.
Source§

fn read_int128<T>(&mut self, nbytes: usize) -> Result<i128, Error>
where T: ByteOrder,

Reads a signed n-bytes integer from the underlying reader.
Source§

fn read_f32<T>(&mut self) -> Result<f32, Error>
where T: ByteOrder,

Reads a IEEE754 single-precision (4 bytes) floating point number from the underlying reader. Read more
Source§

fn read_f64<T>(&mut self) -> Result<f64, Error>
where T: ByteOrder,

Reads a IEEE754 double-precision (8 bytes) floating point number from the underlying reader. Read more
Source§

fn read_u16_into<T>(&mut self, dst: &mut [u16]) -> Result<(), Error>
where T: ByteOrder,

Reads a sequence of unsigned 16 bit integers from the underlying reader. Read more
Source§

fn read_u32_into<T>(&mut self, dst: &mut [u32]) -> Result<(), Error>
where T: ByteOrder,

Reads a sequence of unsigned 32 bit integers from the underlying reader. Read more
Source§

fn read_u64_into<T>(&mut self, dst: &mut [u64]) -> Result<(), Error>
where T: ByteOrder,

Reads a sequence of unsigned 64 bit integers from the underlying reader. Read more
Source§

fn read_u128_into<T>(&mut self, dst: &mut [u128]) -> Result<(), Error>
where T: ByteOrder,

Reads a sequence of unsigned 128 bit integers from the underlying reader. Read more
Source§

fn read_i8_into(&mut self, dst: &mut [i8]) -> Result<(), Error>

Reads a sequence of signed 8 bit integers from the underlying reader. Read more
Source§

fn read_i16_into<T>(&mut self, dst: &mut [i16]) -> Result<(), Error>
where T: ByteOrder,

Reads a sequence of signed 16 bit integers from the underlying reader. Read more
Source§

fn read_i32_into<T>(&mut self, dst: &mut [i32]) -> Result<(), Error>
where T: ByteOrder,

Reads a sequence of signed 32 bit integers from the underlying reader. Read more
Source§

fn read_i64_into<T>(&mut self, dst: &mut [i64]) -> Result<(), Error>
where T: ByteOrder,

Reads a sequence of signed 64 bit integers from the underlying reader. Read more
Source§

fn read_i128_into<T>(&mut self, dst: &mut [i128]) -> Result<(), Error>
where T: ByteOrder,

Reads a sequence of signed 128 bit integers from the underlying reader. Read more
Source§

fn read_f32_into<T>(&mut self, dst: &mut [f32]) -> Result<(), Error>
where T: ByteOrder,

Reads a sequence of IEEE754 single-precision (4 bytes) floating point numbers from the underlying reader. Read more
Source§

fn read_f32_into_unchecked<T>(&mut self, dst: &mut [f32]) -> Result<(), Error>
where T: ByteOrder,

👎Deprecated since 1.2.0: please use read_f32_into instead
DEPRECATED. Read more
Source§

fn read_f64_into<T>(&mut self, dst: &mut [f64]) -> Result<(), Error>
where T: ByteOrder,

Reads a sequence of IEEE754 double-precision (8 bytes) floating point numbers from the underlying reader. Read more
Source§

fn read_f64_into_unchecked<T>(&mut self, dst: &mut [f64]) -> Result<(), Error>
where T: ByteOrder,

👎Deprecated since 1.2.0: please use read_f64_into instead
DEPRECATED. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

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 T
where U: TryFrom<T>,

Source§

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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<R> WgReadExt for R
where R: Read,

Source§

fn read_u8(&mut self) -> Result<u8>

Reads an unsigned 8 bit integer from the underlying reader.
Source§

fn read_i8(&mut self) -> Result<i8>

Reads a signed 8 bit integer from the underlying reader.
Source§

fn skip<const N: usize>(&mut self) -> Result<()>

Skip the given number of u8 integers.
Source§

fn read_u16(&mut self) -> Result<u16>

Reads an unsigned 16 bit integer from the underlying reader.
Source§

fn read_i16(&mut self) -> Result<i16>

Reads a signed 16 bit integer from the underlying reader.
Source§

fn read_u24(&mut self) -> Result<u32>

Reads an unsigned 24 bit integer from the underlying reader.
Source§

fn read_i24(&mut self) -> Result<i32>

Reads a signed 24 bit integer from the underlying reader.
Source§

fn read_u32(&mut self) -> Result<u32>

Reads an unsigned 32 bit integer from the underlying reader.
Source§

fn read_i32(&mut self) -> Result<i32>

Reads a signed 32 bit integer from the underlying reader.
Source§

fn read_packed_u32(&mut self) -> Result<u32>

Read a packed unsigned 32 bit integer from the underlying reader.
Source§

fn read_u64(&mut self) -> Result<u64>

Reads an unsigned 64 bit integer from the underlying reader.
Source§

fn read_i64(&mut self) -> Result<i64>

Reads a signed 64 bit integer from the underlying reader.
Source§

fn read_f32(&mut self) -> Result<f32>

Reads a IEEE754 single-precision (4 bytes) floating point number from the underlying reader.
Source§

fn read_bool(&mut self) -> Result<bool>

Read a single boolean from the underlying reader.
Source§

fn check_exact<const N: usize>(&mut self, bytes: &[u8; N]) -> Result<bool>

Check that the next N bytes are the exact same as the given array.
Source§

fn read_blob(&mut self, len: usize) -> Result<Vec<u8>>

Read a blob of the given length.
Source§

fn read_blob_variable(&mut self) -> Result<Vec<u8>>

Read a blob of a length that is specified with a packed u32 before the actual vector.
Source§

fn read_string(&mut self, len: usize) -> Result<String>

Read an UTF-8 string of the given length.
Source§

fn read_string_variable(&mut self) -> Result<String>

Read an UTF-8 string of a length that is specified with a packed u32 before the actual vector.
Source§

fn read_cstring(&mut self, len: usize) -> Result<String>

Read a null-terminated string of a fixed length, trailing zeros are ignored and if no zero is encountered, an invalid data error is returned.
Source§

fn read_cstring_variable(&mut self) -> Result<String>

Read a null-terminated string of unknown length.
Source§

fn read_sock_addr_v4(&mut self) -> Result<SocketAddrV4>

Source§

fn read_vec3(&mut self) -> Result<Vec3A>

Source§

fn read_pickle<'de, T: Deserialize<'de>>(&mut self) -> Result<T>

Read a Python Pickle of the given serde::Deserialize type, this also reads the length of the pickle’s data in the packed header.
Source§

fn read_single_head(&mut self) -> Result<usize>

Read the size header for a single structure. To read the header of a vector, see read_vector_head.
Source§

fn read_vector_head(&mut self) -> Result<(usize, usize)>

Read header for vector of structure, returns (size, count) with the number of structure of the given size, total size is size * count.
Source§

fn read_vector<F, T>(&mut self, func: F) -> Result<Vec<T>>
where F: FnMut(&mut Cursor<&Vec<u8>>) -> Result<T>,

Read a full vector of structure, use a function to convert each structures’ bytes to an object, returns a vector with all vector’s objects.