pub trait ReadBytesAtExt: ReadAt {
// Provided methods
fn read_u8_at(&self, pos: u64) -> Result<u8> { ... }
fn read_i8_at(&self, pos: u64) -> Result<i8> { ... }
fn read_u16_at<T: ByteOrder>(&self, pos: u64) -> Result<u16> { ... }
fn read_i16_at<T: ByteOrder>(&self, pos: u64) -> Result<i16> { ... }
fn read_u32_at<T: ByteOrder>(&self, pos: u64) -> Result<u32> { ... }
fn read_i32_at<T: ByteOrder>(&self, pos: u64) -> Result<i32> { ... }
fn read_u64_at<T: ByteOrder>(&self, pos: u64) -> Result<u64> { ... }
fn read_i64_at<T: ByteOrder>(&self, pos: u64) -> Result<i64> { ... }
fn read_uint_at<T: ByteOrder>(&self, pos: u64, nbytes: usize) -> Result<u64> { ... }
fn read_int_at<T: ByteOrder>(&self, pos: u64, nbytes: usize) -> Result<i64> { ... }
fn read_f32_at<T: ByteOrder>(&self, pos: u64) -> Result<f32> { ... }
fn read_f64_at<T: ByteOrder>(&self, pos: u64) -> Result<f64> { ... }
}
Expand description
Extends ReadAt
with methods for reading numbers at offsets.
For most of these methods, you need to explicitly add a ByteOrder
type parameter. Similar to byteorder::ReadBytesExt
.
§Examples
Read an integer from the middle of a byte array:
use byteorder::BigEndian;
use positioned_io2::ReadBytesAtExt;
let buf = [0, 5, 254, 212, 0, 3];
let n = buf.as_ref().read_i16_at::<BigEndian>(2)?;
assert_eq!(n, -300);
Provided Methods§
Sourcefn read_u8_at(&self, pos: u64) -> Result<u8>
fn read_u8_at(&self, pos: u64) -> Result<u8>
Reads an unsigned 8-bit integer at an offset.
Sourcefn read_i8_at(&self, pos: u64) -> Result<i8>
fn read_i8_at(&self, pos: u64) -> Result<i8>
Reads a signed 8-bit integer at an offset.
Sourcefn read_u16_at<T: ByteOrder>(&self, pos: u64) -> Result<u16>
fn read_u16_at<T: ByteOrder>(&self, pos: u64) -> Result<u16>
Reads an unsigned 16-bit integer at an offset.
Sourcefn read_i16_at<T: ByteOrder>(&self, pos: u64) -> Result<i16>
fn read_i16_at<T: ByteOrder>(&self, pos: u64) -> Result<i16>
Reads a signed 16-bit integer at an offset.
Sourcefn read_u32_at<T: ByteOrder>(&self, pos: u64) -> Result<u32>
fn read_u32_at<T: ByteOrder>(&self, pos: u64) -> Result<u32>
Reads an unsigned 32-bit integer at an offset.
Sourcefn read_i32_at<T: ByteOrder>(&self, pos: u64) -> Result<i32>
fn read_i32_at<T: ByteOrder>(&self, pos: u64) -> Result<i32>
Reads a signed 32-bit integer at an offset.
Sourcefn read_u64_at<T: ByteOrder>(&self, pos: u64) -> Result<u64>
fn read_u64_at<T: ByteOrder>(&self, pos: u64) -> Result<u64>
Reads an unsigned 64-bit integer at an offset.
Sourcefn read_i64_at<T: ByteOrder>(&self, pos: u64) -> Result<i64>
fn read_i64_at<T: ByteOrder>(&self, pos: u64) -> Result<i64>
Reads a signed 64-bit integer at an offset.
Sourcefn read_uint_at<T: ByteOrder>(&self, pos: u64, nbytes: usize) -> Result<u64>
fn read_uint_at<T: ByteOrder>(&self, pos: u64, nbytes: usize) -> Result<u64>
Reads an unsigned nbytes
-bit integer at an offset.
Sourcefn read_int_at<T: ByteOrder>(&self, pos: u64, nbytes: usize) -> Result<i64>
fn read_int_at<T: ByteOrder>(&self, pos: u64, nbytes: usize) -> Result<i64>
Reads a signed nbytes
-bit integer at an offset.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.