Expand description

scale-type-resolver provides a generic TypeResolver trait which can be implemented for any type that is capable of being given a type ID and resolving that into information about how the type is SCALE encoded. This allows libraries like scale-decode to be able to decode SCALE encoded bytes using either a modern type resolver like scale_info::PortableRegistry, or using entirely custom type resolvers (which we would need in order decode blocks from pre-V14 metadata).

It’s unlikely that you’d depend on this library directly; more likely you’d depend on a library like scale-decode which uses and re-exports the TypeResolver trait itself.

This crate is no_std by default and doesn’t require alloc except for tests.

Modules§

Structs§

  • Information about a composite field.
  • Information about a specific variant type.

Enums§

Traits§

  • An iterator over a set of fields.
  • A glorified set of callbacks, exactly one of which will fire depending on the outcome of calling TypeResolver::resolve_type(). These don’t typically need to be implemented by the user, and instead are implemented internally in eg scale-decode to drive the decoding of types.
  • A trait representing a type ID.
  • This trait can be implemented for any type that is capable of describing how some type (identified by a TypeResolver::TypeId) is represented in terms of SCALE encoded bytes.
  • An iterator over a set of variants.