Trait in_situ::InSitu[][src]

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

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

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

Provided Methods

Inversion of is_be().

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

Convert is_be()/is_le() into Order.

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Implementors