pub trait AsMetadata<E: ExternalMemory>: Debug + Sized {
type TypeRegistry: ResolveType<E>;
type MetaStructureError: Debug + Display + Eq;
// Required methods
fn types(&self) -> Self::TypeRegistry;
fn spec_name_version(
&self,
) -> Result<SpecNameVersion, Self::MetaStructureError>;
fn call_ty(
&self,
) -> Result<UntrackedSymbol<TypeId>, Self::MetaStructureError>;
fn signed_extensions(
&self,
) -> Result<Vec<SignedExtensionMetadata>, Self::MetaStructureError>;
}
Expand description
Metadata sufficient for parsing of signable transactions, storage data, and bytes with a known type.
Required Associated Types§
type TypeRegistry: ResolveType<E>
type MetaStructureError: Debug + Display + Eq
Required Methods§
fn types(&self) -> Self::TypeRegistry
fn spec_name_version(&self) -> Result<SpecNameVersion, Self::MetaStructureError>
fn call_ty(&self) -> Result<UntrackedSymbol<TypeId>, Self::MetaStructureError>
fn signed_extensions( &self, ) -> Result<Vec<SignedExtensionMetadata>, Self::MetaStructureError>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.