From 1aaf5ba7faebb6591e512231da3b7a29136e6ebe Mon Sep 17 00:00:00 2001 From: Andrew Jones Date: Mon, 18 Jan 2021 11:09:58 +0000 Subject: [PATCH] Extract duplicated RuntimeMetadataPrefixed struct to crate level (#5) --- frame-metadata/src/lib.rs | 12 ++++++++++++ frame-metadata/src/v12.rs | 15 --------------- frame-metadata/src/v13.rs | 12 ++---------- 3 files changed, 14 insertions(+), 25 deletions(-) diff --git a/frame-metadata/src/lib.rs b/frame-metadata/src/lib.rs index 4aec005..a3136ee 100644 --- a/frame-metadata/src/lib.rs +++ b/frame-metadata/src/lib.rs @@ -54,6 +54,18 @@ cfg_if::cfg_if! { } } +/// Metadata prefixed by a u32 for reserved usage +#[derive(Eq, Encode, PartialEq)] +#[cfg_attr(feature = "std", derive(Decode, Serialize, Debug))] +#[cfg_attr(feature = "std", serde(bound(serialize = "S: Serialize")))] +pub struct RuntimeMetadataPrefixed(pub u32, pub RuntimeMetadata); + +impl Into> for RuntimeMetadataPrefixed { + fn into(self) -> Vec { + self.encode() + } +} + /// The metadata of a runtime. /// The version ID encoded/decoded through /// the enum nature of `RuntimeMetadata`. diff --git a/frame-metadata/src/v12.rs b/frame-metadata/src/v12.rs index 4b6e0ec..4173c6d 100644 --- a/frame-metadata/src/v12.rs +++ b/frame-metadata/src/v12.rs @@ -35,7 +35,6 @@ cfg_if::cfg_if! { } } -use super::FormString; use core::marker::PhantomData; /// Current prefix of metadata @@ -347,14 +346,6 @@ pub struct StorageMetadata { pub entries: DecodeDifferent<&'static [StorageEntryMetadata], Vec>, } -/// Metadata prefixed by a u32 for reserved usage -#[derive(Eq, Encode, PartialEq)] -#[cfg_attr(feature = "std", derive(Decode, Serialize, Debug))] -pub struct RuntimeMetadataPrefixed( - pub u32, - pub super::RuntimeMetadata, -); - /// Metadata of the extrinsic used by the runtime. #[derive(Eq, Encode, PartialEq)] #[cfg_attr(feature = "std", derive(Decode, Serialize, Debug))] @@ -398,9 +389,3 @@ pub struct ModuleMetadata { type ODFnA = Option>; type DFnA = DecodeDifferent, Vec>; - -impl Into> for RuntimeMetadataPrefixed { - fn into(self) -> Vec { - self.encode() - } -} diff --git a/frame-metadata/src/v13.rs b/frame-metadata/src/v13.rs index f09b6b2..5a75e3d 100644 --- a/frame-metadata/src/v13.rs +++ b/frame-metadata/src/v13.rs @@ -22,6 +22,7 @@ cfg_if::cfg_if! { } } +use super::RuntimeMetadataPrefixed; use codec::Encode; use scale_info::prelude::vec::Vec; use scale_info::{ @@ -35,18 +36,9 @@ pub const META_RESERVED: u32 = 0x6174656d; // 'meta' warn endianness /// Type alias placeholder for `ByteGetter` equivalent. todo: [AJ] figure out what to do here pub type ByteGetter = Vec; -/// Metadata prefixed by a u32 for reserved usage -#[derive(Eq, Encode, PartialEq)] -#[cfg_attr(feature = "std", derive(Decode, Serialize, Debug))] -#[cfg_attr(feature = "std", serde(bound(serialize = "S: Serialize")))] -pub struct RuntimeMetadataPrefixed( - pub u32, - pub super::RuntimeMetadata, -); - pub type RuntimeMetadataLastVersion = RuntimeMetadataV13; -impl From for RuntimeMetadataPrefixed { +impl From for super::RuntimeMetadataPrefixed { fn from(metadata: RuntimeMetadataLastVersion) -> RuntimeMetadataPrefixed { RuntimeMetadataPrefixed(META_RESERVED, super::RuntimeMetadata::V13(metadata)) }