minbin 0.1.1

Minimal, manual, no-std, zero-dependency, big-endian binary serialization.
Documentation
use minbin::{BytesWriter, ToFromByteError};

#[test]
fn writer_partial() {
    let mut buffer = [0u8; 32];
    let mut writer = BytesWriter::new(&mut buffer);

    writer.write_bytes(&[1, 2, 3]).unwrap();
    writer.write_bytes(&[4, 5]).unwrap();

    assert_eq!(writer.pos, 5);
}

#[test]
fn writer_full() {
    let mut buffer = [0u8; 4];
    let mut writer = BytesWriter::new(&mut buffer);

    writer.write_bytes(&[1u8, 1u8, 1u8, 1u8]).unwrap();
    assert_eq!(writer.pos, 4);
}

#[test]
fn writer_overflow() {
    let mut buffer = [0u8; 4];
    let mut writer = BytesWriter::new(&mut buffer);

    writer.write_bytes(&[1, 2, 3, 4]).unwrap();

    let err = writer.write_bytes(&[5]).unwrap_err();
    assert_eq!(err, ToFromByteError::NotEnoughBytes);
}