mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-14 05:11:09 +00:00
Let construct_runtime! generate ALL_MODULES as nested tuples (#3732)
So, instead of: `type ALL_MODULES = (Module1, Module2, Module3)`; Generate it like this: `type ALL_MODULES = ((Module1, Module2), Module3,);` This should make `construct_runtime!` support an "unlimited" number of modules.
This commit is contained in:
@@ -90,7 +90,7 @@ use rstd::prelude::*;
|
|||||||
use sr_primitives::{
|
use sr_primitives::{
|
||||||
traits::{StaticLookup, Dispatchable}, weights::SimpleDispatchInfo, DispatchError,
|
traits::{StaticLookup, Dispatchable}, weights::SimpleDispatchInfo, DispatchError,
|
||||||
};
|
};
|
||||||
use support::{StorageValue, Parameter, decl_module, decl_event, decl_storage, ensure};
|
use support::{Parameter, decl_module, decl_event, decl_storage, ensure};
|
||||||
use system::ensure_signed;
|
use system::ensure_signed;
|
||||||
|
|
||||||
pub trait Trait: system::Trait {
|
pub trait Trait: system::Trait {
|
||||||
|
|||||||
@@ -220,6 +220,7 @@ macro_rules! construct_runtime {
|
|||||||
$runtime;
|
$runtime;
|
||||||
;
|
;
|
||||||
{};
|
{};
|
||||||
|
{};
|
||||||
$(
|
$(
|
||||||
$name: $module:: $( < $module_instance >:: )? { $( $modules ),* },
|
$name: $module:: $( < $module_instance >:: )? { $( $modules ),* },
|
||||||
)*
|
)*
|
||||||
@@ -434,6 +435,7 @@ macro_rules! __decl_all_modules {
|
|||||||
$runtime:ident;
|
$runtime:ident;
|
||||||
;
|
;
|
||||||
{ $( $parsed:tt )* };
|
{ $( $parsed:tt )* };
|
||||||
|
{ $( $parsed_nested:tt )* };
|
||||||
System: $module:ident::{ Module $(, $modules:ident )* },
|
System: $module:ident::{ Module $(, $modules:ident )* },
|
||||||
$( $rest:tt )*
|
$( $rest:tt )*
|
||||||
) => {
|
) => {
|
||||||
@@ -441,6 +443,7 @@ macro_rules! __decl_all_modules {
|
|||||||
$runtime;
|
$runtime;
|
||||||
$module;
|
$module;
|
||||||
{ $( $parsed )* };
|
{ $( $parsed )* };
|
||||||
|
{ $( $parsed_nested )* };
|
||||||
$( $rest )*
|
$( $rest )*
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
@@ -448,6 +451,7 @@ macro_rules! __decl_all_modules {
|
|||||||
$runtime:ident;
|
$runtime:ident;
|
||||||
$( $system:ident )?;
|
$( $system:ident )?;
|
||||||
{ $( $parsed:tt )* };
|
{ $( $parsed:tt )* };
|
||||||
|
{};
|
||||||
$name:ident: $module:ident:: $( < $module_instance:ident >:: )? { Module $(, $modules:ident )* },
|
$name:ident: $module:ident:: $( < $module_instance:ident >:: )? { Module $(, $modules:ident )* },
|
||||||
$( $rest:tt )*
|
$( $rest:tt )*
|
||||||
) => {
|
) => {
|
||||||
@@ -458,6 +462,7 @@ macro_rules! __decl_all_modules {
|
|||||||
$( $parsed )*
|
$( $parsed )*
|
||||||
$module::$name $(<$module_instance>)?,
|
$module::$name $(<$module_instance>)?,
|
||||||
};
|
};
|
||||||
|
{ $name };
|
||||||
$( $rest )*
|
$( $rest )*
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
@@ -465,6 +470,26 @@ macro_rules! __decl_all_modules {
|
|||||||
$runtime:ident;
|
$runtime:ident;
|
||||||
$( $system:ident )?;
|
$( $system:ident )?;
|
||||||
{ $( $parsed:tt )* };
|
{ $( $parsed:tt )* };
|
||||||
|
{ $( $parsed_nested:tt )* };
|
||||||
|
$name:ident: $module:ident:: $( < $module_instance:ident >:: )? { Module $(, $modules:ident )* },
|
||||||
|
$( $rest:tt )*
|
||||||
|
) => {
|
||||||
|
$crate::__decl_all_modules!(
|
||||||
|
$runtime;
|
||||||
|
$( $system )?;
|
||||||
|
{
|
||||||
|
$( $parsed )*
|
||||||
|
$module::$name $(<$module_instance>)?,
|
||||||
|
};
|
||||||
|
{ ( $( $parsed_nested )*, $name, ) };
|
||||||
|
$( $rest )*
|
||||||
|
);
|
||||||
|
};
|
||||||
|
(
|
||||||
|
$runtime:ident;
|
||||||
|
$( $system:ident )?;
|
||||||
|
{ $( $parsed:tt )* };
|
||||||
|
{ $( $parsed_nested:tt )* };
|
||||||
$name:ident: $module:ident:: $( < $module_instance:ident >:: )? { $ignore:ident $(, $modules:ident )* },
|
$name:ident: $module:ident:: $( < $module_instance:ident >:: )? { $ignore:ident $(, $modules:ident )* },
|
||||||
$( $rest:tt )*
|
$( $rest:tt )*
|
||||||
) => {
|
) => {
|
||||||
@@ -472,6 +497,7 @@ macro_rules! __decl_all_modules {
|
|||||||
$runtime;
|
$runtime;
|
||||||
$( $system )?;
|
$( $system )?;
|
||||||
{ $( $parsed )* };
|
{ $( $parsed )* };
|
||||||
|
{ $( $parsed_nested )* };
|
||||||
$name: $module::{ $( $modules ),* },
|
$name: $module::{ $( $modules ),* },
|
||||||
$( $rest )*
|
$( $rest )*
|
||||||
);
|
);
|
||||||
@@ -487,6 +513,7 @@ macro_rules! __decl_all_modules {
|
|||||||
$runtime;
|
$runtime;
|
||||||
$( $system )?;
|
$( $system )?;
|
||||||
{ $( $parsed )* };
|
{ $( $parsed )* };
|
||||||
|
{ $( $parsed_nested )* };
|
||||||
$( $rest )*
|
$( $rest )*
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
@@ -494,12 +521,13 @@ macro_rules! __decl_all_modules {
|
|||||||
$runtime:ident;
|
$runtime:ident;
|
||||||
$system:ident;
|
$system:ident;
|
||||||
{ $( $parsed_module:ident :: $parsed_name:ident $(<$instance:ident>)? ,)*};
|
{ $( $parsed_module:ident :: $parsed_name:ident $(<$instance:ident>)? ,)*};
|
||||||
|
{ $( $parsed_nested:tt )* };
|
||||||
) => {
|
) => {
|
||||||
pub type System = system::Module<$runtime>;
|
pub type System = system::Module<$runtime>;
|
||||||
$(
|
$(
|
||||||
pub type $parsed_name = $parsed_module::Module<$runtime $(, $parsed_module::$instance )?>;
|
pub type $parsed_name = $parsed_module::Module<$runtime $(, $parsed_module::$instance )?>;
|
||||||
)*
|
)*
|
||||||
type AllModules = ( $( $parsed_name, )* );
|
type AllModules = ( $( $parsed_nested )* );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user