Macro define_spec_config
Source macro_rules! define_spec_config {
(
$(#[$config_meta:meta])*
$vis:vis struct $config:ident {
$(
$(#[$field_meta:meta])*
$field:ident : $field_ty:ty {
provenance: $provenance:literal,
gate: $gate:expr,
source: $source:expr,
transform: $transform:expr
$(, fallback: $fallback:expr)?
$(,)?
}
),* $(,)?
}
$(accessor $accessor_vis:vis fn $accessor:ident($ctx:ident);)?
register $register_vis:vis fn $register:ident(
$built:ident,
$params:ident
) -> $return_ty:ty;
prepare { $($prepare:tt)* }
auras {
$(
{
provenance: $aura_provenance:literal,
gate: $aura_gate:expr,
aura: $aura:expr,
effect: $effect:expr $(,)?
}
),* $(,)?
}
$(wiring {
$(
{
provenance: $wiring_provenance:literal,
gate: $wiring_gate:expr,
apply: $wiring_apply:block $(,)?
}
),* $(,)?
})?
finish |$cfg:ident| $finish:block
) => { ... };
(@fallback $field_ty:ty, $fallback:expr) => { ... };
(@fallback $field_ty:ty) => { ... };
}