Macro parameter_types
macro_rules! parameter_types {
    (
		$( #[ $attr:meta ] )*
		$vis:vis const $name:ident: $type:ty = $value:expr;
		$( $rest:tt )*
	) => { ... };
    (
		$( #[ $attr:meta ] )*
		$vis:vis $name:ident: $type:ty = $value:expr;
		$( $rest:tt )*
	) => { ... };
    () => { ... };
    (@IMPL_CONST $name:ident, $type:ty, $value:expr) => { ... };
    (@IMPL $name:ident, $type:ty, $value:expr) => { ... };
}Expand description
Create new implementations of the Get trait.
The so-called parameter type can be created in four different ways:
- 
Using
constto create a parameter type that provides aconstgetter. It is required that thevalueis const. - 
Declare the parameter type without
constto have more freedom when creating the value. 
NOTE: A more substantial version of this macro is available in frame_support crate which
allows mutable and persistant variants.
§Examples
// This function cannot be used in a const context.
fn non_const_expression() -> u64 { 99 }
const FIXED_VALUE: u64 = 10;
parameter_types! {
   pub const Argument: u64 = 42 + FIXED_VALUE;
   /// Visibility of the type is optional
   OtherArgument: u64 = non_const_expression();
}
trait Config {
   type Parameter: Get<u64>;
   type OtherParameter: Get<u64>;
}
struct Runtime;
impl Config for Runtime {
   type Parameter = Argument;
   type OtherParameter = OtherArgument;
}§Invalid example:
ⓘ
// This function cannot be used in a const context.
fn non_const_expression() -> u64 { 99 }
parameter_types! {
   pub const Argument: u64 = non_const_expression();
}