[][src]Trait in_situ::InSitu

pub trait InSitu: AsRef<[u8]> {
    fn swap_size(&self) -> usize;
fn is_be(&self) -> bool; fn is_le(&self) -> bool { ... }
fn is_native(&self) -> bool { ... }
fn order(&self) -> Order { ... }
fn at(&self, offset: usize, word_size: usize) -> usize { ... }
fn u8(&self, offset: usize) -> u8 { ... }
fn u16(&self, offset: usize) -> u16 { ... }
fn u24(&self, offset: usize) -> u32 { ... }
fn u32(&self, offset: usize) -> u32 { ... }
fn u64(&self, offset: usize) -> u64 { ... }
fn u128(&self, offset: usize) -> u128 { ... }
fn uint(&self, offset: usize, word_size: usize) -> u64 { ... }
fn uint128(&self, offset: usize, word_size: usize) -> u128 { ... }
fn i8(&self, offset: usize) -> i8 { ... }
fn i16(&self, offset: usize) -> i16 { ... }
fn i24(&self, offset: usize) -> i32 { ... }
fn i32(&self, offset: usize) -> i32 { ... }
fn i64(&self, offset: usize) -> i64 { ... }
fn i128(&self, offset: usize) -> i128 { ... }
fn int(&self, offset: usize, word_size: usize) -> i64 { ... }
fn int128(&self, offset: usize, word_size: usize) -> i128 { ... }
fn f32(&self, offset: usize) -> f32 { ... }
fn f64(&self, offset: usize) -> f64 { ... } }

Provides endian-independent immutable bytes access, thus requires methods to be implemented detecting or hardcoding the word size and endianness. This trait requires the AsRef<[u8]> trait to access slices of generic types. It is not implemented for the Raw trait but instead for its wrapper types since each wrapper might implement the endianness detection differently.

Required methods

fn swap_size(&self) -> usize

The word size of the slice, not to be confused with the various word sizes of how to access the slice.

fn is_be(&self) -> bool

Whether the underlying bytes are in big-endian (be) or little-endian (le) byte order.

Loading content...

Provided methods

fn is_le(&self) -> bool

Inversion of is_be().

fn is_native(&self) -> bool

Tests if the underlying byte order has the machine's native endianness.

fn order(&self) -> Order

Convert is_be()/is_le() into Order.

fn at(&self, offset: usize, word_size: usize) -> usize

If is_le(), translates big-endian offset of word with word_size in slice of swap_size() into little-endian via bitwise instead of branching and modulo operations, otherwise passes through offset.

fn u8(&self, offset: usize) -> u8

Gets u8 in slice of swap_size() at big-endian offset endian-independently.

fn u16(&self, offset: usize) -> u16

Gets u16 in slice of swap_size() at big-endian offset endian-independently.

fn u24(&self, offset: usize) -> u32

Gets u24 in slice of swap_size() at big-endian offset endian-independently.

fn u32(&self, offset: usize) -> u32

Gets u32 in slice of swap_size() at big-endian offset endian-independently.

fn u64(&self, offset: usize) -> u64

Gets u64 in slice of swap_size() at big-endian offset endian-independently.

fn u128(&self, offset: usize) -> u128

Gets u128 in slice of swap_size() at big-endian offset endian-independently.

fn uint(&self, offset: usize, word_size: usize) -> u64

Gets unsigned integer of word_size <= 8 in slice of swap_size() at big-endian offset endian-independently.

fn uint128(&self, offset: usize, word_size: usize) -> u128

Gets unsigned integer of word_size <= 16 in slice of swap_size() at big-endian offset endian-independently.

fn i8(&self, offset: usize) -> i8

Gets i8 in slice of swap_size() at big-endian offset endian-independently.

fn i16(&self, offset: usize) -> i16

Gets i16 in slice of swap_size() at big-endian offset endian-independently.

fn i24(&self, offset: usize) -> i32

Gets i24 in slice of swap_size() at big-endian offset endian-independently.

fn i32(&self, offset: usize) -> i32

Gets i32 in slice of swap_size() at big-endian offset endian-independently.

fn i64(&self, offset: usize) -> i64

Gets i64 in slice of swap_size() at big-endian offset endian-independently.

fn i128(&self, offset: usize) -> i128

Gets u128 in slice of swap_size() at big-endian offset endian-independently.

fn int(&self, offset: usize, word_size: usize) -> i64

Gets signed integer of word_size <= 8 in slice of swap_size() at big-endian offset endian-independently.

fn int128(&self, offset: usize, word_size: usize) -> i128

Gets signed integer of word_size <= 16 in slice of swap_size() at big-endian offset endian-independently.

fn f32(&self, offset: usize) -> f32

Gets f32 in slice of swap_size() at big-endian offset endian-independently.

fn f64(&self, offset: usize) -> f64

Gets f64 in slice of swap_size() at big-endian offset endian-independently.

Loading content...

Implementors

Loading content...