mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-13 04:41:02 +00:00
Metadata V15: Expose pallet documentation (#13452)
* frame/proc: Helpers to parse pallet documentation attributes Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * frame/proc: Expand pallet with runtime metadata documentation Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * frame/dispatch: Implement doc function getter for dispatch Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * frame/tests: Check exposed runtime metadata documentation Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * frame/tests: Add UI tests for `pallet_doc` attribute Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * frame/proc: Document pallet_doc attribute Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * frame/support: Use `derive_syn_parse` Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Update frame/support/procedural/src/lib.rs Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com> * frame/support: Improve documentation Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> --------- Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> Co-authored-by: parity-processbot <> Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>
This commit is contained in:
@@ -481,6 +481,57 @@ pub fn construct_runtime(input: TokenStream) -> TokenStream {
|
||||
/// </pre></div>
|
||||
///
|
||||
/// See `frame_support::pallet` docs for more info.
|
||||
///
|
||||
/// ## Runtime Metadata Documentation
|
||||
///
|
||||
/// The documentation added to this pallet is included in the runtime metadata.
|
||||
///
|
||||
/// The documentation can be defined in the following ways:
|
||||
///
|
||||
/// ```ignore
|
||||
/// #[pallet::pallet]
|
||||
/// /// Documentation for pallet 1
|
||||
/// #[doc = "Documentation for pallet 2"]
|
||||
/// #[doc = include_str!("../README.md")]
|
||||
/// #[pallet_doc("../doc1.md")]
|
||||
/// #[pallet_doc("../doc2.md")]
|
||||
/// pub struct Pallet<T>(_);
|
||||
/// ```
|
||||
///
|
||||
/// The runtime metadata for this pallet contains the following
|
||||
/// - " Documentation for pallet 1" (captured from `///`)
|
||||
/// - "Documentation for pallet 2" (captured from `#[doc]`)
|
||||
/// - content of ../README.md (captured from `#[doc]` with `include_str!`)
|
||||
/// - content of "../doc1.md" (captured from `pallet_doc`)
|
||||
/// - content of "../doc2.md" (captured from `pallet_doc`)
|
||||
///
|
||||
/// ### `doc` attribute
|
||||
///
|
||||
/// The value of the `doc` attribute is included in the runtime metadata, as well as
|
||||
/// expanded on the pallet module. The previous example is expanded to:
|
||||
///
|
||||
/// ```ignore
|
||||
/// /// Documentation for pallet 1
|
||||
/// /// Documentation for pallet 2
|
||||
/// /// Content of README.md
|
||||
/// pub struct Pallet<T>(_);
|
||||
/// ```
|
||||
///
|
||||
/// If you want to specify the file from which the documentation is loaded, you can use the
|
||||
/// `include_str` macro. However, if you only want the documentation to be included in the
|
||||
/// runtime metadata, use the `pallet_doc` attribute.
|
||||
///
|
||||
/// ### `pallet_doc` attribute
|
||||
///
|
||||
/// Unlike the `doc` attribute, the documentation provided to the `pallet_doc` attribute is
|
||||
/// not inserted on the module.
|
||||
///
|
||||
/// The `pallet_doc` attribute can only be provided with one argument,
|
||||
/// which is the file path that holds the documentation to be added to the metadata.
|
||||
///
|
||||
/// This approach is beneficial when you use the `include_str` macro at the beginning of the file
|
||||
/// and want that documentation to extend to the runtime metadata, without reiterating the
|
||||
/// documentation on the module itself.
|
||||
#[proc_macro_attribute]
|
||||
pub fn pallet(attr: TokenStream, item: TokenStream) -> TokenStream {
|
||||
pallet::pallet(attr, item)
|
||||
|
||||
Reference in New Issue
Block a user