Skip to main content

register_decision_variant

Macro register_decision_variant 

Source
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.