8 个不稳定版本 (3 个破坏性更新)

1.0.0-beta22022年5月3日
1.0.0-beta2021年12月6日
0.8.0 2021年10月28日
0.7.5 2021年10月25日
0.5.3 2021年10月4日

#100 in #scale

每月41次下载
sube 中使用

Apache-2.0

66KB
2K SLoC

scales - SCALE 序列化

利用 类型信息,这个库允许将数据转换为/从 SCALE 编码数据,特别适用于需要转换为动态类型(如 JSON)的情况。

从 SCALE

scales::Value 包装原始 SCALE 二进制数据和类型 ID,在类型注册表中提供,使您可以将其序列化为任何兼容的格式。

let value = scales::Value::new(scale_binary_data, type_id, &type_registry);
serde_json::to_string(value)?;

到 SCALE

来自 scales::serializer::* 模块(特性 experimental-serializer)的公共方法允许将动态类型(例如 serde_json::Value)尽可能转换为 SCALE 二进制格式。序列化器在解释输入时会尝试变得聪明,并将其转换为注册表提供的类型指定的所需格式。

// simple conversion
let scale_data = to_vec(some_serializable_input); // or to_bytes(&mut bytes, input);

// with type info
let scale_data = to_vec_with_info(input, Some((&registry, type_id)));

// from an unordered list of properties that make an object
let input = vec![("prop_b", 123), ("prop_a", 456)];
let scale_data = to_vec_from_iter(input, (&registry, type_id));

依赖项

~4MB
~82K SLoC