pub trait View {
    fn read_at<E: Endian>(&self, offset: usize) -> Option<E>;
unsafe fn read_at_unchecked<E: Endian>(&self, offset: usize) -> E;
fn write_at<E: Endian>(&mut self, offset: usize, num: E); }
Expand description

A data view for reading and writing data in byte array.

Examples

use data_view::View;

let mut buf = [0; 16];

buf.write_at(1, 42_u16);
assert_eq!(buf.read_at::<u16>(1).unwrap(), 42);

Required methods

Reads a value of type E: Endian from view.

Examples
use data_view::View;

let mut buf: [u8; 2] = [12, 34];

assert_eq!(buf.read_at::<u8>(0).unwrap(), 12);
assert_eq!(buf.read_at::<u8>(1).unwrap(), 34);

Reads a value of type E: Endian from view, without doing bounds checking. For a safe alternative see read_at.

Examples
use data_view::View;

let mut buf: [u8; 2] = [12, 34];
unsafe {
    assert_eq!(buf.read_at_unchecked::<u8>(0), 12);
    assert_eq!(buf.read_at_unchecked::<u8>(1), 34);
}
Safety

Calling this method with an out-of-bounds index is [undefined behavior]

Writes a value of type E: Endian to data view.

Examples
use data_view::View;

let mut buf: [u8; 2] = [0; 2];

buf.write_at(0, 12_u8);
buf.write_at(1, 34_u8);
assert_eq!(buf, [12, 34]);
Panics

Panics if the offset is out of bounds.

Implementations on Foreign Types

Implementors