4个版本 (2个重大更改)
| 新 0.2.0 | 2024年8月9日 |
|---|---|
| 0.1.1 | 2024年7月30日 |
| 0.1.0 | 2024年5月31日 |
| 0.0.1 | 2024年3月14日 |
#984 in 编码
每月122次下载
130KB
2.5K SLoC
scale-info-legacy
本包提供一组相互关联的类型。最终目标是能够定义描述历史Substrate类型如何进行SCALE编码所需的所有必要类型信息。这里公开的主要类型如下
TypeRegistry:最低级别的类型,可以填充类型信息(通过TypeRegistry::insert())并查询以将某些类型名称解析为相关信息(通过TypeRegistry::resolve_type())。TypeRegistrySet:一组上述类型,通过遍历内部类型注册表(通过TypeRegistrySet::resolve_type())来解析类型,直到找到相关信息(或者找不到)。这允许我们以不同的方式组合类型注册表,以改变我们解析的方式。ChainTypeRegistry:此类型通过反序列化描述给定链上所有我们需要了解的类型的JSON(或类似)数据来构建。这里的主要功能是ChainTypeRegistry::for_spec_version(),它返回用于解析给定规范版本的TypeRegistrySet。
我们还暴露了一个 InsertName,它通过解析类似 Vec<T> 的类型名从字符串中构建,并在 TypeRegistry::insert() 中用于插入类型,然后是 LookupName,它通过解析类似 Vec<T>、u8; 32 和 (bool, u32) 的类型名构建,并通过 TypeRegistry::resolve_type() 和类似的函数来查找相应的类型信息。最后,TypeShape 是一个枚举,用于描述通过 TypeRegistry::insert() 插入的类型形状。这个crate,就像 scale-info 一样,可以与像
scale-decode一起使用,将基于此类型信息的SCALE编码的字节解码成自定义类型。scale-encode将基于此类型信息的自定义类型编码成字节。scale-value将从Value类型(类似于serde_json 的Value类型)进行SCALE编码或解码。
依赖项
~2–3MB
~51K SLoC