Expand description
Serialize support for messagepack
§Limitation
MessagePack requires the length header of arrays and maps to be written
before any elements are encoded. Therefore this serializer needs serde
to provide the exact length up front. If serde calls
serialize_seq(None) or serialize_map(None), this serializer returns
Error::SeqLenNone.
Examples with serde(flatten):
use serde::Serialize;
use std::collections::HashMap;
// Fails
#[derive(Serialize)]
struct Inner { b: u8, c: u8 }
#[derive(Serialize)]
struct Outer {
a: u8,
#[serde(flatten)]
extra: Inner,
}
let mut buf = [0u8; 32];
let v = Outer { a: 1, extra: Inner { b: 2, c: 3 } };
let err = messagepack_serde::ser::to_slice(&v, &mut buf).unwrap_err();
assert_eq!(err, messagepack_serde::ser::Error::SeqLenNone);Structs§
- Aggressive
Minimize - Encode a given numeric value by aggressively minimising its format.
- Exact
- Encode a given numeric value exactly using its native format.
- Lossless
Minimize - Encode a given numeric value in a lossless minimised format without changing its original format.
Enums§
- Error
- Error during serialization
Traits§
- NumEncoder
- Decide how numeric values are encoded.
Functions§
- to_
slice - Serialize value as messagepack
- to_
slice_ with_ config - Serialize value as messagepack with config.
- to_vec
alloc - Serialize value as messagepack byte vector
- to_
vec_ with_ config alloc - Serialize value as messagepack byte vector with config
- to_
writer std - Serialize value as messagepack
- to_
writer_ with_ config std - Serialize value as messagepack with config.