macro_rules! impl_enum_storage {
{@ComponentImpl
$cur_idx: expr,
$name : ident,
} => { ... };
{@ComponentImpl
$cur_idx : expr ,
$name : ident,
$variant_name: ident ($variant_type: ty),
$($variant_names: ident ($variant_types: ty),)*
} => { ... };
{@ComponentImpl
$name: ident,
$($variant_name: ident ($variant_type: ty),)*
} => { ... };
{@StorageImpl
$name: ident,
$(
$( #[$variant_meta: meta] )*
$variant_name: ident( $variant_type: ty )
),*
} => { ... };
{
$( #[$enum_meta:meta] )*
$vis:vis enum $name:ident
{
$(
$( #[$variant_meta: meta] )*
$variant_name: ident ( $variant_type: ty )
),*
$(,)?
}
} => { ... };
}
Creates and implements Storage
and Component
for an enum with all possible component types
using an incremental u64
for the id