2个不稳定版本
0.6.0 | 2024年7月2日 |
---|---|
0.5.2 | 2024年7月2日 |
#1267 in 编码
每月325次下载
用于 9 个crate (7 直接)
99KB
2.5K SLoC
Mavryk数据编码
用于rust结构体的序列化和反序列化辅助工具,以匹配由mavkit使用的Data_encoding
库生成的二进制格式。
lib.rs
:
此crate为Mavryk shell使用的数据类型提供序列化和反序列化功能。
您可以手动实现 NomReader
和 BinWriter
,或者从它们派生。
示例
让我们为包含两个数组(一个固定大小,一个动态)的结构体创建编码。
泛型结构体支持派生。
use mavryk_data_encoding::nom::NomReader;
use mavryk_data_encoding::enc::BinWriter;
use mavryk_data_encoding::encoding::HasEncoding;
const INNER_SIZE: usize = 10;
#[derive(Debug, PartialEq, HasEncoding, NomReader, BinWriter)]
struct Inner {
#[encoding(sized = "INNER_SIZE", bytes)]
fixed_size: Vec<u8>
}
#[derive(Debug, PartialEq, HasEncoding, NomReader, BinWriter)]
struct Outer<T>
where T: Debug + PartialEq + HasEncoding + for<'a> NomReader<'a> + BinWriter {
#[encoding(dynamic)]
dynamic_size: Vec<T>
}
#
#
#
#
#
依赖项
~7.5MB
~149K SLoC