Crate simple_bytes
source ·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_u8(1);
slice.write_f32(1.234);
slice.write(&[1u8, 2u8]);
assert_eq!(3, slice.remaining().len());
Structs
- A slice wrapper that implements BytesRead.
- A array wrapper that implements BytesWrite and 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.
- Get’s returned when there is not enough space to read everything. If this get’s returned nothing was read.
- Get’s returned when there is not enough data left to seek to the position.
- Get’s returned when there is not enough space to write everything. If this get’s returned nothing should be written.
Traits
- Read bytes or numbers.
- Read bytes while keeping the original reference.
- Sets the internal position for writing or reading.
- Write bytes or numbers.