pub struct DomainId {
pub id: u32,
}Expand description
A structure which represents the most basic IntegerVariable; it is simply the id which links
to a domain (hence the name).
Fields§
§id: u32Implementations§
Trait Implementations§
Source§impl IntegerVariable for DomainId
impl IntegerVariable for DomainId
type AffineView = AffineView<DomainId>
Source§fn lower_bound(&self, assignment: &AssignmentsInteger) -> i32
fn lower_bound(&self, assignment: &AssignmentsInteger) -> i32
Get the lower bound of the variable.
Source§fn upper_bound(&self, assignment: &AssignmentsInteger) -> i32
fn upper_bound(&self, assignment: &AssignmentsInteger) -> i32
Get the upper bound of the variable.
Source§fn contains(&self, assignment: &AssignmentsInteger, value: i32) -> bool
fn contains(&self, assignment: &AssignmentsInteger, value: i32) -> bool
Determine whether the value is in the domain of this variable.
Source§fn describe_domain(&self, assignment: &AssignmentsInteger) -> Vec<Predicate>
fn describe_domain(&self, assignment: &AssignmentsInteger) -> Vec<Predicate>
Get a predicate description (bounds + holes) of the domain of this variable.
N.B. can be very expensive with large domains, and very large with holey domains Read more
Source§fn remove(
&self,
assignment: &mut AssignmentsInteger,
value: i32,
reason: Option<ReasonRef>,
) -> Result<(), EmptyDomain>
fn remove( &self, assignment: &mut AssignmentsInteger, value: i32, reason: Option<ReasonRef>, ) -> Result<(), EmptyDomain>
Remove a value from the domain of this variable.
Source§fn set_lower_bound(
&self,
assignment: &mut AssignmentsInteger,
value: i32,
reason: Option<ReasonRef>,
) -> Result<(), EmptyDomain>
fn set_lower_bound( &self, assignment: &mut AssignmentsInteger, value: i32, reason: Option<ReasonRef>, ) -> Result<(), EmptyDomain>
Tighten the lower bound of the domain of this variable.
Source§fn set_upper_bound(
&self,
assignment: &mut AssignmentsInteger,
value: i32,
reason: Option<ReasonRef>,
) -> Result<(), EmptyDomain>
fn set_upper_bound( &self, assignment: &mut AssignmentsInteger, value: i32, reason: Option<ReasonRef>, ) -> Result<(), EmptyDomain>
Tighten the upper bound of the domain of this variable.
Source§fn watch_all(
&self,
watchers: &mut Watchers<'_>,
events: EnumSet<IntDomainEvent>,
)
fn watch_all( &self, watchers: &mut Watchers<'_>, events: EnumSet<IntDomainEvent>, )
Register a watch for this variable on the given domain events.
fn watch_all_backtrack( &self, watchers: &mut Watchers<'_>, events: EnumSet<IntDomainEvent>, )
Source§fn unpack_event(&self, event: OpaqueDomainEvent) -> IntDomainEvent
fn unpack_event(&self, event: OpaqueDomainEvent) -> IntDomainEvent
Decode a domain event for this variable.
Source§impl PredicateConstructor for DomainId
impl PredicateConstructor for DomainId
Source§fn lower_bound_predicate(&self, bound: Self::Value) -> Predicate
fn lower_bound_predicate(&self, bound: Self::Value) -> Predicate
Creates a lower-bound predicate (e.g.
[x >= v]).Source§fn upper_bound_predicate(&self, bound: Self::Value) -> Predicate
fn upper_bound_predicate(&self, bound: Self::Value) -> Predicate
Creates an upper-bound predicate (e.g.
[x <= v]).Source§fn equality_predicate(&self, bound: Self::Value) -> Predicate
fn equality_predicate(&self, bound: Self::Value) -> Predicate
Creates an equality predicate (e.g.
[x == v]).Source§fn disequality_predicate(&self, bound: Self::Value) -> Predicate
fn disequality_predicate(&self, bound: Self::Value) -> Predicate
Creates a disequality predicate (e.g.
[x != v]).Source§impl StorageKey for DomainId
impl StorageKey for DomainId
Source§impl TransformableVariable<AffineView<DomainId>> for DomainId
impl TransformableVariable<AffineView<DomainId>> for DomainId
Source§impl ValueSelector<DomainId> for InDomainInterval
impl ValueSelector<DomainId> for InDomainInterval
Source§fn select_value(
&mut self,
context: &mut SelectionContext<'_>,
decision_variable: DomainId,
) -> Predicate
fn select_value( &mut self, context: &mut SelectionContext<'_>, decision_variable: DomainId, ) -> Predicate
Determines which value in the domain of
decision_variable to branch next on.
The domain of the decision_variable variable should have at least 2 values in it (as it
otherwise should not have been selected as decision_variable). Returns a Predicate
specifying the required change in the domain.Source§fn on_unassign_literal(&mut self, _literal: Literal)
fn on_unassign_literal(&mut self, _literal: Literal)
Source§fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
A function which is called after a
DomainId is unassigned during backtracking (i.e. when
it was fixed but is no longer), specifically, it provides variable which is the
DomainId which has been reset and value which is the value to which the variable was
previously fixed. This method could thus be called multiple times in a single
backtracking operation by the solver.Source§fn on_solution(&mut self, _solution: SolutionReference<'_>)
fn on_solution(&mut self, _solution: SolutionReference<'_>)
This method is called when a solution is found; either when iterating over all solutions in
the case of a satisfiable problem or on solutions of increasing quality when solving an
optimisation problem.
Source§fn is_restart_pointless(&mut self) -> bool
fn is_restart_pointless(&mut self) -> bool
This method returns whether a restart is currently pointless for the
ValueSelector. Read moreSource§impl ValueSelector<DomainId> for InDomainRandom
impl ValueSelector<DomainId> for InDomainRandom
Source§fn select_value(
&mut self,
context: &mut SelectionContext<'_>,
decision_variable: DomainId,
) -> Predicate
fn select_value( &mut self, context: &mut SelectionContext<'_>, decision_variable: DomainId, ) -> Predicate
Determines which value in the domain of
decision_variable to branch next on.
The domain of the decision_variable variable should have at least 2 values in it (as it
otherwise should not have been selected as decision_variable). Returns a Predicate
specifying the required change in the domain.Source§fn is_restart_pointless(&mut self) -> bool
fn is_restart_pointless(&mut self) -> bool
This method returns whether a restart is currently pointless for the
ValueSelector. Read moreSource§fn on_unassign_literal(&mut self, _literal: Literal)
fn on_unassign_literal(&mut self, _literal: Literal)
Source§fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
A function which is called after a
DomainId is unassigned during backtracking (i.e. when
it was fixed but is no longer), specifically, it provides variable which is the
DomainId which has been reset and value which is the value to which the variable was
previously fixed. This method could thus be called multiple times in a single
backtracking operation by the solver.Source§fn on_solution(&mut self, _solution: SolutionReference<'_>)
fn on_solution(&mut self, _solution: SolutionReference<'_>)
This method is called when a solution is found; either when iterating over all solutions in
the case of a satisfiable problem or on solutions of increasing quality when solving an
optimisation problem.
Source§impl ValueSelector<DomainId> for InDomainSplitRandom
impl ValueSelector<DomainId> for InDomainSplitRandom
Source§fn select_value(
&mut self,
context: &mut SelectionContext<'_>,
decision_variable: DomainId,
) -> Predicate
fn select_value( &mut self, context: &mut SelectionContext<'_>, decision_variable: DomainId, ) -> Predicate
Determines which value in the domain of
decision_variable to branch next on.
The domain of the decision_variable variable should have at least 2 values in it (as it
otherwise should not have been selected as decision_variable). Returns a Predicate
specifying the required change in the domain.Source§fn is_restart_pointless(&mut self) -> bool
fn is_restart_pointless(&mut self) -> bool
This method returns whether a restart is currently pointless for the
ValueSelector. Read moreSource§fn on_unassign_literal(&mut self, _literal: Literal)
fn on_unassign_literal(&mut self, _literal: Literal)
Source§fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
A function which is called after a
DomainId is unassigned during backtracking (i.e. when
it was fixed but is no longer), specifically, it provides variable which is the
DomainId which has been reset and value which is the value to which the variable was
previously fixed. This method could thus be called multiple times in a single
backtracking operation by the solver.Source§fn on_solution(&mut self, _solution: SolutionReference<'_>)
fn on_solution(&mut self, _solution: SolutionReference<'_>)
This method is called when a solution is found; either when iterating over all solutions in
the case of a satisfiable problem or on solutions of increasing quality when solving an
optimisation problem.
Source§impl ValueSelector<DomainId> for OutDomainMax
impl ValueSelector<DomainId> for OutDomainMax
Source§fn select_value(
&mut self,
context: &mut SelectionContext<'_>,
decision_variable: DomainId,
) -> Predicate
fn select_value( &mut self, context: &mut SelectionContext<'_>, decision_variable: DomainId, ) -> Predicate
Determines which value in the domain of
decision_variable to branch next on.
The domain of the decision_variable variable should have at least 2 values in it (as it
otherwise should not have been selected as decision_variable). Returns a Predicate
specifying the required change in the domain.Source§fn on_unassign_literal(&mut self, _literal: Literal)
fn on_unassign_literal(&mut self, _literal: Literal)
Source§fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
A function which is called after a
DomainId is unassigned during backtracking (i.e. when
it was fixed but is no longer), specifically, it provides variable which is the
DomainId which has been reset and value which is the value to which the variable was
previously fixed. This method could thus be called multiple times in a single
backtracking operation by the solver.Source§fn on_solution(&mut self, _solution: SolutionReference<'_>)
fn on_solution(&mut self, _solution: SolutionReference<'_>)
This method is called when a solution is found; either when iterating over all solutions in
the case of a satisfiable problem or on solutions of increasing quality when solving an
optimisation problem.
Source§fn is_restart_pointless(&mut self) -> bool
fn is_restart_pointless(&mut self) -> bool
This method returns whether a restart is currently pointless for the
ValueSelector. Read moreSource§impl ValueSelector<DomainId> for OutDomainMedian
impl ValueSelector<DomainId> for OutDomainMedian
Source§fn select_value(
&mut self,
context: &mut SelectionContext<'_>,
decision_variable: DomainId,
) -> Predicate
fn select_value( &mut self, context: &mut SelectionContext<'_>, decision_variable: DomainId, ) -> Predicate
Determines which value in the domain of
decision_variable to branch next on.
The domain of the decision_variable variable should have at least 2 values in it (as it
otherwise should not have been selected as decision_variable). Returns a Predicate
specifying the required change in the domain.Source§fn on_unassign_literal(&mut self, _literal: Literal)
fn on_unassign_literal(&mut self, _literal: Literal)
Source§fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
A function which is called after a
DomainId is unassigned during backtracking (i.e. when
it was fixed but is no longer), specifically, it provides variable which is the
DomainId which has been reset and value which is the value to which the variable was
previously fixed. This method could thus be called multiple times in a single
backtracking operation by the solver.Source§fn on_solution(&mut self, _solution: SolutionReference<'_>)
fn on_solution(&mut self, _solution: SolutionReference<'_>)
This method is called when a solution is found; either when iterating over all solutions in
the case of a satisfiable problem or on solutions of increasing quality when solving an
optimisation problem.
Source§fn is_restart_pointless(&mut self) -> bool
fn is_restart_pointless(&mut self) -> bool
This method returns whether a restart is currently pointless for the
ValueSelector. Read moreSource§impl ValueSelector<DomainId> for OutDomainMin
impl ValueSelector<DomainId> for OutDomainMin
Source§fn select_value(
&mut self,
context: &mut SelectionContext<'_>,
decision_variable: DomainId,
) -> Predicate
fn select_value( &mut self, context: &mut SelectionContext<'_>, decision_variable: DomainId, ) -> Predicate
Determines which value in the domain of
decision_variable to branch next on.
The domain of the decision_variable variable should have at least 2 values in it (as it
otherwise should not have been selected as decision_variable). Returns a Predicate
specifying the required change in the domain.Source§fn on_unassign_literal(&mut self, _literal: Literal)
fn on_unassign_literal(&mut self, _literal: Literal)
Source§fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
A function which is called after a
DomainId is unassigned during backtracking (i.e. when
it was fixed but is no longer), specifically, it provides variable which is the
DomainId which has been reset and value which is the value to which the variable was
previously fixed. This method could thus be called multiple times in a single
backtracking operation by the solver.Source§fn on_solution(&mut self, _solution: SolutionReference<'_>)
fn on_solution(&mut self, _solution: SolutionReference<'_>)
This method is called when a solution is found; either when iterating over all solutions in
the case of a satisfiable problem or on solutions of increasing quality when solving an
optimisation problem.
Source§fn is_restart_pointless(&mut self) -> bool
fn is_restart_pointless(&mut self) -> bool
This method returns whether a restart is currently pointless for the
ValueSelector. Read moreSource§impl ValueSelector<DomainId> for OutDomainRandom
impl ValueSelector<DomainId> for OutDomainRandom
Source§fn select_value(
&mut self,
context: &mut SelectionContext<'_>,
decision_variable: DomainId,
) -> Predicate
fn select_value( &mut self, context: &mut SelectionContext<'_>, decision_variable: DomainId, ) -> Predicate
Determines which value in the domain of
decision_variable to branch next on.
The domain of the decision_variable variable should have at least 2 values in it (as it
otherwise should not have been selected as decision_variable). Returns a Predicate
specifying the required change in the domain.Source§fn is_restart_pointless(&mut self) -> bool
fn is_restart_pointless(&mut self) -> bool
This method returns whether a restart is currently pointless for the
ValueSelector. Read moreSource§fn on_unassign_literal(&mut self, _literal: Literal)
fn on_unassign_literal(&mut self, _literal: Literal)
Source§fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
A function which is called after a
DomainId is unassigned during backtracking (i.e. when
it was fixed but is no longer), specifically, it provides variable which is the
DomainId which has been reset and value which is the value to which the variable was
previously fixed. This method could thus be called multiple times in a single
backtracking operation by the solver.Source§fn on_solution(&mut self, _solution: SolutionReference<'_>)
fn on_solution(&mut self, _solution: SolutionReference<'_>)
This method is called when a solution is found; either when iterating over all solutions in
the case of a satisfiable problem or on solutions of increasing quality when solving an
optimisation problem.
Source§impl<TieBreaking: TieBreaker<DomainId, i32>> VariableSelector<DomainId> for AntiFirstFail<DomainId, TieBreaking>
impl<TieBreaking: TieBreaker<DomainId, i32>> VariableSelector<DomainId> for AntiFirstFail<DomainId, TieBreaking>
Source§fn select_variable(
&mut self,
context: &SelectionContext<'_>,
) -> Option<DomainId>
fn select_variable( &mut self, context: &SelectionContext<'_>, ) -> Option<DomainId>
Determines which variable to select next if there are any left to branch on.
Should only return
None when all variables which have been passed to the
VariableSelector have been assigned. Otherwise it should return the variable to
branch on next.Source§fn on_conflict(&mut self)
fn on_conflict(&mut self)
A function which is called after a conflict has been found and processed but (currently)
does not provide any additional information.
Source§fn on_unassign_literal(&mut self, _literal: Literal)
fn on_unassign_literal(&mut self, _literal: Literal)
Source§fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
Source§fn on_appearance_in_conflict_literal(&mut self, _literal: Literal)
fn on_appearance_in_conflict_literal(&mut self, _literal: Literal)
A function which is called when a
Literal appears in a conflict during conflict
analysis.Source§fn on_appearance_in_conflict_integer(&mut self, _variable: DomainId)
fn on_appearance_in_conflict_integer(&mut self, _variable: DomainId)
A function which is called when a variable appears in a conflict during conflict analysis.
Source§fn is_restart_pointless(&mut self) -> bool
fn is_restart_pointless(&mut self) -> bool
This method returns whether a restart is currently pointless for the
VariableSelector. Read moreSource§impl<TieBreaking> VariableSelector<DomainId> for FirstFail<DomainId, TieBreaking>
impl<TieBreaking> VariableSelector<DomainId> for FirstFail<DomainId, TieBreaking>
Source§fn select_variable(
&mut self,
context: &SelectionContext<'_>,
) -> Option<DomainId>
fn select_variable( &mut self, context: &SelectionContext<'_>, ) -> Option<DomainId>
Determines which variable to select next if there are any left to branch on.
Should only return
None when all variables which have been passed to the
VariableSelector have been assigned. Otherwise it should return the variable to
branch on next.Source§fn on_conflict(&mut self)
fn on_conflict(&mut self)
A function which is called after a conflict has been found and processed but (currently)
does not provide any additional information.
Source§fn on_unassign_literal(&mut self, _literal: Literal)
fn on_unassign_literal(&mut self, _literal: Literal)
Source§fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
Source§fn on_appearance_in_conflict_literal(&mut self, _literal: Literal)
fn on_appearance_in_conflict_literal(&mut self, _literal: Literal)
A function which is called when a
Literal appears in a conflict during conflict
analysis.Source§fn on_appearance_in_conflict_integer(&mut self, _variable: DomainId)
fn on_appearance_in_conflict_integer(&mut self, _variable: DomainId)
A function which is called when a variable appears in a conflict during conflict analysis.
Source§fn is_restart_pointless(&mut self) -> bool
fn is_restart_pointless(&mut self) -> bool
This method returns whether a restart is currently pointless for the
VariableSelector. Read moreSource§impl VariableSelector<DomainId> for InputOrder<DomainId>
impl VariableSelector<DomainId> for InputOrder<DomainId>
Source§fn select_variable(
&mut self,
context: &SelectionContext<'_>,
) -> Option<DomainId>
fn select_variable( &mut self, context: &SelectionContext<'_>, ) -> Option<DomainId>
Determines which variable to select next if there are any left to branch on.
Should only return
None when all variables which have been passed to the
VariableSelector have been assigned. Otherwise it should return the variable to
branch on next.Source§fn on_conflict(&mut self)
fn on_conflict(&mut self)
A function which is called after a conflict has been found and processed but (currently)
does not provide any additional information.
Source§fn on_unassign_literal(&mut self, _literal: Literal)
fn on_unassign_literal(&mut self, _literal: Literal)
Source§fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
Source§fn on_appearance_in_conflict_literal(&mut self, _literal: Literal)
fn on_appearance_in_conflict_literal(&mut self, _literal: Literal)
A function which is called when a
Literal appears in a conflict during conflict
analysis.Source§fn on_appearance_in_conflict_integer(&mut self, _variable: DomainId)
fn on_appearance_in_conflict_integer(&mut self, _variable: DomainId)
A function which is called when a variable appears in a conflict during conflict analysis.
Source§fn is_restart_pointless(&mut self) -> bool
fn is_restart_pointless(&mut self) -> bool
This method returns whether a restart is currently pointless for the
VariableSelector. Read moreSource§impl<TieBreaking> VariableSelector<DomainId> for Largest<DomainId, TieBreaking>
impl<TieBreaking> VariableSelector<DomainId> for Largest<DomainId, TieBreaking>
Source§fn select_variable(
&mut self,
context: &SelectionContext<'_>,
) -> Option<DomainId>
fn select_variable( &mut self, context: &SelectionContext<'_>, ) -> Option<DomainId>
Determines which variable to select next if there are any left to branch on.
Should only return
None when all variables which have been passed to the
VariableSelector have been assigned. Otherwise it should return the variable to
branch on next.Source§fn on_conflict(&mut self)
fn on_conflict(&mut self)
A function which is called after a conflict has been found and processed but (currently)
does not provide any additional information.
Source§fn on_unassign_literal(&mut self, _literal: Literal)
fn on_unassign_literal(&mut self, _literal: Literal)
Source§fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
Source§fn on_appearance_in_conflict_literal(&mut self, _literal: Literal)
fn on_appearance_in_conflict_literal(&mut self, _literal: Literal)
A function which is called when a
Literal appears in a conflict during conflict
analysis.Source§fn on_appearance_in_conflict_integer(&mut self, _variable: DomainId)
fn on_appearance_in_conflict_integer(&mut self, _variable: DomainId)
A function which is called when a variable appears in a conflict during conflict analysis.
Source§fn is_restart_pointless(&mut self) -> bool
fn is_restart_pointless(&mut self) -> bool
This method returns whether a restart is currently pointless for the
VariableSelector. Read moreSource§impl<TieBreaking> VariableSelector<DomainId> for MaxRegret<DomainId, TieBreaking>
impl<TieBreaking> VariableSelector<DomainId> for MaxRegret<DomainId, TieBreaking>
Source§fn select_variable(
&mut self,
context: &SelectionContext<'_>,
) -> Option<DomainId>
fn select_variable( &mut self, context: &SelectionContext<'_>, ) -> Option<DomainId>
Determines which variable to select next if there are any left to branch on.
Should only return
None when all variables which have been passed to the
VariableSelector have been assigned. Otherwise it should return the variable to
branch on next.Source§fn on_conflict(&mut self)
fn on_conflict(&mut self)
A function which is called after a conflict has been found and processed but (currently)
does not provide any additional information.
Source§fn on_unassign_literal(&mut self, _literal: Literal)
fn on_unassign_literal(&mut self, _literal: Literal)
Source§fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
Source§fn on_appearance_in_conflict_literal(&mut self, _literal: Literal)
fn on_appearance_in_conflict_literal(&mut self, _literal: Literal)
A function which is called when a
Literal appears in a conflict during conflict
analysis.Source§fn on_appearance_in_conflict_integer(&mut self, _variable: DomainId)
fn on_appearance_in_conflict_integer(&mut self, _variable: DomainId)
A function which is called when a variable appears in a conflict during conflict analysis.
Source§fn is_restart_pointless(&mut self) -> bool
fn is_restart_pointless(&mut self) -> bool
This method returns whether a restart is currently pointless for the
VariableSelector. Read moreSource§impl<TieBreaking> VariableSelector<DomainId> for MostConstrained<DomainId, TieBreaking>where
TieBreaking: TieBreaker<DomainId, MostConstrainedValue>,
impl<TieBreaking> VariableSelector<DomainId> for MostConstrained<DomainId, TieBreaking>where
TieBreaking: TieBreaker<DomainId, MostConstrainedValue>,
Source§fn select_variable(
&mut self,
context: &SelectionContext<'_>,
) -> Option<DomainId>
fn select_variable( &mut self, context: &SelectionContext<'_>, ) -> Option<DomainId>
Determines which variable to select next if there are any left to branch on.
Should only return
None when all variables which have been passed to the
VariableSelector have been assigned. Otherwise it should return the variable to
branch on next.Source§fn on_conflict(&mut self)
fn on_conflict(&mut self)
A function which is called after a conflict has been found and processed but (currently)
does not provide any additional information.
Source§fn on_unassign_literal(&mut self, _literal: Literal)
fn on_unassign_literal(&mut self, _literal: Literal)
Source§fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
Source§fn on_appearance_in_conflict_literal(&mut self, _literal: Literal)
fn on_appearance_in_conflict_literal(&mut self, _literal: Literal)
A function which is called when a
Literal appears in a conflict during conflict
analysis.Source§fn on_appearance_in_conflict_integer(&mut self, _variable: DomainId)
fn on_appearance_in_conflict_integer(&mut self, _variable: DomainId)
A function which is called when a variable appears in a conflict during conflict analysis.
Source§fn is_restart_pointless(&mut self) -> bool
fn is_restart_pointless(&mut self) -> bool
This method returns whether a restart is currently pointless for the
VariableSelector. Read moreSource§impl<TieBreaking> VariableSelector<DomainId> for Occurrence<DomainId, TieBreaking>
impl<TieBreaking> VariableSelector<DomainId> for Occurrence<DomainId, TieBreaking>
Source§fn select_variable(
&mut self,
context: &SelectionContext<'_>,
) -> Option<DomainId>
fn select_variable( &mut self, context: &SelectionContext<'_>, ) -> Option<DomainId>
Determines which variable to select next if there are any left to branch on.
Should only return
None when all variables which have been passed to the
VariableSelector have been assigned. Otherwise it should return the variable to
branch on next.Source§fn on_conflict(&mut self)
fn on_conflict(&mut self)
A function which is called after a conflict has been found and processed but (currently)
does not provide any additional information.
Source§fn on_unassign_literal(&mut self, _literal: Literal)
fn on_unassign_literal(&mut self, _literal: Literal)
Source§fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
Source§fn on_appearance_in_conflict_literal(&mut self, _literal: Literal)
fn on_appearance_in_conflict_literal(&mut self, _literal: Literal)
A function which is called when a
Literal appears in a conflict during conflict
analysis.Source§fn on_appearance_in_conflict_integer(&mut self, _variable: DomainId)
fn on_appearance_in_conflict_integer(&mut self, _variable: DomainId)
A function which is called when a variable appears in a conflict during conflict analysis.
Source§fn is_restart_pointless(&mut self) -> bool
fn is_restart_pointless(&mut self) -> bool
This method returns whether a restart is currently pointless for the
VariableSelector. Read moreSource§impl<TieBreaking> VariableSelector<DomainId> for Smallest<DomainId, TieBreaking>
impl<TieBreaking> VariableSelector<DomainId> for Smallest<DomainId, TieBreaking>
Source§fn select_variable(
&mut self,
context: &SelectionContext<'_>,
) -> Option<DomainId>
fn select_variable( &mut self, context: &SelectionContext<'_>, ) -> Option<DomainId>
Determines which variable to select next if there are any left to branch on.
Should only return
None when all variables which have been passed to the
VariableSelector have been assigned. Otherwise it should return the variable to
branch on next.Source§fn on_conflict(&mut self)
fn on_conflict(&mut self)
A function which is called after a conflict has been found and processed but (currently)
does not provide any additional information.
Source§fn on_unassign_literal(&mut self, _literal: Literal)
fn on_unassign_literal(&mut self, _literal: Literal)
Source§fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
fn on_unassign_integer(&mut self, _variable: DomainId, _value: i32)
Source§fn on_appearance_in_conflict_literal(&mut self, _literal: Literal)
fn on_appearance_in_conflict_literal(&mut self, _literal: Literal)
A function which is called when a
Literal appears in a conflict during conflict
analysis.Source§fn on_appearance_in_conflict_integer(&mut self, _variable: DomainId)
fn on_appearance_in_conflict_integer(&mut self, _variable: DomainId)
A function which is called when a variable appears in a conflict during conflict analysis.
Source§fn is_restart_pointless(&mut self) -> bool
fn is_restart_pointless(&mut self) -> bool
This method returns whether a restart is currently pointless for the
VariableSelector. Read moreSource§impl VariableSelector<DomainId> for Vsids<DomainId>
impl VariableSelector<DomainId> for Vsids<DomainId>
Source§fn select_variable(
&mut self,
context: &SelectionContext<'_>,
) -> Option<DomainId>
fn select_variable( &mut self, context: &SelectionContext<'_>, ) -> Option<DomainId>
Determines which variable to select next if there are any left to branch on.
Should only return
None when all variables which have been passed to the
VariableSelector have been assigned. Otherwise it should return the variable to
branch on next.Source§fn on_conflict(&mut self)
fn on_conflict(&mut self)
A function which is called after a conflict has been found and processed but (currently)
does not provide any additional information.
Source§fn on_unassign_integer(&mut self, variable: DomainId, _value: i32)
fn on_unassign_integer(&mut self, variable: DomainId, _value: i32)
Source§fn on_appearance_in_conflict_integer(&mut self, variable: DomainId)
fn on_appearance_in_conflict_integer(&mut self, variable: DomainId)
A function which is called when a variable appears in a conflict during conflict analysis.
Source§fn is_restart_pointless(&mut self) -> bool
fn is_restart_pointless(&mut self) -> bool
This method returns whether a restart is currently pointless for the
VariableSelector. Read moreSource§fn on_unassign_literal(&mut self, _literal: Literal)
fn on_unassign_literal(&mut self, _literal: Literal)
Source§fn on_appearance_in_conflict_literal(&mut self, _literal: Literal)
fn on_appearance_in_conflict_literal(&mut self, _literal: Literal)
A function which is called when a
Literal appears in a conflict during conflict
analysis.impl Copy for DomainId
impl Eq for DomainId
impl StructuralPartialEq for DomainId
Auto Trait Implementations§
impl Freeze for DomainId
impl RefUnwindSafe for DomainId
impl Send for DomainId
impl Sync for DomainId
impl Unpin for DomainId
impl UnwindSafe for DomainId
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit)Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<Value> Statistic for Valuewhere
Value: Display,
impl<Value> Statistic for Valuewhere
Value: Display,
Source§fn log(&self, statistic_logger: StatisticLogger)
fn log(&self, statistic_logger: StatisticLogger)
Logs the
Statistic using the provided StatisticLogger.