Attribute Macro frame_support_procedural::import_section
source · #[import_section]
Expand description
An attribute macro that can be attached to a module declaration. Doing so will
Imports the contents of the specified external pallet section that was defined
previously using #[pallet_section]
.
Example
#[import_section(some_section)]
#[pallet]
pub mod pallet {
// ...
}
where some_section
was defined elsewhere via:
#[pallet_section]
pub mod some_section {
// ...
}
This will result in the contents of some_section
being verbatim imported into
the pallet above. Note that since the tokens for some_section
are essentially
copy-pasted into the target pallet, you cannot refer to imports that don’t also
exist in the target pallet, but this is easily resolved by including all relevant
use
statements within your pallet section, so they are imported as well, or by
otherwise ensuring that you have the same imports on the target pallet.
It is perfectly permissible to import multiple pallet sections into the same pallet,
which can be done by having multiple #[import_section(something)]
attributes
attached to the pallet.
Note that sections are imported by their module name/ident, and should be referred to by their full path from the perspective of the target pallet.