Skip to main content

declare_variants

Macro declare_variants 

Source
declare_variants!() { /* proc-macro */ }
Expand description

Declare explicit problem variants with per-variant complexity metadata.

Each entry generates:

  1. A DeclaredVariant trait impl for compile-time checking
  2. A VariantEntry inventory submission for runtime graph building
  3. A compiled complexity_eval_fn that calls getter methods
  4. A const validation block verifying all variable names are valid getters

Complexity strings must use only numeric literals and getter method names. Mathematical constants (epsilon, omega, etc.) should be inlined as numbers and documented in comments or docstrings.

§Example

declare_variants! {
    MaximumIndependentSet<SimpleGraph, i32>   => "1.1996^num_vertices",
    MaximumIndependentSet<KingsSubgraph, i32> => "2^sqrt(num_vertices)",
}