pub trait IntegerVariable:
Clone
+ PredicateConstructor<Value = i32>
+ TransformableVariable<Self::AffineView> {
type AffineView: IntegerVariable;
// Required methods
fn lower_bound(&self, assignment: &Assignments) -> i32;
fn lower_bound_at_trail_position(
&self,
assignment: &Assignments,
trail_position: usize,
) -> i32;
fn upper_bound(&self, assignment: &Assignments) -> i32;
fn upper_bound_at_trail_position(
&self,
assignment: &Assignments,
trail_position: usize,
) -> i32;
fn contains(&self, assignment: &Assignments, value: i32) -> bool;
fn contains_at_trail_position(
&self,
assignment: &Assignments,
value: i32,
trail_position: usize,
) -> bool;
fn iterate_domain(
&self,
assignment: &Assignments,
) -> impl Iterator<Item = i32>;
fn watch_all(
&self,
watchers: &mut Watchers<'_>,
events: EnumSet<DomainEvent>,
);
fn watch_all_backtrack(
&self,
watchers: &mut Watchers<'_>,
events: EnumSet<DomainEvent>,
);
fn unpack_event(&self, event: OpaqueDomainEvent) -> DomainEvent;
fn get_holes_on_current_decision_level(
&self,
assignments: &Assignments,
) -> impl Iterator<Item = i32>;
fn get_holes(&self, assignments: &Assignments) -> impl Iterator<Item = i32>;
}Expand description
A trait specifying the required behaviour of an integer variable such as retrieving a
lower-bound (IntegerVariable::lower_bound).
Required Associated Types§
Required Methods§
Sourcefn lower_bound(&self, assignment: &Assignments) -> i32
fn lower_bound(&self, assignment: &Assignments) -> i32
Get the lower bound of the variable.
Sourcefn lower_bound_at_trail_position(
&self,
assignment: &Assignments,
trail_position: usize,
) -> i32
fn lower_bound_at_trail_position( &self, assignment: &Assignments, trail_position: usize, ) -> i32
Get the lower bound of the variable at the given trail position.
Sourcefn upper_bound(&self, assignment: &Assignments) -> i32
fn upper_bound(&self, assignment: &Assignments) -> i32
Get the upper bound of the variable.
Sourcefn upper_bound_at_trail_position(
&self,
assignment: &Assignments,
trail_position: usize,
) -> i32
fn upper_bound_at_trail_position( &self, assignment: &Assignments, trail_position: usize, ) -> i32
Get the upper bound of the variable at the given trail position.
Sourcefn contains(&self, assignment: &Assignments, value: i32) -> bool
fn contains(&self, assignment: &Assignments, value: i32) -> bool
Determine whether the value is in the domain of this variable.
Sourcefn contains_at_trail_position(
&self,
assignment: &Assignments,
value: i32,
trail_position: usize,
) -> bool
fn contains_at_trail_position( &self, assignment: &Assignments, value: i32, trail_position: usize, ) -> bool
Determine whether the value is in the domain of this variable at the given trail position.
Sourcefn iterate_domain(&self, assignment: &Assignments) -> impl Iterator<Item = i32>
fn iterate_domain(&self, assignment: &Assignments) -> impl Iterator<Item = i32>
Iterate over the values of the domain.
Sourcefn watch_all(&self, watchers: &mut Watchers<'_>, events: EnumSet<DomainEvent>)
fn watch_all(&self, watchers: &mut Watchers<'_>, events: EnumSet<DomainEvent>)
Register a watch for this variable on the given domain events.
fn watch_all_backtrack( &self, watchers: &mut Watchers<'_>, events: EnumSet<DomainEvent>, )
Sourcefn unpack_event(&self, event: OpaqueDomainEvent) -> DomainEvent
fn unpack_event(&self, event: OpaqueDomainEvent) -> DomainEvent
Decode a domain event for this variable.
Sourcefn get_holes_on_current_decision_level(
&self,
assignments: &Assignments,
) -> impl Iterator<Item = i32>
fn get_holes_on_current_decision_level( &self, assignments: &Assignments, ) -> impl Iterator<Item = i32>
Returns all of the holes in the domain which were created at the current decision level
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.