[][src]Module vm::normalized

Structs

Field

Normalized version of a FieldDefinition. The name is included even though it is metadata that it is ignored by the VM. The reason: names are important to clients. We would want a change from Account { bal: u64, seq: u64 } to Account { seq: u64, bal: u64 } to be marked as incompatible. Not safe to compare without an enclosing Struct.

FunctionSignature

Normalized version of a FunctionDefinition. Not safe to compare without an associated ModuleId or Module.

Module

Normalized version of a CompiledModule: its address, name, struct declarations, and public function declarations.

Struct

Normalized version of a StructDefinition. Not safe to compare without an associated ModuleId or Module.

Enums

Type

Defines normalized representations of Move types, fields, kinds, structs, functions, and modules. These representations are useful in situations that require require comparing functions, resources, and types across modules. This arises in linking, compatibility checks (e.g., "is it safe to deploy this new module without updating its dependents and/or restarting genesis?"), defining schemas for resources stored on-chain, and (possibly in the future) allowing module updates transactions. A normalized version of SignatureToken, a type expression appearing in struct or function declarations. Unlike SignatureTokens, normalized::Types from different modules can safely be compared.