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