Trait UnalignedRead

Source
pub trait UnalignedRead {
Show 15 methods // Required methods unsafe fn read_u8_at(self, byte_offset: usize) -> u8; unsafe fn read_u16_at(self, byte_offset: usize) -> u16; unsafe fn read_u32_at(self, byte_offset: usize) -> u32; unsafe fn read_u64_at(self, byte_offset: usize) -> u64; unsafe fn read_u128_at(self, byte_offset: usize) -> u128; unsafe fn read_usize_at(self, byte_offset: usize) -> usize; unsafe fn read_i8_at(self, byte_offset: usize) -> i8; unsafe fn read_i16_at(self, byte_offset: usize) -> i16; unsafe fn read_i32_at(self, byte_offset: usize) -> i32; unsafe fn read_i64_at(self, byte_offset: usize) -> i64; unsafe fn read_i128_at(self, byte_offset: usize) -> i128; unsafe fn read_isize_at(self, byte_offset: usize) -> isize; unsafe fn read_f32_at(self, byte_offset: usize) -> f32; unsafe fn read_f64_at(self, byte_offset: usize) -> f64; unsafe fn read_bool_at(self, byte_offset: usize) -> bool;
}
Expand description

Trait providing convenient unaligned read operations for pointer types.

This trait eliminates the need for explicit casts when reading from typed pointers (e.g., *const u32, *mut u16) by providing methods that handle the casting internally.

Required Methods§

Source

unsafe fn read_u8_at(self, byte_offset: usize) -> u8

Reads a u8 value from the pointer at the given byte offset.

§Safety
  • The pointer plus byte offset must be valid for reading 1 byte
  • The caller must ensure the pointer remains valid for the duration of the read
Source

unsafe fn read_u16_at(self, byte_offset: usize) -> u16

Reads a u16 value from the pointer at the given byte offset.

§Safety
  • The pointer plus byte offset must be valid for reading 2 bytes
  • The caller must ensure the pointer remains valid for the duration of the read
  • No alignment requirements - this performs unaligned reads
Source

unsafe fn read_u32_at(self, byte_offset: usize) -> u32

Reads a u32 value from the pointer at the given byte offset.

§Safety
  • The pointer plus byte offset must be valid for reading 4 bytes
  • The caller must ensure the pointer remains valid for the duration of the read
  • No alignment requirements - this performs unaligned reads
Source

unsafe fn read_u64_at(self, byte_offset: usize) -> u64

Reads a u64 value from the pointer at the given byte offset.

§Safety
  • The pointer plus byte offset must be valid for reading 8 bytes
  • The caller must ensure the pointer remains valid for the duration of the read
  • No alignment requirements - this performs unaligned reads
Source

unsafe fn read_u128_at(self, byte_offset: usize) -> u128

Reads a u128 value from the pointer at the given byte offset.

§Safety
  • The pointer plus byte offset must be valid for reading 16 bytes
  • The caller must ensure the pointer remains valid for the duration of the read
  • No alignment requirements - this performs unaligned reads
Source

unsafe fn read_usize_at(self, byte_offset: usize) -> usize

Reads a usize value from the pointer at the given byte offset.

§Safety
  • The pointer plus byte offset must be valid for reading size_of::<usize>() bytes
  • The caller must ensure the pointer remains valid for the duration of the read
  • No alignment requirements - this performs unaligned reads
Source

unsafe fn read_i8_at(self, byte_offset: usize) -> i8

Reads an i8 value from the pointer at the given byte offset.

§Safety
  • The pointer plus byte offset must be valid for reading 1 byte
  • The caller must ensure the pointer remains valid for the duration of the read
Source

unsafe fn read_i16_at(self, byte_offset: usize) -> i16

Reads an i16 value from the pointer at the given byte offset.

§Safety
  • The pointer plus byte offset must be valid for reading 2 bytes
  • The caller must ensure the pointer remains valid for the duration of the read
  • No alignment requirements - this performs unaligned reads
Source

unsafe fn read_i32_at(self, byte_offset: usize) -> i32

Reads an i32 value from the pointer at the given byte offset.

§Safety
  • The pointer plus byte offset must be valid for reading 4 bytes
  • The caller must ensure the pointer remains valid for the duration of the read
  • No alignment requirements - this performs unaligned reads
Source

unsafe fn read_i64_at(self, byte_offset: usize) -> i64

Reads an i64 value from the pointer at the given byte offset.

§Safety
  • The pointer plus byte offset must be valid for reading 8 bytes
  • The caller must ensure the pointer remains valid for the duration of the read
  • No alignment requirements - this performs unaligned reads
Source

unsafe fn read_i128_at(self, byte_offset: usize) -> i128

Reads an i128 value from the pointer at the given byte offset.

§Safety
  • The pointer plus byte offset must be valid for reading 16 bytes
  • The caller must ensure the pointer remains valid for the duration of the read
  • No alignment requirements - this performs unaligned reads
Source

unsafe fn read_isize_at(self, byte_offset: usize) -> isize

Reads an isize value from the pointer at the given byte offset.

§Safety
  • The pointer plus byte offset must be valid for reading size_of::<isize>() bytes
  • The caller must ensure the pointer remains valid for the duration of the read
  • No alignment requirements - this performs unaligned reads
Source

unsafe fn read_f32_at(self, byte_offset: usize) -> f32

Reads an f32 value from the pointer at the given byte offset.

§Safety
  • The pointer plus byte offset must be valid for reading 4 bytes
  • The caller must ensure the pointer remains valid for the duration of the read
  • No alignment requirements - this performs unaligned reads
Source

unsafe fn read_f64_at(self, byte_offset: usize) -> f64

Reads an f64 value from the pointer at the given byte offset.

§Safety
  • The pointer plus byte offset must be valid for reading 8 bytes
  • The caller must ensure the pointer remains valid for the duration of the read
  • No alignment requirements - this performs unaligned reads
Source

unsafe fn read_bool_at(self, byte_offset: usize) -> bool

Reads a bool value from the pointer at the given byte offset.

§Safety
  • The pointer plus byte offset must be valid for reading 1 byte
  • The caller must ensure the pointer remains valid for the duration of the read
  • The byte value must represent a valid bool (0 or 1)

Implementations on Foreign Types§

Source§

impl<T> UnalignedRead for *const T

Source§

unsafe fn read_u8_at(self, byte_offset: usize) -> u8

Source§

unsafe fn read_u16_at(self, byte_offset: usize) -> u16

Source§

unsafe fn read_u32_at(self, byte_offset: usize) -> u32

Source§

unsafe fn read_u64_at(self, byte_offset: usize) -> u64

Source§

unsafe fn read_u128_at(self, byte_offset: usize) -> u128

Source§

unsafe fn read_usize_at(self, byte_offset: usize) -> usize

Source§

unsafe fn read_i8_at(self, byte_offset: usize) -> i8

Source§

unsafe fn read_i16_at(self, byte_offset: usize) -> i16

Source§

unsafe fn read_i32_at(self, byte_offset: usize) -> i32

Source§

unsafe fn read_i64_at(self, byte_offset: usize) -> i64

Source§

unsafe fn read_i128_at(self, byte_offset: usize) -> i128

Source§

unsafe fn read_isize_at(self, byte_offset: usize) -> isize

Source§

unsafe fn read_f32_at(self, byte_offset: usize) -> f32

Source§

unsafe fn read_f64_at(self, byte_offset: usize) -> f64

Source§

unsafe fn read_bool_at(self, byte_offset: usize) -> bool

Source§

impl<T> UnalignedRead for *mut T

Source§

unsafe fn read_u8_at(self, byte_offset: usize) -> u8

Source§

unsafe fn read_u16_at(self, byte_offset: usize) -> u16

Source§

unsafe fn read_u32_at(self, byte_offset: usize) -> u32

Source§

unsafe fn read_u64_at(self, byte_offset: usize) -> u64

Source§

unsafe fn read_u128_at(self, byte_offset: usize) -> u128

Source§

unsafe fn read_usize_at(self, byte_offset: usize) -> usize

Source§

unsafe fn read_i8_at(self, byte_offset: usize) -> i8

Source§

unsafe fn read_i16_at(self, byte_offset: usize) -> i16

Source§

unsafe fn read_i32_at(self, byte_offset: usize) -> i32

Source§

unsafe fn read_i64_at(self, byte_offset: usize) -> i64

Source§

unsafe fn read_i128_at(self, byte_offset: usize) -> i128

Source§

unsafe fn read_isize_at(self, byte_offset: usize) -> isize

Source§

unsafe fn read_f32_at(self, byte_offset: usize) -> f32

Source§

unsafe fn read_f64_at(self, byte_offset: usize) -> f64

Source§

unsafe fn read_bool_at(self, byte_offset: usize) -> bool

Implementors§