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<'a>(
&'a self,
solution: &S,
) -> Vec<ConstraintResult<'a, Sc>>;
fn evaluate_detailed<'a>(
&'a self,
solution: &S,
) -> Vec<ConstraintAnalysis<'a, Sc>>;
fn initialize_all(&mut self, solution: &S) -> Sc;
fn on_insert_all(
&mut self,
solution: &S,
entity_index: usize,
descriptor_index: usize,
) -> Sc;
fn on_retract_all(
&mut self,
solution: &S,
entity_index: usize,
descriptor_index: usize,
) -> Sc;
fn reset_all(&mut self);
// Provided method
fn constraint_metadata(&self) -> Vec<ConstraintMetadata<'_>> { ... }
}Required Methods§
fn evaluate_all(&self, solution: &S) -> Sc
fn constraint_count(&self) -> usize
fn evaluate_each<'a>(&'a self, solution: &S) -> Vec<ConstraintResult<'a, Sc>>
fn evaluate_detailed<'a>( &'a self, solution: &S, ) -> Vec<ConstraintAnalysis<'a, Sc>>
fn initialize_all(&mut self, solution: &S) -> Sc
fn on_insert_all( &mut self, solution: &S, entity_index: usize, descriptor_index: usize, ) -> Sc
fn on_retract_all( &mut self, solution: &S, entity_index: usize, descriptor_index: usize, ) -> Sc
fn reset_all(&mut self)
Provided Methods§
fn constraint_metadata(&self) -> Vec<ConstraintMetadata<'_>>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".