mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-26 14:37:57 +00:00
sp-api: Put frame-metadata behind some feature (#14398)
* sp-api: Put `frame-metadata` behind some feature Closes: https://github.com/paritytech/substrate/issues/14296 * ".git/.scripts/commands/fmt/fmt.sh" * Review feedback --------- Co-authored-by: command-bot <>
This commit is contained in:
@@ -20,7 +20,6 @@ use crate::{
|
||||
API_VERSION_ATTRIBUTE, BLOCK_GENERIC_IDENT, CHANGED_IN_ATTRIBUTE, CORE_TRAIT_ATTRIBUTE,
|
||||
RENAMED_ATTRIBUTE, SUPPORTED_ATTRIBUTE_NAMES,
|
||||
},
|
||||
runtime_metadata::generate_decl_runtime_metadata,
|
||||
utils::{
|
||||
extract_parameter_names_types_and_borrows, fold_fn_decl_for_client_side,
|
||||
generate_crate_access, generate_runtime_mod_name_for_trait, parse_runtime_api_version,
|
||||
@@ -188,13 +187,17 @@ fn generate_runtime_decls(decls: &[ItemTrait]) -> Result<TokenStream> {
|
||||
let mut decl = decl.clone();
|
||||
let decl_span = decl.span();
|
||||
extend_generics_with_block(&mut decl.generics);
|
||||
let metadata = generate_decl_runtime_metadata(&decl);
|
||||
let mod_name = generate_runtime_mod_name_for_trait(&decl.ident);
|
||||
let found_attributes = remove_supported_attributes(&mut decl.attrs);
|
||||
let api_version =
|
||||
get_api_version(&found_attributes).map(|v| generate_runtime_api_version(v as u32))?;
|
||||
let id = generate_runtime_api_id(&decl.ident.to_string());
|
||||
|
||||
#[cfg(feature = "frame-metadata")]
|
||||
let metadata = crate::runtime_metadata::generate_decl_runtime_metadata(&decl);
|
||||
#[cfg(not(feature = "frame-metadata"))]
|
||||
let metadata = quote!();
|
||||
|
||||
let trait_api_version = get_api_version(&found_attributes)?;
|
||||
|
||||
let mut methods_by_version: BTreeMap<u64, Vec<TraitItemFn>> = BTreeMap::new();
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
|
||||
use crate::{
|
||||
common::API_VERSION_ATTRIBUTE,
|
||||
runtime_metadata::generate_impl_runtime_metadata,
|
||||
utils::{
|
||||
extract_all_signature_types, extract_block_type_from_trait_path, extract_impl_trait,
|
||||
extract_parameter_names_types_and_borrows, generate_crate_access,
|
||||
@@ -694,7 +693,11 @@ fn impl_runtime_apis_impl_inner(api_impls: &[ItemImpl]) -> Result<TokenStream> {
|
||||
let runtime_api_versions = generate_runtime_api_versions(api_impls)?;
|
||||
let wasm_interface = generate_wasm_interface(api_impls)?;
|
||||
let api_impls_for_runtime_api = generate_api_impl_for_runtime_api(api_impls)?;
|
||||
let runtime_metadata = generate_impl_runtime_metadata(api_impls)?;
|
||||
|
||||
#[cfg(feature = "frame-metadata")]
|
||||
let runtime_metadata = crate::runtime_metadata::generate_impl_runtime_metadata(api_impls)?;
|
||||
#[cfg(not(feature = "frame-metadata"))]
|
||||
let runtime_metadata = quote!();
|
||||
|
||||
let impl_ = quote!(
|
||||
#base_runtime_api
|
||||
|
||||
@@ -25,6 +25,7 @@ mod common;
|
||||
mod decl_runtime_apis;
|
||||
mod impl_runtime_apis;
|
||||
mod mock_impl_runtime_apis;
|
||||
#[cfg(feature = "frame-metadata")]
|
||||
mod runtime_metadata;
|
||||
mod utils;
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ use syn::{
|
||||
ImplItem, ItemImpl, Pat, Path, PathArguments, Result, ReturnType, Signature, Type, TypePath,
|
||||
};
|
||||
|
||||
use quote::{format_ident, quote, ToTokens};
|
||||
use quote::{format_ident, quote};
|
||||
|
||||
use proc_macro_crate::{crate_name, FoundCrate};
|
||||
|
||||
@@ -259,7 +259,10 @@ pub fn versioned_trait_name(trait_ident: &Ident, version: u64) -> Ident {
|
||||
}
|
||||
|
||||
/// Extract the documentation from the provided attributes.
|
||||
#[cfg(feature = "frame-metadata")]
|
||||
pub fn get_doc_literals(attrs: &[syn::Attribute]) -> Vec<syn::Lit> {
|
||||
use quote::ToTokens;
|
||||
|
||||
attrs
|
||||
.iter()
|
||||
.filter_map(|attr| {
|
||||
@@ -275,6 +278,7 @@ pub fn get_doc_literals(attrs: &[syn::Attribute]) -> Vec<syn::Lit> {
|
||||
}
|
||||
|
||||
/// Filters all attributes except the cfg ones.
|
||||
#[cfg(feature = "frame-metadata")]
|
||||
pub fn filter_cfg_attributes(attrs: &[syn::Attribute]) -> Vec<syn::Attribute> {
|
||||
attrs.iter().filter(|a| a.path().is_ident("cfg")).cloned().collect()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user