23 unstable releases (4 breaking)
new 0.7.5 | Nov 8, 2024 |
---|---|
0.7.2 | Sep 27, 2024 |
0.6.8 | Jul 31, 2024 |
0.5.0 | Mar 5, 2024 |
0.2.1 | Nov 17, 2023 |
#10 in #nuts
489 downloads per month
Used in 5 crates
(via nuts-bytes)
25KB
422 lines
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.
Dependencies
~205–640KB
~15K SLoC