impl_incremental_nary_constraint

Macro impl_incremental_nary_constraint 

Source
macro_rules! impl_incremental_nary_constraint {
    (bi, $struct_name:ident) => { ... };
    (tri, $struct_name:ident) => { ... };
    (quad, $struct_name:ident) => { ... };
    (penta, $struct_name:ident) => { ... };
}
Expand description

Generates an incremental N-ary constraint struct and implementations.

This macro produces:

  • The constraint struct with all fields
  • Constructor new()
  • Private helper methods compute_score(), insert_entity(), retract_entity()
  • Full IncrementalConstraint<S, Sc> trait implementation
  • Debug implementation

ยงUsage

impl_incremental_nary_constraint!(bi, IncrementalBiConstraint, (usize, usize), 2, a b);
impl_incremental_nary_constraint!(tri, IncrementalTriConstraint, (usize, usize, usize), 3, a b c);
impl_incremental_nary_constraint!(quad, IncrementalQuadConstraint, (usize, usize, usize, usize), 4, a b c d);
impl_incremental_nary_constraint!(penta, IncrementalPentaConstraint, (usize, usize, usize, usize, usize), 5, a b c d e);