Expand description
MsgPack binary format for facet.
This crate provides serialization and deserialization for the MessagePack binary format.
§Serialization
use facet::Facet;
use facet_msgpack::to_vec;
#[derive(Facet)]
struct Point { x: i32, y: i32 }
let point = Point { x: 10, y: 20 };
let bytes = to_vec(&point).unwrap();§Deserialization
There are two deserialization functions:
from_slice: Deserializes into owned types (T: Facet<'static>)from_slice_borrowed: Deserializes with zero-copy borrowing from the input buffer
use facet::Facet;
use facet_msgpack::from_slice;
#[derive(Facet, Debug, PartialEq)]
struct Point { x: i32, y: i32 }
// MsgPack encoding of {"x": 10, "y": 20}
let bytes = &[0x82, 0xa1, b'x', 0x0a, 0xa1, b'y', 0x14];
let point: Point = from_slice(bytes).unwrap();
assert_eq!(point.x, 10);
assert_eq!(point.y, 20);Both functions use Tier-2 JIT for compatible types (when the jit feature is enabled),
with automatic fallback to Tier-0 reflection for all other types.
Structs§
- MsgPack
Error - MsgPack parsing error.
- MsgPack
Parser - MsgPack parser for deserialization.
- MsgPack
Serialize Error - MsgPack serializer error.
- MsgPack
Serializer - MsgPack serializer.
Enums§
- Deserialize
Error - Error produced by
FormatDeserializer.
Functions§
- from_
slice - Deserialize a value from MsgPack bytes into an owned type.
- from_
slice_ borrowed - Deserialize a value from MsgPack bytes, allowing zero-copy borrowing.
- to_vec
- Serialize a value to MsgPack bytes.
- to_
writer - Serialize a value to MsgPack bytes using a writer.