mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-24 06:38:02 +00:00
Propagate documentation to runtime API (#511)
* codegen: Propagate documentation for Constants Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * subxt: Update polkadot.rs Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * codegen: Propagate documentation for `CompositeDef` wrapper Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * subxt: Update polkadot.rs Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * codegen: Propagate docs for enum variant of `CompositeDef` wrapper Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * subxt: Update polkadot.rs Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * codegen: Propagate docs for Storage entries Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * subxt: Update polkadot.rs Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * codegen: Move docs from internal structs to methods of StorageApi Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * codegen: Propagate the same docs for storage iter variants Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * codegen: Move docs from call structs to methods of TransactionApi Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * subxt: Update polkadot.rs Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
This commit is contained in:
@@ -40,14 +40,14 @@ pub fn generate_calls(
|
||||
call: &PalletCallMetadata<PortableForm>,
|
||||
types_mod_ident: &syn::Ident,
|
||||
) -> TokenStream2 {
|
||||
let struct_defs = super::generate_structs_from_variants(
|
||||
let mut struct_defs = super::generate_structs_from_variants(
|
||||
type_gen,
|
||||
call.ty.id(),
|
||||
|name| name.to_upper_camel_case().into(),
|
||||
"Call",
|
||||
);
|
||||
let (call_structs, call_fns): (Vec<_>, Vec<_>) = struct_defs
|
||||
.iter()
|
||||
.iter_mut()
|
||||
.map(|struct_def| {
|
||||
let (call_fn_args, call_args): (Vec<_>, Vec<_>) =
|
||||
match struct_def.fields {
|
||||
@@ -78,6 +78,10 @@ pub fn generate_calls(
|
||||
let function_name = struct_def.name.to_string().to_snake_case();
|
||||
let fn_name = format_ident!("{}", function_name);
|
||||
|
||||
// Propagate the documentation just to `TransactionApi` methods, while
|
||||
// draining the documentation of inner call structures.
|
||||
let docs = struct_def.docs.take();
|
||||
// The call structure's documentation was stripped above.
|
||||
let call_struct = quote! {
|
||||
#struct_def
|
||||
|
||||
@@ -87,6 +91,7 @@ pub fn generate_calls(
|
||||
}
|
||||
};
|
||||
let client_fn = quote! {
|
||||
#docs
|
||||
pub fn #fn_name(
|
||||
&self,
|
||||
#( #call_fn_args, )*
|
||||
|
||||
@@ -38,8 +38,10 @@ pub fn generate_constants(
|
||||
let pallet_name = &pallet.name;
|
||||
let constant_name = &constant.name;
|
||||
let return_ty = type_gen.resolve_type_path(constant.ty.id(), &[]);
|
||||
let docs = &constant.docs;
|
||||
|
||||
quote! {
|
||||
#( #[doc = #docs ] )*
|
||||
pub fn #fn_name(&self) -> ::core::result::Result<#return_ty, ::subxt::BasicError> {
|
||||
let pallet = self.client.metadata().pallet(#pallet_name)?;
|
||||
let constant = pallet.constant(#constant_name)?;
|
||||
|
||||
@@ -412,6 +412,7 @@ where
|
||||
fields,
|
||||
Some(parse_quote!(pub)),
|
||||
type_gen,
|
||||
var.docs(),
|
||||
)
|
||||
})
|
||||
.collect()
|
||||
|
||||
@@ -248,8 +248,11 @@ fn generate_storage_entry_fns(
|
||||
}
|
||||
};
|
||||
|
||||
let docs = &storage_entry.docs;
|
||||
let docs_token = quote! { #( #[doc = #docs ] )* };
|
||||
let client_iter_fn = if matches!(storage_entry.ty, StorageEntryType::Map { .. }) {
|
||||
quote! (
|
||||
#docs_token
|
||||
pub async fn #fn_name_iter(
|
||||
&self,
|
||||
hash: ::core::option::Option<T::Hash>,
|
||||
@@ -271,7 +274,9 @@ fn generate_storage_entry_fns(
|
||||
};
|
||||
quote!( #field_name: #reference #field_ty )
|
||||
});
|
||||
|
||||
let client_fns = quote! {
|
||||
#docs_token
|
||||
pub async fn #fn_name(
|
||||
&self,
|
||||
#( #key_args, )*
|
||||
|
||||
Reference in New Issue
Block a user