Crate rmp_serde[−][src]
Expand description
This crate connects Rust MessagePack library with serde
providing an ability to
easily serialize and deserialize both Rust built-in types, the standard library and custom data
structures.
Motivating example
let buf = rmp_serde::to_vec(&(42, "the Answer")).unwrap(); assert_eq!( vec![0x92, 0x2a, 0xaa, 0x74, 0x68, 0x65, 0x20, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72], buf ); assert_eq!((42, "the Answer"), rmp_serde::from_read_ref(&buf).unwrap());
Type-based Serialization and Deserialization
Serde provides a mechanism for low boilerplate serialization & deserialization of values to and from MessagePack via the serialization API.
To be able to serialize a piece of data, it must implement the serde::Serialize
trait. To be
able to deserialize a piece of data, it must implement the serde::Deserialize
trait. Serde
provides an annotation to automatically generate the code for these
traits: #[derive(Serialize, Deserialize)]
.
Examples
extern crate serde; #[macro_use] extern crate serde_derive; extern crate rmp_serde as rmps; use std::collections::HashMap; use serde::{Deserialize, Serialize}; use rmps::{Deserializer, Serializer}; #[derive(Debug, PartialEq, Deserialize, Serialize)] struct Human { age: u32, name: String, } fn main() { let mut buf = Vec::new(); let val = Human { age: 42, name: "John".into(), }; val.serialize(&mut Serializer::new(&mut buf)).unwrap(); }
Re-exports
pub use crate::decode::Deserializer; | |
pub use crate::decode::from_read; | |
pub use crate::decode::from_read_ref; | |
pub use crate::encode::Serializer; | |
pub use crate::encode::to_vec; | |
pub use crate::encode::to_vec_named; |
Modules
config | Change MessagePack behavior with configuration wrappers. |
decode | Generic MessagePack deserialization. |
encode | Serialize a Rust data structure into MessagePack data. |
Structs
Raw | Helper that allows both to encode and decode strings no matter whether they contain valid or invalid UTF-8. |
RawRef | Helper that allows both to encode and decode strings no matter whether they contain valid or invalid UTF-8. |
Constants
MSGPACK_EXT_STRUCT_NAME | Name of Serde newtype struct to Represent Msgpack’s Ext Msgpack Ext: Ext(tag, binary) Serde data model: _ExtStruct((tag, binary)) Example Serde impl for custom type: |