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