subxt_metadata/from_into/
mod.rs1use alloc::string::String;
6use thiserror::Error as DeriveError;
7mod v14;
8mod v15;
9
10#[derive(Debug, PartialEq, Eq, DeriveError)]
13#[non_exhaustive]
14pub enum TryFromError {
15 #[error("Type id {0} is expected but not found in the type registry")]
17 TypeNotFound(u32),
18 #[error("Type {0} was not a variant/enum type, but is expected to be one")]
20 VariantExpected(u32),
21 #[error("Cannot convert v{0} metadata into Metadata type")]
23 UnsupportedMetadataVersion(u32),
24 #[error("Type name {0} is expected but not found in the type registry")]
26 TypeNameNotFound(String),
27 #[error("Type has an invalid path {0}")]
29 InvalidTypePath(String),
30}
31
32impl From<crate::Metadata> for frame_metadata::RuntimeMetadataPrefixed {
33 fn from(value: crate::Metadata) -> Self {
34 let m: frame_metadata::v15::RuntimeMetadataV15 = value.into();
35 m.into()
36 }
37}
38
39impl TryFrom<frame_metadata::RuntimeMetadataPrefixed> for crate::Metadata {
40 type Error = TryFromError;
41
42 fn try_from(value: frame_metadata::RuntimeMetadataPrefixed) -> Result<Self, Self::Error> {
43 match value.1 {
44 frame_metadata::RuntimeMetadata::V0(_) => {
45 Err(TryFromError::UnsupportedMetadataVersion(0))
46 }
47 frame_metadata::RuntimeMetadata::V1(_) => {
48 Err(TryFromError::UnsupportedMetadataVersion(1))
49 }
50 frame_metadata::RuntimeMetadata::V2(_) => {
51 Err(TryFromError::UnsupportedMetadataVersion(2))
52 }
53 frame_metadata::RuntimeMetadata::V3(_) => {
54 Err(TryFromError::UnsupportedMetadataVersion(3))
55 }
56 frame_metadata::RuntimeMetadata::V4(_) => {
57 Err(TryFromError::UnsupportedMetadataVersion(4))
58 }
59 frame_metadata::RuntimeMetadata::V5(_) => {
60 Err(TryFromError::UnsupportedMetadataVersion(5))
61 }
62 frame_metadata::RuntimeMetadata::V6(_) => {
63 Err(TryFromError::UnsupportedMetadataVersion(6))
64 }
65 frame_metadata::RuntimeMetadata::V7(_) => {
66 Err(TryFromError::UnsupportedMetadataVersion(7))
67 }
68 frame_metadata::RuntimeMetadata::V8(_) => {
69 Err(TryFromError::UnsupportedMetadataVersion(8))
70 }
71 frame_metadata::RuntimeMetadata::V9(_) => {
72 Err(TryFromError::UnsupportedMetadataVersion(9))
73 }
74 frame_metadata::RuntimeMetadata::V10(_) => {
75 Err(TryFromError::UnsupportedMetadataVersion(10))
76 }
77 frame_metadata::RuntimeMetadata::V11(_) => {
78 Err(TryFromError::UnsupportedMetadataVersion(11))
79 }
80 frame_metadata::RuntimeMetadata::V12(_) => {
81 Err(TryFromError::UnsupportedMetadataVersion(12))
82 }
83 frame_metadata::RuntimeMetadata::V13(_) => {
84 Err(TryFromError::UnsupportedMetadataVersion(13))
85 }
86 frame_metadata::RuntimeMetadata::V14(m) => m.try_into(),
87 frame_metadata::RuntimeMetadata::V15(m) => m.try_into(),
88 frame_metadata::RuntimeMetadata::V16(_opaque) => {
89 Err(TryFromError::UnsupportedMetadataVersion(16))
90 }
91 }
92 }
93}