#[macro_use]
mod bi;
#[macro_use]
mod nary_unified;
pub use bi::impl_incremental_bi_constraint;
pub use nary_unified::impl_incremental_penta_constraint;
pub use nary_unified::impl_incremental_quad_constraint;
pub use nary_unified::impl_incremental_tri_constraint;
#[macro_export]
macro_rules! impl_incremental_nary_constraint {
(bi, $struct_name:ident) => {
$crate::impl_incremental_bi_constraint!($struct_name);
};
(tri, $struct_name:ident) => {
$crate::impl_incremental_tri_constraint!($struct_name);
};
(quad, $struct_name:ident) => {
$crate::impl_incremental_quad_constraint!($struct_name);
};
(penta, $struct_name:ident) => {
$crate::impl_incremental_penta_constraint!($struct_name);
};
}
pub use impl_incremental_nary_constraint;
use std::collections::{HashMap, HashSet};
use std::fmt::Debug;
use std::hash::Hash;
use std::marker::PhantomData;
use solverforge_core::score::Score;
use solverforge_core::{ConstraintRef, ImpactType};
use crate::api::analysis::DetailedConstraintMatch;
use crate::api::constraint_set::IncrementalConstraint;
impl_incremental_nary_constraint!(bi, IncrementalBiConstraint);
impl_incremental_nary_constraint!(tri, IncrementalTriConstraint);
impl_incremental_nary_constraint!(quad, IncrementalQuadConstraint);
impl_incremental_nary_constraint!(penta, IncrementalPentaConstraint);