| Crates.io | nuts-bytes |
| lib.rs | nuts-bytes |
| version | 0.7.9 |
| created_at | 2023-06-09 09:25:30.350223+00 |
| updated_at | 2025-04-11 07:16:13.420468+00 |
| description | Serialization into a binary data format |
| homepage | |
| repository | https://github.com/drobin/nuts.git |
| max_upload_size | |
| id | 886127 |
| size | 78,115 |
The nuts-bytes crate implements a tool that converts structured data into a
binary format.
The API documentation is located here.
The binary format is specified in docs/format.md.
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)));
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]);
You can check out the full license here.
This project is licensed under the terms of the MIT license.