pub struct Solution { /* private fields */ }Expand description
A solution which takes ownership of its inner structures.
Implements ProblemSolution.
Implementations§
Source§impl Solution
impl Solution
pub fn get_domains(&self) -> DomainGeneratorIterator
pub fn as_reference(&self) -> SolutionReference<'_>
pub fn contains_domain_id(&self, domain_id: DomainId) -> bool
Trait Implementations§
Source§impl From<SolutionReference<'_>> for Solution
impl From<SolutionReference<'_>> for Solution
Source§fn from(value: SolutionReference<'_>) -> Self
fn from(value: SolutionReference<'_>) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for Solution
impl RefUnwindSafe for Solution
impl Send for Solution
impl Sync for Solution
impl Unpin for Solution
impl UnwindSafe for Solution
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§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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<T> ProblemSolution for Twhere
T: HasAssignments,
impl<T> ProblemSolution for Twhere
T: HasAssignments,
Source§fn num_domains(&self) -> usize
fn num_domains(&self) -> usize
Returns the number of defined DomainIds.
fn get_integer_value<Var>(&self, var: Var) -> i32where
Var: IntegerVariable,
fn get_literal_value(&self, literal: Literal) -> bool
Source§impl<T> ReadDomains for Twhere
T: HasAssignments,
impl<T> ReadDomains for Twhere
T: HasAssignments,
Source§fn evaluate_predicate(&self, predicate: Predicate) -> Option<bool>
fn evaluate_predicate(&self, predicate: Predicate) -> Option<bool>
Returns whether the provided
Predicate is assigned (either true or false) or is
currently unassigned.Source§fn evaluate_literal(&self, literal: Literal) -> Option<bool>
fn evaluate_literal(&self, literal: Literal) -> Option<bool>
Returns whether the provided
Literal is assigned (either true or false) or is
currently unassigned.Source§fn get_holes_at_current_checkpoint<Var>(
&self,
var: &Var,
) -> impl Iterator<Item = i32>where
Var: IntegerVariable,
fn get_holes_at_current_checkpoint<Var>(
&self,
var: &Var,
) -> impl Iterator<Item = i32>where
Var: IntegerVariable,
Returns the holes in the domain which were created on the current checkpoint.
Source§fn get_holes<Var>(&self, var: &Var) -> impl Iterator<Item = i32>where
Var: IntegerVariable,
fn get_holes<Var>(&self, var: &Var) -> impl Iterator<Item = i32>where
Var: IntegerVariable,
Returns all of the holes (currently) in the domain of
var (including ones which were
created at previous decision levels).Source§fn is_fixed<Var>(&self, var: &Var) -> boolwhere
Var: IntegerVariable,
fn is_fixed<Var>(&self, var: &Var) -> boolwhere
Var: IntegerVariable,
Returns
true if the domain of the given variable is singleton (i.e., the variable is
fixed).Source§fn lower_bound<Var>(&self, var: &Var) -> i32where
Var: IntegerVariable,
fn lower_bound<Var>(&self, var: &Var) -> i32where
Var: IntegerVariable,
Returns the lowest value in the domain of
var.Source§fn lower_bound_at_trail_position<Var>(
&self,
var: &Var,
trail_position: usize,
) -> i32where
Var: IntegerVariable,
fn lower_bound_at_trail_position<Var>(
&self,
var: &Var,
trail_position: usize,
) -> i32where
Var: IntegerVariable,
Source§fn upper_bound<Var>(&self, var: &Var) -> i32where
Var: IntegerVariable,
fn upper_bound<Var>(&self, var: &Var) -> i32where
Var: IntegerVariable,
Returns the highest value in the domain of
var.Source§fn upper_bound_at_trail_position<Var>(
&self,
var: &Var,
trail_position: usize,
) -> i32where
Var: IntegerVariable,
fn upper_bound_at_trail_position<Var>(
&self,
var: &Var,
trail_position: usize,
) -> i32where
Var: IntegerVariable,
Source§fn contains<Var>(&self, var: &Var, value: i32) -> boolwhere
Var: IntegerVariable,
fn contains<Var>(&self, var: &Var, value: i32) -> boolwhere
Var: IntegerVariable,
Returns whether the provided
value is in the domain of var.Source§fn contains_at_trail_position<Var>(
&self,
var: &Var,
value: i32,
trail_position: usize,
) -> boolwhere
Var: IntegerVariable,
fn contains_at_trail_position<Var>(
&self,
var: &Var,
value: i32,
trail_position: usize,
) -> boolwhere
Var: IntegerVariable,
Source§fn iterate_domain<Var>(&self, var: &Var) -> impl Iterator<Item = i32>where
Var: IntegerVariable,
fn iterate_domain<Var>(&self, var: &Var) -> impl Iterator<Item = i32>where
Var: IntegerVariable,
Returns an
Iterator over the values in the domain of the provided var (including the
lower-bound and upper-bound values).Source§fn is_decision_predicate(&self, predicate: Predicate) -> bool
fn is_decision_predicate(&self, predicate: Predicate) -> bool
Source§fn is_initial_bound(&self, predicate: Predicate) -> bool
fn is_initial_bound(&self, predicate: Predicate) -> bool
Returns whether the provided
Predicate is an initial bound of its domain.Source§fn read_trailed_integer(&self, trailed_integer: TrailedInteger) -> i64
fn read_trailed_integer(&self, trailed_integer: TrailedInteger) -> i64
Returns the current value of the provided
TrailedInteger.Source§fn new_trailed_integer(&mut self, initial_value: i64) -> TrailedInteger
fn new_trailed_integer(&mut self, initial_value: i64) -> TrailedInteger
Creates a new
TrailedInteger assigned to the provided initial_value.Source§fn write_trailed_integer(&mut self, trailed_integer: TrailedInteger, value: i64)
fn write_trailed_integer(&mut self, trailed_integer: TrailedInteger, value: i64)
Assigns the provided
TrailedInteger to the provided value.Source§fn get_checkpoint(&self) -> usize
fn get_checkpoint(&self) -> usize
Returns the current checkpoint.
Source§fn initial_lower_bound(&self, var: DomainId) -> i32
fn initial_lower_bound(&self, var: DomainId) -> i32
Returns the lowest value in the domain of
var at the time of its creation.Source§fn initial_upper_bound(&self, var: DomainId) -> i32
fn initial_upper_bound(&self, var: DomainId) -> i32
Returns the highest value in the domain of
var at the time of its creation.Source§fn initial_holes(&self, var: DomainId) -> Vec<i32>
fn initial_holes(&self, var: DomainId) -> Vec<i32>
Returns all of the holes present at the time of thecreation of
var.Source§fn number_of_domains(&self) -> u32
fn number_of_domains(&self) -> u32
Returns the number of currently defined domains.