pub trait ConstraintSet<S, Sc: Score>: Send + Sync {
// Required methods
fn evaluate_all(&self, solution: &S) -> Sc;
fn constraint_count(&self) -> usize;
fn evaluate_each(&self, solution: &S) -> Vec<ConstraintResult<Sc>>;
fn evaluate_detailed(&self, solution: &S) -> Vec<ConstraintAnalysis<Sc>>;
fn initialize_all(&mut self, solution: &S) -> Sc;
fn on_insert_all(&mut self, solution: &S, entity_index: usize) -> Sc;
fn on_retract_all(&mut self, solution: &S, entity_index: usize) -> Sc;
fn reset_all(&mut self);
}Required Methods§
Sourcefn evaluate_all(&self, solution: &S) -> Sc
fn evaluate_all(&self, solution: &S) -> Sc
Evaluates all constraints and returns the total score.
Sourcefn constraint_count(&self) -> usize
fn constraint_count(&self) -> usize
Returns the number of constraints in this set.
Sourcefn evaluate_each(&self, solution: &S) -> Vec<ConstraintResult<Sc>>
fn evaluate_each(&self, solution: &S) -> Vec<ConstraintResult<Sc>>
Evaluates each constraint individually and returns per-constraint results.
Useful for score explanation and debugging.
Sourcefn evaluate_detailed(&self, solution: &S) -> Vec<ConstraintAnalysis<Sc>>
fn evaluate_detailed(&self, solution: &S) -> Vec<ConstraintAnalysis<Sc>>
Evaluates each constraint with detailed match information.
Returns per-constraint analysis including all matches with entity justifications. This enables full score explanation features.
Sourcefn initialize_all(&mut self, solution: &S) -> Sc
fn initialize_all(&mut self, solution: &S) -> Sc
Initializes all constraints by inserting all entities.
Must be called before using incremental methods. Returns the total score from initialization.
Sourcefn on_insert_all(&mut self, solution: &S, entity_index: usize) -> Sc
fn on_insert_all(&mut self, solution: &S, entity_index: usize) -> Sc
Called when an entity is inserted.
Returns the total score delta from all constraints.
Sourcefn on_retract_all(&mut self, solution: &S, entity_index: usize) -> Sc
fn on_retract_all(&mut self, solution: &S, entity_index: usize) -> Sc
Called when an entity is retracted.
Returns the total score delta from all constraints.
Implementations on Foreign Types§
Source§impl<S, Sc, C0> ConstraintSet<S, Sc> for (C0,)
impl<S, Sc, C0> ConstraintSet<S, Sc> for (C0,)
fn evaluate_all(&self, solution: &S) -> Sc
fn constraint_count(&self) -> usize
fn evaluate_each(&self, solution: &S) -> Vec<ConstraintResult<Sc>>
fn evaluate_detailed(&self, solution: &S) -> Vec<ConstraintAnalysis<Sc>>
fn initialize_all(&mut self, solution: &S) -> Sc
fn on_insert_all(&mut self, solution: &S, entity_index: usize) -> Sc
fn on_retract_all(&mut self, solution: &S, entity_index: usize) -> Sc
fn reset_all(&mut self)
Source§impl<S, Sc, C0, C1> ConstraintSet<S, Sc> for (C0, C1)where
S: Send + Sync,
Sc: Score,
C0: IncrementalConstraint<S, Sc>,
C1: IncrementalConstraint<S, Sc>,
impl<S, Sc, C0, C1> ConstraintSet<S, Sc> for (C0, C1)where
S: Send + Sync,
Sc: Score,
C0: IncrementalConstraint<S, Sc>,
C1: IncrementalConstraint<S, Sc>,
fn evaluate_all(&self, solution: &S) -> Sc
fn constraint_count(&self) -> usize
fn evaluate_each(&self, solution: &S) -> Vec<ConstraintResult<Sc>>
fn evaluate_detailed(&self, solution: &S) -> Vec<ConstraintAnalysis<Sc>>
fn initialize_all(&mut self, solution: &S) -> Sc
fn on_insert_all(&mut self, solution: &S, entity_index: usize) -> Sc
fn on_retract_all(&mut self, solution: &S, entity_index: usize) -> Sc
fn reset_all(&mut self)
Source§impl<S, Sc, C0, C1, C2> ConstraintSet<S, Sc> for (C0, C1, C2)where
S: Send + Sync,
Sc: Score,
C0: IncrementalConstraint<S, Sc>,
C1: IncrementalConstraint<S, Sc>,
C2: IncrementalConstraint<S, Sc>,
impl<S, Sc, C0, C1, C2> ConstraintSet<S, Sc> for (C0, C1, C2)where
S: Send + Sync,
Sc: Score,
C0: IncrementalConstraint<S, Sc>,
C1: IncrementalConstraint<S, Sc>,
C2: IncrementalConstraint<S, Sc>,
fn evaluate_all(&self, solution: &S) -> Sc
fn constraint_count(&self) -> usize
fn evaluate_each(&self, solution: &S) -> Vec<ConstraintResult<Sc>>
fn evaluate_detailed(&self, solution: &S) -> Vec<ConstraintAnalysis<Sc>>
fn initialize_all(&mut self, solution: &S) -> Sc
fn on_insert_all(&mut self, solution: &S, entity_index: usize) -> Sc
fn on_retract_all(&mut self, solution: &S, entity_index: usize) -> Sc
fn reset_all(&mut self)
Source§impl<S, Sc, C0, C1, C2, C3> ConstraintSet<S, Sc> for (C0, C1, C2, C3)where
S: Send + Sync,
Sc: Score,
C0: IncrementalConstraint<S, Sc>,
C1: IncrementalConstraint<S, Sc>,
C2: IncrementalConstraint<S, Sc>,
C3: IncrementalConstraint<S, Sc>,
impl<S, Sc, C0, C1, C2, C3> ConstraintSet<S, Sc> for (C0, C1, C2, C3)where
S: Send + Sync,
Sc: Score,
C0: IncrementalConstraint<S, Sc>,
C1: IncrementalConstraint<S, Sc>,
C2: IncrementalConstraint<S, Sc>,
C3: IncrementalConstraint<S, Sc>,
fn evaluate_all(&self, solution: &S) -> Sc
fn constraint_count(&self) -> usize
fn evaluate_each(&self, solution: &S) -> Vec<ConstraintResult<Sc>>
fn evaluate_detailed(&self, solution: &S) -> Vec<ConstraintAnalysis<Sc>>
fn initialize_all(&mut self, solution: &S) -> Sc
fn on_insert_all(&mut self, solution: &S, entity_index: usize) -> Sc
fn on_retract_all(&mut self, solution: &S, entity_index: usize) -> Sc
fn reset_all(&mut self)
Source§impl<S, Sc, C0, C1, C2, C3, C4> ConstraintSet<S, Sc> for (C0, C1, C2, C3, C4)where
S: Send + Sync,
Sc: Score,
C0: IncrementalConstraint<S, Sc>,
C1: IncrementalConstraint<S, Sc>,
C2: IncrementalConstraint<S, Sc>,
C3: IncrementalConstraint<S, Sc>,
C4: IncrementalConstraint<S, Sc>,
impl<S, Sc, C0, C1, C2, C3, C4> ConstraintSet<S, Sc> for (C0, C1, C2, C3, C4)where
S: Send + Sync,
Sc: Score,
C0: IncrementalConstraint<S, Sc>,
C1: IncrementalConstraint<S, Sc>,
C2: IncrementalConstraint<S, Sc>,
C3: IncrementalConstraint<S, Sc>,
C4: IncrementalConstraint<S, Sc>,
fn evaluate_all(&self, solution: &S) -> Sc
fn constraint_count(&self) -> usize
fn evaluate_each(&self, solution: &S) -> Vec<ConstraintResult<Sc>>
fn evaluate_detailed(&self, solution: &S) -> Vec<ConstraintAnalysis<Sc>>
fn initialize_all(&mut self, solution: &S) -> Sc
fn on_insert_all(&mut self, solution: &S, entity_index: usize) -> Sc
fn on_retract_all(&mut self, solution: &S, entity_index: usize) -> Sc
fn reset_all(&mut self)
Source§impl<S, Sc, C0, C1, C2, C3, C4, C5> ConstraintSet<S, Sc> for (C0, C1, C2, C3, C4, C5)where
S: Send + Sync,
Sc: Score,
C0: IncrementalConstraint<S, Sc>,
C1: IncrementalConstraint<S, Sc>,
C2: IncrementalConstraint<S, Sc>,
C3: IncrementalConstraint<S, Sc>,
C4: IncrementalConstraint<S, Sc>,
C5: IncrementalConstraint<S, Sc>,
impl<S, Sc, C0, C1, C2, C3, C4, C5> ConstraintSet<S, Sc> for (C0, C1, C2, C3, C4, C5)where
S: Send + Sync,
Sc: Score,
C0: IncrementalConstraint<S, Sc>,
C1: IncrementalConstraint<S, Sc>,
C2: IncrementalConstraint<S, Sc>,
C3: IncrementalConstraint<S, Sc>,
C4: IncrementalConstraint<S, Sc>,
C5: IncrementalConstraint<S, Sc>,
fn evaluate_all(&self, solution: &S) -> Sc
fn constraint_count(&self) -> usize
fn evaluate_each(&self, solution: &S) -> Vec<ConstraintResult<Sc>>
fn evaluate_detailed(&self, solution: &S) -> Vec<ConstraintAnalysis<Sc>>
fn initialize_all(&mut self, solution: &S) -> Sc
fn on_insert_all(&mut self, solution: &S, entity_index: usize) -> Sc
fn on_retract_all(&mut self, solution: &S, entity_index: usize) -> Sc
fn reset_all(&mut self)
Source§impl<S, Sc, C0, C1, C2, C3, C4, C5, C6> ConstraintSet<S, Sc> for (C0, C1, C2, C3, C4, C5, C6)where
S: Send + Sync,
Sc: Score,
C0: IncrementalConstraint<S, Sc>,
C1: IncrementalConstraint<S, Sc>,
C2: IncrementalConstraint<S, Sc>,
C3: IncrementalConstraint<S, Sc>,
C4: IncrementalConstraint<S, Sc>,
C5: IncrementalConstraint<S, Sc>,
C6: IncrementalConstraint<S, Sc>,
impl<S, Sc, C0, C1, C2, C3, C4, C5, C6> ConstraintSet<S, Sc> for (C0, C1, C2, C3, C4, C5, C6)where
S: Send + Sync,
Sc: Score,
C0: IncrementalConstraint<S, Sc>,
C1: IncrementalConstraint<S, Sc>,
C2: IncrementalConstraint<S, Sc>,
C3: IncrementalConstraint<S, Sc>,
C4: IncrementalConstraint<S, Sc>,
C5: IncrementalConstraint<S, Sc>,
C6: IncrementalConstraint<S, Sc>,
fn evaluate_all(&self, solution: &S) -> Sc
fn constraint_count(&self) -> usize
fn evaluate_each(&self, solution: &S) -> Vec<ConstraintResult<Sc>>
fn evaluate_detailed(&self, solution: &S) -> Vec<ConstraintAnalysis<Sc>>
fn initialize_all(&mut self, solution: &S) -> Sc
fn on_insert_all(&mut self, solution: &S, entity_index: usize) -> Sc
fn on_retract_all(&mut self, solution: &S, entity_index: usize) -> Sc
fn reset_all(&mut self)
Source§impl<S, Sc, C0, C1, C2, C3, C4, C5, C6, C7> ConstraintSet<S, Sc> for (C0, C1, C2, C3, C4, C5, C6, C7)where
S: Send + Sync,
Sc: Score,
C0: IncrementalConstraint<S, Sc>,
C1: IncrementalConstraint<S, Sc>,
C2: IncrementalConstraint<S, Sc>,
C3: IncrementalConstraint<S, Sc>,
C4: IncrementalConstraint<S, Sc>,
C5: IncrementalConstraint<S, Sc>,
C6: IncrementalConstraint<S, Sc>,
C7: IncrementalConstraint<S, Sc>,
impl<S, Sc, C0, C1, C2, C3, C4, C5, C6, C7> ConstraintSet<S, Sc> for (C0, C1, C2, C3, C4, C5, C6, C7)where
S: Send + Sync,
Sc: Score,
C0: IncrementalConstraint<S, Sc>,
C1: IncrementalConstraint<S, Sc>,
C2: IncrementalConstraint<S, Sc>,
C3: IncrementalConstraint<S, Sc>,
C4: IncrementalConstraint<S, Sc>,
C5: IncrementalConstraint<S, Sc>,
C6: IncrementalConstraint<S, Sc>,
C7: IncrementalConstraint<S, Sc>,
fn evaluate_all(&self, solution: &S) -> Sc
fn constraint_count(&self) -> usize
fn evaluate_each(&self, solution: &S) -> Vec<ConstraintResult<Sc>>
fn evaluate_detailed(&self, solution: &S) -> Vec<ConstraintAnalysis<Sc>>
fn initialize_all(&mut self, solution: &S) -> Sc
fn on_insert_all(&mut self, solution: &S, entity_index: usize) -> Sc
fn on_retract_all(&mut self, solution: &S, entity_index: usize) -> Sc
fn reset_all(&mut self)
Source§impl<S, Sc, C0, C1, C2, C3, C4, C5, C6, C7, C8> ConstraintSet<S, Sc> for (C0, C1, C2, C3, C4, C5, C6, C7, C8)where
S: Send + Sync,
Sc: Score,
C0: IncrementalConstraint<S, Sc>,
C1: IncrementalConstraint<S, Sc>,
C2: IncrementalConstraint<S, Sc>,
C3: IncrementalConstraint<S, Sc>,
C4: IncrementalConstraint<S, Sc>,
C5: IncrementalConstraint<S, Sc>,
C6: IncrementalConstraint<S, Sc>,
C7: IncrementalConstraint<S, Sc>,
C8: IncrementalConstraint<S, Sc>,
impl<S, Sc, C0, C1, C2, C3, C4, C5, C6, C7, C8> ConstraintSet<S, Sc> for (C0, C1, C2, C3, C4, C5, C6, C7, C8)where
S: Send + Sync,
Sc: Score,
C0: IncrementalConstraint<S, Sc>,
C1: IncrementalConstraint<S, Sc>,
C2: IncrementalConstraint<S, Sc>,
C3: IncrementalConstraint<S, Sc>,
C4: IncrementalConstraint<S, Sc>,
C5: IncrementalConstraint<S, Sc>,
C6: IncrementalConstraint<S, Sc>,
C7: IncrementalConstraint<S, Sc>,
C8: IncrementalConstraint<S, Sc>,
fn evaluate_all(&self, solution: &S) -> Sc
fn constraint_count(&self) -> usize
fn evaluate_each(&self, solution: &S) -> Vec<ConstraintResult<Sc>>
fn evaluate_detailed(&self, solution: &S) -> Vec<ConstraintAnalysis<Sc>>
fn initialize_all(&mut self, solution: &S) -> Sc
fn on_insert_all(&mut self, solution: &S, entity_index: usize) -> Sc
fn on_retract_all(&mut self, solution: &S, entity_index: usize) -> Sc
fn reset_all(&mut self)
Source§impl<S, Sc, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9> ConstraintSet<S, Sc> for (C0, C1, C2, C3, C4, C5, C6, C7, C8, C9)where
S: Send + Sync,
Sc: Score,
C0: IncrementalConstraint<S, Sc>,
C1: IncrementalConstraint<S, Sc>,
C2: IncrementalConstraint<S, Sc>,
C3: IncrementalConstraint<S, Sc>,
C4: IncrementalConstraint<S, Sc>,
C5: IncrementalConstraint<S, Sc>,
C6: IncrementalConstraint<S, Sc>,
C7: IncrementalConstraint<S, Sc>,
C8: IncrementalConstraint<S, Sc>,
C9: IncrementalConstraint<S, Sc>,
impl<S, Sc, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9> ConstraintSet<S, Sc> for (C0, C1, C2, C3, C4, C5, C6, C7, C8, C9)where
S: Send + Sync,
Sc: Score,
C0: IncrementalConstraint<S, Sc>,
C1: IncrementalConstraint<S, Sc>,
C2: IncrementalConstraint<S, Sc>,
C3: IncrementalConstraint<S, Sc>,
C4: IncrementalConstraint<S, Sc>,
C5: IncrementalConstraint<S, Sc>,
C6: IncrementalConstraint<S, Sc>,
C7: IncrementalConstraint<S, Sc>,
C8: IncrementalConstraint<S, Sc>,
C9: IncrementalConstraint<S, Sc>,
fn evaluate_all(&self, solution: &S) -> Sc
fn constraint_count(&self) -> usize
fn evaluate_each(&self, solution: &S) -> Vec<ConstraintResult<Sc>>
fn evaluate_detailed(&self, solution: &S) -> Vec<ConstraintAnalysis<Sc>>
fn initialize_all(&mut self, solution: &S) -> Sc
fn on_insert_all(&mut self, solution: &S, entity_index: usize) -> Sc
fn on_retract_all(&mut self, solution: &S, entity_index: usize) -> Sc
fn reset_all(&mut self)
Source§impl<S, Sc, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10> ConstraintSet<S, Sc> for (C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10)where
S: Send + Sync,
Sc: Score,
C0: IncrementalConstraint<S, Sc>,
C1: IncrementalConstraint<S, Sc>,
C2: IncrementalConstraint<S, Sc>,
C3: IncrementalConstraint<S, Sc>,
C4: IncrementalConstraint<S, Sc>,
C5: IncrementalConstraint<S, Sc>,
C6: IncrementalConstraint<S, Sc>,
C7: IncrementalConstraint<S, Sc>,
C8: IncrementalConstraint<S, Sc>,
C9: IncrementalConstraint<S, Sc>,
C10: IncrementalConstraint<S, Sc>,
impl<S, Sc, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10> ConstraintSet<S, Sc> for (C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10)where
S: Send + Sync,
Sc: Score,
C0: IncrementalConstraint<S, Sc>,
C1: IncrementalConstraint<S, Sc>,
C2: IncrementalConstraint<S, Sc>,
C3: IncrementalConstraint<S, Sc>,
C4: IncrementalConstraint<S, Sc>,
C5: IncrementalConstraint<S, Sc>,
C6: IncrementalConstraint<S, Sc>,
C7: IncrementalConstraint<S, Sc>,
C8: IncrementalConstraint<S, Sc>,
C9: IncrementalConstraint<S, Sc>,
C10: IncrementalConstraint<S, Sc>,
fn evaluate_all(&self, solution: &S) -> Sc
fn constraint_count(&self) -> usize
fn evaluate_each(&self, solution: &S) -> Vec<ConstraintResult<Sc>>
fn evaluate_detailed(&self, solution: &S) -> Vec<ConstraintAnalysis<Sc>>
fn initialize_all(&mut self, solution: &S) -> Sc
fn on_insert_all(&mut self, solution: &S, entity_index: usize) -> Sc
fn on_retract_all(&mut self, solution: &S, entity_index: usize) -> Sc
fn reset_all(&mut self)
Source§impl<S, Sc, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11> ConstraintSet<S, Sc> for (C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11)where
S: Send + Sync,
Sc: Score,
C0: IncrementalConstraint<S, Sc>,
C1: IncrementalConstraint<S, Sc>,
C2: IncrementalConstraint<S, Sc>,
C3: IncrementalConstraint<S, Sc>,
C4: IncrementalConstraint<S, Sc>,
C5: IncrementalConstraint<S, Sc>,
C6: IncrementalConstraint<S, Sc>,
C7: IncrementalConstraint<S, Sc>,
C8: IncrementalConstraint<S, Sc>,
C9: IncrementalConstraint<S, Sc>,
C10: IncrementalConstraint<S, Sc>,
C11: IncrementalConstraint<S, Sc>,
impl<S, Sc, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11> ConstraintSet<S, Sc> for (C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11)where
S: Send + Sync,
Sc: Score,
C0: IncrementalConstraint<S, Sc>,
C1: IncrementalConstraint<S, Sc>,
C2: IncrementalConstraint<S, Sc>,
C3: IncrementalConstraint<S, Sc>,
C4: IncrementalConstraint<S, Sc>,
C5: IncrementalConstraint<S, Sc>,
C6: IncrementalConstraint<S, Sc>,
C7: IncrementalConstraint<S, Sc>,
C8: IncrementalConstraint<S, Sc>,
C9: IncrementalConstraint<S, Sc>,
C10: IncrementalConstraint<S, Sc>,
C11: IncrementalConstraint<S, Sc>,
fn evaluate_all(&self, solution: &S) -> Sc
fn constraint_count(&self) -> usize
fn evaluate_each(&self, solution: &S) -> Vec<ConstraintResult<Sc>>
fn evaluate_detailed(&self, solution: &S) -> Vec<ConstraintAnalysis<Sc>>
fn initialize_all(&mut self, solution: &S) -> Sc
fn on_insert_all(&mut self, solution: &S, entity_index: usize) -> Sc
fn on_retract_all(&mut self, solution: &S, entity_index: usize) -> Sc
fn reset_all(&mut self)
Source§impl<S, Sc, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12> ConstraintSet<S, Sc> for (C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12)where
S: Send + Sync,
Sc: Score,
C0: IncrementalConstraint<S, Sc>,
C1: IncrementalConstraint<S, Sc>,
C2: IncrementalConstraint<S, Sc>,
C3: IncrementalConstraint<S, Sc>,
C4: IncrementalConstraint<S, Sc>,
C5: IncrementalConstraint<S, Sc>,
C6: IncrementalConstraint<S, Sc>,
C7: IncrementalConstraint<S, Sc>,
C8: IncrementalConstraint<S, Sc>,
C9: IncrementalConstraint<S, Sc>,
C10: IncrementalConstraint<S, Sc>,
C11: IncrementalConstraint<S, Sc>,
C12: IncrementalConstraint<S, Sc>,
impl<S, Sc, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12> ConstraintSet<S, Sc> for (C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12)where
S: Send + Sync,
Sc: Score,
C0: IncrementalConstraint<S, Sc>,
C1: IncrementalConstraint<S, Sc>,
C2: IncrementalConstraint<S, Sc>,
C3: IncrementalConstraint<S, Sc>,
C4: IncrementalConstraint<S, Sc>,
C5: IncrementalConstraint<S, Sc>,
C6: IncrementalConstraint<S, Sc>,
C7: IncrementalConstraint<S, Sc>,
C8: IncrementalConstraint<S, Sc>,
C9: IncrementalConstraint<S, Sc>,
C10: IncrementalConstraint<S, Sc>,
C11: IncrementalConstraint<S, Sc>,
C12: IncrementalConstraint<S, Sc>,
fn evaluate_all(&self, solution: &S) -> Sc
fn constraint_count(&self) -> usize
fn evaluate_each(&self, solution: &S) -> Vec<ConstraintResult<Sc>>
fn evaluate_detailed(&self, solution: &S) -> Vec<ConstraintAnalysis<Sc>>
fn initialize_all(&mut self, solution: &S) -> Sc
fn on_insert_all(&mut self, solution: &S, entity_index: usize) -> Sc
fn on_retract_all(&mut self, solution: &S, entity_index: usize) -> Sc
fn reset_all(&mut self)
Source§impl<S, Sc, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13> ConstraintSet<S, Sc> for (C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13)where
S: Send + Sync,
Sc: Score,
C0: IncrementalConstraint<S, Sc>,
C1: IncrementalConstraint<S, Sc>,
C2: IncrementalConstraint<S, Sc>,
C3: IncrementalConstraint<S, Sc>,
C4: IncrementalConstraint<S, Sc>,
C5: IncrementalConstraint<S, Sc>,
C6: IncrementalConstraint<S, Sc>,
C7: IncrementalConstraint<S, Sc>,
C8: IncrementalConstraint<S, Sc>,
C9: IncrementalConstraint<S, Sc>,
C10: IncrementalConstraint<S, Sc>,
C11: IncrementalConstraint<S, Sc>,
C12: IncrementalConstraint<S, Sc>,
C13: IncrementalConstraint<S, Sc>,
impl<S, Sc, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13> ConstraintSet<S, Sc> for (C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13)where
S: Send + Sync,
Sc: Score,
C0: IncrementalConstraint<S, Sc>,
C1: IncrementalConstraint<S, Sc>,
C2: IncrementalConstraint<S, Sc>,
C3: IncrementalConstraint<S, Sc>,
C4: IncrementalConstraint<S, Sc>,
C5: IncrementalConstraint<S, Sc>,
C6: IncrementalConstraint<S, Sc>,
C7: IncrementalConstraint<S, Sc>,
C8: IncrementalConstraint<S, Sc>,
C9: IncrementalConstraint<S, Sc>,
C10: IncrementalConstraint<S, Sc>,
C11: IncrementalConstraint<S, Sc>,
C12: IncrementalConstraint<S, Sc>,
C13: IncrementalConstraint<S, Sc>,
fn evaluate_all(&self, solution: &S) -> Sc
fn constraint_count(&self) -> usize
fn evaluate_each(&self, solution: &S) -> Vec<ConstraintResult<Sc>>
fn evaluate_detailed(&self, solution: &S) -> Vec<ConstraintAnalysis<Sc>>
fn initialize_all(&mut self, solution: &S) -> Sc
fn on_insert_all(&mut self, solution: &S, entity_index: usize) -> Sc
fn on_retract_all(&mut self, solution: &S, entity_index: usize) -> Sc
fn reset_all(&mut self)
Source§impl<S, Sc, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14> ConstraintSet<S, Sc> for (C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14)where
S: Send + Sync,
Sc: Score,
C0: IncrementalConstraint<S, Sc>,
C1: IncrementalConstraint<S, Sc>,
C2: IncrementalConstraint<S, Sc>,
C3: IncrementalConstraint<S, Sc>,
C4: IncrementalConstraint<S, Sc>,
C5: IncrementalConstraint<S, Sc>,
C6: IncrementalConstraint<S, Sc>,
C7: IncrementalConstraint<S, Sc>,
C8: IncrementalConstraint<S, Sc>,
C9: IncrementalConstraint<S, Sc>,
C10: IncrementalConstraint<S, Sc>,
C11: IncrementalConstraint<S, Sc>,
C12: IncrementalConstraint<S, Sc>,
C13: IncrementalConstraint<S, Sc>,
C14: IncrementalConstraint<S, Sc>,
impl<S, Sc, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14> ConstraintSet<S, Sc> for (C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14)where
S: Send + Sync,
Sc: Score,
C0: IncrementalConstraint<S, Sc>,
C1: IncrementalConstraint<S, Sc>,
C2: IncrementalConstraint<S, Sc>,
C3: IncrementalConstraint<S, Sc>,
C4: IncrementalConstraint<S, Sc>,
C5: IncrementalConstraint<S, Sc>,
C6: IncrementalConstraint<S, Sc>,
C7: IncrementalConstraint<S, Sc>,
C8: IncrementalConstraint<S, Sc>,
C9: IncrementalConstraint<S, Sc>,
C10: IncrementalConstraint<S, Sc>,
C11: IncrementalConstraint<S, Sc>,
C12: IncrementalConstraint<S, Sc>,
C13: IncrementalConstraint<S, Sc>,
C14: IncrementalConstraint<S, Sc>,
fn evaluate_all(&self, solution: &S) -> Sc
fn constraint_count(&self) -> usize
fn evaluate_each(&self, solution: &S) -> Vec<ConstraintResult<Sc>>
fn evaluate_detailed(&self, solution: &S) -> Vec<ConstraintAnalysis<Sc>>
fn initialize_all(&mut self, solution: &S) -> Sc
fn on_insert_all(&mut self, solution: &S, entity_index: usize) -> Sc
fn on_retract_all(&mut self, solution: &S, entity_index: usize) -> Sc
fn reset_all(&mut self)
Source§impl<S, Sc, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15> ConstraintSet<S, Sc> for (C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15)where
S: Send + Sync,
Sc: Score,
C0: IncrementalConstraint<S, Sc>,
C1: IncrementalConstraint<S, Sc>,
C2: IncrementalConstraint<S, Sc>,
C3: IncrementalConstraint<S, Sc>,
C4: IncrementalConstraint<S, Sc>,
C5: IncrementalConstraint<S, Sc>,
C6: IncrementalConstraint<S, Sc>,
C7: IncrementalConstraint<S, Sc>,
C8: IncrementalConstraint<S, Sc>,
C9: IncrementalConstraint<S, Sc>,
C10: IncrementalConstraint<S, Sc>,
C11: IncrementalConstraint<S, Sc>,
C12: IncrementalConstraint<S, Sc>,
C13: IncrementalConstraint<S, Sc>,
C14: IncrementalConstraint<S, Sc>,
C15: IncrementalConstraint<S, Sc>,
impl<S, Sc, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15> ConstraintSet<S, Sc> for (C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15)where
S: Send + Sync,
Sc: Score,
C0: IncrementalConstraint<S, Sc>,
C1: IncrementalConstraint<S, Sc>,
C2: IncrementalConstraint<S, Sc>,
C3: IncrementalConstraint<S, Sc>,
C4: IncrementalConstraint<S, Sc>,
C5: IncrementalConstraint<S, Sc>,
C6: IncrementalConstraint<S, Sc>,
C7: IncrementalConstraint<S, Sc>,
C8: IncrementalConstraint<S, Sc>,
C9: IncrementalConstraint<S, Sc>,
C10: IncrementalConstraint<S, Sc>,
C11: IncrementalConstraint<S, Sc>,
C12: IncrementalConstraint<S, Sc>,
C13: IncrementalConstraint<S, Sc>,
C14: IncrementalConstraint<S, Sc>,
C15: IncrementalConstraint<S, Sc>,
fn evaluate_all(&self, solution: &S) -> Sc
fn constraint_count(&self) -> usize
fn evaluate_each(&self, solution: &S) -> Vec<ConstraintResult<Sc>>
fn evaluate_detailed(&self, solution: &S) -> Vec<ConstraintAnalysis<Sc>>
fn initialize_all(&mut self, solution: &S) -> Sc
fn on_insert_all(&mut self, solution: &S, entity_index: usize) -> Sc
fn on_retract_all(&mut self, solution: &S, entity_index: usize) -> Sc
fn reset_all(&mut self)
Source§impl<S: Send + Sync, Sc: Score> ConstraintSet<S, Sc> for ()
Implement ConstraintSet for an empty tuple (no constraints).
impl<S: Send + Sync, Sc: Score> ConstraintSet<S, Sc> for ()
Implement ConstraintSet for an empty tuple (no constraints).