2 releases
| 0.1.1 | Sep 27, 2024 |
|---|---|
| 0.1.0 | Jun 27, 2024 |
#2135 in Encoding
91 downloads per month
510KB
12K
SLoC
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));
Dependencies
~9–20MB
~235K SLoC