minbin 0.1.1

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

#[test]
fn test_option() {
    for expected in [None, Some(u32::MIN), Some(42), Some(u32::MAX)] {
        let mut buffer = vec![0u8; expected.byte_count()];
        let write_pos = write_bytes(&expected, &mut buffer).unwrap();
        let (actual, read_pos): (Option<u32>, usize) = read_bytes(&buffer[..write_pos]).unwrap();

        assert_eq!(expected.byte_count(), read_pos);
        assert_eq!(expected, actual);
    }
}

#[test]
fn test_str() {
    for expected in ["", "something", "else"] {
        let mut buffer = vec![0u8; expected.byte_count()];

        let write_pos = write_bytes(&expected, &mut buffer).unwrap();

        assert_eq!(expected.byte_count(), write_pos);

        let (actual, read_pos): (&str, usize) = read_bytes(&buffer).unwrap();

        assert_eq!(expected.byte_count(), read_pos);
        assert_eq!(expected, actual);
    }
}