Expand description

A small and easy crate to mutate or read u8 slices.

Reads or writes any number using the byte order “big-endian”.

Read a slice

use simple_bytes::{Bytes, BytesRead};
let bytes: Vec<u8> = (0..255).collect();
let mut slice: Bytes = bytes.as_slice().into();

assert_eq!(0, slice.read_u8());
assert_eq!(1, slice.read_u8());
assert_eq!(515, slice.read_u16());

Write to a slice

use simple_bytes::{BytesMut, BytesRead, BytesWrite};
let mut bytes = [0u8; 10];
let mut slice = BytesMut::from(bytes.as_mut());

slice.write(&[1u8, 2u8]);
assert_eq!(3, slice.remaining().len());


A slice wrapper that implements BytesRead.

A mutable slice wrapper that implements BytesWrite

A Vec wrapper that implements BytesWrite and BytesRead

A generic struct implementing BytesRead, BytesWrite and BytesSeek for different types.

A struct which holds a specific offset for any BytesRead, BytesWrite or BytesSeek implementation.


Read bytes or numbers.

Read bytes while keeping the original reference.

Sets the internal position for writing or reading.

Write bytes or numbers.