Expand description
MessagePack support for Swim serialization.
Provides a MessagesPack backend for the Swim serialization system. This consists of two parts:
- A function
read_from_msg_packthat will attempt to deserialize any type that implementsswimos_form::read::StructuralReadablefrom a buffer containing MessagePack data. - The type
MsgPackInterpreterthat implementsswimos_form::write::StructuralWriterallowing any type that implementsswimos_form::write::StructuralWritableto be serialized as MessagePack.
§Examples
use bytes::{BufMut, BytesMut};
use swimos_form::write::StructuralWritable;
use swimos_msgpack::{read_from_msg_pack, MsgPackInterpreter};
let mut buffer = BytesMut::with_capacity(128);
let data = vec!["first".to_owned(), "second".to_owned(), "third".to_owned()];
let mut writer = (&mut buffer).writer();
let interpreter = MsgPackInterpreter::new(&mut writer);
assert!(data.write_with(interpreter).is_ok());
let mut bytes = buffer.split().freeze();
let restored = read_from_msg_pack::<Vec<String>, _>(&mut bytes);
assert_eq!(restored, Ok(data));Structs§
- MsgPack
Interpreter StructuralWriterimplementation that uses the MessagePack format. Primitive values are written with the corresponding MessagePack types. Big integers are written as MessagePack extensions as raw bytes in big endian order. Strings and binary blobs are written as MessagePack string and bin values. Records have the following encoding.
Enums§
- MsgPack
Read Error - Reading MessagePack data can fail if the bytes do not constitute valid MessagePack or the buffer contains an incomplete record.
- MsgPack
Write Error - Writing out to MessagePack can fail because of an IO error or because a value exceeds the limitations of the MessagePack format.
Functions§
- read_
from_ msg_ pack - Attempt to read a
StructuralReadabletype from MessagePack data in a buffer.