macro_rules! impl_get_matches_nary {
(bi: $self:expr, $solution:expr) => { ... };
(tri: $self:expr, $solution:expr) => { ... };
(quad: $self:expr, $solution:expr) => { ... };
(penta: $self:expr, $solution:expr) => { ... };
}Expand description
Generates get_matches() implementation for N-ary self-join constraints.
All N-ary constraints share the same pattern:
- Extract entities and build key index
- Iterate over N-tuples within each key group
- Filter and collect DetailedConstraintMatch with EntityRefs
ยงUsage
This macro is used internally in constraint implementations:
fn get_matches(&self, solution: &S) -> Vec<DetailedConstraintMatch<Sc>> {
impl_get_matches_nary!(bi: self, solution)
}Available arities: bi, tri, quad, penta