nuts-bytes-derive

Crates.ionuts-bytes-derive
lib.rsnuts-bytes-derive
version0.6.7
sourcesrc
created_at2023-11-17 12:07:15.704729
updated_at2024-06-26 07:26:25.76461
descriptionSerialization into a binary data format
homepage
repositoryhttps://github.com/drobin/nuts.git
max_upload_size
id1038998
size24,657
Robin Doer (drobin)

documentation

https://docs.rs/nuts-bytes

README

nuts-bytes: Conversion into a binary data format.

The nuts-bytes crate implements a tool that converts structured data into a binary format.

API documentation

The API documentation is located here.

Format specification

The binary format is specified in docs/format.md.

Deserialization example

use nuts_bytes::{Error, Reader, TakeBytesError};

// deserialize a primitive (u32)
let mut reader = Reader::new([0x00, 0x00, 0x02, 0x9A].as_slice());
let n: u32 = reader.read().unwrap();

assert_eq!(n, 666);

// Not enough data available
let mut reader = Reader::new([0; 3].as_slice());
let err = reader.read::<u32>().unwrap_err();

assert!(matches!(err, Error::TakeBytes(TakeBytesError::Eof)));

Serialization example

use nuts_bytes::Writer;

// serialize a primitive (u32)
let mut writer = Writer::new(vec![]);
writer.write(&666u32).unwrap();

assert_eq!(writer.into_target(), [0x00, 0x00, 0x02, 0x9A]);

License

You can check out the full license here.

This project is licensed under the terms of the MIT license.

Commit count: 427

cargo fmt