macro_rules! register_decision_variant {
(
$inner:ty,
$name:literal,
$complexity:literal,
$aliases:expr,
$description:literal,
category: $category:expr,
dims: [$($dim:expr),* $(,)?],
fields: [$($field:expr),* $(,)?],
$(additional: [$($additional:ty => $additional_complexity:literal),* $(,)?],)?
decode: $decoder:expr
$(, $random:ident)?
) => { ... };
(@edges $inner:ty, $name:literal) => { ... };
(@declare $inner:ty, $complexity:literal, $decoder:expr, [$($additional:ty => $additional_complexity:literal),*], random) => { ... };
(@declare $inner:ty, $complexity:literal, $decoder:expr, [$($additional:ty => $additional_complexity:literal),*]) => { ... };
(@display_name "DecisionMinimumVertexCover") => { ... };
(@display_name "DecisionMinimumDominatingSet") => { ... };
(@display_name "DecisionMaximumIndependentSet") => { ... };
(@display_name $name:literal) => { ... };
}Expand description
Register the boilerplate inventory entries for a concrete Decision<P> variant.
Optional additional: [Inner => "complexity", ...] entries share the primary
variant’s construction fields and decoder without adding another schema or default.
Both decision/optimization edges derive their identity parameter transforms directly
from the inner problem’s canonical parameter schema.