declare_variants!() { /* proc-macro */ }Expand description
Declare explicit problem variants with per-variant complexity metadata.
Each entry generates:
- A
DeclaredVarianttrait impl for compile-time checking - A
VariantEntryinventory submission for runtime graph building - A compiled
complexity_eval_fnthat calls getter methods - 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)",
}