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§
Sourceunsafe fn read_u8_at(self, byte_offset: usize) -> u8
unsafe fn read_u8_at(self, byte_offset: usize) -> u8
Sourceunsafe fn read_u16_at(self, byte_offset: usize) -> u16
unsafe fn read_u16_at(self, byte_offset: usize) -> u16
Sourceunsafe fn read_u32_at(self, byte_offset: usize) -> u32
unsafe fn read_u32_at(self, byte_offset: usize) -> u32
Sourceunsafe fn read_u64_at(self, byte_offset: usize) -> u64
unsafe fn read_u64_at(self, byte_offset: usize) -> u64
Sourceunsafe fn read_u128_at(self, byte_offset: usize) -> u128
unsafe fn read_u128_at(self, byte_offset: usize) -> u128
Sourceunsafe fn read_usize_at(self, byte_offset: usize) -> usize
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
Sourceunsafe fn read_i8_at(self, byte_offset: usize) -> i8
unsafe fn read_i8_at(self, byte_offset: usize) -> i8
Sourceunsafe fn read_i16_at(self, byte_offset: usize) -> i16
unsafe fn read_i16_at(self, byte_offset: usize) -> i16
Sourceunsafe fn read_i32_at(self, byte_offset: usize) -> i32
unsafe fn read_i32_at(self, byte_offset: usize) -> i32
Sourceunsafe fn read_i64_at(self, byte_offset: usize) -> i64
unsafe fn read_i64_at(self, byte_offset: usize) -> i64
Sourceunsafe fn read_i128_at(self, byte_offset: usize) -> i128
unsafe fn read_i128_at(self, byte_offset: usize) -> i128
Sourceunsafe fn read_isize_at(self, byte_offset: usize) -> isize
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