nuts-bytes: A binary data format for Serde.
The nuts-bytes
crate implements a Serde data format that converts 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 Reader;
use Deserialize;
;
// deserialize a primitive (u32)
let mut reader = new;
let n: u32 = reader.deserialize.unwrap;
assert_eq!;
// deserialize a struct
let mut reader = new;
let sample: SampleStruct = reader.deserialize.unwrap;
assert_eq!;
assert_eq!; // Still one byte left
// deserialize an enum
let mut reader = new;
let sample: SampleEnum = reader.deserialize.unwrap;
assert_eq!;
// Not enough data available
let mut reader = new;
let err = reader..unwrap_err;
assert_eq!;
Serialization example
use Writer;
use Serialize;
;
// serialize a primitive (u32)
let mut writer = new;
let n = writer.serialize.unwrap;
assert_eq!; // 4 bytes written
assert_eq!;
// serialize a struct
let sample = SampleStruct;
let mut writer = new;
let n = writer.serialize.unwrap;
assert_eq!; // 3 bytes written
assert_eq!;
// serialize an enum
let sample = V1;
let mut writer = new;
let n = writer.serialize.unwrap;
assert_eq!; // 8 bytes written
assert_eq!;